Презентация "Жизненный цикл программного обеспечения"

Подписи к слайдам:
Основы программной инженерии
  • Барышникова Марина Юрьевна
  • МГТУ им. Н.Э. Баумана
  • Каф. ИУ-7
  • [email protected]
Лекция 3
  • Жизненный цикл программного обеспечения
Жизненный цикл программного обеспечения
  • это период времени, который начинается с момента принятия решения о необходимости создания программного обеспечения и заканчивается в момент его полного изъятия из эксплуатации
  • (IEEE Std. 610.12 – 19990 Standard Glossary of Software Engineering Terminology)
Основные понятия, участвующие в определении жизненного цикла
  • Артефакты — создаваемые человеком информационные сущности – документы, в достаточно общем смысле участвующие в качестве входных данных и получающиеся в качестве результатов различных деятельностей.
  • Роль - абстрактная группа заинтересованных лиц, участвующих в деятельности по созданию и эксплуатации системы, решающих одни и те же задачи или имеющих одни и те же интересы по отношению к ней
  • Программный продукт – набор компьютерных программ, процедур и, возможно связанных с ними документации и данных
  • Процесс – совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные
  • Жизненный цикл ПО согласно стандарту ISO/IEC 12207: 1995 «International Technology – Software Life Cycle Processes» (ГОСТ ИСО МЭК 12207-99 Информационные технологии. Жизненный цикл программного обеспечения)
  • Жизненный цикл
  • Организационные процессы
  • Основные процессы
  • Вспомогательные процессы
  • Приобретение
  • Поставка
  • Разработка
  • Эксплуатация
  • Сопровождение
  • Управление проектом
  • Создание инфраструктуры
  • Оценка и улучшение жизненного цикла
  • Обучение
  • Документирование
  • Управление конфигурацией
  • Обеспечение качества
  • Верификация
  • Аттестация
  • Совместная оценка
  • Аудит
  • Разрешение проблем
  • Процесс приобретения ПО
  • Определяет действия заказчика, приобретающего программное обеспечение или услуги, связанные с ПО, на основе контрактных отношений
  • В ходе данного процесса заказчиком выполняются следующие действия:
  • осознание своих потребностей в программной системе и принятие решения относительно покупки, разработки под заказ или усовершенствования существующей системы;
  • подготовка заявочных предложений, содержащих требования к системе, условия ее функционирования и технические ограничения, а также другие условия контракта
  • Приобретение - процесс получения системы, программного продукта или программной услуги
  • Процесс поставки
  • Определяет действия организации-поставщика по отношению к заявочным предложениям заказчика
  • Процесс включает в себя:
  • рассмотрение заявочных предложений заказчика и внесение в них своих коррективов (при необходимости);
  • подготовку договора с заказчиком;
  • планирование выполнения работ (при этом работы могут выполняться своими силами или с привлечением субподрядчика);
  • разработку организационной структуры проекта, технических требований к среде разработки и ресурсам, мероприятий по управлению проектом и др.
  • Процесс поставки отвечает за выполнение процессов разработки, эксплуатации и (или) сопровождения
Процесс разработки
  • Определяет действия, выполняемые разработчиком в процессе создания программного обеспечения и его компонентов в соответствии с заданными требованиями
  • Данный процесс включает, в том числе:
  • оформление проектной и эксплуатационной документации;
  • подготовку материалов, необходимых для проверки работоспособности программного продукта и его соответствия стандартам качества;
  • разработку материалов (методических и учебных), необходимых для подготовки и обучения персонала и т.д.
Процесс разработки
  • Выбор модели жизненного цикла
  • Анализ требований к системе
  • Проектирование архитектуры системы
  • Анализ программных требований
  • Детальное конструирование ПО
  • Кодирование и тестирование ПО
  • Интеграция ПО
  • Квалификационное тестирование ПО
  • Интеграция системы
  • Квалификационное тестирование системы
  • Установка ПО
  • Приемка ПО
