В умовах зростаючої складності програмних проєктів і невизначеності у плануванні дедалі більшої популярності набувають інтелектуальні технології для управління проєктами. Традиційні методи, хоча й забезпечують певний рівень ефективності, часто не здатні враховувати всі взаємозв'язки між параметрами проєкту, що призводить до неточних оцінок і ризиків перевитрат.
Проблема оцінки зусиль для розробки програмного забезпечення залишається відкритою через наявність складних взаємозв’язків між численними параметрами проєкту, що часто призводить до неточних прогнозів [1]. Сучасні методи оцінки стикаються з труднощами при обробці непослідовних, неповних, розріджених та недостатньо задокументованих наборів даних, що є однією з основних причин неточності результатів [2]. Існуючі моделі не можуть ефективно обробляти нелінійні зв'язки між характеристиками проєктів та обсягом зусиль, що знижує їх ефективність і надійність [3].
Глибокі нейронні мережі дозволили покращити точність оцінки, проте їх використання обмежується через недоліки, такі як тривалий час навчання, перенавчання та недонавчання [4].
Недоліки існуючих підходів оцінки зусиль розробки програмного забезпечення можна сформулювати наступним чином:
– відсутність достатньої уваги до диференціації функціональності програмного забезпечення, що призводить до неточних оцінок зусиль для програмних проєктів;
– відсутність групування проєктів за специфікаціями, що ускладнює обробку неточних та неякісних даних;
– невідповідний вибір ознак, що призводить до навчання моделей на непідходящих даних і, відповідно, до неточних прогнозів;
– використання необроблених даних з історичних проєктів без попередньої обробки, що обмежує точність класифікації.
З огляду на вищезазначені недоліки, актуальність полягає в розробці підходу для оцінки зусиль розробки програмного забезпечення, який дозволить підвищити точність прогнозування, зменшити час навчання та забезпечити адаптацію моделі до характеристик проєктів. Для вирішення цієї задачі необхідно дослідити методи класифікації та обробки даних, що враховують специфіку програмних проєктів, нелінійні зв'язки між параметрами, а також забезпечують попередню обробку даних для підвищення якості класифікації.
Останніми роками розробники програмного забезпечення зосереджують свою увагу на використанні конкретних методологій або моделей розробки відповідно до вимог програмного продукту. Після вивчення наукових праць та обговорення з експертами галузі було обрано чотири моделі, які будуть розглядатися. Це були водоспадна модель, інкрементна модель, еволюційна модель та гнучкі методології [5].
Щоб відповідати останнім нововведенням, таким як граничні обчислення, інтернет речей та машинне навчання, було б надзвичайно корисно, якби існувала система, яка могла б передбачати відповідну модель розробки програмного забезпечення залежно від вимог до програмного продукту. Оцінювання якості програмного забезпечення є важливим, але також складним процесом. З цієї причини моделі прогнозування дефектів програмного забезпечення отримали широке застосування. З іншого боку, визначення відповідної моделі та вибір найбільш ефективної з наявних моделей залежать від факторів продуктивності [6]. Отже, задача прогнозування ризиків у проєктах програмного забезпечення є актуальною.
Перший крок до успіху проєкту – це створення надійного та точного графіка. Один із методів складання графіків – це метод критичного шляху (Critical path method, CPM), який обчислює ранні та пізні дати початку і завершення робіт, аналізуючи шляхи проєктної мережі вперед і назад. Після цього до кожної діяльності додаються необхідні ресурси. Власники завдань також додають резерви часу або страхові запаси для кожної діяльності, щоб подолати невизначеності [7, 8].
Інтеграція технології блокчейн в управління проєктами може покращити можливості планування та контролю проєктів. Блокчейн – це розподілена база даних, яка ділиться між вузлами комп'ютерної мережі, забезпечує надійне збереження інформації та унеможливлює її підробку. Блокчейн може допомогти керівникам проєктів знизити витрати на моніторинг і контроль, підвищуючи загальну ефективність проєкту. Він також може покращити моніторинг виконання завдань за часом, дозволяючи кожному учаснику оновлювати свій прогрес у реальному часі без необхідності залучення координатора проєкту, зменшуючи витрати на вимірювання для контролю термінів виконання.
Література
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.
4. Zare F., Zare H. K., Fallahnezhad M. S. Software effort estimation based on the optimal Bayesian belief network. Applied Soft Computing. 2016. 49. 968–980.
5. Pressman R. S. Software Engineering: a practitioners approach. URL: https://invent.ilmkidunya.com/images/Section/12.pdf.
6. Rizwan M., Nadeem A., Sindhu M.A. Analyses of classifier’s performance measures used in software fault prediction studies. IEEE Access. 2019. 7. 82764–82775.
7. Herroelen W., Leus R. On the merits and pitfalls of critical chain scheduling. Journal of Operations Management. 2001. 19(5). 559–577.
8. Kannan J., Chitra G. Critical chain over critical path in construction projects. International Journal of Engineering and Management Research. 2017. 7(1). 338–344.
|