Прогнозування дефектів у програмному забезпеченні алгоритмами глибинного навчання CNN та RNN
Open Access
- 29 April 2021
- journal article
- Published by Ukrainian National Forestry University in Scientific Bulletin of UNFU
- Vol. 31 (2), 114-120
- https://doi.org/10.36930/40310219
Abstract
Досліджено процес прогнозування дефектів у програмному забезпеченні (ПЗ) з використанням алгоритмів глибинного навчання. Показано, що цей процес складається з декількох основних етапів: пошук та підготовка даних, побудова абстрактного синтаксичного дерева (АСД), обхід дерева та кодування значень вершин у цілі числа, збалансування даних, побудова та навчання нейронної мережі. З'ясовано, що застосування цього процесу прогнозування дефектів у ПЗ може пришвидшити та полегшити пошук дефектів та відповідно знизити вартість їх виправлення. Встановлено, що передові алгоритми машинного навчання, які на цей момент використовуються на етапі побудови та навчання нейронної мережі, досі є недостатньо ефективними, щоб можна було застосовувати прогнозування дефектів у комерції, демонструючи нестабільну точність 40-60 %. За результатами досліджень встановлено, що застосування алгоритмів глибинного навчання дає точніші результати, ніж інші алгоритми машинного навчання. Для зниження дисперсії та підвищення середньої точності прогнозування запропоновано новий метод прогнозування дефектів у ПЗ на підставі поєднання двох останніх модифікацій алгоритмів глибинного навчання CNN та RNN за допомогою бінарного класифікатора логістична регресія. Проведено навчання нейронної мережі на наборі даних розміром 50 000 файлів вихідного коду, отриманих з 13-ти проєктів мовою Java. За результатами досліджень виявлено, що метод CNN+RNN в середньому дає на 10-9 % вищу точність, ніж RNN та на 2 % вищу точність, ніж CNN, що доводить доцільність використання поєднання алгоритмів глибинного навчання у задачі прогнозування дефектів. Проаналізовано точність методу CNN+RNN по кожному з ПЗ проектів з набору даних, унаслідок чого виявлено, що для 11-ти з 13-ти проєктів поєднання CNN+RNN дає не меншу точність, ніж окремо взяті CNN та RNN.This publication has 14 references indexed in Scilit:
- Ensemble MethodsPublished by Wiley ,2019
- An Improved CNN Model for Within-Project Software Defect PredictionApplied Sciences, 2019
- Software Defect Prediction via Attention-Based Recurrent Neural NetworkScientific Programming, 2019
- An Empirical Study on Software Defect Prediction Using Over-Sampling by SMOTEInternational Journal of Software Engineering and Knowledge Engineering, 2018
- Software Defect Prediction via Convolutional Neural NetworkPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2017
- ImageNet classification with deep convolutional neural networksCommunications of the ACM, 2017
- Imbalanced evolving self-organizing learningNeurocomputing, 2014
- Comparative Study of the Software Metrics for the complexity and Maintainability of Software DevelopmentInternational Journal of Advanced Computer Science and Applications, 2013
- Defect prediction from static code features: current results, limitations, new approachesAutomated Software Engineering, 2010
- The Origins of Logistic RegressionSSRN Electronic Journal, 2003