July 8, 2023

Спиральная модель

Спиральная модель — классический пример применения эволюционной стратегии конструирования.

Спиральная модель:

  1. — начальный сбор требований и планирование проекта;
  2. — та же работа, но на основе рекомендаций заказчика;
  3. — анализ риска на основе начальных требований;
  4. — анализ риска на основе реакции заказчика;
  5. — переход к комплексной системе;
  6. — начальный макет системы;
  7. — следующий уровень макета;
  8. сконструированная система;
  9. — оценивание заказчиком

Модель определяет четыре действия, представляемые четырьмя квадрантами спирали.

  1. Планирование — определение целей, вариантов и ограничений.
  2. Анализ риска — анализ вариантов и распознавание/выбор риска.
  3. Конструирование — разработка продукта следующего уровня.
  4. Оценивание — оценка заказчиком текущих результатов конструирования.

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

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

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

Достоинства спиральной модели:

  1. наиболее реально (в виде эволюции) отображает разработку программного обеспечения;
  2. позволяет явно учитывать риск на каждом витке эволюции разработки;
  3. включает шаг системного подхода в итерационную структуру разработки;
  4. использует моделирование для уменьшения риска и совершенствования программного изделия.

Недостатки спиральной модели:

  1. новизна (отсутствует достаточная статистика эффективности модели);
  2. повышенные требования к заказчику;
  3. трудности контроля и управления временем разработки.