База знань

Ітеративна модель (iterative model)

 iterativ2

Не всі моделі життєвого циклу послідовні. Існують також ітеративні (або інкрементальні) моделі, в яких використовується інший підхід. Замість однієї тривалої послідовності дій тут весь життєвий цикл продукту розбитий на ряд окремих міні-циклів. Причому кожен з них складається із все тих же базових стадій моделі життєвого циклу. Ці міні-цикли називаються ітераціями. У кожній з ітерацій відбувається розробка окремого компонента системи, після чого цей компонент додається до вже раніше розробленим функціоналу.

Ітеративна модель не передбачає повного обсягу вимог для початку робіт над продуктом. Розробка програми може починатися з вимог до частини функціоналу, які можуть згодом доповнюватися і змінюватися. Процес повторюється, забезпечуючи створення нової версії продукту для кожного циклу.

У дещо спрощеному вигляді, ітеративна модель складається з чотирьох основних стадій, які повторюються у кожній з ітерацій (plan-do-check-act):

– визначення та аналіз вимог;

– дизайн та проектування – згідно вимогами. Причому дизайн може як розроблятися окремо для даної функціональності, так і доповнювати вже існуючий;

– розробка і тестування – кодування, інтеграція і тестування нового компонента;

– фаза рев’ю – оцінка, перегляд поточних вимог та пропозиції щодо доповнення цих вимог.

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

У математичних термінах, ітеративна модель являє реалізацію методики послідовної апроксимації – тобто, поступове наближення до образу готового продукту:

Ключ до успішного використання цієї моделі – сувора валідація вимог і ретельна верифікація розроблюваної функціональності в кожній з ітерацій. Основні стадії процесу розробки в ітеративній моделі фактично повторюють модель водоспаду. У кожній ітерації створюється програмне забезпечення, що вимагає тестування на всіх рівнях.

Плюси та мінуси ітеративної моделі:

+ раннє створення працюючого ПЗ;

+ гнучкість – готовність до зміни вимог на будь-якому етапі розробки;

+ кожна ітерація – маленький етап, для якого тестування та аналіз ризиків забезпечити простіше, ніж для всього життєвого циклу продукту.

– кожна фаза – самостійна, окремі ітерації не накладаються одна на одну;

– можуть виникнути проблеми з реалізацією загальної архітектури системи, оскільки не всі вимоги відомі до початку проектування.

Коли використовувати ітеративну модель:

– для великих проектів;

– коли відомі, принаймні, ключові вимоги;

– коли вимоги до проекту можуть мінятися в процесі розробки.

Ітеративна модель є ключовим елементом так званих «гнучких» (Agile) підходів до розробки програмного забезпечення, основні з яких ми розглянемо в наступних розділах.