بهبود تخمین تلاش توسعه نرم افزار با استفاده از ترکیب الگوریتم های جستجوی فاخته و بهینه سازی ازدحام ذرات

نوع مقاله : مقاله پژوهشی فارسی

نویسندگان

1 دانشکده فنی و مهندسی، واحد اصفهان (خوراسگان)، دانشگاه آزاد اسلامی، اصفهان، ایران

2 گروه برق و کامپیوتر، دانشکده فنی و مهندسی، دانشگاه آزاد اسلامی، مبارکه، اصفهان، ایران

چکیده

تخمین صحیح تلاش لازم برای توسعه نرم‌افزار، نقش مهمی در موفقیت این قبیل پروژه‌ها دارد. تاکنون پژوهشهای متعددی برای تخمین تلاش انجام شده است، لیکن بهبود دقت این محاسبه هنوز از چالشهای مطرح است. در این مقاله، راهکاری مبتنی بر الگوریتمهای فراابتکاری برای حل این چالش ارائه شده است. روش کار به این صورت است که ابتدا از الگوریتم جستجوی فاخته به منظور انتخاب صحیح ویژگیهای نرم‌افزاری مطرح در تخمین تلاش استفاده می‌شود. سپس جواب‌های به دست آمده با استفاده از الگوریتم بهینه‌سازی ازدحام ذرات بیشتر مورد واکاوی قرار می‌گیرد. ایده این کار آن است که اجرای متوالی الگوریتم‌های مذکور باعث جستجوی دقیق‌تر فضای مسأله شده و امکان دسترسی به بهینه سراسری، یعنی ویژگیهای بهینه را افزایش دهد. در نهایت، ویژگیهای انتخاب شده به عنوان پارامترهای ورودی مدل پسا معماری کوکومو2 مورد استفاده قرار گرفته و تلاش لازم، محاسبه می‌شود. راهکار پیشنهادی بر روی دو مجموعه داده کوکومو81 و کوکوموناسا مورد بررسی قرار گرفته و به‌منظور ارزیابی آن از دو معیار متوسط شدت خطای نسبی و درصد پیش‌بینی استفاده ‌شده است. نتایج به‌دست آمده از آزمایش‌های این راهکار و مقایسه‌ آن‌ با پژوهشهای پیشین نشان می‌دهد که در کوکومو81، مقدار متوسط شدت خطای نسبی به ‌اندازه 177/0 کاهش‌ یافته و درصد پیش‌بینی به ‌ترتیب در سه حالت 25، 30 و 40 درصد، به‌‌ اندازه 87/7%، 04/8% و 66/8% افزایش ‌یافته است. همچنین در کوکوموناسا، مقدار متوسط شدت خطای نسبی به ‌اندازه 151/0 کاهش‌ یافته و درصد پیش‌بینی به ‌ترتیب در سه حالت 25، 30 و 40 درصد، به ‌اندازه 55/7%، 98/7% و 11/8% افزایش ‌یافته است.

کلیدواژه‌ها


