layout |
---|
section |
Життєвий цикл ІТ проекту визначається як термін часу, який починається від моменту прийняття рішення про створення програмного продукту й закінчується у момент його повного вилучення з експлуатації, скоріш за все, з метою встановлення та інсталяції нового продукту.
Стандарти:
- ISO/IEC 12207: 1995 «Information Technology – Software Life Cycle Processing» ( Державний стандарт України ДСТУ 3918-99 «Інформаційні технології. Процеси життєвого циклу програмного забезпечення».
- IEEE 1540: Standard for Software Risk Management – управління ризиками програмного забезпечення;
- IEEE 1517: Standard for Software Reuse Processes – процеси повторного використання програмного забезпечення;
- ISO/IEC 15939: Standard for Software Measurement Process – процеси вимірювання в області програмного забезпечення.
Під моделлю життєвого циклу ІТ проекту сприймається структура, що визначає послідовність виконання і взаємозв’язок процесів, дій і задач упродовж життєвого циклу.
Програмне забезпечення в процесі своєї розробки й експлуатації проходить ряд певних етапів:
- виникнення та дослідження ідеї
- аналіз вимог i проектування
- безпосередньо кодування
- тестування та налагодження
- введення програми в дію
- експлуатація та супровід
- виведення з експлуатації
- Waterfall
- Incremental
- Rational Unified Process model
- Agile
graph LR
A[Requirements] --> D[Design]
D --> Dev[Development]
Dev --> I[Integration]
I --> T[Testing]
T --> Dep[Deployment]
Dep --> S[Support]
- Ніяких переробок
- Гарна специфікація перетікає в гарну документацію
- Зрозуміла модель
- Code Monkeys
::right::
- Важко вносити зміни (якщо взагалі можливо)
- Надлишкове проектування
- Perfect vs Code Monkeys
Процес автоматизації завдання змінює уявлення користувача про це завдання, тобто користувач вирішує завдання з використанням засобів автоматизації інакше, ніж без них (користувача треба використовувати постійно в процесі проектування, а не тільки на початку)
Чим більше часу пройшло з моменту здійснення помилки до моменту її виявлення, тим більше коштів необхідно для її усунення
Програмісти і проектувальники не вчаться на чужих помилках, а тільки на своїх.
::right::
Найбільш розповсюджені та найнебезпечніші ризики:
- внутрішні складнощі календарного планування;
- збільшення вимог з боку замовника в ході реалізації проекту;
- текучка кадрів;
- порушення специфікацій;
- низька продуктивність.
::right::
<style> p, ul li { font-size:small; line-height:1; padding:0 } </style>Первинною ціллю є адекватна оцінка системи, як база для обчислення початкових розцінок та бюджету.
На цьому етапі встановлюються бізнес-випадки, які включають бізнес-контекст, фактори успіху (очікувані доходи, визнання на ринку, і т.д.), а також фінансовий прогноз. На додаток до бізнес-випадку генерується базова модель прецедентів, план проєкту, попередня оцінка ризику і опис проєкту (основні вимоги до проєкту, обмеження та основні характеристики).
Після їх завершення проєкт перевіряється на відповідність наступним критеріям:
- Зацікавлені сторони досягають згоди з визначення масштабів і оцінки вартості/термінів.
- Розуміння вимог як свідчення якості первинних прецедентів.
- Достовірність оцінок вартості/термінів, пріоритетів, ризиків, та процесу розробки.
- Глибина і ширина будь-якого архітектурного прототипу, який був розроблений.
- Встановлення базової лінії за допомогою якої можна порівняти фактичні витрати із запланованими витратами.
Якщо проєкт не пройде цей етап, що називається віхою життєвого циклу, він може бути як скасований так і повторений після переконструювання з метою кращого задоволення критеріїв.
::right::
<style> p, ul li { font-size:small; line-height:1; padding:0 } </style>Основна мета полягає в пом'якшенні ключових ризиків, виявлених на основі аналізу до кінця цієї фази.
Фаза уточнення — фаза, де проєкт починає набувати форми. На цьому етапі робиться аналіз предметної області, і архітектура проєкту отримує свою базову форму.
Ця фаза має пройти віху життєвого циклу архітектури (LCA), задовольняючи такі критерії:
- Модель прецедентів, в якій ідентифікуються прецеденти та актори, та розробляється більшість описів прецедентів. Модель прецедентів повинна бути завершена на 80%.
- Опис архітектури програмного забезпечення в процесі розробки програмної системи.
- Виконувана архітектура, яка реалізує архітектурно значимі прецеденти.
- Бізнес-випадки та список ризиків переглядаються.
- План розвитку проєкту в цілому.
- Прототипи, що явно зменшили кожен виявлений технічний ризик.
Якщо проєкт не може переступити цю віху, ще є час для того, щоб він був скасований або змінений. Тим не менше, після закінчення цього етапу, проєкт переходить в операцію з високим ступенем ризику, де зміни набагато складніші та згубні.
Системна архітектура є ключовим елементом розробки, що отримується з аналізу предметної області.
::right::
Основна мета полягає в створенні програмної системи.
На цьому етапі основна увага приділяється розробці компонентів та інших характеристик системи. Це етап, на якому відбувається основна частина кодування. У більших проєктах може бути кілька фаз конструювання.
Цей етап створює перший реліз програмного забезпечення. Його завершення позначає віха початкової боєготовності.
::right::
Основна мета полягає в переведенні системи з розробки у продукт, зробивши його доступним та зрозумілим для кінцевого споживача.
Діяльність у рамках цієї фази включає навчання кінцевих користувачів та обслуговуючого персоналу, бета-тестування системи для перевірки її на відповідність очікуванням користувачів.
Продукт також перевіряється на відповідність рівню якості, встановленого в початковій фазі.
Якщо всі вимоги задоволені, досягається віха релізу продукту, і цикл розробки завершується.
::right::
<style> p, ul li { font-size:small; line-height:1; padding:5px 0; } </style>- Максимальне задоволення вимог клієнта (у разі необхідності - продовження терміну здачі проекту)
- Продукт часто показується клієнту (до прикладу кожен тиждень, а не кожен місяць)
- Працююче програмне забезпечення є визначником прогресу проекту
- Навіть пізні зміни у вимогах до продукту сприймаються позитивно
- Тісна щоденна кооперація клієнтів, програмістів, аналітиків проекту
- Постійна комунікація групи учасників проекту
- Проект будується навколо вмотивованих індивідів, до яких повинна бути довіра
- Постійна увага до технічної сторони і хорошого дизайну продукту
- Простота
- Самоорганізованість
- Постійна адаптація до зміни середовища.