СИСТЕМНОЕ И ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Лекция 10. Жизненный цикл ПО. Модели жизненного цикла. Программная документация. Жизненный цикл ПО Понятие жизненного цикла Жизненный цикл – период: • с момента принятия решения о создании ПС • до момента полного прекращения эксплуатации Стандарты: • ISO/IEC 12207: 2008 “System and software engineering — Software life cycle processes” • ГОСТ Р ИСО/МЭК 12207-2010 «Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств» • Старые ГОСТы: • ГОСТ 19.ХХХ (Единая система программной документации) • ГОСТ 34.ХХХ (Комплекс стандартов на АС) 3 Организация жизненного цикла (ISO/IEC 12207) • Архитектура жизненного цикла – • набор процессов и связей между ними • построение начинается с формулирования идеи или потребности (в решении задач) • Декомпозиция процессов жизненного цикла на принципах: • модульности (связанность-связность) • ответственности (персональной, за процесс) - не может быть 2х ответственных у 1 процесса 4 Организация жизненного цикла (ISO/IEC 12207) • Общая иерархия процессов ЖЦ: • группа процессов->процессы->работы->задачи • Декомпозиция процесса – “PDCA-цикл”: • • • • “P” – Plan – Планирование “D” – Do – Выполнение “C” – Check – Проверка “A” – Act – Реакция (действие) 5 Структура жизненного цикла Группы процессов • Основные процессы • • • • • Приобретение Поставка Разработка Эксплуатация Сопровождение • Организационные процессы • Управление • Создание инфраструктуры • Усовершенствование • Обучение • Вспомогательные процессы • Документирование • Управление конфигурацией • Обеспечение качества • Верификация • Аттестация • Совместная оценка • Аудит • Решение проблем 6 Основные процессы • Приобретение (заказ) – работы и задачи заказчика • подготовка требований и условий • надзор • приёмка • Поставка – работы и задачи поставщика • • • • оценка требований и условий планирование управления проектом планирование работ выполнение и контроль работ 7 Основные процессы • Разработка (работы и задачи разработчика) • • • • • • • • • подготовка анализ требований к системе проектирование архитектуры детальное проектирование кодирование квалификационное тестирование интеграция системы внедрение ПО приёмка ПО 8 Основные процессы • Эксплуатация (служба поддержки) • подготовка: планирование работ и определение процедур на случай проблем • эксплуатационное тестирование • собственно эксплуатация • поддержка пользователей • Сопровождение (служба поддержки) • • • • • анализ проблем и запросов модификация ПО проверка и приёмка перенос ПО в другую среду вывод из эксплуатации 9 Вспомогательные процессы • Документирование • разработка и сопровождение документации • Управление конфигурацией • • • • правила идентификации модулей и версий контроль состояния компонентов оценка функциональной полноты компонентов управление выпуском версий ПО и документации • Обеспечение качества • контроль соответствия ПО требованиям • обеспечение качества процесса (соответствия стандартам) • обеспечение других показателей качества 10 Вспомогательные процессы • Верификация • непротиворечивость требований • реализуемость требований • адекватность стандартов, процедур и инструментов процессам ЖЦ • корректность описания входных/выходных данных, интерфейсов, и т.п. • соответствие кода требованиям • корректность интеграции компонентов • качество документации • и т.п. 11 Вспомогательные процессы • Аттестация • подтверждение результатов тестирования • гарантия безопасности использования и соответствия требованиям и спецификациям • Совместная оценка • оценка состояния работ по проекту (контроль за использованием ресурсов) • Аудит • внешний контроль (ревизия) на предмет соответствия процессов и результатов требованиям • Решение проблем • анализ и решение проблем (включая несоответствия) 12 Организационные процессы • Управление • поиск необходимых ресурсов • планирование - графики работ оценка затрат выделение требуемых ресурсов распределение ответственности оценка рисков по задачам создание управленческой инфраструктуры 13 Организационные процессы • Создание инфраструктуры • выбор и поддержка технологий, стандартов, инструментов • Усовершенствование процессов • меры повышения производительности труда - улучшение методологии - подбор инструментов - обучение персонала • Обучение 14 Стадии жизненного цикла • Стадия – часть процесса • ограниченная по времени • приводящая к выпуску конкретного продукта согласно требованиям к этой стадии - моделей, компонентов, документации • Типичный набор стадий: • • • • • • • сбор требований проектирование реализация тестирование внедрение эксплуатация и сопровождение снятие с эксплуатации 15 Стадии жизненного цикла • Сбор требований • определение целей • изучение бизнес-процессов • построение модели бизнес-процессов - как есть - как должно быть 16 Стадии жизненного цикла • Проектирование • Общий (системный) проект общая архитектура системы функции условия функционирования интерфейсы и распределение функций между компонентами - и прочие спецификации - • Детальный проект - иерархия компонентов спецификация компонентов и структур данных вычислительная модель верификация требований 17 Стадии жизненного цикла • Реализация • разработка детальной спецификации • проектирование логики и программирование модулей • модульное тестирование • описание БД • план приёмо-сдаточных испытаний • руководство пользователя 18 19 Модели жизненного цикла Модели жизненного цикла Стратегии конструирования ПО • однократный проход • линейная последовательность этапов конструирования; • инкрементная стратегия • требования определяются в начале процесса • последовательность версий • эволюционная стратегия • последовательность версий • требования уточняются 21 Каскадная модель Так называемая модель водопада – waterfall 22 Каскадная модель • Преимущества • на каждой стадии формируется законченный набор проектной документации • можно планировать сроки завершения всех работ и соответствующие затраты • Недостатки • ошибки выявляются поздно (на этапе тестирования) • реальные проекты требуют отклонения от линейного порядка шагов • исходные требования должны быть точными • результаты – только в конце проекта 23 Цена ошибок 24 Инкрементая (итерационная) модель • Она же – эволюционная модель • Жизненный цикл разбивается на итерации • цель каждой итерации – рабочая версия продукта 25 Инкрементая модель • Первый инкремент – базовый продукт • Последующие инкременты модифицируют • дополнительные характеристики • функциональность • Примеры методологий: • Rational Unified Process (RUP) • Экстремальное программирование (XP) 26 Инкрементая модель • Достоинства: • Быстрая реакция на изменения • Возможность отката к предыдущей итерации • Обратная связь с пользователями при демонстрации/внедрении промежуточных версий • Недостатки: • Нет цельного видения проектных ограничений и возможностей продукта - отсутствует детальный анализ на всю глубину проекта, выполняется по частям • Мотивационные риски (снижение качества) 27 Спиральная модель • Проект развивается по спирали: • на каждом витке уточняют требования и цели, планируют работы на виток вперёд • 4 этапа на каждом витке: • Планирование - определение целей, вариантов и ограничений • Анализ риска • Конструирование (разработка продукта) • Оценивание заказчиком • Примеры: • Microsoft Solution Framework (MSF) 28 Спиральная модель 29 Спиральная модель: прототипирование • Макет (прототип) – способ проверки и уточнения требований • Модель продукта: • бумажный макет (рисованная схема) • работающий прототип - реализована часть функций • существующая программа - улучшение имеющихся характеристик 30 Спиральная модель • Достоинства: • наиболее реально отображает жизненный цикл • позволяет учитывать риски на каждом витке • включает шаг системного подхода в итерационную структуру разработки • моделирование для уменьшения риска и совершенствования ПП • Недостатки: • повышенные требования к заказчику • трудности контроля и управления временем разработки 31 Проектная документация Стандарты • ГОСТ Р ИСО/МЭК ТО 9294-93. • Информационная технология. Руководство по управлению документированием программного обеспечения. • ГОСТ 19.101-77 • Виды программ и программных документов. • ГОСТ 34.201-89 • Информационная технология. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначения документов при создании автоматизированных систем. 33 • Виды программной документации Требования • ГОСТ 19.101: Техническое задание • IEEE 830: Спецификация требований (SRS) • Программные спецификации • ГОСТ 19.101-77: Описание программы, Пояснительные записки • Архитектурные документы: - высокоуровневая архитектура - низкоуровневая архитектура • Управление проектом • планы разработки, сборки, тестирования, обеспечения качества • Программа и методика испытаний • Эксплуатационные документы • Учебная и справочная документация: - Руководства пользователя, программиста, системного администратора, и т.п. 34 Ссылки • Модели жизненного цикла ПО: • Обзор - • ГОСТ Р ИСО/МЭК 12207-2010 - • http://swebok.sorlik.ru/software_lifecycle_models.html http://protect.gost.ru/document.aspx?control=7&id=176990 Программная документация: • ГОСТ Р ИСО/МЭК ТО 9294-93 - • http://ereport.sbis.ru/upload/Gost.pdf ГОСТ 19.101-77 - http://it-gost.ru/content/view/36/40 35