Итак, некий «каркас» процесса обычно выглядит так:
- Спецификация.
- Разработка.
- Аттестация.
- Модернизация.
Сам этот «каркас» можно приводить в жизнь по-разному. Существуют общие модели процесса, которые определяют, как организовать работу по «каркасу» на практике. Фактически, модель процесса – некое абстрактное представление процесса на верхнем уровне. Так, модель не рассматривает детально содержимое каждого из этапов. Модель рассматривает состав этапов и способы их претворения в жизнь.
Рассмотрим некоторые устоявшиеся модели процесса разработки программного обеспечения.
Каскадная модель (Waterfall model)
Суть каскадной модели состоит в следующем:
- Требования к системе определяются на начальном этапе и далее не меняются.
- Процесс создания ПО разбивается на следующие стандартные этапы: определение требований, проектирование, кодирование и тестирование модулей, интеграция и тестирование продукта, эксплуатация и сопровождение.
- Каждый этап может начаться лишь тогда, когда закончился предыдущий.
|
|
Достоинства каскадной модели в простоте и хорошей структурированности. Основные недостатки связаны с прямолинейностью и отсутствием гибкости. Дело в том, что неизменность требований является мифом. Требования менялись, меняются и будут меняться всегда в ходе разработки. Каскадная модель не учитывает этот факт. В итоге, если ничего не предпринимать, конечный продукт будет отличаться от потребностей пользователей. Более того, скорее всего и документация в конце не будет отражать реальной ситуации (например, ТЗ, составленное в начале не будет совпадать с тем, что получится в конце). Поэтому каскадная модель в чистом виде перспективна лишь для очень больших проектов, где хорошая структурированность выходит на первые роли, а также в тех случаях, когда требования хорошо осознаны и зафиксированы в самом начале.