1. V-model
![](https://cdn.javarush.com/images/article/e95da36e-92dd-4f0b-b115-b3aa2d27bf0e/800.jpeg)
Принцип V-подібної моделі багато в чому схожий на каскадну модель. Найчастіше її застосовують у системах, де надзвичайно важлива безперебійна робота. Це софт для підтримки життєзабезпечення хворих у медичних закладах, аварійні системи блокування та схожий софт.
Характерною особливістю цієї моделі вважається те, що в ній основна увага спрямована на тестування програмного забезпечення, яке знаходиться на ранніх стадіях розробки, включно з проєктуванням. Тестування відбувається паралельно з процесом розробки – наприклад, під час написання коду виконуються модульні випробування.
2. Коли потрібно використовувати V-модель?
- Якщо програмний продукт потребує скрупульозного тестування, принципи V-моделі (validation and verification) найбільш виправдані у цій ситуації.
- Для невеликих та середніх проєктів, з чітко визначеними вимогами.
- За наявності великої кількості кваліфікованих тестувальників.
3. Інкрементна модель
![](https://cdn.javarush.com/images/article/0dffb43c-d3a8-47b3-a851-a2351a7d13b2/800.jpeg)
Особливість інкрементної моделі в тому, що у ній вимоги до ПЗ залежить від конкретного складання. Оскільки продукт проходить поетапне складання, його технологія проходить кілька циклів. Весь цей життєвий цикл можна назвати "мультиводоспадом".
Цикл складання розділено на невеликі та прості модулі. Кожен із них проходить ретельну перевірку вимог, проєктування, написання коду, впровадження та тестування.
Процес розробки згідно з інкрементною моделлю починається з випуску базової версії продукту з мінімальним функціоналом. Потім відбувається наростання функцій, які називаються інкрементами. Робочий процес триває, поки всі заплановані функції не інтегрують у систему.
4. Ітеративна модель
Ітеративна модель, яку також називають ітераційною, не потребує наявності повної специфікації вимог на початковому етапі. Розробка стартує зі створення певного функціоналу, який потім стане базою додавання нових функцій.
Процедура створення функцій "частинами" повторюється знову і знову, до завершення згідно з затвердженим планом. Робота продовжується до отримання працездатної версії продукту.
На діаграмі можна побачити ітераційну "розробку" портрета Мона Лізи. У першій ітерації ти бачиш лише малюнок портрета дівчини, у другій вже видно кольори, третя ітерація стає більш деталізованою та насиченою. Процес завершено.
![](https://cdn.javarush.com/images/article/9f4a0c97-a7c9-44b9-b2ec-f6ba9729121d/800.jpeg)
Якщо ж згадати інкрементну модель, за нею портрет буде написано інакше — по шматочкам, з окремих частин.
Прикладом розробки за ітераційною моделлю може стати розпізнавання голосу. Наукові дослідження на цю тему почалися давно, спершу — у формі ідей, потім розпочалася практична реалізація. Кожна нова ітерація покращувала якість розпізнавання голосу. Однак навіть зараз розпізнавання не можна назвати ідеальним. Таким чином, завдання ще не завершено.
Коли краще використовувати ітеративну модель?
- Якщо вимоги до системи чітко розписані та всім зрозумілі.
- Проєкт за своїм обсягом дуже великий.
- Головну мету визначено, але деталі реалізації можуть змінюватись у процесі роботи.
5. Спіральна модель
![](https://cdn.javarush.com/images/article/a41328da-2e6c-4130-a837-24d36e158b40/800.jpeg)
"Спіральна модель" схожа на інкрементну, але має особливість у вигляді аналізу ризиків. Її зазвичай застосовують для критично важливих процесів, коли збій у роботі просто неприпустимий.
Спіральна модель складається з чотирьох етапів роботи:
- складання плану;
- аналіз ризиків;
- робота над конструкцією ПЗ;
- перевірка результату та перехід до нового етапу.