К.т.н. Поремський Ю.В., Олексюк А.Ю.

Вінницький національний технічний університет України
Аналіз і моделювання процесу розробки програмного забезпечення

 

Галузь промислової розробки програмного забезпечення ще досить молода. Згідно дослідженню результатів виконання проектів по розробці програмного забезпечення доля повністю успішних проектів за остання 10 років все ще близька до однієї третьої розпочатих проектів [1].  Отже, важливо передбачити можливі складнощі, які виникнуть при розробці ПЗ та спрогнозувати затрачений час на його розробку. Можливі варіанти оцінки затраченого часу на проект розділяють на три основні категорії:

-      Використання поточних норм часу;

-      Експертні оцінки;

-      Статистика попередніх робіт [2].

Але на даний момент, жодна із цих категорій  не може бути використана окремо. Крім того задача прогнозування часу розробки ускладнюється творчою складовою. Тому зазвичай оцінка часу розробки ПО є досить неточною. До найбільш важливих проблем при прогнозуванні можна віднести:  

1.  Неузгодженість. Програміст не завжди є експертом в тій області, де буде застосована програма, а замовник не завжди чітко висловлює свої вимоги. Тому часто виникає непорозуміння, внаслідок відмінності поглядів на майбутній програмний продукт.

2.  Недолік контролю. Оскільки програмне забезпечення є нематеріальним у фізичному сенсі, складніше контролювати всі його складові.

3.  Зміни штату. У всіх організаціях співробітники просуваються по службі, переходять на іншу роботу або звільняються. Якщо це відбувається в розпал роботи з розробки ПЗ, то з відходом фахівця втрачаються не тільки технологічні знання. Втрачаються також практичні знання з розробки продуктів, на оволодіння якими пішло багато часу. Без докладного документування новий співробітник може дізнатися, як іде процес розробки в організації і що нового в проекті на конкретну дату, а так само витрачають величезну кількість часу розбираючись в чужих проектах, найчастіше просто виконують частину роботи заново.

4.  Зміни в потребах ринкового сегменту.  Розроблюване ПО змінюється не тільки при зміні технічних вимог і календарних планів, а й в відповідь на зміни в інших елементах. ТЗ не є догмою.

 

Загальновідомі і часто використовуванні підходи в розробці ПЗ є: водопад, водоворот, ітераційна модель, V-модель, спіральна модель. Зазвичай якась із цих моделей вибирають менеджером на основі бачення проекту або бажання замовника.

При проектуванні великих проектів виникає необхідність розбивання їх на модулі які дозволяють зосередитись на розробці тільки певної частини ПЗ не вникаючи в реалізацію інших її частин. Тому модель яка обрана для проектування ПЗ в цілому може відрізнятись від моделей обраних для конкретного модуля. Так для розробки інтерфейсу може використовуватись спіральна модель, яка позбавляє замовника від чіткого формулювання деталей проекту, а розробника вирішенню всіх недоліків продукту на кожному етапі розробки. Хоча при цьому серверна частина може використовувати каскадну модель, дозволяючи отримувати стабільний продукт на основі якого будуть будуватись інші частини проекту.

Для вибору моделі життєвого циклу ПЗ може бути замало тих моделей які були наведені раніше. В такому випадку, можна скористатись однією із стратегій розробки життєвого циклу розробки ПЗ.

Існує багато способів планування розробки систем. Один з традиційних підходів отримав назву SWOT (Strengths, Weaknesses, Opportunities, Threats - сильні сторони, слабкі сторони, сприятливі можливості, загрози). Ще одна популярна стратегія базується на моделі VCM (Value Chain Model - модель ланцюжків цінності). Більш сучасні варіанти підходів до розробки бізнес стратегій відома як BPR (Business Process Reengineering - реінжиніринг бізнес процесів).

Інформацію, необхідну для діяльності організації, також оцінюють з використанням так званих проектних шаблонів для ISA (Information System Architecture - архітектура інформаційних систем). Подібні проектні шаблони можна отримати за аналогією з описових схем, успішно зарекомендували себе в галузях відмінних від ІТ (наприклад, у будівельній промисловості)[4].

Всі підходи до планування розробки систем володіють одним загальним знаменником - вони спрямовані скоріше на досягнення ефективності (робити те, що потрібно), ніж продуктивності (робити так, як потрібно).

Для керування проектом, відслідковування етапів його розробки та затраченого часу існують програмні продукти, які спрощують цей процес.

Далі наведений список продуктів функціонал і моделі роботи яких будуть взяті авторами за основу для подальших розробок.

-      5 PM. Містить: календар (з підтримкою iCalendar), мережевий графік, сховище для файлів, профайли користувачів, систему управління правами доступу, використання діаграма Ганта, формування звітів у вигляді CSV файлів, мобільна версія, завантаження контактів Gmail а також доступ до Google Docs. Відмінна інтеграція з Email. 5 PM поєднує AJAX і Adobe Flash технології для створення налаштовуваних, односторінкових інтерфейсів. Доступний 16 мовами. Забезпечує управління за рахунок використання обліку робочогу часу (доступний desktop time tracking widget).

-       AtTask. Набір функцій для управління завданнями, замітками, групами документів, звітів і питань. Має наступні можливості: time tracking, набір графіків, можливість генерації звітів, мобільну версію.

-       Projektron BCS. Projektron BCS це трьох-ступеневе програмне забезпечення, яке базується на  Java. Користувацький веб-інтерфейс працює без використання плагінів ActiveX, локальних Java аплетів. Підтримує Oracle, PostgreSQL and Microsoft SQL бази данних. До особливостей можна віднести: управління документацією, система управління задачами, портфельне управління, календар, форум, можливість створення демо відео, діаграма Ганта, створення звітів, управління бюджетом,.

 

Література:

 

1.  Сарычев А.В. Проблемы разработки программного обеспечения по индивидуальным требованиям заказника. / Сарычев А.В // Журнал школы ІТ менеджмента 2011 // режим доступу -  http://journal.itmane.ru/node/560

2.  Голубева Т.А. Структурно-логическая модель прогнозирония времени віполнения проекта разработки програмного обеспечения. /  Голубева Т.А. // Наукові праці ВНТУ, 2008, № 3.

3.  Денисов В.В. Проблемы разработки програмного обеспечения /  Денисов В.В., Хирьянов А.А. режим доступу - http://publ.uchis-online.ru/files/e3.pdf

4.  Лешек А. Анализ требованей и проектирование систем с использованием UML М.: Вильямс., 2002. - 432 с.