Прогнозування дефектів програмного забезпечення ансамблем нейронних мереж
Анотація
Прогнозування дефектів програмного забезпечення, зокрема крос-проєктне, є актуальною і важливою науково-прикладною задачею, вирішення якої спрямоване на підвищення якості та надійності програмних продуктів та зменшення вартості їх розроблення та супроводу. Перспективним підходом до розв'язання такої задач може бути використання штучних нейронних мереж, зокрема глибинного навчання та їх ансамблів. Ансамблювання часто може покращити точність прогнозування моделей і розпаралелити результуючу модель, що підвищує швидкість обчислень. У цьому дослідженні побудовано архітектуру глибинних нейронних мереж, яка володіє вищими показниками точності прогнозування дефектів програмного забезпечення порівняно із традиційними моделями машинного навчання. У ролі якості наборів вхідних даних використовували комбінований набір, отриманий з репозиторію PROMISE Software Engineering, який містить дані про тестування програмних модулів п'яти програм (КС1, КС2, PC1, CM1, JM1) та двадцять одну метрику коду. Для реалізації нейронних мереж використано мову програмування Python і відкритої нейромережної бібліотеки Keras. Автоматизоване налаштування гіперпараметрів нейронних мереж реалізовано за допомогою функції GridSearchCV. Розроблено модель прогнозування надійності ПЗ на основі методів глибинного навчання і показано, що підвищення точності прогнозування дефектів ПЗ до 93,97 % можна досягнути у спосіб відповідного вибору множини ознак (метрик програмного коду) з наступним використанням стекового ансамблю нейронних мереж, до якого входять багатошаровий перцептрон (MLP), нейронна мережа на основі радіально-базисних функцій (RBFNN), рекурентна нейронна мережа (RNN) та довга короткотермінова пам'ять (LSTM), а як метамодель використовують логістичну регресію. Реалізація стекового ансамблю нейронних мереж дає змогу в подальшому створити програмний засіб, який зможе допомагати при ідентифікації програмних компонент із найбільшою ймовірністю появи дефектів.
Завантаження
Посилання
Akimova, Elena N., Konygin, V., Mezentsev, Ilya P., & Misilov, Vladimir E. (2021). A Survey on Software Defect Prediction Using Deep Learning. Mathematics, 9(11). https://doi.org/10.3390/math9111180
Albahli, Saleh. (2019). A Deep Ensemble Learning Method for Effort-Aware Just-In-Time Defect Prediction. Future Internet 11(12), 246. https://doi.org/10.3390/fi11120246
Albahli, Saleh. (2019). A Deep Ensemble Learning Method for Effort-Aware Just-In-Time Defect Prediction. Future Internet, 11(12), 246. https://doi.org/10.3390/fi11120246
Bin, Liu, & Shihai, Wang. (2018). Software Defect Prediction Using Stacked Autoencoders. Information and Software Technology, 96, 94–111. https://doi.org/10.1016/j.infsof.2017.11.008
Dash, Ch. Sanjeev Kumar, Ajit Kumar Behera, Satchidananda Dehuri, & Sung-Bae Cho. (2016). Radial Basis Function Neural Networks: A Topical State-of-The-Art Survey. Open Computer Science, 6(1). https://doi.org/10.1515/comp-2016-0005
David, Lo, Xin, Xia, & Jianling, Sun. (2017). TLEL: A Two-Layer Ensemble Learning Approach for Just-In-Time Defect Prediction. Information and Software Technology 87, 206–2020. https://doi.org/10.1016/j.infsof.2017.03.007
Jingfei, Chang, & Zhen, Wei. (2020). PathPair2Vec: An AST Path Pair-Based Code Representation Method for Defect Prediction. Journal of Computer Languages, 59. https://doi.org/10.1016/j.cola.2020.100979
Kedharnath, Nagella, & Vidya, S. (2021). Software Defect Estimation Using Machine Learning Algorithms. International Journal of Recent Technology and Engineering, 10(1), 204–208. https://doi.org/10.35940/ijrte.a5898.0510121
Manjula, C., & Lilly, Florence. (2018). Deep Neural Network Based Hybrid Approach for Software Defect Prediction Using Software Metrics. Cluster Computing, January. https://doi.org/10.1007/s10586-018-1696-z
Qiao, Lei, Xuesong, Li, Qasim, Umer, & Ping, Guo. (2020). Deep Learning Based Software Defect Prediction. Neurocomputing, 385, 100–110. https://doi.org/10.1016/j.neucom.2019.11.067
Rudenko, Oleg, Bezsonov, Oleksandr, & Romanyk, Oleksandr. (2019). Neural Network Time Series Prediction Based on Multilayer Perceptron. Development Management, 17(1), 23–34. https://doi.org/10.21511/dm.5(1).2019.03
Shakhovska, N., Yakovyna, V., Kryvinska, N. (2020). An improved software defect prediction algorithm using self-organizing maps combined with hierarchical clustering and data preprocessing. In DEXA 2020, LNCS, 12391, 414–424.
Sherstinsky, Alex. (2020). Fundamentals of Recurrent Neural Network (RNN) and Long Short-Term Memory (LSTM) Network. Physica D: Nonlinear Phenomena, 404. https://doi.org/10.1016/j.physd.2019.132306
WANG, Pei, Cong, JIN, & He-he, GE. (2013). Mutual Information-Based Feature Selection Approach for Software Defect Prediction. Journal of Computer Applications 32(6), 1738–17340. https://doi.org/10.3724/sp.j.1087.2012.01738
Wang, Song, Taiyue, Liu, Jaechang, Nam, & Lin, Tan. (2018). Deep Semantic Feature Learning for Software Defect Prediction. IEEE Transactions on Software Engineering, 1–1. https://doi.org/10.1109/tse.2018.2877612
Zhao, Linchang, Zhaowei, Shang, Ling, Zhao, Taiping, Zhang, & Yuan, Yan Tang. (2019). Software Defect Prediction via Cost-Sensitive Siamese Parallel Fully-Connected Neural Networks. Neurocomputing, 352, 64–74. https://doi.org/10.1016/j.neucom.2019.03.076
Zhu, K., Zhang, N., Zhang, Q., Ying, S. & Wang, X. (2020). Software defect prediction based on non-linear manifold learning and hybrid deep learning techniques. Computers, Materials & Continua, 65(2), 1467–1486.
Авторське право (c) 2018 http://creativecommons.org/licenses/by/4.0

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.