Анализ требований к системе
  • На данном этапе рассматривается область применения системы. Список требований к разрабатываемой системе должен включать:
  • совокупность условий, при которых предполагается эксплуатировать будущую систему (аппаратные и программные ресурсы, предоставляемые системе; внешние условия ее функционирования; состав людей и работ, имеющих к ней отношение);
  • описание выполняемых системой функций;
  • ограничения в процессе разработки (директивные сроки завершения отдельных этапов, имеющиеся ресурсы, организационные процедуры и мероприятия, обеспечивающие защиту информации и пр.)
  • Требования к системе оцениваются исходя из критериев
  • реализуемости и возможности проверки при тестировании
Анализ требований к ПО
  • Предполагает определение следующих характеристик для каждого компонента ПО:
  • функциональных возможностей, включая характеристики производительности и среды функционирования компонента
  • внешних интерфейсов
  • спецификаций надежности и безопасности;
  • эргономических требований
  • требований к используемым данным
  • требований к установке и приемке
  • требований к пользовательской документации
  • требований к эксплуатации и сопровождению
Проектирование архитектуры ПО
  • В рамках проектирования архитектуры для каждого компонента ПО выполняются следующие задачи:
  • определение на высоком уровне абстракции структуры программного обеспечения и состава его компонентов
  • разработка и документирование программных интерфейсов ПО и баз данных
  • разработка предварительной версии пользовательской документации
  • разработка и документирование предварительных требований к тестам и плана интеграции ПО
  • Архитектура программного обеспечения (software architecture)
  • представляет собой описание подсистем и компонентов программной
  • системы, а также связей между ними
Детальное конструирование ПО (рабочий план разработки ПО)
  • Включает следующие задачи:
  • описание компонентов ПО и интерфейсов между ними в объеме, достаточном для их последующего самостоятельного кодирования и тестирования
  • разработку и документирование детального проекта базы данных
  • обновление пользовательской документации
  • разработку и документирование требований к тестам и плана тестирования компонентов ПО
  • обновление плана интеграции ПО
Кодирование и тестирование ПО подразумевает решение следующих задач:
  • разработку (кодирование) и документирование каждого компонента ПО и базы данных, а также совокупности тестовых процедур и данных для тестирования
  • тестирование каждого компонента ПО и базы данных на соответствие предъявляемым к ним требованиям
  • обновление (при необходимости) пользовательской документации
  • обновление плана интеграции ПО
Интеграция системы
  • заключается в сборке всех ее компонентов, включая ПО и оборудование, и тестирование агрегированных компонентов
  • В процессе интеграции также производится оформление и проверка полного комплекта документации на систему
Квалификационное тестирование ПО
  • проводится разработчиком в присутствии заказчика для демонстрации того, что ПО удовлетворяет своим спецификациям и готово к использованию в условиях эксплуатации
  • При этом также проверяются полнота технической и пользовательской документации и ее адекватность компонентам ПО
Установка и приемка ПО
  • Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором. В процессе установки проверяется работоспособность ПО и баз данных
  • Приемка ПО предусматривает оценку результатов квалификационного тестирования системы и документирование результатов оценки, которое производится заказчиком с помощью разработчика. Разработчик выполняет окончательную передачу ПО заказчику в соответствии с договором, обеспечивая при этом необходимое обучение и поддержку
Эксплуатация ПО
  • Эксплуатация системы выполняется в предназначенной для этого среде в соответствии с пользовательской документацией
  • Включает установление эксплуатационных стандартов и проведение эксплуатационного тестирования
Сопровождение ПО (согласно стандарту IEEE – 90 )
  • внесение изменений в ПО в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям
  • Функции службы сопровождения:
  • анализ проблем и запросов на модификацию ПО
  • модификация программного продукта
  • его проверка и приемка
  • перенос ПО в другую среду
  • снятие ПО с эксплуатации
Вспомогательные процессы жизненного цикла ПО
  • Документирование
  • Управление конфигурацией
  • Обеспечение качества
  • Верификация
  • Аттестация
  • Совместная оценка
  • Аудит
  • Разрешение проблем
Процесс документирования
  • Документирование - формализованное описание информации, созданной в течение всего жизненного цикла ПО
  • Это набор действий, с помощью которых планируют, проектируют, разрабатывают, выпускают, редактируют, распространяют и сопровождают документы, необходимые для всех заинтересованных лиц, участвующих в разработке ПО, а также для пользователей системы
