(англ. waterfall model, иногда переводят как модель «Водопад») — модель процесса разработки программного обеспечения, в которой процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.
1.В 1970 году в своей статье Уинстон Уокер Ройс описал в виде концепции то, что сейчас принято называть «каскадная модель», и обсуждал недостатки этой модели. Там же он показал, как эта модель может быть доработана до итеративной модели.
2.
В исходной каскадной модели следующие фазы шли в таком порядке:
- Определение требований
- Проектирование
- Конструирование (также «реализация» либо «кодирование»)
- Воплощение
- Тестирование и отладка (также «верификация»)
- Инсталляция
- Поддержка
3.


Mинусы модели
- Очень много документов, который нужно постоянно
- актуализировать. Из-за этого работа над проектом часто превращается в сущую бюрократию — пока всё со всеми не согласуешь, в документах всё не пропишешь, с места ничто не сдвинется.
- Подробнейший план может создать не только иллюзию безопасности, но и ложные впечатления о работе над проектом. За фразами типа «60% проекта выполнено» может не быть никакого полезного результата. Это всего лишь манипуляция. Всё-таки «делать» — не значит «сделать».
- Пользователя и заказчика полностью изолируют от процесса разработки. В итоге первый не может постепенно привыкать к продукту, а второй — вносить корректировки, если что-то идёт не так. Поэтому продукты, сделанные по каскадной методологии, оказываются не ориентированы на массового пользователя.
- Все требования должны быть сразу известны. Сделать это очень сложно, потому что заказчик часто и сам не знает, чего он хочет. В таких ситуациях гибкие методологии сподручнее.
- Из-за того, что в Waterfall тестирование происходит только в самом конце, проектом могут заниматься некомпетентные специалисты, и этого никто не заметит, пока не станет поздно. А когда на этапе тестирования находят вагон и маленькую тележку проблем, их начинают просто закрывать заплатками, ведь иного выбора нет. На первых этапах модель может быть более-менее гибкой, но масса проблем на этапе тестирования влечёт плачевные последствия.
Плюсы модели
- Устойчива к обновлению кадров. Благодаря очень подробному документированию каждого этапа, участники могут приходить и уходить, но на сроки работы это никак не повлияет.
- Дисциплинирует, благодаря плану и чёткой последовательности этапов и строгому менеджменту.
- Гибкая на ранних этапах. До этапа разработки можно вполне легко вносить изменения в предыдущие этапы.
- Прозрачна. Заранее понятно, на каком этапе что будет происходить, поэтому становится проще прогнозировать бюджеты и набирать команду.