علوم رایانشی

علوم رایانشی

پیش‌بینی نقص نرم‌افزار با استفاده از یادگیری ماشین ترکیبی خودکار و تکامل ویژگی تطبیقی: رویکردی نوین با دقت و توضیح‌پذیری بالا

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

نویسندگان
1 دانشجوی دکتری، دانشکده مهندسی کامپیوتر، دانشگاه امیرکبیر (پلی‌تکنیک)، تهران، ایران
2 استادیار، دانشکده مهندسی کامپیوتر، دانشگاه امیرکبیر (پلی‌تکنیک)، تهران، ایران
3 دانشیار، دانشکده مهندسی کامپیوتر، دانشگاه امیرکبیر (پلی‌تکنیک)، تهران، ایران
10.22034/csj.2026.251321
چکیده
پیش‌بینی نقص نرم‌افزار یکی از موضوعات مهم در مهندسی نرم‌افزار است که به بهبود کیفیت و کاهش هزینه‌های توسعه کمک می‌کند. در این پژوهش، روشی به‌نام یادگیری ماشین ترکیبی خودکار با تکامل ویژگی تطبیقی معرفی شده که با ترکیب پیش‌پردازش داده‌ها شامل حذف ویژگی‌های بی‌واریانس، پر کردن مقادیر گمشده با میانه و نرمال‌سازی، تکامل پویای ویژگی‌ها، متعادل‌سازی پیشرفته با NearMiss، بهینه‌سازی چند-هدفه با Optuna، و ایجاد مدل گروهی جدید، دقت و توضیح‌پذیری را در پیش‌بینی نقص نرم‌افزار بهبود می‌بخشد. این روش روی مجموعه داده KC1 از مخزن PROMISE ناسا آزمایش شده و با تولید یازده ویژگی تطبیقی شامل نسبت‌های متریک، ترکیب‌های تعاملی، و تبدیل‌های لگاریتمی، و همچنین متعادل‌سازی کلاس‌ها، به صحت 9/96 درصد، معیار F1 برابر 8/96 درصد، یادآوری 8/93 درصد، و AUC برابر 2/97 درصد دست یافته است. تحلیل توضیح‌پذیری با SHAP TreeExplainer نشان داد که ویژگی‌های تعداد خطوط کد (loc) و معیار t نقش کلیدی در پیش‌بینی‌ها دارند. مقایسه با مدل‌های پایه (مانند رگرسیون لجستیک و جنگل تصادفی) و چندین مطالعه پیشین نشان‌دهنده برتری روش پیشنهادی در صحت و بهبود قابل‌توجه در معیار یادآوری است که برای شناسایی نقص‌های واقعی اهمیت دارد. این روش با ارائه پایداری بالا در اعتبارسنجی ده‌تایی، توضیح‌پذیری قوی، و بهبود معیارهای کلیدی مانند یادآوری، رویکردی جامع برای پیش‌بینی نقص نرم‌افزار ارائه می‌دهد و می‌تواند در کاربردهای صنعتی و پژوهشی مورد استفاده قرار گیرد.
کلیدواژه‌ها
موضوعات

