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

Рубрика:

Спиральная модель — это модель процесса разработки программного обеспечения, сочетающая в себе проектирование и постадийное прототипирование. Данная модель была впервые предложена в 1988 году, автор методики - Барри Боэм.

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

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

1. Нехватка специалистов.
2. Малые сроки и бюджет.
3. Несоответствие итогового функционала целям разработки.
4. Разработка неверного интерфейса пользователя.
5. Повышенное внимание к деталям, ненужная оптимизация.
6. Внесение большого количества изменений.
7. Недостаточное количество информации о внешнем окружении системы.
8. Недостатки, определяемые внешними ресурсами, влияющими на проект.
9. Низкое быстродействие разработанного продукта.
10. Неоднородность квалификации специалистов.

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

В процессе создания программного обеспечения, для каждого витка спирали, заново проводится исследование, ставятся цели и определяются конкретные характеристики проекта. Также составляется план проведения работ для следующего витка.

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

1. оценка и разрешение рисков,
2. определение целей,
3. разработка и тестирование,
4. планирование.

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

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

Кроме итеративного метода разработки, в рамках спиральной модели получило широкое распространение применение методологии RAD (Rapid Application Development), представляющая собой модель быстрой разработки приложений. Процесс разработки программного обеспечения по данной методологии подчиняется трем основным правилам: небольшая команда разработчиков (не более 10 человек, но не менее 2); короткий, но плотный график разработки (от 2 до 6 месяцев); цикличная разработка, при которой разработчики, реализуют в продукте требования, получаемые постепенно, посредством обсуждения промежуточных результатов с заказчиком.

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

Другие статьи по методам разработки программного обеспечения:

1. Итеративная разработка программного обеспечения

2. Гибкая методология разработки ПО

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