Сучасні інформаційні технології / 3. Програмне
забезпечення
Ващенко
Т.А., Костунець Т.А., Копняк К.В.
Вінницький торговельно-економічний інститут КНТЕУ,
Україна
РІЗНІ ПІДХОДИ ДО ВИБОРУ МОДЕЛІ ЖИТТЄВОГО ЦИКЛУ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Тенденції розвитку сучасних інформаційних технологій ведуть до постійного
збільшення складності програмних продуктів. Створення програмного забезпечення
є складним ітеративним процесом, де об’єкт проектування повинен бути адекватно
описаний. Це досить складна та тривала за часом робота, яка потребує
висококваліфікованих спеціалістів.
Терміном життєвий цикл (ЖЦ) прийнято називати сукупність процесів та етапів
розвитку організмів живої природи, технічних систем, продуктів виробництва від
моментів зародження або появи потреби їх створення і використання до припинення
функціонування або застосування [1].
Дослідження з аналізу проектних рішень розробки програмного забезпечення з
метою уникнення додаткових матеріальних та фінансових ресурсів на їх
перепроектування має велике значення для національної економіки України. Необхідно
розробити таку єдину модель, яка б дозволила скоротити процес перетворення
опису проекту між різними етапами створення програмного забезпечення. Модель
повинна описувати складові частини проекту, їх взаємовідношення та загальну
характеристику оптимальності проекту.
Типова модель процесів життєвого циклу складної системи починається з
концепції ідеї системи або потреби в ній, охоплює проектування, розробку,
застосування та супроводження системи і закінчується зняттям системи з
експлуатації. Модель життєвого циклу системи зазвичай поділяють на послідовні
періоди реалізації: стадії або етапи. Кожен подібний період включає основні
реалізовані в ньому процеси, роботи і завдання.
Однією з найважливіших проблем процесу створення складного програмного
забезпечення (ПЗ) є оцінка його оптимальності за обраними критеріями. Саме цей
фактор використовується для прийняття рішення про подальший хід процесу
розробки на етапі проектування. Одним із критеріїв обчислення оптимальності
проекту є складність проекту як окремих його частин, так і всього проекту
взагалі. Саме складність є першопричиною відставання від термінів, низької
якості проекту та складності сприйняття, що веде до підвищення кількості
помилок при подальшій розробці.
Програми для обчислювальних машин зазвичай є компонентами
програмно-апаратних комплексів або технічних систем. Програми та дані в
системах та обчислювальних комплексах є найбільш гнучкими компонентами і
схильні до змін протягом всього їх ЖЦ. Для забезпечення потрібного рівня
інтеграції програмної та апаратної складових інформаційної системи досить часто
різні аспекти ЖЦ програмного забезпечення розглядаються у зв'язку з елементами
життєвого циклу системи в цілому.
Програмні системи практично завжди унікальні і загальну структуру життєвого
циклу ПЗ визначити досить складно, оскільки вона істотно залежить від цілей,
для яких це ПЗ розробляється, і від розв'язуваних завдань. Структура життєвого
циклу буде різною у системи управління промисловою базою даних та у комплексної
системи автоматизації підприємства. Тим не менш визначають основні елементи
структури життєвого циклу ПЗ у вигляді моделі ЖЦ.
Структурна модель життєвого циклу ПЗ описує фази розробки, зв'язок між ними
і послідовність їх виконання. Вибір неоптимальної моделі може призвести до
залучення додаткових ресурсів, виникнення непередбачених ситуацій, зриву
термінів поставок і т.д. У кожному конкретному проекті з розробки програмного
забезпечення на етапі планування визначається конкретна модель життєвого циклу
ПЗ, яка залежить від виду ПЗ, його призначення, умов застосування та багатьох
інших факторів.
На основі рекомендацій міжнародних стандартів визначаються більш конкретні
процеси розробки ПЗ. Відрізняються вони від стандартів, перш за все, більшою
детальністю і чітким описом зв'язків між окремими видами діяльності,
визначенням потоків даних у ході життєвого циклу та іншими артефактами. Модель
життєвого циклу складної програмної системи зазвичай поділяють на такі основні
етапи з подальшою адаптацією кожного з них в моделі життєвого циклу конкретної
системи [2]:
-
визначення вимог;
-
аналіз та проектування;
-
розробка;
-
випробування системи;
-
тестування;
-
виробництво;
-
розповсюдження та продаж;
-
експлуатація;
-
супровід та моніторинг;
-
зняття з експлуатації (утилізація).
Існує
набір стандартів, які визначають різні елементи в структурі життєвих циклів ПЗ.
В якості основних таких елементів виділяються технологічні процеси –
структуровані набори дій, які вирішують деяку загальну задачу або пов'язану сукупність
завдань, такі, як процес визначення вимог, процес розробки, процес супроводу
ПЗ, процес забезпечення якості, процес розробки документації, процес тестування
і т.д. Процеси можуть визначати різні етапи життєвого циклу і пов'язують їх з
різними видами діяльностей, завданнями, результатами, ролями задіяних осіб.
Нижче подано неповний перелік стандартів, які дають загальне уявлення про
структуру життєвого циклу ПЗ і його основні процеси.
На сьогодні існує комплекс стандартів, які регламентують різні аспекти життєвого циклу ПЗ. До їх розробки було залучено такі міжнародні організації, як IEEE (Інститут інженерів по електротехніці та електроніці), ISO (Міжнародна організація по стандартизації), EIA (Асоціація електронної промисловості), IEC (Міжнародна комісія по електротехніці), а також деякі національні дослідні інститути (ANSI, Американський національний інститут стандартів; SEI, Інститут програмної інженерії). При цьому стандарти, які описують структури життєвого циклу ПЗ, поділяються на групи за функціональними ознаками [3]. Коротко охарактеризуємо їх.
ISO
/ IEC 12207:2008 Розробка систем і програмного забезпечення – Процеси життєвого
циклу програмного забезпечення. Стандарт визначає загальну структуру життєвого циклу
ПЗ у вигляді трирівневої моделі, елементами якої є процеси, види діяльності,
завдання. Процеси об'єднані в чотири групи: основні процеси, підтримуючі
процеси, організаційні процеси, адаптація. Процеси складаються з окремих видів
діяльності. Наприклад, процес розробки ПЗ включає такі види діяльності, як
аналіз системних вимог, проектування програмно-апаратної частини системи в
цілому, аналіз вимог до ПЗ, проектування архітектури ПЗ, кодування, тестування
і т.д. Кожен вид діяльності спрямований на вирішення однієї або кількох задач.
Наприклад, такий вид діяльності, як розгортання процесу розробки, має вирішити
такі завдання: визначення структури життєвого циклу ПЗ, визначення фази розробки
ПЗ, вибір використовуваних стандартів, формування набору нормативно-методичних
документів, визначення середовища розробки тощо.
ISO
/ IEC 15288:2008 Розробка систем і програмного забезпечення – Процеси життєвого циклу систем. Стандарт націлений на розгляд
програмно-апаратної системи в цілому. Пропонує схожу схему визначення структури
життєвого циклу ПЗ у вигляді набору груп процесів, де кожен процес описується
набором результатів, і кожен результат досягається за допомогою набору різних
видів діяльності.
IEEE
830-1998 Recommended practice for software requirements specifications. Описує
структуру документів для фіксації вимог до ПЗ, визначає характеристики, якими
повинен володіти правильно складений набір вимог (коректність, однозначність,
повнота, несуперечність, впорядкованість і т.д.).
IEEE
1233-1998 Guide for developing system requirements specifications. Описує правила
побудови вимог для програмно-апаратних систем в цілому, визначає необхідні
властивості й атрибути набору вимог. Розробка вимог включає визначення,
організацію, подання та модифікацію вимог.
IEEE
1016-1998 Recommended Practice for Software Design Descriptions. Стандарт
робить акцент на принципах побудови архітектури, а не на наборі структур, які
лежать в її основі.
ISO
/ IEC 42010 IEEE Std 1471-2000 System and software engineering – Recommended practice for architectural description of
software-intensive systems. Архітектура може мати кілька подань, що
відображають структуру ПЗ з різних точок зору. Стандарт рекомендує для кожного
подання фіксувати відображені в ньому погляди та інтереси, причини, що
обумовлюють необхідність такого розгляду системи, невідповідності між
елементами одного подання або між різними уявленнями, а також різну службову
інформацію.
ISO
9001:2000 Системи управління якістю – Вимоги. Цей стандарт визначає загальні
правила забезпечення якості результатів у всіх процесах ЖЦ.
У
кожному конкретному проекті з розробки програмного забезпечення на етапі
планування на основі рекомендацій міжнародних стандартів визначається конкретна
модель життєвого циклу ПЗ. Вибір неоптимальної моделі життєвого циклу може
привести до залучення додаткових ресурсів, виникнення непередбачених ситуацій,
зриву термінів постачань і створення неконкурентоспроможного програмного
забезпечення низької якості.
Література:
1. ДСТУ 3918-99 (ISO/IEC 12207 : 1995) Інформаційні технології. Процеси
життєвого циклу програмного забезпечення. – К. : Держстандарт України, 2002. –
49 с.
2. Вендров А.М. Проектирование программного обеспечения экономических
информационных систем: учебник. – М.: Финансы и статистика, 2000. – 352с.
3. Методологія розробки та використання стандартів при створенні інформаційних
систем (у рамках процесу розробки програмних продуктів) // Вісті. – 2005. – №34
[Електронний ресурс]. – Режим доступу до статті : www.kyivsta.gov.ua/modern/visti/visti32.doc.