Каскадная (водопадная, последовательная) модель жизненного цикла
Наиболее известна и применяется достаточно широко. Предполагает строго последовательное (во времени) и однократное выполнение всех фаз проекта с жестким и детальным предварительным планированием в условиях предопределенных (т.е. однажды и целиком определенных и зафиксированных) требований к программной системе.
При каскадном (водопадном) ЖЦ считается, что
- на каждой стадии разработки формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
- стадии разработки выполняются в логической последовательности, позволяет планировать сроки завершения всех работ и соответствующие затраты.
Принципиальной особенностью каскадного процесса является то, что переход на следующую стадию осуществляется только после того, как будет полностью завершена работа на текущей стадии, и возвратов на пройденные стадии не предусматривается. Пример каскадной модели ЖЦ показан на рис. 5.2.
Рис.5.2. Каскадная модель жизненного цикла
Условия применения:
- когда жесткая структуризация работ и отсутствие возвратов являются методически оправданными. Это относится, прежде всего, к критически важным системам реального времени (таким как, например, управление авиационным движением или медицинским оборудованием), а также к масштабным проектам, в реализации которых задействовано несколько больших команд разработчиков.
- когда требуется разработать новую версию уже существующего продукта или осуществить его перенос на новую платформу.
- когда имеется большой практический опыт в создании программных систем определенного типа (например, бухгалтерский учет, начисление зарплаты и пр.) В этом случае при создании еще одного продукта того же типа вполне можно опираться на водопадный процесс.
Модификации каскадной модели:
- итерационная модель жизненного цикла
- V-образная модель жизненного цикла.
Итерационная модель (см. рис. 5.3) предполагает возможность возвратов на предыдущие этапы вследствие обнаружившихся ошибок неточностей, допущенных на предыдущих шагах, а также изменения внешних требований к условиям эксплуатации системы.
Рис. 5.3. Классическая итерационная модель.
В V-образной модели каждая последующая фаза начинается по завершению получения результативных данных от предыдущей фазы. Модель демонстрирует комплексный подход к определению фаз процесса разработки ПО. В ней подчеркнуты взаимосвязи, существующие между аналитическими фазами и фазами проектирования, которые предшествуют кодированию, после которого следуют фазы тестирования. Пунктирные линии означают, что эти фазы необходимо рассматривать параллельно.
Особое значение придается действиям, направленным на верификацию и аттестацию продукта. Тестирование продукта обсуждается, проектируется и планируется на ранних этапах жизненного цикла разработки. План приемки заказчиком разрабатывается на этапе планирования, а компоновочного испытания системы - на фазах анализа, разработки проекта и т.д. Помимо планов, на ранних этапах разрабатываются также и тесты, которые будут выполняться при завершении параллельных этапов (см. рис.5.4).
Рис. 5.4. V –образная модель жизненного цикла разработки ПО.
Условия применения:
- когда вся информация о требованиях доступна заранее;
- для систем, в которых требуется высокая надежность, таких как прикладные программы для наблюдения за пациентами в клиниках, а также встроенное ПО для устройств управления аварийными подушками безопасности в автомобилях.