Каскадная модель (Waterfall model)



Суть каскадной модели состоит в следующем:

- Требования к системе определяются на начальном этапе и далее не меняются.

- Процесс создания ПО разбивается на следующие стандартные этапы: определение требований, проектирование, кодирование и тестирование модулей, интеграция и тестирование продукта, эксплуатация и сопровождение.

- Каждый этап может начаться лишь тогда, когда закончился предыдущий.

Достоинства каскадной модели в простоте и хорошей структурированности. Основные недостатки связаны с прямолинейностью и отсутствием гибкости. Дело в том, что неизменность требований является мифом. Требования менялись, меняются и будут меняться всегда в ходе разработки. Каскадная модель не учитывает этот факт. В итоге, если ничего не предпринимать, конечный продукт будет отличаться от потребностей пользователей. Более того, скорее всего и документация в конце не будет отражать реальной ситуации (например, ТЗ, составленное в начале не будет совпадать с тем, что получится в конце). Поэтому каскадная модель в чистом виде перспективна лишь для очень больших проектов, где хорошая структурированность выходит на первые роли, а также в тех случаях, когда требования хорошо осознаны и зафиксированы в самом начале.

Эволюционная модель (Evolutionary development)

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

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

Итерационный подход

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

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

Модель пошаговой разработки

Модель пошаговой разработки (Миллс) состоит в выполнении стандартных шагов. В итоге каждого шага – работающий прототип. Требования фиксированы во время шага. Для шага можно применять каскадную или эволюционную модель.

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

Одно из ответвлений – Экстремальное программирование.

Спиральная модель разработки

Спиральная модель (Боэм) оказалась чрезвычайно популярной. Суть ее состоит в том, что вместо действий с обратной связью происходит выполнение различных этапов по спирали. Каждый виток спирали соответствует 1 итерации. Заранее фиксированных фаз нет, их состав зависит от потребностей.

Каждый виток разбит на 4 сектора: определение целей, оценка и разрешение рисков, планирование, разработка и тестирование.

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

Главное отличие от других моделей состоит в акценте на анализ и преодоление рисков

Выводы

Итак, в данной лекции мы рассмотрели следующие темы:

Программная инженерия, основные понятия

- Инженеры и программные инженеры

- Программная инженерия как инженерная дисциплина

- Область действия программной инженерии

- Цели программных инженеров

- Программные инженеры и научная среда

Процесс создания ПО

- Понятие процесса. Основные фазы.

- Модель процесса. Каскадная и эволюционная модель.

- Итерационный подход. Модель пошаговой разработки и спиральная модель.

 

 


Дата добавления: 2019-02-22; просмотров: 257; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!