Управление конфигурацией
  • Конфигурация программного обеспечения – это совокупность его функциональных и физических характеристик, установленных в технической документации и реализованных в программах
  • Процесс позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях жизненного цикла
  • Общие принципы и рекомендации по управлению конфигурацией отражены
  • в стандарте ISO/IEC CD 12207 – 2:1995 “Information Technology – Software
  • Cycle Processes. Part 2. Configuration Management for Software”
Процесс обеспечения качества
  • Обеспечивает гарантии того, что программный продукт и процессы его жизненного цикла соответствуют заданным требованиям, а также выработанным и утвержденным планам работ
  • Процесс призван обеспечить гарантированное соответствие процессов жизненного цикла, среды разработки и квалификации персонала условиям договора, установленным стандартам и процедурам. Для этого должны быть обеспечены качество продукта, качество процесса и прочие показатели качества системы
  • Качество – совокупность свойств, характеризующих
  • способность программного обеспечения удовлетворять
  • заданным требованиям и нуждам всех заинтересованных
  • сторон
Верификация
  • Это процесс определения того, отвечает ли текущее состояние разработки, достигнутое на данном этапе, требованиям этого этапа. В процессе верификации проверяются следующие условия:
  • непротиворечивость требований к системе и степень учета потребностей пользователя
  • возможности поставщика выполнить заданные требования
  • соответствие выбранных процессов ЖЦ ПО условиям договора
  • адекватность стандартов, процедур и среды разработки процессам ЖЦ ПО
  • соответствие проектных спецификаций заданным требованиям
  • корректность описания в проектных спецификациях входных и выходных данных, последовательности событий, логики и т.д.
  • соответствие кода проектным спецификациям и требованиям
  • тестируемость и корректность кода, его соответствие принятым стандартам кодирования
  • корректность интеграции компонентов ПО в систему
  • адекватность, полнота и непротиворечивость документации
  • Верификация представляет собой совокупность действий по сравнению
  • полученного результата жизненного цикла с требуемыми характеристиками
  • для этого результата, что рассматривается как формальное доказательство
  • правильности ПО
Аттестация
  • предусматривает определение полноты соответствия заданных требований и созданной системы или программного продукта их конкретному функциональному назначению
  • Верификация и аттестация - два взгляда на качество:
  • если верификация оценивает ПО с точки зрения того как оно создается,
  • то аттестация рассматривает программную систему с точки зрения того,
  • что она делает (т.е. оценивается способность программной системы
  • удовлетворить функциональные потребности пользователей)
Организационные процессы жизненного цикла ПО
  • Управление
  • Создание инфраструктуры (инфраструктура программного проекта включает в себя технологии и стандарты, а также совокупность аппаратных, программных и инструментальных средств для разработки, эксплуатации или сопровождения ПО)
  • Усовершенствование
  • Обучение (первоначальное обучение и последующее постоянное повышение квалификации персонала, включая разработку методических материалов)
Группы стандартов ЕСПД
  • Kод группы 
  • Наименование группы 
  • 0
  • Общие положения
  • 1
  • Основополагающие стандарты
  • 2
  • Правила выполнения документации разработки
  • 3
  • Правила выполнения документации изготовления
  • 4
  • Правила выполнения документации сопровождения
  • 5
  • Правила выполнения эксплуатационной документации
  • 6
  • Правила обращения программной документации
  • 7
  • Резервные группы
  • 8
  • 9
  • Прочие стандарты
  • Обозначение стандарта ЕСПД состоит из:
  • числа 19 (присвоенного классу стандартов ЕСПД);
  • одной цифры (после точки), обозначающей код классификационной группы стандартов, указанный в таблице;
  • двузначного числа (после тире), указывающего год регистрации стандарта
