КОНЦЕПТУАЛЬНІ ОСНОВИ МЕТОДУ ПРОГНОЗУВАННЯ РИЗИКІВ У ПРОЄКТАХ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЗА ДОПОМОГОЮ МАШИННОГО НАВЧАННЯ
01.12.2024 13:32
[1. Информационные системы и технологии]
Автор: Мись Андрій Русланович, магістр, Західноукраїнський національний університет, м. Тернопіль
Оцінка зусиль для розробки програмного забезпечення ускладнюється через складні взаємозв’язки між параметрами проєкту, що часто призводить до неточних прогнозів, особливо при роботі з неповними та розрідженими даними [1, 2]. Існуючі моделі не завжди враховують нелінійні залежності, що знижує їх точність і надійність [3]. У той же час розробка програмного забезпечення супроводжується численними ризиками, які впливають на терміни, бюджет і якість продукту. З огляду на складність сучасних систем і роль новітніх технологій, таких як Інтернет речей, периферійні обчислення та машинне навчання, стає актуальним впровадження інструментів для прогнозування й управління ризиками. Зокрема, метод прогнозування ризиків за допомогою машинного навчання надає можливість здійснювати автоматизований аналіз ризиків та приймати рішення на основі точних прогнозів.
На основі запропонованого методу прогнозування ризиків за допомогою машинного навчання можна розробити систему, яка може:
• ідентифікувати ключові ризики, що впливають на виконання проєкту розробки програмного забезпечення;
• прогнозувати ймовірність виникнення ризиків на основі історичних даних та аналітичних моделей;
• надати рекомендації щодо пом'якшення ризиків та підтримки прийняття рішень.
Завданнями цього методу є:
• збір даних з різних джерел, включаючи відповіді експертів, лог-файли процесів та історичні дані минулих проєктів;
• обробка та підготовка даних для створення моделі машинного навчання;
• навчання та оцінка моделей машинного навчання для досягнення високої точності прогнозування;
• інтеграція системи прогнозування з платформою управління проєктами для підтримки управлінських рішень.
Метод прогнозування ризиків базується на концептуальній моделі, яка включає три основні компоненти:
1. Збір та обробка даних.
2. Моделювання та навчання на основі машинного навчання.
3. Прогнозування та підтримка прийняття рішень.
1. Збір та обробка даних.
Цей компонент полягає у зборі якісних даних про ризики з різних джерел, таких як анкети, що заповнюються експертами з розробки програмного забезпечення, історичні дані з попередніх проєктів, дані з журналів процесів та логів систем. Наприклад, анкета може містити інформацію про використані моделі розробки (Agile, Waterfall, Incremental, Evolutionary), характеристики безпеки, пропускну здатність мережі, затримки, минулі помилки, методи розробки та інші атрибути. Обробка даних включає: видалення недійсних відповідей; нормалізацію даних для усунення масштабних відмінностей; розподіл даних на навчальні та тестові набори у співвідношенні 80-20%.
2. Моделювання та навчання на основі машинного навчання.
Основою методу є використання різних алгоритмів машинного навчання для побудови моделей прогнозування ризиків. Найпопулярнішими серед них є:
• машина опорних векторів, яка добре працює з високорозмірними даними та використовує лише частину навчальних точок для визначення функцій прийняття рішень, що робить її ефективною у використанні пам'яті;
• метод k-найближчих сусідів, який класифікує нові дані на основі найближчих зразків з навчального набору, що дозволяє застосовувати його для класифікації без наявної інформації про розподіл даних;
• штучні нейронні мережі, зокрема багатошаровий персептрон, що здатний навчатися складних взаємозв'язків між вхідними ознаками та результатами.
• випадковий ліс, який складається з ансамблю дерев рішень, що забезпечує високу точність та зменшує ризик перенавчання.
Навчання моделі проводиться на основі історичних даних, що дозволяє створити вектор ознак, який потім використовується для прогнозування ризиків на нових даних. Під час навчання функція активації RELU у прихованих шарах нейронних мереж сприяє швидшому навчанню за рахунок розрідженості нейронної мережі.
3. Прогнозування та підтримка прийняття рішень.
Після завершення навчання моделі тестовий набір даних передається через натреновану модель, що дозволяє отримати передбачені мітки ризиків для кожного нового проєкту. Цей етап включає: прогнозування відсотка ризику для кожної моделі розробки на основі ймовірностей, отриманих від класифікаторів; порівняння прогнозованих ризиків з фактичними, що дозволяє оцінити точність моделі; генерація рекомендацій для зниження ризиків на основі аналізу факторів, що впливають на ризик.
Результати прогнозування дозволяють менеджерам проєктів та іншим зацікавленим сторонам вибирати оптимальну модель розробки програмного забезпечення з найменшим рівнем ризику, що знижує ймовірність невдач та підвищує ефективність проєкту.
Література
1. Fadhil A. A., Alsarraj R. G., Altaie A. M. Software cost estimation based on dolphin algorithm. IEEE Access. 2020. 8. 75279–75287.
2. Singal P., Kumari A. C., Sharma P. Estimation of software development effort: A differential evolution approach. Procedia Computer Science. 2020. 167. 2643–2652.
3. Ezghari S., Zahi A. Uncertainty management in software effort estimation using a consistent fuzzy analogy-based method. Applied Soft Computing. 2018. 67. 540–557.