The ability to accurately estimate the cost needed to complete a specific project has been a challenge over the past decades. For a successful software project, accurate prediction of the cost, time and effort is a very much essential task. This paper presents a systematic review of different models used for software cost estimation which includes algorithmic methods, non-algorithmic methods and learning-oriented methods. The models considered in this review include both the traditional and the recent approaches for software cost estimation. The main objective of this paper is to provide an overview of software cost estimation models and summarize their strengths, weakness, accuracy, amount of data needed, and validation techniques used. Our findings show, in general, neural network based models outperforms other cost estimation techniques. However, no one technique fits every problem and we recommend practitioners to search for the model that best fit their needs.
References
[1]
Pinkashia, S. and Singh, J. (2017) Systematic Literature Review on Software Effort Estimation Using Machine Learning Approaches. 2017 International Conference on Next Generation Computing and Information Systems, Jammu, India, 11-12 December 2017, 43-47. https://doi.org/10.1109/ICNGCIS.2017.33
[2]
Wen, J., Li, S., Lin, Z., Hu, Y. and Huang. C. (2012) Systematic Literature Review of Machine Learning Based Software Development Effort Estimation Models. Information and Software Technology, 54, 41-59.
https://doi.org/10.1016/j.infsof.2011.09.002
[3]
Barry, B., Abts, C. and Chulani, S. (2000) Software Development Cost Estimation Approaches—A Survey. Annals of Software Engineering, 10, 177-205.
https://doi.org/10.1023/A:1018991717352
[4]
Moloekken-ØEstvold, K., Jørgensen, M., Tanilkan, S.S. Gallis, H., Lien, A.C. and Hove, S.W. (2004) A Survey on Software Estimation in the Norwegian Industry. 10th International Symposium on Software Metrics, Chicago, IL, 11-17 September 2004, 208-219.
[5]
Li, M.-S., He, M., Yang, D., Shu, F.-D. and Wang, Q. (2007) Software Cost Estimation Method and Application. Journal of Software, 18, 775-795.
[6]
Magne, J. and Shepperd, M. (2007) A Systematic Review of Software Development Cost Estimation Studies. IEEE Transactions on Software Engineering, 33, 33-53.
https://doi.org/10.1109/TSE.2007.256943
[7]
Tomás, V., Ochoa, S.F. and Perovich, D. (2017) Survey of Software Development Effort Estimation Taxonomies. Technical Report. Pending ID. Computer Science Department, University of Chile, Chile.
[8]
Rajeswari, K. (2018) A Critique on Software Cost Estimation. International Journal of Pure and Applied Mathematics, 118, 3851-3862.
[9]
Haitham, H., Kamel, A. and Shams, K. (2013) Software Effort Estimation Using Artificial Neural Networks: A Survey of the Current Practices. 2013 10th Information Technology: New Generations, Las Vegas, NV, 15-17 April 2013, 731-733.
https://doi.org/10.1109/ITNG.2013.111
[10]
Sangwan, O.P. (2017) Software Effort Estimation Using Machine Learning Techniques. 2017 7th International Conference on Cloud Computing, Data Science & Engineering-Confluence, Noida, India, 12-13 January 2017, 92-98.
Barry, B., Clark, B., Horowitz, E., Westland, C., Madachy, R. and Selby, R. (1995) Cost Models for Future Software Life Cycle Processes: COCOMO 2.0. Annals of Software Engineering, 1, 57-94. https://doi.org/10.1007/BF02249046
[13]
IFPUG, FPCPM (2000) International Function Point Users Group (IFPUG) Function Point Counting Practices Manual.
[14]
Komal, G., Kaur, P., Kapoor, S. and Narula, S. (2014) Enhancement in COCOMO Model Using Function Point Analysis to Increase Effort Estimation. International Journal of Computer Science and Mobile Computing, 3, 265-572.
[15]
Putnam, L.H. (1978) A General Empirical Solution to the Macro Software Sizing and Estimating Problem. IEEE Transactions on Software Engineering, 4, 345-361.
https://doi.org/10.1109/TSE.1978.231521
[16]
Warburton, R.D.H. (1983) Managing and Predicting the Costs of Real-Time Software. IEEE Transactions on Software Engineering, 5, 562-569.
https://doi.org/10.1109/TSE.1983.235115
[17]
Kemerer, C.F. (1987) An Empirical Validation of Software Cost Estimation Models. Communications of the ACM, 30, 416-429.
https://doi.org/10.1145/22899.22906
[18]
Christopher, R. and Roy, R. (2001) Expert Judgment in Cost Estimating: Modelling the Reasoning Process. Concurrent Engineering, 9, 271-284.
https://doi.org/10.1177/1063293X0100900404
[19]
Hareton, L. and Zhang, F. (2002) Software Cost Estimation. In: Handbook of Software Engineering and Knowledge Engineering: Volume 2: Emerging Technologies, World Scientific Publishing Co Pte Ltd., Singapore, 307-324.
https://doi.org/10.1142/9789812389701_0014
[20]
Sharma, S. (2017) Applications of Genetic Algorithm in Software Engineering, Distributed Computing and Machine Learning. International Journal of Computer Applications & Information Technology, 9, 208-212.
[21]
Gray, A.R. and Macdonell, S.G. (1999) Software Metrics Data Analysis—Exploring the Relative Performance of Some Commonly Used Modeling Techniques. Empirical Software Engineering, 4, 297-316. https://doi.org/10.1023/A:1009849100780
[22]
Ross, J., Ruhe, M and Wieczorek, I. (2000) A Comparative Study of Two Software Development Cost Modeling Techniques Using Multi-Organizational and Company-Specific Data. Information and Software Technology, 42, 1009-1016.
https://doi.org/10.1016/S0950-5849(00)00153-1
[23]
Abbas, H. (2002) Comparison of Artificial Neural Network and Regression Models for Estimating Software Development Effort. Information and Software Technology, 44, 911-922.
[24]
Dolado, J.J. (2001) On the Problem of the Software Cost Function. Information and Software Technology, 43, 61-72.
https://doi.org/10.1016/S0950-5849(00)00137-3
[25]
Ingunn, M. and Stensrud, E. (1999) A Controlled Experiment to Assess the Benefits of Estimating with Analogy and Regression Models. IEEE Transactions on Software Engineering, 25, 510-525. https://doi.org/10.1109/32.799947
[26]
Ahmed, B.M. (2018) Predicting Software Effort Estimation Using Machine Learning Techniques. 2018 8th International Conference on Computer Science and Information Technology, Amman, 11-12 July 2018, 249-256.
https://doi.org/10.1109/CSIT.2018.8486222
[27]
Poonam, R. and Jain, S. (2016) Enhanced Software Effort Estimation Using Multi Layered Feed Forward Artificial Neural Network Technique. Procedia Computer Science, 89, 307-312. https://doi.org/10.1016/j.procs.2016.06.073
[28]
Idri, A., Khoshgoftaar, T.M. and Abran, A. (2002) Can Neural Networks Be Easily Interpreted in Software Cost Estimation? 2002 IEEE World Congress on Computational Intelligence. 2002 IEEE International Conference on Fuzzy Systems, Honolulu, HI, 12-17 May 2002, 1162-1167.
[29]
Singh, B.K. and Misra, A.K. (2012) Software Effort Estimation by Genetic Algorithm Tuned Parameters of Modified Constructive Cost Model for NASA Software Projects. International Journal of Computer Applications, 59, 22-26.
[30]
Burgess, C.J. and Lefley, M. (2001) Can Genetic Programming Improve Software Effort Estimation? A Comparative Evaluation. Information and Software Technology, 43, 863-873. https://doi.org/10.1016/S0950-5849(01)00192-6
[31]
Anupama, K., Soni, A.K. and Soni, R. (2013) Radial Basis Function Network Using Intuitionistic Fuzzy C Means for Software Cost Estimation. International Journal of Computer Applications in Technology, 47, 86-95.
https://doi.org/10.1504/IJCAT.2013.054305
[32]
Anish, M., Parkash, K. and Mittal, H. (2010) Software Cost Estimation Using Fuzzy Logic. ACM SIGSOFT Software Engineering Notes, 35, 1-7.
https://doi.org/10.1145/1668862.1668866
[33]
Hrvoje, K. and Gotovac, S. (2015) Estimating Software Development Effort Using Bayesian Networks. 2015 23rd International Conference on Software, Telecommunications and Computer Networks, Split, Croatia, 16-18 September 2015, 229-233.
https://doi.org/10.1109/SOFTCOM.2015.7314091
[34]
Bhavendra Kumar, S., Sinhal, A. and Verma, B. (2013) A Software Measurement Using Artificial Neural Network and Support Vector Machine. International Journal of Software Engineering & Applications, 4, 41-52.
https://doi.org/10.5121/ijsea.2013.4404
[35]
Magne, J. (2004) Regression Models of Software Development Effort Estimation Accuracy and Bias. Empirical Software Engineering, 9, 297-314.
https://doi.org/10.1023/B:EMSE.0000039881.57613.cb
[36]
Ali, I., Amazal, F.A. and Abran, A. (2016) Accuracy Comparison of Analogy-Based Software Development Effort Estimation Techniques. International Journal of Intelligent Systems, 31, 128-152. https://doi.org/10.1002/int.21748
[37]
Hathaichanok, S. and Prompoon, N. (2012) Framework for Developing a Software Cost Estimation Model for Software Modification Based on a Relational Matrix of Project Profile and Software Cost Using an Analogy Estimation Method. International Journal of Computer and Communication Engineering, 1, 129-134.
https://doi.org/10.7763/IJCCE.2012.V1.36
[38]
Manikavelan, D. and Ponnusamy, R. (2015) Improvised Analogy Based Software Cost Estimation with Ant Colony Optimization. Research Journal of Applied Sciences, Engineering and Technology, 10, 293-297.
https://doi.org/10.19026/rjaset.10.2490
[39]
Papatheocharous, E. and Andreou, A.S. (2012) Software Cost Modelling and Estimation Using Artificial Neural Networks Enhanced by Input Sensitivity Analysis. Journal of Universal Computer Science, 18, 2041-2070.