Модель «кодуй і виправляй» містила дві фази (рис. 6.1):
— написання коду;
- встановлення помилок у коді.
Недоліки моделі: після безлічі змін код ставав погано структурований; навіть добре спроектоване програмне забезпечення не відповідало вимогам; супровід коду був дорогим, оскільки код погано пристосований для тестування і модифікації.
Рис. 6.1. Модель «кодуй і виправляй»
Крокова модель була розроблена на основі моделі «кодуй і виправляй» шляхом усунення недоліків, значної деталізації кроків розробки програмного продукту.
Модель, що передбачає послідовне виконання наступних кроків, така (рис. 6.2): планування дій, специфікування дій, кодування, тестування, асемблювання, shakedown, оцінювання розробленої системи. Основні недоліки моделі полягали в тому, що вказані кроки виконувалися у строїти послідовності (був відсутній зворотний зв'язок) і не передбачалося швидке прототипування програм (рис. 6.3). Удосконаленням крокової моделі була каскадна модель, оскільки вона забезпечувала:
Рис. 6.2. Крокова модель
- зворотні зв'язки між стадіями (тим самим зменшувалася переробка програмних продуктів окремих стадій);
- прототипування як спосіб розробки програмного забезпечення двічі;
- введені фази проектування;
- кожна фаза продукту проходить верифікацію, валідацію або тестування.
Проте головний недолік каскадної моделі - це обов'язкове завершення фаз специфікації вимог і проектування перш, ніж може бути продовжено виконання інших фаз життєвого циклу. Якщо для окремих класів програмних систем, наприклад, операційних систем цей підхід був ефективний, то для широкого класу інтерактивних застосувань він не працював. Це зумовило необхідність розробляти інші моделі життєвого циклу (рис. 6.3).
Рис. 6.3. Каскадна модель
Каскадна модель не знайшла практичного застосування, проте виявилася важливою теоретичною базою для розробки моделей інших типів, а також стандартів, Наприклад, такі особливості технологій, як інкрементна і паралельна розробка, сімейство програм, еволюційні зміни, формальна розробка і верифікація, ризик-аналіз були вперше введені як розвиток каскадної моделі.