2.8.3. Спиральная модель
На практике разработка ПО имеет циклический характер, когда после выполнения некоторых стадий приходится возвращаться на предыдущие. Можно указать две основные причины таких возвратов:
Ошибки разработчиков, допущенные на ранних стадиях и выявленные на поздних стадиях – ошибки анализа, проектирования, кодирования, выявляемые, как правило, на стадии тестирования.
Изменение требований в процессе разработки («ошибки» заказчиков). Это или неготовность заказчиков сформулировать требования, или изменения требований, вызванные изменениями ситуации в процессе разработки (изменения рынка, новые технологии и т.п.).
Основные принципы спиральной модели можно сформулировать следующим образом:
разработка вариантов продукта, соответствующих различным вариантам требований с возможностью вернуться к более ранним вариантам;
создание прототипов ПО как средства общения с заказчиком для уточнения и выявления требований;
планирование следующих вариантов с оценкой альтернатив и анализом рисков, связанных с переходом к следующему варианту;
переход к разработке следующего варианта до завершения предыдущего в случае, когда риск завершения очередного варианта (прототипа) становится неоправданно высок;
использование каскадной модели как схемы разработки очередного варианта;
активное привлечение заказчика к работе над проектом; заказчик участвует в оценке очередного прототипа ПО, уточнении требований при переходе к следующему, оценке предложенных альтернатив очередного варианта и оценке рисков.
Схема работы спиральной модели выглядит следующим образом (рис.2.5). Разработка вариантов продукта представляется как набор циклов раскручивающейся спирали. Каждому циклу спирали соответствует такое же количество стадий, как и в модели каскадного процесса. При этом, начальные стадии, связанные с анализом и планированием представлены более подробно с добавлением новых элементов.
В каждом цикле выделяются четыре базовые фазы:
определение целей, альтернативных вариантов и ограничений;
оценка альтернативных вариантов, идентификация и разрешение рисков;
разработка продукта следующего уровня;
планирование следующей фазы.
«Раскручивание» проекта начинается с анализа общей постановки задачи на разработку ПО. Здесь на первой фазе определяются общие цели, устанавливаются предварительные ограничения, определяются возможные альтернативы подходов к решению задачи. Далее проводится оценка подходов, устанавливаются их риски. На фазе разработки создается концепция (видение) продукта и путей его создания.
Рис.2.5. Схема спиральной модели ЖЦ ПО
Следующий цикл начинается с планирования требований и деталей ЖЦ продукта для оценки затрат. На фазе определения целей устанавливаются альтернативные варианты требований, связанные с ранжированием требований по важности и стоимости их выполнения. На фазе оценки устанавливаются риски вариантов требований. На фазе разработки – спецификация требований (с указанием рисков и стоимости), готовится демоверсия ПО для анализа требований заказчиком.
Следующий цикл – разработка проекта – начинается с планирования разработки. На фазе определения целей устанавливаются ограничения проекта (по срокам, объему финансирования, ресурсам, …), определяются альтернативы проектирования, связанные с альтернативами требований, применяемыми технологиями проектирования, привлечением субподрядчиков. На фазе оценки альтернатив устанавливаются риски вариантов и делается выбор варианта для дальнейшей реализации. На фазе разработки выполняется проектирование и создается демоверсия, отражающая основные проектные решения.
Следующий цикл – реализация ПО – также начинается с планирования. Альтернативными вариантами реализации могут быть применяемые технологии реализации, привлекаемые ресурсы. Оценка альтернатив и связанных с ними рисков на этом цикле определяется степенью «отработанности» технологий и «качеством» имеющихся ресурсов. Фаза разработки выполняется по каскадной модели с получением действующего варианта (прототипа) продукта.
Отметим некоторые особенности спиральной модели:
до начала разработки ПО есть несколько полных циклов анализа требований и проектирования;
количество циклов модели (как в части анализа и проектирования, так и в части реализации) не ограничено и определяется сложностью и объемом задачи;
в модели предполагаются возвраты на оставленные варианты при изменении стоимости рисков.
Спиральная модель (по отношению к каскадной) имеет следующие очевидные преимущества:
более тщательное проектирование (несколько начальных итераций) с оценкой результатов проектирования, что позволяет выявить ошибки проектирования на более ранних стадиях;
поэтапное уточнение требований в процессе выполнения итераций, что позволяет более точно удовлетворить требованиям заказчика;
участие заказчика в выполнении проекта с использованием прототипов программы; заказчик видит, что и как создается, не выдвигает необоснованных требований, оценивает реальные объемы финансирования;
планирование и управление рисками при переходе на следующие итерации позволяет разумно планировать использование ресурсов и обосновывать финансирование работ;
возможность разработки сложного проекта по частям, выделяя на первых этапах наиболее значимые требования.
Основные недостатки спиральной модели связаны с ее сложностью:
сложность анализа и оценки рисков при выборе вариантов;
сложность поддержания версий продукта (хранение версий, возврат к ранним версиям, комбинация версий);
сложность оценки точки перехода на следующий цикл;
бесконечность модели – на каждом витке заказчик может выдвигать новые требования, которые приводят к необходимости следующего цикла разработки.
Спиральную модель целесообразно применять при следующих условиях:
проект является сложным, дорогостоящим и обоснование его финансирования возможно только в процессе его выполнения;
пользователи не уверены в своих потребностях или требования слишком сложны и могут меняться в процессе выполнения проекта и необходимо прототипирование для анализа и оценки требований;
достижение успеха не гарантировано и необходима оценка рисков продолжения проекта;
речь идет о применении новых технологий, что связано с риском их освоения и достижения ожидаемого результата;
при выполнении очень больших проектов, которые в силу ограниченности ресурсов можно делать только по частям.
- Стандартизация и сертификация программного обеспечения
- © Уо «пгу», 2007Содержание введение
- Рабочая программа
- Рейтинговая оценка знаний
- Конспект лекций
- 1. Качество как экономическая категория и объект управления
- 1.1. Понятие качества. Предмет и задачи курса
- 1.2. Управление качеством как фактор успеха предприятия в конкурентной борьбе
- 1.3. Стандартизация в системе управления качеством
- 1.3.1. Система стандартизации
- 1.3.2. Категории нормативных документов
- 1.3.3. Уровни стандартизации
- 1.4. Механизм управления качеством
- 1.5. Стандарты исо серии 9000
- 1.5.1. Фундаментальные требования
- 1.5.2. Структура комплекса стандартов
- 1.5.3. Структура документов системы управления качеством
- 1.5.4. Как работает система управления качеством
- 1.6. Сертификация продукции, услуг и систем менеджмента качества
- 1.6.1. Основные предпосылки сертификации
- 1.6.2. Обязательная и добровольная сертификация
- 1.6.3. Национальная система сертификации
- 1.6.4. Схемы сертификации и условия их применения
- 1.6.5. Порядок проведения работ по сертификации
- Вопросы по теме
- 2. Жизненный цикл программнЫх средств
- 2.1. Понятие жизненного цикла
- 2.2. Базовый профиль жизненного цикла программных средств
- 2.3. Особенности стандартизации жизненного цикла программных средств
- 2.4. Методическая основа технологии жизненного цикла программных средств
- 2.5. Преимущества применения стандартов жизненного цикла
- 2.6. Структура профилей стандартов жизненного цикла программных средств
- 2.7. Стандартизация жизненного цикла программных средств
- 2.7.1. Стандарт iso/iec 12207
- 2.7.2. Стандарт iso 15504
- 2.8. Модель жизненного цикла программного продукта
- 2.8.1. Схема модели
- 2.8.2. Каскадная модель
- 2.8.3. Спиральная модель
- 2.8.4. Другие типы моделей
- Вопросы по теме
- 3. Основные понятия и характеристики качества программных средств
- 3.1. Основные факторы, определяющие качество программных средств
- 3.2. Стандарты, регламентирующие характеристики качества
- 3.3. Метрики характеристик качества программных средств
- 3.4. Особенности измерения и оценивания характеристик качества
- 3.5. Негативные факторы, влияющие на качество
- 3.6. Ресурсы, ограничивающие достижимые характеристики качества
- Вопросы по теме
- 4. Выбор мер и шкал характеристик качества программных средств
- 4.1. Принципы выбора характеристик качества
- 4.2. Выбор свойств и атрибутов качества функциональных возможностей
- 4.2.1. Функциональная пригодность
- 4.2.2. Корректность и надежность
- 4.2.3. Способность к взаимодействию
- 4.2.4. Защищенность
- 4.3. Выбор количественных атрибутов характеристик качества
- 4.3.1. Надежность
- 4.3.2. Эффективность
- 4.4. Выбор качественных атрибутов характеристик качества
- 4.4.1. Практичность
- 4.4.2. Сопровождаемость
- 4.4.3. Мобильность
- 4.4.4. Качество документации
- 4.5. Процессы выбора и установления характеристик и мер качества в проектах программных средств
- Вопросы по теме
- 5. Стандартизация оценивания технологических процессов жизненного цикла и характеристик качества программных средств
- 5.1. Оценивание уровня зрелости процессов жизненного цикла и обеспечения качества программных средств
- 5.2. Оценивание жизненного цикла программных средств по стандарту iso 15504
- 5.3. Оценивание качества готового программного продукта по стандарту iso 14598
- 5.4. Организация и средства для оценивания качества комплексов программ
- 5.4.1. Модель внешней среды
- 5.4.2. Испытания программного продукта
- 5.4.3. Альфа– и Бета–тестирование
- 5.4.4. Программная генерация тестов
- 5.4.5. Обработка результатов испытаний
- Вопросы по теме
- 6. Единая система программной документации
- 6.1. Общая характеристика еспд
- 6.2. Структура еспд
- 6.3. Гост 19.101. Виды программ и программных документов
- 6.4. Гост 19.102. Стадии разработки
- 6.5. Гост 19.103. Обозначение программ и программных документов
- 6.6. Гост 19.105. Общие требования к программным документам
- 6.7. Гост 19.104. Основные надписи
- 6.8. Гост 19.106. Требования к программным документам, выполненным печатным способом
- 6.9. Гост 19.201. Техническое задание. Требования к содержанию и оформлению
- 6.10. Гост 19.202. Спецификация. Требования к содержанию и оформлению
- 6.11. Гост 19.301. Программа и методика испытаний. Требования к содержанию, оформлению и контролю качества
- 6.11.1. Требования к содержанию
- 6.11.2. Показатели качества, определяемые на основе результатов анализа раздела «Требования к программе»
- 6.11.3. Показатели качества, определяемые на основе результатов анализа раздела «Требования к программной документации»
- 6.11.4. Показатели качества, определяемые на основе результатов анализа раздела «Средства и порядок испытаний»
- 6.11.5. Показатели качества, определяемые на основе результатов анализа раздела «Методы испытаний»
- 6.12. Гост 19.401. Текст программы. Требования к содержанию и оформлению
- 6.13. Гост 19.402. Описание программы
- 6.14. Гост 19.404. Пояснительная записка. Требования к содержанию и оформлению
- 6.15. Гост 19.502. Описание применения. Требования к содержанию и оформлению
- 6.16. Гост 19.503. Руководство системного программиста. Требования к содержанию и оформлению
- 6.17. Гост 19.504. Руководство программиста. Требования к содержанию и оформлению
- 6.18. Гост 19.505. Руководство оператора. Требования к содержанию и оформлению
- 6.19. Гост 19.508. Руководство по техническому обслуживанию. Требования к содержанию и оформлению
- Вопросы по теме
- 7. Оценивание характеристик качества программных средств
- 7.1. Оценивание функциональных возможностей
- 7.1.1. Функциональная пригодность
- 7.1.2. Корректность
- 7.1.3. Способность к взаимодействию
- 7.1.4. Защищенность
- 7.2. Оценивание надежности функционирования
- 7.3. Оценивание эффективности использования ресурсов эвм
- 7.4. Оценивание практичности
- 7.5. Оценивание сопровождаемости
- 7.6. Оценивание мобильности
- 7.7. Оценивание качества эксплуатационной и технологической документации
- 7.7.1. Документирование в процессах жизненного цикла
- 7.7.2. Технологическая документация
- 7.7.3. Эксплуатационная документация
- 7.8. Оценивание рисков в жизненном цикле
- 7.9. Интегральное оценивание характеристик качества
- Вопросы по теме
- 8. Сертификация программного обеспечения
- 8.1. Организация сертификации программных продуктов
- 8.2. Документирование процессов и результатов сертификации
- Вопросы по теме
- Практические занятия практическая работа № 1 выбор характеристик и мер качества программного средства по стандарту isO 9126
- План практического занятия
- Практическая работа № 2 разработка технического задания на создание программного средства
- План практического занятия
- Практическая работа № 3 разработка технологической документации на программное средство
- План практического занятия
- Практическая работа № 4 разработка эксплуатационной документации на программное средство
- План практического занятия
- Практическая работа № 5 Оценивание качества программного продукта по стандарту гост 28195
- Словарь основных терминов
- Список использованных источников
- Перечень основных международных стандартов в области обеспечения жизенного цикла и качества программных средств
- 211440 Г. Новополоцк, ул. Блохина, 29