Программная инженерия. Теория и практика - страница 34

Шрифт
Интервал


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

Виды деятельности фактически присутствуют под разными названиями в каждом методе разработки ПО. В RUP они называются рабочими процессами (work flow), в CMM – ключевыми областями процесса (key process area). Мы будем сохранять традиционные названия, принятые в том или ином методе, чтобы не создавать путаницы.

Водопадная модель. Была предложена в 1970 г. Винстоном Ройсом. Фактически впервые в процессе разработки ПО были выделены различные шаги разработки и поколеблены примитивные представления о создании ПО в виде анализа системы и ее кодирования.

Были определены следующие шаги: разработка системных требований, разработка требований к ПО, анализ, проектирование, кодирование, тестирование, использование (рис. 2).

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


Рис. 2. Водопадная модель процесса разработки ПО


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

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