
- •Специфіка розробки програмних засобів
- •2. Життєвий цикл програмного засобу
- •Мал. 3.1. Стадії і фази життєвого циклу пз.
- •3. Моделі життєвого циклу пз
- •Мал. 2.2. Послідовність розробки згідно "класичної" каскадної моделі
- •Мал. 2.3. Хід розробки, пропонований в статті
- •Мал. 2.4. Можливий хід робіт по ітеративній моделі
- •Мал. 2.5. Зображення ходу робіт по спіральній моделі згідно Боєму
- •Питання для самоконтролю до лекції 2:
Мал. 3.1. Стадії і фази життєвого циклу пз.
Стадія розробки (development) ПЗ складається з етапу його зовнішнього опису, етапу конструювання ПЗ, етапу кодування (програмування у вузькому розумінні) ПЗ і етапу атестації ПЗ. Всі ці етапи супроводжуються процесами документування і управління (management) ПЗ. Етапи конструювання і кодування часто перекриваються, іноді досить сильно. Це означає, що кодування деяких частин програмного засобу може бути розпочате до завершення етапу конструювання.
Етап зовнішнього опису ПЗ включає процеси, що приводять до створення деякого документа, який ми називатимемо зовнішнім описом (requirements document) ПЗ. Цей документ є описом поведінки ПЗ з погляду зовнішнього по відношенню до нього спостерігача з фіксацією вимог щодо його якості. Зовнішній опис ПЗ починається з аналізу і визначення вимог до ПЗ з боку користувачів (замовника), а також включає процеси специфікації цих вимог.
Конструювання (design) ПЗ охоплює процеси: розробку архітектури ПЗ, розробку структур програм ПЗ і їх детальну специфікацію.
Кодування (coding) ПЗ включає процеси створення текстів програм на мовах програмування, їх відлагодження з тестуванням ПЗ.
На етапі атестації (acceptance) ПЗ проводиться оцінка якості ПЗ. Якщо ця оцінка виявляється прийнятною для практичного використання ПЗ, то розробка ПЗ вважається закінченою. Це зазвичай оформляється у вигляді деякого документа, що фіксує рішення комісії, що здійснює атестацію ПЗ.
Програмний виріб (ПВ) екземпляр або копія розробленого ПЗ. Виготовлення ПВ це процес генерації і/або відтворення (зняття копії) програм і програмних документів ПЗ з метою їх постачання користувачеві для застосування за призначенням. Виробництво ПВ це сукупність робіт по забезпеченню виготовлення необхідної кількості ПВ у встановлені терміни [3.1]. Стадія виробництва ПВ в життєвому циклі ПЗ є, по суті, виродженою (не істотною), оскільки представляє рутинну роботу, яка може бути виконана автоматично і без помилок. Цим вона принципово відрізняється від стадії виробництва різної техніки. У зв'язку з цим в літературі цю стадію, як правило, не включають в життєвий цикл ПЗ.
Стадія експлуатації ПЗ охоплює процеси зберігання, впровадження і супроводу ПЗ, а також транспортування і застосування ПВ по своєму призначенню. Вона складається з двох фаз, що паралельно проходять: фази застосування ПЗ і фази супроводу ПЗ [3.4, 3.5].
Застосування (operation) ПЗ це використання ПЗ для вирішення практичних завдань на комп'ютері шляхом виконання її програм.
Супровід (maintenance) ПЗ це процес збору інформації про якість ПЗ в експлуатації, усунення виявлених в ньому помилок, його доопрацювання і модифікацію, а також оповіщення користувачів про внесені до нього зміни [3.1, 3.4, 3.5].
В ході життєвого циклу ПЗ проходить через аналіз наочної області, збір вимог, проектування, кодування, тестування, супровід і інші види діяльності. Кожен вид є достатньо однорідний набір дій, що виконуються для вирішення одного завдання або групи тісно зв'язаних завдань в рамках розробки і підтримки експлуатації ПЗ.
При цьому створюються і переробляються різного роду артефакти — створювана людиною інформаційна суть, документи в достатньо загальному сенсі, що беруть участь як вхідні дані і виходять як результати різних деятельностей. Прикладами артефактів є: модель наочної області, опис вимог, технічне завдання, архітектура системи, проектна документація на систему в цілому і на її компоненти, прототипи системи і компонентів, власне, початковий код, призначена для користувача документація, документація адміністратора системи, керівництво по розгортанню, база призначених для користувача запитів, план проекту і ін.
На різних етапах створення і експлуатації ПЗ залучаються люди, що виконують різні ролі. Кожна роль може бути охарактеризована як абстрактна група зацікавлених осіб, що беруть участь в діяльності по створенню і експлуатації системи і вирішують одні і ті ж завдання або що мають одні і ті ж інтереси по відношенню до неї. Прикладами ролей є: бізнес-аналітик, інженер на вимоги, архітектор, проектувальник призначеного для користувача інтерфейсу, програміст-кодувальник, технічний письменник, тестувальник, керівник проекту по розробці, працівник відділу продажів, кінцевий користувач, адміністратор системи, інженер по підтримці і т.п.
Схоже, що загальну структуру життєвого циклу будь-якого ПЗ задати неможливо, оскільки вона істотно залежить від цілей, для яких це ПЗ розробляється або отримується, і від вирішуваних ним задач. Структура життєвого циклу буде істотно різною у програми для форматування коду, яка спочатку робилася програмістом для себе, а згодом була визнана перспективною як продукт і перероблена, і у комплексної системи автоматизації підприємства, яка із самого початку замислювалася як така. Проте, часто визначають основні елементи структури життєвого циклу у вигляді моделі життєвого циклу ПЗ. Модель життєвого циклу ПЗ виділяє конкретні набори видів діяльності (зазвичай розбитих на ще дрібніші), артефактів, ролей і їх взаємозв'язку, а також дає рекомендації по організації процесу в цілому. Ці рекомендації включають відповіді на питання про те, які артефакти є вхідними даними у яких видах діяльності, а які з'являються як результати, які ролі залучені в різні діяльності, як різні діяльності пов'язані одна з одною, які критерії якості отриманих результатів, як оцінити ступінь відповідності різних артефактів загальним завданням проекту і коли можна переходити від однієї діяльності до іншої.
Життєвий цикл ПЗ є складовою частиною життєвого циклу програмно-апаратної системи, в яку це ПЗ входить. Тому часто різні його аспекти розглядаються у зв'язку з елементами життєвого циклу системи в цілому.
Існує набір стандартів, що визначають різні елементи в структурі життєвих циклів ПЗ і програмно-апаратних систем. Як основні таких елементів виділяють технологічні процеси — структуровані набори деятельностей, що вирішують деяке загальне завдання або зв'язану сукупність завдань, такі як процес супроводу ПЗ, процес забезпечення якості, процес розробки документації і ін. Процеси можуть визначати різні етапи життєвого циклу і пов'язувати їх з різними видами діяльностей, артефактами і ролями зацікавлених осіб.
Варто відзначити, що процесом (або технологічним процесом) називають набір процесів, пов'язаних для сумісного вирішення крупнішого завдання, наприклад, всієї сукупності деятельностей, що входять в життєвий цикл ПЗ. Таким чином, процеси можуть розбиватися на підпроцеси, вирішальні приватні підзадачі того завдання, з яким працює загальний процес.