Mô hình dựa trên PSO để nâng cao độ chính xác trong ước lượng nỗ lực phát triển phần mềm

Software Quality Journal - Tập 21 - Trang 501-526 - 2012
Vahid Khatibi Bardsiri1, Dayang Norhayati Abang Jawawi1, Siti Zaiton Mohd Hashim1, Elham Khatibi2
1Department of Software Engineering, University of Technology Malaysia, Johor Bahru, Malaysia
2Department of Computer Engineering, Bardsir Branch, Islamic Azad University, Kerman, Iran

Tóm tắt

Nỗ lực phát triển là một trong những chỉ số quan trọng nhất cần được ước lượng để thiết kế kế hoạch cho một dự án. Sự không chắc chắn và phức tạp của các dự án phần mềm khiến quá trình ước lượng nỗ lực gặp nhiều khó khăn và mơ hồ. Phương pháp ước lượng dựa trên tương đồng (ABE) là phương pháp phổ biến nhất trong lĩnh vực này bởi nó khá đơn giản và thực tiễn, dựa vào việc so sánh giữa các dự án mới và các dự án đã hoàn thành để ước lượng nỗ lực phát triển. Mặc dù có nhiều ưu điểm, ABE không thể tạo ra những ước lượng chính xác khi mức độ quan trọng của các đặc điểm dự án không giống nhau hoặc mối quan hệ giữa các đặc điểm khó xác định. Trong những tình huống như vậy, việc phân trọng số hiệu quả cho các đặc điểm có thể là một giải pháp để cải thiện hiệu suất của ABE. Bài báo này đề xuất một mô hình ước lượng lai dựa trên sự kết hợp của thuật toán tối ưu bầy đàn (PSO) và ABE nhằm nâng cao độ chính xác trong ước lượng nỗ lực phát triển phần mềm. Sự kết hợp này dẫn đến việc xác định chính xác các dự án tương đồng, dựa trên tối ưu hóa hiệu suất của hàm tương đồng trong ABE. Một khung làm việc được trình bày trong đó các trọng số phù hợp được phân bổ cho các đặc điểm dự án để đạt được những ước lượng chính xác nhất. Mô hình được đề xuất đủ linh hoạt để sử dụng trên các tập dữ liệu khác nhau bao gồm các đặc điểm dự án phân loại và không phân loại. Ba tập dữ liệu thực tế được sử dụng để đánh giá mô hình được đề xuất, và kết quả được so sánh với các mô hình ước lượng khác. Các kết quả đầy hứa hẹn cho thấy rằng sự kết hợp giữa PSO và ABE có thể cải thiện đáng kể hiệu suất của các mô hình ước lượng hiện có.

Từ khóa

#nỗ lực phát triển #ước lượng dựa trên tương đồng #PSO #tối ưu hóa #đặc điểm dự án

Tài liệu tham khảo

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.