1.              Wahono, R. S. (2015). “A systematic literature review of software defect prediction,” Journal of software engineering, vol. 1, no. 1, pp. 1–16.
2.              Matloob, F., et al., (2021). “Software defect prediction using ensemble learning: A systematic literature review,” IEEE Access, vol. 9, pp. 98754–98771, doi: 10.1109/ACCESS.2021.3095559.
3.              Malhotra, R. (2015). “A systematic review of machine learning techniques for software fault prediction,” Appl Soft Comput, vol. 27, pp. 504–518, Feb. 2015, doi: 10.1016/J.ASOC.2014.11.023.
4.              Lessmann, S., Baesens, B., Mues, C., & Pietsch, S. (2008). “Benchmarking classification models for software defect prediction: A proposed framework and novel findings,” IEEE Transactions on Software Engineering, vol. 34, no. 4, pp. 485–496, doi: 10.1109/TSE.2008.35.
5.              Feurer, M., Klein, A., Eggensperger, K., Springenberg, J., Blum, M. & Hutter, F. (2015). “Efficient and robust automated machine learning,” Adv Neural Inf Process Syst, vol. 28.
6.              Basgalupp, M. P., R. C. Barros, T. S. Da Silva, F. F. Silveira, P. B. C. Miranda, and F. Neri, “An Experimental Analysis on Automated Machine Learning for Software Defect Prediction,” 2024 IEEE Congress on Evolutionary Computation, CEC 2024 - Proceedings, 2024, doi: 10.1109/CEC60901.2024.10611946.
7.              Qiu, S., He, B. E. J., & Liu, L. (2024). “Survey of software defect prediction features,” Neural Computing and Applications 2024 37:4, vol. 37, no. 4, pp. 2113–2144, Dec. 2024, doi: 10.1007/S00521-024-10937-1.
8.              Thota, M. K., Shajin, F. H., & Rajesh, P. (2020). “Survey on software defect prediction techniques,” International Journal of Applied Science and Engineering, vol. 17, no. 4, pp. 331–344.
9.              Arar, Ö. F., & Ayan, K. (2015). “Software defect prediction using cost-sensitive neural network,” Appl Soft Comput, vol. 33, pp. 263–277, Aug. 2015, doi: 10.1016/J.ASOC.2015.04.045.
10.          Bahaweres, R. B., Agustian, F., Hermadi, I., Suroso, A. I., & Arkeman, Y. (2020). “Software defect prediction using neural network based smote,” International Conference on Electrical Engineering, Computer Science and Informatics (EECSI), vol. 2020-October, pp. 71–76, Oct. 2020, doi: 10.23919/EECSI50503.2020.9251874.
11.          Alkhasawneh, M. S. (2022). “Software Defect Prediction through Neural Network and Feature Selections,” Applied Computational Intelligence and Soft Computing, vol. 2022, no. 1, p. 2581832, Jan. 2022, doi: 10.1155/2022/2581832.
12.          Mehmood et al., (2023). “A Novel Approach to Improve Software Defect Prediction Accuracy Using Machine Learning,” IEEE Access, vol. 11, pp. 63579–63597, doi: 10.1109/ACCESS.2023.3287326.
13.          Mcmurray, S. & Sodhro, A. H. (2023). “A Study on ML-Based Software Defect Detection for Security Traceability in Smart Healthcare Applications,” Sensors 2023, Vol. 23, Page 3470, vol. 23, no. 7, p. 3470, Mar. 2023, doi: 10.3390/S23073470.
14.          Eka Yulia Retnani, W., Furqon, A., Setiawan, J., & Y Retnani, W. E. (2024). “Improving Software Defect Prediction Using a Combination of Ant Colony Optimization-based Feature Selection and Ensemble Technique,” Kinetik: Game Technology, Information System, Computer Network, Computing, Electronics, and Control, vol. 9, no. 4, pp. 389–396, Nov. 2024, doi: 10.22219/KINETIK.V9I4.2038.
15.          Shrimankar, R., Kuanr, M., Piri, J., & Panda, N. (2022). “Software Defect Prediction: A Comparative Analysis of Machine Learning Techniques,” Proceedings - 2022 International Conference on Machine Learning, Computer Systems and Security, MLCSS 2022, pp. 38–47, 2022, doi: 10.1109/MLCSS57186.2022.00016.
16.          Babatunde, N., Ogundokun, R. O., Adeoye, L. B., & Misra, S. (2023). “Software Defect Prediction Using Dagging Meta-Learner-Based Classifiers,” Mathematics 2023, Vol. 11, Page 2714, vol. 11, no. 12, p. 2714, Jun. 2023, doi: 10.3390/MATH11122714.
17.          Bluemke, & Borsukiewicz, P. (2023) “Experiments on Software Error Prediction Using Decision Tree and Random Forest Algorithms,” Proceedings of the 18th Conference on Computer Science and Intelligence Systems, FedCSIS 2023, pp. 865–869, 2023, doi: 10.15439/2023F363.
18.          Siddika, M., & Begum, F. (2025). Al Farid, J. Uddin, and H. A. Karim, “Enhancing Software Defect Prediction Using Ensemble Techniques and Diverse Machine Learning Paradigms,” Eng 2025, Vol. 6, Page 161, vol. 6, no. 7, p. 161, Jul. 2025, doi: 10.3390/ENG6070161.
19.          Shankar, S. P., & Chaudhari, S. S. (2024). “Analysis of Bio Inspired Based Hybrid Learning Model for Software Defect Prediction,” SN Comput Sci, vol. 5, no. 7, pp. 1–22, Oct. 2024, doi: 10.1007/S42979-024-03171-Y/METRICS.
20.          Das, M., Prasad, N., & Mohan, B. R. (2025). “Improving Machine Learning Models with Hybrid Metaheuristic Algorithm for Software Defect Prediction,” Communications in Computer and Information Science, vol. 2461 CCIS, pp. 44–61, 2025, doi: 10.1007/978-3-031-96473-2_4.
21.          Abdu et al., (2025). “Cross-project software defect prediction based on the reduction and hybridization of software metrics,” Alexandria Engineering Journal, vol. 112, pp. 161–176, Jan. 2025, doi: 10.1016/J.AEJ.2024.10.034.
22.          Sánchez-García et al., M. J. , (2023). “Software Defect Prediction with Bayesian Approaches,” Mathematics 2023, Vol. 11, Page 2524, vol. 11, no. 11, p. 2524, May 2023, doi: 10.3390/MATH11112524.
23.          Kumar, D., Yadav, K., & Prasad, M. (2025). “Predicting fault-prone software modules using bayesian belief network: an empirical study,” International Journal of System Assurance Engineering and Management 2025 16:6, vol. 16, no. 6, pp. 2204–2218, May 2025, doi: 10.1007/S13198-025-02809-1.
24.          Benala, T. R., & Tantati, K.  (2022). “Efficiency of oversampling methods for enhancing software defect prediction by using imbalanced data,” Innovations in Systems and Software Engineering 2022 19:3, vol. 19, no. 3, pp. 247–263, Jun. 2022, doi: 10.1007/S11334-022-00457-3.
25.          Alam, M., & Mustaqeem, M. (2024). “Reinforcing defect prediction: a reinforcement learning approach to mitigate class imbalance in software defect prediction,” Iran Journal of Computer Science 2024 8:1, vol. 8, no. 1, pp. 151–162, Nov. 2024, doi: 10.1007/S42044-024-00214-8.
26.          Kumar, H., Saxena, V., Kumar, H., & Saxena, V. (2024). “Software Defect Prediction Using Hybrid Machine Learning Techniques: A Comparative Study,” Journal of Software Engineering and Applications, vol. 17, no. 4, pp. 155–171, Apr. 2024, doi: 10.4236/JSEA.2024.174009.
27.          Iqbal et al., (2019). “Performance analysis of machine learning techniques on software defect prediction using NASA datasets,” International Journal of Advanced Computer Science and Applications, Vol. 10, No. 5.
28.          Sakib, F. F., Islam Juel, M. S., Tafannum, Z., Joy, J. S., & Karim, R. (2025). “A Comprehensive Evaluation of Machine Learning Techniques for Predicting Software Bugs,” International Conference on Robotics, Electrical and Signal Processing Techniques, pp. 228–233, 2025, doi: 10.1109/ICREST63960.2025.10914387.
29.          Hall, T., Beecham, S., Bowes, D., Gray, D. & Counsell, S. (2012). “A systematic literature review on fault prediction performance in software engineering,” IEEE Transactions on Software Engineering, vol. 38, no. 6, pp. 1276–1304, 2012, doi: 10.1109/TSE.2011.103.
30.          Guyon & Elisseeff, A. (2003). “An introduction to variable and feature selection,” Journal of machine learning research, vol. 3, no. Mar, pp. 1157–1182.
31.          Mining, W. I. D. (2006). “Data mining: Concepts and techniques,” Morgan Kaufinann, vol. 10, no. 559–569, p. 4, 2006.
32.          Jolliffe, (2011). “Principal component analysis,” in International encyclopedia of statistical science, Springer, 2011, pp. 1094–1096.
33.          Han, H., Wang, W.-Y. & Mao, B.-H. (2005). “Borderline-SMOTE: a new over-sampling method in imbalanced data sets learning,” in International conference on intelligent computing, Springer, 2005, pp. 878–887.
34.          Akiba, T., Sano, S., Yanase, T., Ohta, T., & Koyama, M. (2019). “Optuna: A next-generation hyperparameter optimization framework,” in Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining, 2019, pp. 2623–2631.
35.          Chen, T. & Guestrin, C. (2016). “Xgboost: A scalable tree boosting system,” in Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining, 2016, pp. 785–794.
36.          Kohavi, R. (1995). “A study of cross-validation and bootstrap for accuracy estimation and model selection,” in Ijcai, Montreal, Canada, 1995, pp. 1137–1145.
37.          Shepperd, M. & Song, Q., Sun, Z. & Mair, C. (2013). “Data quality: Some comments on the NASA software defect datasets,” IEEE Transactions on Software Engineering, vol. 39, no. 9, pp. 1208–1215, 2013, doi: 10.1109/TSE.2013.11.
38.          “GitHub - ApoorvaKrisna/NASA-promise-dataset-repository.” Accessed: Aug. 29, 2025. [Online]. Available: https://github.com/ApoorvaKrisna/NASA-promise-dataset-repository