- •Стандартизация и сертификация программного обеспечения
- •© Уо «пгу», 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
2.8.3. Спиральная модель
На практике разработка ПО имеет циклический характер, когда после выполнения некоторых стадий приходится возвращаться на предыдущие. Можно указать две основные причины таких возвратов:
Ошибки разработчиков, допущенные на ранних стадиях и выявленные на поздних стадиях – ошибки анализа, проектирования, кодирования, выявляемые, как правило, на стадии тестирования.
Изменение требований в процессе разработки («ошибки» заказчиков). Это или неготовность заказчиков сформулировать требования, или изменения требований, вызванные изменениями ситуации в процессе разработки (изменения рынка, новые технологии и т.п.).
Основные принципы спиральной модели можно сформулировать следующим образом:
разработка вариантов продукта, соответствующих различным вариантам требований с возможностью вернуться к более ранним вариантам;
создание прототипов ПО как средства общения с заказчиком для уточнения и выявления требований;
планирование следующих вариантов с оценкой альтернатив и анализом рисков, связанных с переходом к следующему варианту;
переход к разработке следующего варианта до завершения предыдущего в случае, когда риск завершения очередного варианта (прототипа) становится неоправданно высок;
использование каскадной модели как схемы разработки очередного варианта;
активное привлечение заказчика к работе над проектом; заказчик участвует в оценке очередного прототипа ПО, уточнении требований при переходе к следующему, оценке предложенных альтернатив очередного варианта и оценке рисков.
Схема работы спиральной модели выглядит следующим образом (рис.2.5). Разработка вариантов продукта представляется как набор циклов раскручивающейся спирали. Каждому циклу спирали соответствует такое же количество стадий, как и в модели каскадного процесса. При этом, начальные стадии, связанные с анализом и планированием представлены более подробно с добавлением новых элементов.
В каждом цикле выделяются четыре базовые фазы:
определение целей, альтернативных вариантов и ограничений;
оценка альтернативных вариантов, идентификация и разрешение рисков;
разработка продукта следующего уровня;
планирование следующей фазы.
«Раскручивание» проекта начинается с анализа общей постановки задачи на разработку ПО. Здесь на первой фазе определяются общие цели, устанавливаются предварительные ограничения, определяются возможные альтернативы подходов к решению задачи. Далее проводится оценка подходов, устанавливаются их риски. На фазе разработки создается концепция (видение) продукта и путей его создания.
Рис.2.5. Схема спиральной модели ЖЦ ПО
Следующий цикл начинается с планирования требований и деталей ЖЦ продукта для оценки затрат. На фазе определения целей устанавливаются альтернативные варианты требований, связанные с ранжированием требований по важности и стоимости их выполнения. На фазе оценки устанавливаются риски вариантов требований. На фазе разработки – спецификация требований (с указанием рисков и стоимости), готовится демоверсия ПО для анализа требований заказчиком.
Следующий цикл – разработка проекта – начинается с планирования разработки. На фазе определения целей устанавливаются ограничения проекта (по срокам, объему финансирования, ресурсам, …), определяются альтернативы проектирования, связанные с альтернативами требований, применяемыми технологиями проектирования, привлечением субподрядчиков. На фазе оценки альтернатив устанавливаются риски вариантов и делается выбор варианта для дальнейшей реализации. На фазе разработки выполняется проектирование и создается демоверсия, отражающая основные проектные решения.
Следующий цикл – реализация ПО – также начинается с планирования. Альтернативными вариантами реализации могут быть применяемые технологии реализации, привлекаемые ресурсы. Оценка альтернатив и связанных с ними рисков на этом цикле определяется степенью «отработанности» технологий и «качеством» имеющихся ресурсов. Фаза разработки выполняется по каскадной модели с получением действующего варианта (прототипа) продукта.
Отметим некоторые особенности спиральной модели:
до начала разработки ПО есть несколько полных циклов анализа требований и проектирования;
количество циклов модели (как в части анализа и проектирования, так и в части реализации) не ограничено и определяется сложностью и объемом задачи;
в модели предполагаются возвраты на оставленные варианты при изменении стоимости рисков.
Спиральная модель (по отношению к каскадной) имеет следующие очевидные преимущества:
более тщательное проектирование (несколько начальных итераций) с оценкой результатов проектирования, что позволяет выявить ошибки проектирования на более ранних стадиях;
поэтапное уточнение требований в процессе выполнения итераций, что позволяет более точно удовлетворить требованиям заказчика;
участие заказчика в выполнении проекта с использованием прототипов программы; заказчик видит, что и как создается, не выдвигает необоснованных требований, оценивает реальные объемы финансирования;
планирование и управление рисками при переходе на следующие итерации позволяет разумно планировать использование ресурсов и обосновывать финансирование работ;
возможность разработки сложного проекта по частям, выделяя на первых этапах наиболее значимые требования.
Основные недостатки спиральной модели связаны с ее сложностью:
сложность анализа и оценки рисков при выборе вариантов;
сложность поддержания версий продукта (хранение версий, возврат к ранним версиям, комбинация версий);
сложность оценки точки перехода на следующий цикл;
бесконечность модели – на каждом витке заказчик может выдвигать новые требования, которые приводят к необходимости следующего цикла разработки.
Спиральную модель целесообразно применять при следующих условиях:
проект является сложным, дорогостоящим и обоснование его финансирования возможно только в процессе его выполнения;
пользователи не уверены в своих потребностях или требования слишком сложны и могут меняться в процессе выполнения проекта и необходимо прототипирование для анализа и оценки требований;
достижение успеха не гарантировано и необходима оценка рисков продолжения проекта;
речь идет о применении новых технологий, что связано с риском их освоения и достижения ожидаемого результата;
при выполнении очень больших проектов, которые в силу ограниченности ресурсов можно делать только по частям.