I. Каскадная (Waterfall) модель ЖЦ
Модели жизненного цикла
|
Особенности этой канонической модели:
· Это дискретный (во времени) технологический процесс с остановками по завершении каждого этапа и возможностью контроля и повторения этапа при неудовлетворительных результатах (т.е., итераций разработки)
Вопросы 2 и 3.
· Деление на уровни абстракции позволяет формировать документацию различной степени детализации и формулировать критерии проверки правильности принимаемых решений ДОреализации проекта, что способствует предупреждению ошибок проектирования
· Концепция требует не переходить к очередному этапу до полного завершения предыдущего – сильное требование
Очевидно:
· Чем раньше допущена ошибка, тем позже она может быть обнаружена
· Чем позже обнаружена ошибка, тем дороже ее исправление - больше этапов возврата
Хрестоматийный пример (Mайерс, «Надежность ПО», 1986 г.) - команда ценой в 110 тыс.$: в готовом софте бортового истребителя на стадии летных испытаний была обнаружена ошибка, для исправления которой было изменено 9 команд, а заплатили за эту работу 1 млн. $.
Поэтому цель хорошей технологии - возможно более раннее выявление и предупреждение ошибок, что достигается тщательным проектированием !
Недостатки каскадной модели:
· Навязывается стратегия проектирования сверху вниз (top-down), что подходит только к хорошо специфицированным небольшим проектам, в основном прикладным. Сложные системы либо создаются по частям (как город) либо растут (эволюционируют), как природные объекты.
Вопрос 4.
· Большая длительность полного цикла разработки:
Ø заказчики/пользователи могут увидеть первые результаты очень поздно, только по завершении всего проекта, - и пожелать радикально изменить требования
Ø требования конкурентного рынка заставляют максимально сокращать цикл
· Модель, созданная в начале 70-х, абсолютизирует значение стадии проектирования "за столом": не учитывает ускорения цикла кодирование-отладка в эпоху персональных компьютеров
· Психологическая причина: разрабатывать проектную документацию скучно