У ітераційній моделі процес починається з простого впровадження невеликого набору вимог до програмного забезпечення. Цей процес відбувається ітеративно, тобто поетапно. І повторюється доки система не буде реалізована та готова до розгортання.
Ітерація — певний проміжок часу під час розробки, протягом якого потрібно виконати певні завдання.
Інкремент — частина продукту програмного забезпечення, яка належним чином розроблена і протестована.
Ітераційна модель життєвого циклу не намагається почати розробку з вичерпної специфікації вимог. Натомість розробка починається з визначення та впровадження лише частини програмного забезпечення, яке потім переглядається для визначення подальших вимог. Потім цей процес повторюється, створюючи нову версію програмного забезпечення в кінці кожної ітерації.
Ітеративна модель – проєктування
Ітеративний процес починається з простої реалізації підмножини вимог до програмного забезпечення та ітеративного вдосконалення версії програмного забезпечення доки не буде реалізовано весь продукт, що перебуває в розробці. На кожній ітерації вносяться зміни в дизайн і додаються нові функціональні можливості. Основна ідея цього методу полягає в тому, щоб розробити систему через повторювані цикли (ітераційні) і невеликими порціями за раз (інкременти).
Ітеративна та поетапна (інкрементальна) розробка – це комбінація ітераційного методу та моделі поетапної (інкрементальної) розробки.
У цій інкрементній моделі всі вимоги розділені на різні збірки (білди). Під час кожної ітерації модуль розробки проходить етапи вимог, проєктування, впровадження та тестування. Кожен наступний випуск модуля додає функції до попереднього випуску. Процес триває, доки вся система не буде готова відповідно до вимог.
Ключем до успішного використання ітеративного життєвого циклу розробки програмного забезпечення є сувора перевірка вимог, перевірка та тестування кожної версії програмного забезпечення на відповідність цим вимогам у кожному циклі моделі. Оскільки програмне забезпечення розвивається через послідовні цикли, тести необхідно повторювати та розширювати для перевірки кожної версії програмного забезпечення.
Ітеративна модель – застосування
Як і інші моделі SDLC, ітераційна модель має деякі специфічні опції застосування в галузі розробки програмного забезпечення.
Ця модель найчастіше використовується в таких сценаріях:
- Необхідно визначити основні вимоги; однак деякі функціональні можливості або потенційні вдосконалення можуть змінюватися та розвиватися з часом.
- Нова технологія використовується та вивчається командою розробників під час роботи над проєктом.
- Ресурси для виконання проєкту недоступні в повному обсязі, тому планується використовувати їх на основі контракту для конкретних ітерацій.
- Є деякі несталі функції та цілі, які можуть змінитися в майбутньому.
Ітеративна модель – переваги
Перевага цієї моделі полягає в тому, що існує робоча модель системи на ранній стадії розробки, що полегшує пошук функціональних або архітектурних недоліків. Виявлення проблем на ранній стадії розробки дає змогу вживати коригувальні заходи в умовах обмеженого бюджету.
Переваги ітераційної та інкрементної моделі SDLC такі:
- Деякі робочі функції можна розробити швидко та на ранніх стадіях життєвого циклу.
- Результати отримують завчасно та періодично.
- Можна планувати паралельний розвиток.
- Прогрес можна виміряти.
- Зміна обсягу робіт чи вимог є дешевшою.
- Тестування та налагодження під час меншої ітерації виконується легше.
- Ризики визначаються та усуваються під час ітерації.
- Легше керувати ризиками – спочатку виконується найбільш проблемна частина.
- З кожним інкрементом поставляється робочий продукт.
- Проблеми, виклики та ризики, виявлені під час ітерації, можна використовувати для полегшення наступного етапу.
- Протягом життєвого циклу програмне забезпечення створюється на ранній стадії, що полегшує комунікацію і зворотній зв’язок від клієнта.
Ітеративна модель – недоліки
Загалом ця модель більш адаптована до змін ніж модель водоспаду. Тим не менше, в класичному вигляді вона погано справляється з великою кількостю змін чи вдосконалень для програмного забезпечення, що перебуває в розробці.
Недоліки ітераційної моделі SDLC такі:
- Може портребувати більше ресурсів.
- Хоча вартість внесення змін чи коригувань менша, але ця модель не дуже підходить для вимог, що постійно змінюються.
- Потрібно більше уваги керівництва.
- Можуть виникнути проблеми з архітектурою або дизайном системи, оскільки не всі вимоги зібрані на початку життєвого циклу.
- Для визначення інкрементів може знадобитися визначення повної системи.
- Складність управління більше.
- Кінець проєкту може бути невідомим, що є ризиком.
- Для аналізу ризиків потрібні висококваліфіковані спеціалісти. Прогрес проєктів сильно залежить від фази аналізу ризиків.