ПРОБЛЕМА ПРОГНОЗУВАННЯ РОЗРОБКИ НОВОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ: ВИКОРИСТАННЯ РЕПОЗИТОРІЇВ ВІДКРИТОГО КОДУ ДЛЯ ПОБУДОВИ ПРОГНОСТИЧНИХ МОДЕЛЕЙ
DOI:
https://doi.org/10.36994/2788-5518-2024-02-08-06Ключові слова:
CI, CD, прогнозування, програмне забезпечення, машинне навчання, SDLCАнотація
У поточному дослідженні було розглянуто проблему підвищення ефективності процесу розробки нового програмного забезпечення шляхом використання прогностичних моделей, побудованих на основі подій, що фіксуються протягом усього життєвого циклу продукту (SDLC). У сучасному конкурентному середовищі розробки програмного забезпечення оптимізація використання ресурсів і врахування попереднього досвіду є критичними для зменшення часу виходу продукту на ринок та підвищення його якості. В роботі пропонується використовувати події SDLC як надійну основу для планування термінів і обсягів випуску нових версій продукту. Також розглядається доцільність використання репозиторіїв відкритого коду як джерела подій SDLC у випадках, коли продукт перебуває на ранніх стадіях розробки й ще не має власної історії подій. Для дослідження було вибрано низку проєктів з відкритим кодом, що містять значну кількість історичних даних щодо змін коду, вирішення задач і виявлених дефектів, а саме: Spring, Mockito, Quarkus, DBeaver. Для апробації підходу було розроблено модель прогнозування дефектів, яка враховує обсяг виконаних задач, змін коду та його цикломатичну складність. Навчання моделі здійснювалося на основі даних проєктів групи Spring, а перевірка її точності – на базі даних репозиторіїв проєктів Mockito, Quarkus, DBeaver. У процесі дослідження було підтверджено ефективність моделі та можливість її застосування для прогнозування й покращення процесу розробки нового програмного забезпечення. Модель також продемонструвала здатність адаптуватися до нових даних, що відкриває можливість її інтеграції у процеси безперервної інтеграції та розгортання для автоматизованого аналізу якості коду й планування випусків програмного продукту. Результати дослідження свідчать про значний потенціал застосування машинного навчання для покращення SDLC, а також підтверджують доцільність використання репозиторіїв відкритого коду як надійного джерела даних.
Посилання
Suhee Jo., Ryeonggu Kwon, Gihwon Kwon. Probabilistic Model Checking GitHub Repositories for Software Project Analysis. Applied Sciences, 2024. DOI: 10.3390/app14031260.
Armando Sousa, Gisele Ribeiro, Guilherme Avelino, Lincoln S., Rocha Ricardo de, Sousa Britto. SysRepoAnalysis: A tool to analyze and identify critical areas of source code repositories. 2022. DOI: 10.1145/3555228.3555281.
Kyle Daigle. Octoverse: The state of open source and rise of AI in 2023. URL: https://github.blog/news-insights/research/thestate-of-open-source-and-ai (дата звернення: 01.12.2024).
Spring Framework. URL: https://github.com/spring-projects/spring-framework (дата звернення: 01.12.2024).
Spring Boot. URL: https://github.com/spring-projects/spring-boot (дата звернення: 01.12.2024).
Bonaccorso G. Machine Learning Algorithms. Second edition. O’Reilly Media, Inc., 2018. 522 p.
DBbeaver/DBeaver: Free universal database tool and SQL. URL: https://github.com/DBeaver/DBeaver (дата звернення: 01.12.2024).
Quarkusio/Quarkus. URL: https://github.com/quarkusio/quarkus (дата звернення: 01.12.2024).
Mockito/Mockito. URL: https://github.com/mockito/mockito (дата звернення: 01.12.2024).

