Спиральная модель жизненного цикла разработки ПО

Спиральная модель жизненного цикла (мини-водопад или спираль Боэма) предложена в середине 80-х годов. Она обеспечивает большую степень взаимосвязи с потребителем.

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

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

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

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

Спиральная модель жизненного цикла разработки ПО - student2.ru

Рис. 5.8. Спиральная модель жизненного цикла

В каждый квадрант модели входят целевые и вспомогательные действия.

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

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

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

Следует отметить тот факт, что кодирование выполняется значительно позже,чем в других моделях. Смысл заключается в том, чтобы минимизировать риск посредством последовательных уточнений требований, выдвигаемых пользователем. В каждом «мини-проекте» (движении по спирали) рассматривается один или несколько факторов риска, начиная с фактора с наивысшим приоритетом. Типичные риски включают в себя неправильно истолкованные требования, архитектуру, потенциальные проблемы, связанные с эксплуатацией продукта, проблемы в базовой технологии и т.д.

Эта модель более полно отражает реальный процесс создания ПО, чем «водопад». Неполное завершение работ на каждой стадии позволяет переходить на следующую стадию, не дожидаясь полного завершения работы на текущей. Недостающую работу можно будет выполнить на следующей итерации. Главная задача как можно скорей предъявить пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований. Такой процесс непрекращающихся потребительских обзоров и обновления спецификаций позволял регулировать степень риска проекта. Этот подход стал основой для развития современных схем управления проектами по разработке программного обеспечения.

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

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

Условия применения:

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

- достижение успеха не гарантировано и необходима оценка рисков продолжения проекта;

- проект является сложным, дорогостоящим и обосновать объемы финансирования возможно только в процессе его выполнения;

- речь идет о применении новых технологий, что связано с риском их освоения и достижения ожидаемого результата;

- при выполнении очень больших проектов, которые в силу ограниченности ресурсов можно делать только по частям.

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

Наши рекомендации