Перечень документов ЕСПД
  • ГОСТ 19.001-77 ЕСПД. Общие положения
  • ГОСТ 19.101-77 ЕСПД. Виды программ и программных документов
  • ГОСТ 19.102-77 ЕСПД. Стадии разработки
  • ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов
  • ГОСТ 19.104-78 ЕСПД. Основные надписи
  • ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам
  • ГОСТ 19.106-78 ЕСПД. Требования к программным документам, выполненным печатным способом
  • ГОСТ 19.201-78 ЕСПД. Техническое задание. Требования к содержанию и оформлению
  • ГОСТ 19.202-78 ЕСПД. Спецификация. Требования к содержанию и оформлению
  • ГОСТ 19.301-79 ЕСПД. Порядок и методика испытаний
  • ГОСТ 19.401-78 ЕСПД. Текст программы. Требования к содержанию и оформлению
  • ГОСТ 19.402-78 ЕСПД. Описание программы
  • ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению
  • ГОСТ 19.501-78 ЕСПД. Формуляр. Требования к содержанию и оформлению
  • ГОСТ 19.502-78 ЕСПД. Описание применения. Требования к содержанию и оформлению
  • ГОСТ 19.503-79 ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению
  • ГОСТ 19.504-79 ЕСПД. Руководство программиста
  • ГОСТ 19.505-79 ЕСПД. Руководство оператора
  • ГОСТ 19.506-79 ЕСПД. Описание языка
  • ГОСТ 19.508-79 ЕСПД. Руководство по техническому обслуживанию. Требования к содержанию и оформлению
  • ГОСТ 19.604-78 ЕСПД. Правила внесения изменений в программные документы, выполняемые печатным способом
  • ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения
  • ГОСТ 19.781-90. Обеспечение систем обработки информации
Преимущества использования стандартов ЕСПД
  • стандарты ЕСПД вносят элемент упорядочения в процесс документирования программных средств (ПС);
  • несмотря на наличие требований к комплекту документации на ПС , предусмотренной стандартами ЕСПД, они позволяют вносить дополнительные виды документов;
  • стандарты ЕСПД позволяют мобильно изменять структуры и содержание установленных видов программных документов исходя из требований заказчика и пользователя
Недостатки стандартов ЕСПД
  • ориентация на единственную, «каскадную» модель жизненного цикла ПО;
  • отсутствие четких рекомендаций по документированию характеристик качества программного средства;
  • отсутствие системной увязки с другими действующими отечественными системами стандартов по жизненному циклу и документированию продукции в целом, например, ЕСКД;
  • нечетко выраженный подход к документированию ПС как товарной продукции;
  • отсутствие рекомендаций по самодокументированию ПС, например, в виде экранных меню и средств оперативной помощи пользователю («хелпов»);
  • отсутствие рекомендаций по составу, содержанию и оформлению документов на программные средства, согласованных с рекомендациями международных и региональных стандартов
Стандарт ГОСТ 34.601-90: стадии и этапы создания автоматизированной системы
  • Формирование требований к АС
    • Обследование объекта и обоснование необходимости создания АС
    • Формирование требований пользователя к АС
    • Оформление отчета о выполнении работ и заявки на разработку АС
  • Разработка концепции АС
    • Изучение объекта
    • Проведение необходимых научно-исследовательских работ
    • Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователей
    • Оформление отчета о проделанной работе
  • Техническое задание
    • Разработка и утверждение технического задания на создание АС
  • Эскизный проект
    • Разработка предварительных проектных решений по системе и ее частям
    • Разработка документации на АС и ее части
Технический проект
  • Технический проект
    • Разработка проектных решений по системе и ее частям
    • Разработка документации на АС и ее части
    • Разработка и оформление документации на поставку комплектующих изделий
    • Разработка заданий на проектирование в смежных частях проекта
  • Рабочая документация
    • Разработка рабочей документации на АС и ее части
    • Разработка и адаптация программ
  • Ввод в действие
    • Подготовка объекта автоматизации
    • Подготовка персонала
    • Комплектация АС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями)
    • Строительно-монтажные работы
    • Пусконаладочные работы
    • Проведение предварительных испытаний
    • Проведение опытной эксплуатации
    • Проведение приемочных испытаний
  • Сопровождение АС
    • Выполнение работ в соответствии с гарантийными обязательствами
    • Послегарантийное обслуживание
  • Стандарт ГОСТ 34.601-90: стадии и этапы создания автоматизированной системы