[1] Popović and D. Bojić, "A comparative evaluation of effort estimation methods in the software life cycle," Computer Science and Information Systems, vol. 9, no. 1, pp. 455-484, 2012.
[2] Kumari and S. Pushkar, "Cuckoo search based hybrid models for improving the accuracy of software effort estimation," Microsystem Technologies, vol. 24, no. 12, pp. 4767-4774, 2018.
[3] Padmaja and D. Haritha, "Software Effort Estimation using Meta Heuristic Algorithm," International Journal of Advanced Research in Computer Science, vol. 8, no. 5, 2017.
[4] Singal, A. C. Kumari, and P. Sharma, "Estimation of software development effort: A Differential Evolution Approach," Procedia Computer Science, vol. 167, pp. 2643-2652, 2020.
[5] S. Kumar and H. Behera, "Estimating Software Effort Using Neural Network: An Experimental Investigation," in Computational Intelligence in Pattern Recognition: Springer, 2020, pp. 165-180.
[6] Sinhal and B. Verma, "Software Development Effort Estimation: A Review," International Journal of Advanced Research in Computer Science and Software Engineering (IJARCSSE), vol. 3, no. 6, pp. 1120-1135, 2013.
[7] Jørgensen, "What we do and don't know about software development effort estimation," IEEE Software, vol. 31, no. 2, pp. 37-40, 2014.
[8] Pospieszny, B. Czarnacka-Chrobot, and A. Kobylinski, "An effective approach for software project effort and duration estimation with machine learning algorithms," Journal of Systems and Software, vol. 137, pp. 184-196, 2018.
[9] Usman, R. Britto, L.-O. Damm, and J. Börstler, "Effort estimation in large-scale software development: An industrial case study," Information and Software technology, vol. 99, pp. 21-40, 2018.
[10] Aljohani and M. Qureshi, "Comparative study of software estimation techniques," International Journal of Software Engineering & Applications (IJSEA), vol. 8, no. 6, 2017.
[11] K. Bardsiri and S. M. Hashemi, "Software effort estimation: a survey of well-known approaches," International Journal of Computer Science Engineering (IJCSE), vol. 3, no. 1, pp. 46-50, 2014.
[12] A. Amazal and A. Idri, "Estimating software development effort using fuzzy clustering‐based analogy," Journal of Software: Evolution and Process, p. e2324, 2020.
[13] T. Khuat and M. H. Le, "Optimizing parameters of software effort estimation models using directed artificial bee colony algorithm," Informatica, vol. 40, no. 4, 2016.
[14] R. Maier, S. Razavi, Z. Kapelan, L. S. Matott, J. Kasprzyk, and B. A. Tolson, "Introductory overview: Optimization using evolutionary algorithms and other metaheuristics," Environmental modelling & software, vol. 114, pp. 195-213, 2019.
[15] Venkataiah, R. Mohanty, J. Pahariya, and M. Nagaratna, "Application of ant colony optimization techniques to predict software cost estimation," in Computer Communication, Networking and Internet Security: Springer, 2017, pp. 315-325.
[16] S. Yang and S. Deb, "Cuckoo search via Lévy flights," in 2009 World congress on nature & biologically inspired computing (NaBIC), 2009, pp. 210-214: Ieee.
[17] S. Yang, "Chapter 2 - Analysis of Algorithms," in Nature-Inspired Optimization Algorithms, X.-S. Yang, Ed. Oxford: Elsevier, 2014, pp. 23-44.
[18] Guerrero-Luis, F. Valdez, and O. Castillo, "A Review on the Cuckoo Search Algorithm," in Fuzzy Logic Hybrid Extensions of Neural and Optimization Algorithms: Theory and Applications, O. Castillo and P. Melin, Eds. Cham: Springer International Publishing, 2021, pp. 113-124.
[19] Wang, D. Tan, and L. Liu, "Particle swarm optimization algorithm: an overview," Soft Computing, vol. 22, no. 2, pp. 387-408, 2018.
[20] C. Lin and H.-Y. Tzeng, "Applying particle swarm optimization to estimate software effort by multiple factors software project clustering," in 2010 International Computer Symposium (ICS2010), 2010, pp. 1039-1044: IEEE.
[21] Kaur and S. K. Sehra, "Particle swarm optimization based effort estimation using Function Point analysis," in 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT), 2014, pp. 140-145: IEEE.
[22] Murillo-Morera, C. Quesada-López, C. Castro-Herrera, and M. Jenkins, "A genetic algorithm based framework for software effort prediction," Journal of software engineering research and development, vol. 5, no. 1, pp. 1-33, 2017.
[23] Wu, J. Li, and C. Bao, "Case-based reasoning with optimized weight derived by particle swarm optimization for software effort estimation," Soft Computing, vol. 22, no. 16, pp. 5299-5310, 2018.
[24] S. Gautam and V. Singh, "The state‐of‐the‐art in software development effort estimation," Journal of Software: Evolution and Process, vol. 30, no. 12, p. e1983, 2018.
[25] Menzies, Y. Yang, G. Mathew, B. Boehm, and J. Hihn, "Negative results for software effort estimation," Empirical Software Engineering, vol. 22, no. 5, pp. 2658-2683, 2017.
[26] Beiranvand, W. Hare, and Y. Lucet, "Best practices for comparing optimization algorithms," Optimization and Engineering, vol. 18, no. 4, pp. 815-848, 2017.
[27] A. Shah, D. N. A. Jawawi, M. A. Isa, M. Younas, A. Abdelmaboud, and F. Sholichin, "Ensembling artificial bee colony with analogy-based estimation to improve software development effort prediction," IEEE Access, vol. 8, pp. 58402-58415, 2020.
[28] Mustapha and N. Abdelwahed, "Investigating the use of random forest in software effort estimation," Procedia computer science, vol. 148, pp. 343-352, 2019.
[29] Ezghari and A. Zahi, "Uncertainty management in software effort estimation using a consistent fuzzy analogy-based method," Applied Soft Computing, vol. 67, pp. 540-557, 2018.
[30] Zare, H. K. Zare, and M. S. Fallahnezhad, "Software effort estimation based on the optimal Bayesian belief network," Applied Soft Computing, vol. 49, pp. 968-980, 2016.
[31] Shanker, J. Jaya, and K. Thanushkodi, "An Effective Approach to Software Cost Estimation Based on Soft Computing Techniques," International Arab Journal of Information Technology (IAJIT), vol. 12, 2015.
[32] V. KHATIBI and M. Dorosti, "An Improved COCOMO based Model to Estimate the Effort of Software Projects," 2016.
[33] -L. Du and M. Swamy, "Particle Swarm Optimization," in Search and Optimization by Metaheuristics: Springer, 2016, pp. 153-173.
[34] Trendowicz and R. Jeffery, "Software project effort estimation," Foundations and Best Practice Guidelines for Success, Constructive Cost Model–COCOMO pags, vol. 12, pp. 277-293, 2014.