Abstract
Development effort is one of the most important metrics that must be estimated in order to design the plan of a project. The uncertainty and complexity of software projects make the process of effort estimation difficult and ambiguous. Analogy-based estimation (ABE) is the most common method in this area because it is quite straightforward and practical, relying on comparison between new projects and completed projects to estimate the development effort. Despite many advantages, ABE is unable to produce accurate estimates when the importance level of project features is not the same or the relationship among features is difficult to determine. In such situations, efficient feature weighting can be a solution to improve the performance of ABE. This paper proposes a hybrid estimation model based on a combination of a particle swarm optimization (PSO) algorithm and ABE to increase the accuracy of software development effort estimation. This combination leads to accurate identification of projects that are similar, based on optimizing the performance of the similarity function in ABE. A framework is presented in which the appropriate weights are allocated to project features so that the most accurate estimates are achieved. The suggested model is flexible enough to be used in different datasets including categorical and non-categorical project features. Three real data sets are employed to evaluate the proposed model, and the results are compared with other estimation models. The promising results show that a combination of PSO and ABE could significantly improve the performance of existing estimation models.
Similar content being viewed by others
References
Abran, A. (1996). Function points analysis: An empirical study of its measurement processes. IEEE Transactions on Software Engineering, 22(12), 895–910.
Ahmed, M. A., Omolade Saliu, M., et al. (2005). Adaptive fuzzy logic-based framework for software development effort prediction. Information and Software Technology, 47(1), 31–48.
Alba, E., & Chicano, J. F. (2007). Software project management with GAs. Information Science, 177(11), 2380–2401.
Albrecht, A. J., & Gaffney, J. A. (1983). Software function, source lines of codes, and development effort prediction: a software science validation. IEEE Transactions on Software Engineering, 9(6), 639–648.
Angelis, L., & Stamelos, I. (2000). A simulation tool for efficient analogy based cost estimation. Empirical Software Engineering, 5(1), 35–68.
Antoniol, G., Penta, M. D., et al. (2005). Search-based techniques applied to optimization of project planning for a massive maintenance project. In Proceedings of the 21st IEEE international conference on software maintenance (pp. 240–249). IEEE Computer Society.
Attarzadeh, I., & Ow, S. H. (2011). Software development cost and time forecasting using a high performance artificial neural network model. Intelligent Computing and Information Science, 134, 18–26.
Azzeh, M., Neagu, D., et al. (2010). Fuzzy grey relational analysis for software effort estimation. Empirical Software Engineering, 15(1), 60–90.
Bai, Q. (2010). Analysis of particle swarm optimization algorithm. Computer and Information Science, 3(1), 180–184.
Bakır, A., Turhan, B., et al. (2010). A new perspective on data homogeneity in software cost estimation: A study in embedded systems domain. Software Quality Journal, 18(1), 57–80.
Bakır, A., Turhan, B., et al. (2011). A comparative study for estimating software development effort intervals. Software Quality Journal, 19(3), 537–552.
Bhatnagar, R., Bhattacharjee, V., et al. (2010). Software development effort estimation neural network vs. regression modeling approach. International Journal of Engineering Science and Technology, 2(7), 2950–2956.
Boehm, B. W. (1981). Software engineering economics. Englewood Cliffs, NJ: Prentice Hall.
Boehm, B. (2000). Software cost estimation with COCOMO II. Englewood Cliffs, NJ: Prentice Hall.
Boehm, B. W., & Valerdi, R. (2008). Achievements and challenges in cocomo-based software resource estimation. IEEE Software, 25(5), 74–83.
Breiman, L., Friedman, J. H., et al. (1984). Classification and regression trees. Pacific Grove, CA: Wadsworth.
Briand, L. C., El-Emam, K., et al. (1999). An assessment and comparison of common cost software project estimation methods. In Proceedings of 21st international conference software engineering (pp. 313–322).
Chiu, N. H., & Huang, S. J. (2007). The adjusted analogy-based software effort estimation based on similarity distances. Journal of Systems and Software, 80, 628–640.
Clark, J. A., & Jacob, J. L. (2001). Protocols are programs too: The meta-heuristic search for security protocols. Information and Software Technology, 43(14), 891–904.
Dalkey, N., & Helmer, O. (1963). An experimental application of the Delphi method to the use of experts. Management Science, 9(3), 458–467.
Deng, J. L. (1982). Control problems of grey systems. Systems and Control Letters, 1(5), 288–294.
Ferrucci, F., Gravino, C., et al. (2010). Genetic programming for effort estimation: An analysis of the impact of different fitness functions. In Proceedings of the 2nd international symposium on search based software engineering (SSBSE’10), Benevento, Italy (pp. 89–98). IEEE.
Greer, D., & Ruhe, G. (2004). Software release planning: an evolutionary and iterative approach. Information and Software Technology, 46(4), 243–253.
Harman, M., & Jones, B. F. (2001). Search-based software engineering. Information and Software Technology, 43(14), 833–839.
Hayes, W. (1994). Statistics (5th ed.). Chicago: Harcourt Brace.
Hsu, C.-J., & Huang, C.-Y. (2011). Comparison of weighted grey relational analysis for software effort estimation. Software Quality Journal, 19(1), 165–200.
Huang, S.-J., & Chiu, N.-H. (2006). Optimization of analogy weights by genetic algorithm for software effort estimation. Information and Software Technology, 48, 1034–1045.
Huang, S.-J., Chiu, N.-H., et al. (2008). Integration of the grey relational analysis with genetic algorithm for software effort estimation. European Journal of Operational Research, 188(3), 898–909.
ISBSG. (2011). International Software Benchmarking standard Group from www.isbsg.org.
Jianfeng, W., Shixian, L., et al. (2009). Improve analogy-based software effort estimation using principal components analysis and correlation weighting. In International conference on software engineering.
Jones, C. (2007). Estimating software costs: Bringing realism to estimating. New York: McGraw-Hill.
Jorgensen, M., & Halkjelsvik, T. (2010). The effects of request formats on judgment-based effort estimation. Journal of Systems and Software, 83(1), 29–36.
Jorgensen, M., Indahl, U., et al. (2003). Software effort estimation by analogy and regression toward the mean. Journal of Systems and Software, 68, 253–262.
Kadoda, G., Cartwright, M., et al. (2000). Experiences using case-based reasoning to predict software project effort international conference on empirical assessment and evaluation in software engineering. KEELE University.
Kennedy, J., & Eberhart, R. (1995). Particle swarm optimization. In IEEE international conference on neural networks, Piscataway, NJ.
Kennedy, J., Eberhart, R. C., et al. (2001). Swarm intelligence. San Francisco: Morgan Kaufmann.
Keung, J. W., Kitchenham, B. A., et al. (2008). Analogy-X: Providing statistical inference to analogy-based software cost estimation. IEEE Transactions on Software Engineering, 34(4), 471–484.
Khatibi Bardsiri, V., & Jawawi, D. N. A. (2011). Software cost estimation methods: A review. Journal of Emerging Trends in Computing and Information Sciences, 2(1), 21–29.
Khatibi Bardsiri, V., & Jawawi, D. N. A. (2012). Software development effort estimation. Germany: Lambert Academic Publishing.
Khatibi Bardsiri, V., Jawawi, D. N. A., et al. (2011). A new fuzzy clustering based method to increase the accuracy of software development effort estimation. World Applied Sciences Journal, 14(9), 1265–1275.
Li, J., & Ruhe, G. (2008a). Analysis of attribute weighting heuristics for analogy-based software effort estimation method AQUA+. Empirical Software Engineering, 13(1), 63–96.
Li, J. Z., & Ruhe, G. (2008b). Software effort estimation by analogy using attribute selection based on rough set analysis. International Journal of Software Engineering and Knowledge Engineering, 18(1), 1–23.
Li, J., Ruhe, G., et al. (2007). A flexible method for software effort estimation by analogy. Empirical Software Engineering, 12(1), 65–106.
Li, Y. F., Xie, M., et al. (2007). A study of genetic algorithm for project selection for analogy based software cost estimation. In International conference on industrial engineering and engineering management, Singapore.
Li, Y. F., Xie, M., et al. (2008). A study of analogy based sampling for interval based cost estimation for software project management. In 4th IEEE international conference on management of innovation and technology, Singapore.
Li, Y. F., Xie, M., et al. (2009a). A study of project selection and feature weighting for analogy based software cost estimation. Journal of Systems and Software, 82(2), 241–252.
Li, Y. F., Xie, M., et al. (2009b). A study of the non-linear adjustment for analogy based software cost estimation. Empirical Software Engineering, 14, 603–643.
Lin, J.-C. (2010). Applying particle swarm optimization to estimate software effort by multiple factors software project clustering. In International computer symposium (ICS), Taiwan.
Matson, J. E., Barrett, B. E., et al. (1994). Software development cost estimation using function points. IEEE Transactions on Software Engineering, 20(4), 275–287.
McMinn, P. (2004). Search-based software test data generation: A survey: Research articles. Software Testing, Verification, and Reliability, 14(2), 105–156.
Mendes, E., Watson, I., et al. (2003). A comparative study of cost estimation models for web hypermedia applications. Empirical Software Engineering, 8, 163–196.
Mittas, N., & Angelis, L. (2010). LSEbA: Least squares regression and estimation by analogy in a semi-parametric model for software cost estimation. Empirical Software Engineering, 15(5), 523–555.
Molokken, K., & Jorgensen, M. (2005). Expert estimation of Web-development projects: Are software professionals in technical roles more optimistic than those in non-technical roles? Empirical Software Engineering, 10(1), 7–30.
Oliveira, A. L. I., Braga, P. L., et al. (2010). GA-based method for feature selection and parameters optimization for machine learning regression applied to software effort estimation. Information and Software Technology, 52(11), 1155–1166.
Pawlak, Z. (1991). Rough set: Theoretical aspects of reasoning about data. Dordrecht: Kluwer.
Reddy, P. (2011). Particle swarm optimization in the fine-tuning of fuzzy software cost estimation models. International Journal of Software Engineering and Knowledge Engineering, 1(2), 12–23.
Shepperd, M., & Schofield, C. (1997). Estimating software project effort using analogies. IEEE Transactions on Software Engineering, 23(11), 736–743.
Sheta, A. F., Ayesh, A., et al. (2010). Evaluating software cost estimation models using particle swarm optimisation and fuzzy logic for NASA projects; a comparative study. International Journal of Bio-Inspired Computation, 2(6), 365–373.
Shi, Y., & Eberhart, R. C. (1998). Parameter selection in particle swarm optimization. In The 7th annual conference on evolutionary programming.
Shi, Y., & Eberhart, R. C. (1999). Empirical study of particle swarm optimization. In IEEE congress on evolutionary computation.
Song, Q., & Shepperd, M. (2011). Predicting software project effort: A grey relational analysis based method. Expert Systems with Applications, 38(6), 7302–7316.
Stepanek, G. (2005). Software project secrets: Why software projects fail. Berkeley, CA: Apress.
Trelea, I. C. (2003). The particle swarm optimization algorithm: Convergence analysis and parameter selection. Information Processing Letters, 85(6), 317–323.
Walkerden, F., & Jeffery, R. (1997). Software cost estimation: A review of models, process, and practice. Advances in Computers, 44, 59–125.
Walkerden, F., & Jeffery, R. (1999). An empirical study of analogy-based software effort estimation. Empirical Software Engineering, 4(2), 135–158.
Acknowledgments
We would like to thank the International Software Benchmarking Standards Group (ISBSG) to approve for accessing the ISBSG data set for our research.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Khatibi Bardsiri, V., Jawawi, D.N.A., Hashim, S.Z.M. et al. A PSO-based model to increase the accuracy of software development effort estimation. Software Qual J 21, 501–526 (2013). https://doi.org/10.1007/s11219-012-9183-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-012-9183-x