logo

8. Модели жц программного продукта: спиральная (быстрого прототипирования).

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

Спиральная модель (англ. spiralmodel) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.

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

На каждой итерации оцениваются:

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

Отличительной особенностью спиральной модели является специальное внимание, уделяемое рискам, влияющим на организацию жизненного цикла, и контрольным точкам. Боэм формулирует 10 наиболее распространённых (по приоритетам) рисков:

  1. Дефицит специалистов.

  2. Нереалистичные сроки и бюджет.

  3. Реализация несоответствующей функциональности.

  4. Разработка неправильного пользовательского интерфейса.

  5. Перфекционизм, ненужная оптимизация и оттачивание деталей.

  6. Непрекращающийся поток изменений.

  7. Нехватка информации о внешних компонентах, определяющих окружение системы или вовлеченных в интеграцию.

  8. Недостатки в работах, выполняемых внешними (по отношению к проекту) ресурсами.

  9. Недостаточная производительность получаемой системы.

  10. Разрыв в квалификации специалистов разных областей.

В сегодняшней спиральной модели определён следующий общий набор контрольных точек:

  1. ConceptofOperations (COO) — концепция (использования) системы;

  2. LifeCycleObjectives (LCO) — цели и содержание жизненного цикла;

  3. LifeCycleArchitecture (LCA) — архитектура жизненного цикла; здесь же возможно говорить о готовности концептуальной архитектуры целевой программной системы;

  4. InitialOperationalCapability (IOC) — первая версия создаваемого продукта, пригодная для опытной эксплуатации;

  5. FinalOperationalCapability (FOC) –— готовый продукт, развернутый (установленный и настроенный) для реальной эксплуатации.