Каскадная модель

КЛАССИЧЕСКИЕ КАСКАДНЫЕ ТЕХНОЛОГИЧЕСКИЕ МОДЕЛИ

КЛАССИФИКАЦИЯ МОДЕЛЕЙ ЖИЗНЕННОГО ЦИКЛА ПО

 

Мы сказали ЧТО нужно делать при разработке программ, но не сказали КАК.

Под моделью ЖЦ (технологический подходом) понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении ЖЦ программного продукта.

Каждому этапу соответствуют определенный результат и набор документации, являющиеся исходными данными для следующего этапа. В заключение каждого этапа производится верификация документов и решений с целью проверки их соответствия первоначальным требованиям заказчика.

Модель ЖЦ зависит от специфики ПО и условий, в которых оно создается и функционирует.

Известны следующие технологические подходы:

1) подходы со слабой формализацией;

2) строгие (классические, жесткие, предсказуемые) подходы;

3) гибкие (адаптивные, легкие) подходы;

Первые не используют явных технологий и их можно применять только для очень маленьких проектов. К ним относится подход – кодирование и исправление. Мы о них говорить не будем.

Вторую группу подходов рекомендуется применять для средних, крупномасштабных и гигантских проектов с фиксированным объемом работ. К ним относятся:

-каскадные технологичекие подходы ;

- каркасные подходы;

- генетические подходы;

- подходы на основе формальных преобразований.

Мы уделим особое внимание каскадным технологическим подходам.

Каркасные подходы:

1) рациональный унифицированный процесс

Генетические подходы бывают:

1)синтезирующее программирование

2) сборочное программирование

3) конкретизирующее программирование

Подходы на основе формальных преобразований:

1) технологии стерильного цеха

2) формальные генетические подходы

 

Третью группу подходов(гибкие) рекомендуется применять для небольших или средних проектов в случае неясных или изменяющихся требований к системе:

- технологичекие подходы быстрой разработки:

- адаптивные подходы:

- подходы исследовательского программирования;

Технологические подходы быстрой разработки:

1) Эволюционное прототипирование

2) Итеративная разработка

3) Постадийная разработка

Особое мосто в современной технологии программирования занимают адаптивные подходы:

1) экстремальное программирование

2) адаптивная разработка

Подходы исследовательского программирования:

1) компьютерный дарвинизм

2) спиральная модель (86-90 гг.).

 

 

Каскадные технологичекие подходы в свою очередь бывают:

1) Классический каскадный (водопадный) подход;

2) Каскадно-возвратный подход;

3) Каскадно-итерационный;

4) Каскадный подход с перекрывающимися процессами;

5) Каскадный подход с подпроцессами;

6) Спиральная модель.

 

При каскадном способе каждая программа представляла собой единое целое (этот подход считается «дедушкой» технологических подходов к веденю жизненного цикла). Он сформировался в 70-85 гг 20-го века.

Классический каскадный технологический подход к ведению жизненного цикла (см. предущую лекцию)

 

 

Процессы

 
 

 

 


 
 

 

 


Стадии

Анализ Проектирование Программирование Тестирование

и отладка Эксплуатация

и сопровождение

 

Основной особенностью является разбиение всей разработки на этапы, причем переход с одного этапа на следующий происходит только после того, как будет полностью завершена работа на текущем этапе.

Возвраты к уже пройденным процессам не предусмотрены.

Таким образом, каждый процесс выполняется на какой-то одной стадии жизненного цикла.

Преимущества:

1) на каждом этапе формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности для того, чтобы разработка могла быть продолжена другой командой разработчиков.

2) выполняемые в логичной последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие затраты.

Основным недостатком является отсутствие гибкости, т.к. реальный процесс создания ПО никогда полностью не укладывался в такую жесткую схему. При каскадном подходе имеет место существенное запаздывание с получением результатов. Пользователи могут внести свои замечания только после того, как работа над системой будет полностью завершена. В случае неточного изложения требований или их изменения в течение длительного периода создания ПО, пользователи получают систему, не удовлетворяющую их потребностям.

Применение "водопадного" процесса эффективно для систем, для которых в самом начале разработки можно достаточно точно и полно сформулировать все требования, с тем чтобы предоставить разработчикам свободу реализовать их как можно лучше с технической точки зрения. В эту категорию попадают сложные расчетные системы, системы реального времени и другие подобные задачи.