Существует интерпретация итеративной разработки в виде спирали. Другая интерпретация дана Барри Боэмом в середине 1980-х годов [4]: сначала идет итеративная разработка прототипов с целью снижения рисков, а затем каскадно основная разработка
Достоинства – ориентирована на снижение рисков и прояснение требований; ориентирована на заказчика
Недостатки – длительный этап сбора требований и разработки архитектуры; Значительная часть разработки не видна для заказчика
Вывод – хорошо масштабируется и может применяться в проектах различной сложности; Особенно хорошо применима для разработки систем со сильно-связанными модулями
Спиральная модель воплощает в себе преимущества каскадной модели. При этом в нее также включены анализ рисков, управление ими, а также процессы поддержки и менеджмента. Здесь также предусмотрена разработка программного продукта при использовании метода прототипирования или быстрой разработки приложений посредством применения языков программирования и средств разработки четвертого поколения (и выше).
Модель отображает базовую концепцию, которая заключается в том, что каждый цикл представляет собой набор операций, которому соответствует такое же количество стадий, как и в модели каскадного процесса. Причем принимается во внимание каждая составляющая часть продукта, и каждый уровень сложности, начиная с общей формулировки потребностей и заканчивая кодированием каждой отдельной программы.
Чтобы лучше понять спиральную модель, изображенную на рис., нужно начинать с центра в квадранте 1 (определение целей, альтернативных вариантов и ограничений), исследовать риски, составить план их разрешения, подготовиться к следующей итерации и переместиться вправо.
|
Для каждой итерации следует определить цели, альтернативные варианты и ограничения; установить и разрешить риски; дать оценку альтернативным вариантам разработать результативные данные для этой итерации и подтвердить их правильность; спланировать следующую итерацию. Затем следует выбрать метод осуществления следующей итерации в случае, если требуется ее выполнять.
В квадрантах отсутствует заданное количество циклов. Их количество нужно выбрать по необходимости, а итерации можно адаптировать под определенный проект.
Следует отметить тот факт, что кодирование выполняется значительно позже, чем в других моделях. Смысл заключается в том, чтобы минимизировать риск посредством последовательных уточнений требований, выдвигаемых пользователем. В каждом "мини-проекте" (движении по спирали) рассматривается один или несколько главных факторов риска, начиная с фактора наивысшего риска. Типичные риски включают в себя неправильно истолкованные требования, архитектуру, потенциальные проблемы, связанные с эксплуатацией продукта, проблемы в базовой технологии и т.д.
При использовании принципа прототипирования разработчики могут избегать проверенных практических методов разработки системы и неправильно использовать модель, мотивируя это причиной разработки "на скорую руку". Надлежащее использование спиральной модели или одного из ее вариантов поможет избежать "хакерства" и нарушения дисциплины. Как показано на рис., после проведения анализа и оценки рисков в большом объеме в "хвосте" спиральной модели изображены этапы процесса, напоминающие каскадную модель.
|
Поскольку спиральная модель была разработана с большей тщательностью, чем другие методики, в разработке по принципу спирали особое внимание уделено оценке альтернативных вариантов и оценке рисков. Критический анализ, осуществляемый в конце каждой фазы, обеспечивает переход к следующей фазе или в случае необходимости определяет потребность в повторном выполнении каждой фазы.
Преимущества спиральной модели
При использовании спиральной модели при выполнении проекта, для которого она в достаточной мере подходит, проявляются следующие преимущества:
• спиральная модель разрешает пользователям "увидеть" систему на ранних этапах, что обеспечивается посредством использования ускоренного прототипирования в жизненном цикле разработки ПО;
• обеспечивается определение непреодолимых рисков без особых дополнительных затрат;
• эта модель разрешает пользователям активно принимать участие при планировании, анализе рисков, разработке, а также при выполнении оценочных действий;
• она обеспечивает разбиение большого потенциального объема работы по разработке продукта на небольшие части, в которых сначала реализуются решающие функции с высокой степенью риска, позволяющие устранить необходимость продолжения работы над проектом (таким образом, в случае необходимости становится возможным прекратить работу над проектом, и уменьшаются расходы);
•
|
• происходит усовершенствование административного управления над процессом обеспечения качества, правильностью выполнения процесса разработки, затратами, соблюдением графика и кадровым обеспечением, что достигается путем выполнения обзора в конце каждой итерации;
• повышается продуктивность благодаря использованию пригодных для повторного использования свойств;
• повышается вероятность предсказуемого поведения системы с помощью уточнения поставленных целей;
• при использовании спиральной модели не нужно распределять заранее все необходимые для выполнения проекта финансовые ресурсы;
• можно выполнять частую оценку совокупных затрат, а уменьшение рисков связано с затратами.
Недостатки спиральной модели
При использовании спиральной модели относительно проекта, для которого она не подходит в достаточной мере, проявляются следующие недостатки:
• если проект имеет низкую степень риска или небольшие размеры, модель может оказаться дорогостоящей. Оценка рисков после прохождения каждой спирали связана с большими затратами;
• модель имеет усложненную структуру, поэтому может быть затруднено ее применение разработчиками, менеджерами и заказчиками;
• серьезная нужда в высокопрофессиональных знаниях для оценки рисков;
• спираль может продолжаться до бесконечности, поскольку каждая ответная реакция заказчика на созданную версию может порождать новый цикл, что отдаляет окончание работы над проектом (принятие общего решения о прекращении процесса разработки);
• большое количество промежуточных стадий может привести к необходимости в обработке внутренней дополнительной и внешней документации;
• в производстве использование спиральной модели еще не получило такого широкого масштаба, как применение других моделей.
Область применения спиральной модели
Менеджер проекта может быть уверен в целесообразности применения спиральной модели, если для этого существует хотя бы одна из следующего перечня причин:
• когда создание прототипа представляет собой подходящий тип разработки продукта;
• когда важно сообщить, каким образом будет происходит увеличение затрат, и под-считать затраты, связанные с выполнением действий из квадранта риска;
• когда организация обладает навыками, требуемыми для адаптации модели;
• для проектов, выполнение которых сопряжено со средней и высокой степенью риска;
• когда нет смыла браться за выполнение долгосрочного проекта из-за потенциальных изменений, которые могут произойти в экономических приоритетах, и когда такая неопределенность может вызвать ограничение во времени;
• когда речь идет о применении новой технологии и когда необходимо протестировать базовые концепции;
• когда пользователи не уверены в своих потребностях;
• для организаций, которые не могут себе позволить выделить заранее все необходимые для выполнения проекта денежные средства, и когда в процессе разработки отсутствует финансовая поддержка;
• при выполнении затянувшихся проектов, которые могут вызывать раздражение у менеджеров и заказчиков;
• когда преимущества разработки невозможно точно определить, а достижение успеха не гарантировано;
• с целью демонстрации качества и достижения целей за короткий период времени;
• когда в процесс вовлекаются новые технологии, такие как впервые применяемые объектно-ориентированные принципы;