Натепер моделі життєвого циклу можна поділити на три групи. Основою моделей усіх груп є каскадна модель.
Першу групу утворюють «послідовні» моделі - модифікації каскадної моделі орієнтування на розробку «з нуля». До цієї групи входять:
класична, водоспад, спіральна, інкрементна, покрокова, модель швидкої розробки, модель прототипування, еволюційна модель.
Розробка нових методів побудови програмного забезпечення, заснованих на багатократному і повторювальному використанні, призвела до появи другої групи моделей, До її складу входять моделі компонентної розробки і моделі, засновані на повторному використанні.
Одним із шляхів підвищення ефективності розробки ПЗ є усунення фаз життєвого циклу шляхом автоматизації відповідних процесів, У зв'язку з цим з'явилася третя група моделей автоматичного синтезу програмного забезпечення.
Класична модель водоспаду - це узагальнення моделі водоспаду Райса, Модель містить п'ять фаз і, зазвичай, використовується в теоретичних побудовах (рис. 6.4).
Рис. 6.4. Класична модель водоспаду
Спіральна модель запропонована Боемом, як уточнення моделі водоспаду в результаті виконання ряду проектів, Процес розробки представлений у вигляді спіралі. Кожен виток спіралі - фаза (рис. 6.5).
Рис. 6.5. Спіральна модель
Спіраль розташована в чотирьох квадратах. У кожному квадраті виконуються певні дії:
- квадрат 1 - визначаються цілі альтернативи і обмеження - визначення вимог і специфікація для критичних частин системи з погляду продуктивності, функціональних властивостей, здібності до акомодації змін, програмного/апаратного інтерфейсу, критичних чинників успіху;
- квадрат 2 - розробляється прототип, ідентифікуються і вирішуються ризики - визначення вимог і специфікацій для найбільш потенційно небезпечних частин уявної системи задля виконання оцінювання і визначення ступеня ризику; розділення на окремі частини відповідно до ступенів ризику;
- квадрат 3 — розробляється продукт;
- квадрат 4 - планується така фаза: застосування Інформації, що належить до фази розробки продукту на наступному рівні, до планування на наступному кроці фази проекту.
Таким чином, у відповідному квадраті відбуваються такі дії: планування, прототипування, конструювання, оцінювання замовником і планування наступних дій.
Вертикальна вісь показує накопичувану вартість, а горизонтальна - прогрес у розробці продукту.
Інкрементна модель забезпечує процеси побудови версії програмного забезпечення, що розробляється (рис 6.6). Модель об'єднує каскадну модель з ітераційним підходом до розробки програмного забезпечення, Інкрементна модель може комбінуватися з іншими.
Рис. 6.6. Інкрементна модель
Покрокова модель припускає визначення пріоритетних функцій розробки програмного забезпечення у відповідній фазі життєвого циклу. Відповідно до певних пріоритетів визначається кількість кроків і кожна фаза реалізується покроково (рис. 6-7). Після виконання кроку виходить програмний продукт, який передається замовникові для експерименту і перевірки.
Модель швидкої розробки (рис. 6.8) введена у використання фірмою IBM. Суть моделі полягає в такому:
- користувач програмного забезпечення бере участь у всіх фазах життєвого циклу;
- скорочується час переходу від вимог до створення повного програмного забезпечення за рахунок використання відповідних інструментальних засобів і повторного використання.
Рис. 6.7. Покрокова модель
Рис. 6.8. Модель швидкої розробки
Модель прототипування забезпечує створення програмного забезпечення у двох примірниках. Перший примірник називається прототипом і використовується для вимог. Після того, як вимоги узгоджені, прототип викидається і програмне забезпечення створюється наново (рис. 6.9). Гасло моделі "давайте будувати двічі»,
Еволюційна модель - розробляється перша версія програмного продукту, яка передасться замовникові. Потім вона доопрацьовується і знову передасться замовникові, І так до тих пір, доки не буде побудована остаточна версія продукту. Еволюційна модель забезпечує еволюційний процес розробки програмного забезпечення (рис 6.10),
Рис. 6.9. Модель прототипування.
Рис. 6.10. Еволюційна моделі.
V-модель життєвого циклу була введена для ідентифікації дій, пов'язаних з тестуванням на всіх стадіях розробки програмного продукту. Лівий бік моделі (рис. 6.11) містить традиційні фази каскадної моделі, проте окрім робочого продукту виробляється відповідний тест. Правий бік моделі пов'язаний з інтеграцією і тестуванням.
Рис. 6.11. V-модель
W-модель життєвого циклу є модифікацією V-моделі і реалізує метод, відповідно до якого результат кожної фази перевіряється на коректність, змістовність і завершеність (рис. 6.12). Суть моделі полягає у проведенні аудиту, перегляданні і тестуванні робочих продуктів, які здійснюються паралельно з виконанням фаз.
Рис. 6.12. W -модель
Стадійна модель життєвого циклу. Ця модель є модифікацією еволюційної моделі (рис, 6.13). Суть її полягає в розгляді супроводу розробленого програмного продукту як процесу розробки.
Рис. 6.13. Стадійна модель
Моделі, орієнтовані на використаних готових компонентів. Розрізняють дві групи моделей:
- засновані на застосуванні компонентів багатократного використання;
- засновані на повторному використанні успадкованого програмного забезпечення.
Моделі компонентної розробки орієнтуються на багатократне використання готових компонентів, наприклад, методом об'ектно-оріентованого програмування. Для розроблення компонентів передбачається три можливості (рис. 6.14):
- розробка «з нуля»;
- використання існуючих класів;
- повторне використання успадкованого програмного забезпечення.
Рис. 6.14. Компонентна модель розробки
Існує три типи моделей, заснованих на повторному використанні; швидка, ітеративна і повна.
Швидка модель передбачає розробку шляхом зміни коду успадкованого програмного продукту з подальшою зміною інших робочих продуктів фаз життєвого циклу (рис. 6.15).
Рис. 6.15. Швидка модель
Ітеративна модель припускає аналіз успадкованого програмного забезпечення і побудову нового продукту шляхом послідовних змін робочих продуктів успадкованого програмного продукту (рис. 6.16).
Рис. 6.16. Ітеративна модель
Повна модель передбачає побудову на основі успадкованого програмного продукту репозитарія повторно використовуваних компонентів і потім створення з його допомогою нового програмного продукту (рис. 6.17).
Ряс. 6.17. Повна модель
Моделі, орієнтовані на автоматичне виконання фаз життєвого циклу. Моделі автоматичного синтезу забезпечують автоматичну побудову програмного продукту шляхом переходу від неформальної специфікації до формалізованої специфікації завдяки автоматичному виконанню однієї або декількох фаз життєвого циклу (рис. 6.18).
Рис. 6.18. Модель автоматичного синтезу
Зазвичай для кожного проекту програмного забезпечення вибирають моделі життєвого циклу. Під час вибору використовуються характеристики таких елементів розробки:
- вимога;
- команда розробників;
- колектив користувачів;
- тип проекту і ризики.
Після вибору моделі здійснюється її підлаштування під процеси конкретного проекту.