Оцінка вартості програмного забезпечення охоплює сукупність методів, моделей та інструментів, які використовуються для прогнозування часу, людських та фінансових ресурсів, необхідних для розробки програмного продукту. Оцінка вартості є однією з ключових задач у процесі управління проєктами розробки ПЗ, оскільки неправильне оцінювання може призвести до перевитрат, затримок або навіть провалу проєкту.
Існує декілька підходів до оцінки вартості програмного забезпечення, серед яких найбільш поширеними є методи, засновані на експертних оцінках, аналогійних моделях, алгоритмах машинного навчання та еволюційних моделях. Основна мета оцінки вартості полягає у визначенні оптимальної кількості ресурсів (людських, технічних, фінансових), необхідних для реалізації певного обсягу функціональності в межах встановлених термінів.
Найбільш відомі методи включають COCOMO (Constructive Cost Model) [1], яка базується на емпіричних формулах і використовується для розрахунку витрат на різних етапах розробки програмного забезпечення, та аналогійні методи, що порівнюють нові проєкти з раніше завершеними з метою оцінки витрат на основі схожих характеристик.
COCOMO (Constructive Cost Model) – це одна з найбільш відомих і поширених моделей оцінки вартості програмного забезпечення, запропонована Баррі Бехмомом у 1981 році. Модель була розроблена з метою допомоги в прогнозуванні вартості, часу розробки та зусиль, необхідних для створення програмного продукту. Вона є емпіричною моделлю, заснованою на аналізі великої кількості даних про реальні програмні проєкти, і використовується в процесі планування та управління ІТ-проєктами.
COCOMO базується на наступній ідеї: оцінка зусиль на розробку залежить від кількості рядків коду (SLOC – Source Lines of Code), які потрібно написати. Модель надає формули для розрахунку трудомісткості (зусиль), часу розробки та кількості працівників на різних етапах проєкту, ґрунтуючись на обсязі коду, типі проєкту та інших характеристиках.
З розвитком програмного забезпечення та методологій розробки, COCOMO постійно вдосконалюється. Дослідники вводять нові фактори, що враховують сучасні підходи до розробки, такі як Agile, DevOps та інші. COCOMO залишається актуальним інструментом для планування та прогнозування витрат у великих проєктах, особливо там, де є чітко визначені вимоги та специфікації.
У сучасній практиці оцінка вартості програмного забезпечення стає все більш автоматизованою завдяки активному впровадженню методів машинного навчання, що значно підвищує точність прогнозів та знижує ризики перевитрат і затримок у проєктах. Традиційні методи оцінки вартості, такі як COCOMO або оцінка на основі аналогій (ABE), хоча й широко використовуються, часто не можуть належним чином врахувати складність і динамічність сучасних програмних проєктів. Зі збільшенням обсягів даних, складністю вимог і зміною умов розробки, ці методи вимагають значної кількості часу на налаштування та часто базуються на історичних даних, які можуть не відображати поточні реалії.
Машинне навчання [2–5] дозволяє автоматизувати процеси збору, аналізу та прогнозування, забезпечуючи адаптивність оцінок до змінних умов проєкту. Використання таких технік, як штучні нейронні мережі, методи глибинного навчання або алгоритми на основі еволюційних моделей, дає можливість точно визначати ключові фактори, що впливають на вартість, враховувати взаємозалежності між характеристиками проєктів, а також виявляти закономірності, які можуть бути пропущені за допомогою традиційних підходів. Це особливо важливо в умовах сучасних гнучких методологій розробки, таких як Agile або DevOps, де вимоги часто змінюються на ходу, і оцінки потрібно оперативно коригувати.
Крім того, алгоритми машинного навчання можуть ефективно працювати з великими обсягами даних і використовувати історичні дані про проєкти для побудови моделей, які самостійно навчаться виявляти найбільш релевантні характеристики, вплив яких на витрати є найвагомішим. Такий підхід дозволяє не лише підвищити точність оцінок, але й зменшити залежність від суб'єктивних експертних оцінок, що знижує ризик людських помилок. Сучасні автоматизовані системи оцінки, збудовані на базі машинного навчання, можуть працювати в реальному часі, надаючи динамічні оцінки, які можуть адаптуватися до змін у проєкті, таких як зміна специфікацій, додаткові вимоги або нові ризики.
Завдяки впровадженню автоматизації в оцінку вартості програмного забезпечення компанії отримують змогу більш ефективно управляти своїми ресурсами, оптимізувати планування та скорочувати ризики, пов'язані з неочікуваними витратами. Технології машинного навчання, таким чином, стають важливим інструментом у забезпеченні успішності програмних проєктів у сучасному конкурентному середовищі.
Література
1. Jorgensen M., Shepperd M. A systematic review of software development cost estimation studies. IEEE Transactions on Software Engineering. 2007. Vol. 33(1). Pp.33–53.
2. Benala T. R., Bandarupalli R. Least square support vector machine in analogy-based software development effort estimation. In: 2016 International Conference on Recent Advances and Innovations in Engineering (ICRAIE). Piscataway: IEEE. 2016. Pp. 1–6.
3. Benala T. R., Mall R. DABE: Differential evolution in analogy-based software development effort estimation. Swarm Evolutionary Computation. 2018. Vol. 38(4). Pp. 158–172.
4. Ezghari S., Zahi A. Uncertainty management in software effort estimation using a consistent fuzzy analogy-based method. Applied Soft Computing. 2018. Vol. 67(1). Pp. 540–557.
5. Zare F., Zare H. K., Fallahnezhad M. S. Software effort estimation based on the optimal Bayesian belief network. Applied Soft Computing. 2016. Vol. 49(14). Pp. 968–980.
|