2 Основным понятием программной инженерии является понятие жизненного цикла ПО. Жизненный цикл ПО (software lifecycle) – это период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. Основной нормативный документ, регламентирующий ЖЦ ПО – стандарт ISO/IEC Information Technology – Software Life Cycle Processes (ГОСТ Р ИСО/МЭК ).
3 Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные.
4 Основные процессы Приобретение ПоставкаРазработка ЭксплуатацияСопровождение Вспомогательные процессы Документирование Управление конфигурацией Обеспечение качества ВерификацияАттестация Совместная оценка АудитРазрешение проблем Организационные процессы Управление УсовершенствованиеСоздание инфраструктуры Обучение
5
6 Процесс разработки в соответствии со стандартом предусматривает действия и задачи, выполняемые разработчиком Процесс разработки охватывает работы по созданию программного обеспечения и его компонентов в соответствии с заданными требованиями включая: оформление проектной и эксплуатационной документации; подготовку материалов, необходимых для проверки работоспособности и соответствия качества программных продуктов; подготовку материалов, необходимых для обучения персонала; и т.д.
7 подготовительная работа выбор модели жизненного цикла, стандартов, методов и средств разработки, а также составление плана работ анализ требований к системе определение её функциональных возможностей, пользовательских требований, требований к надёжности и безопасности, требований к внешним интерфейсам и т.д. проектирование архитектуры системы определение состава необходимого оборудования, программного обеспечения и операций, выполняемых обслуживающим персоналом анализ требований к программному обеспечению определение функциональных возможностей, включая характеристики производительности, среды функционирования компонентов, внешних интерфейсов, спецификаций надёжности и безопасности, эргономических требований, требований к используемым данным, установке, приёмке, пользовательской документации, эксплуатации и сопровождению
8 проектирование архитектуры программного обеспечения определение структуры программного обеспечения, документирование интерфейсов его компонентов, разработку предварительной версии пользовательской документации, а также требований к тестам и плана интеграции детальное проектирование программного обеспечения подробное описание компонентов программного обеспечения и интерфейсов между ними, обновление пользовательской документации, разработка и документирование требований к тестам и плана тестирования компонентов программного обеспечения, обновление плана интеграции компонентов кодирование и тестирование программного обеспечения разработка и документирование каждого компонента, а также совокупности тестовых процедур и данных для их тестирования, тестирование компонентов, обновление пользовательской документации, обновление плана интеграции программного обеспечения интеграция программного обеспечения сборка программных компонентов в соответствии с планом интеграции и тестирование программного обеспечения на соответствие квалификационным требованиям, представляющих собой набор критериев или условий, которые необходимо выполнить, чтобы квалифицировать программный продукт, как соответствующий своим спецификациям и готовый к использованию в заданных условиях эксплуатации
9 квалификационное тестирование программного обеспечения тестирование программного обеспечения в присутствии заказчика для демонстрации его соответствия требованиям и готовности к эксплуатации; при этом проверяются также готовность и полнота технической и пользовательской документации. интеграция системы сборка всех компонентов системы, включая программное обеспечение и оборудование квалификационное тестирование системы тестирование системы на соответствие требованиям к ней; проверка оформления и полноты документации установка программного обеспечения установка программного обеспечения на оборудовании заказчика проверка его работоспособности приёмка программного обеспечения оценка результатов квалификационного тестирования программного обеспечения и системы в целом и документирование результатов оценки совместно с заказчиком, окончательная передача программного обеспечения заказчику
10
11 Указанные выше действия можно сгруппировать, условно выделив основные этапы разработки программного обеспечения. Условность выделения этапов связана с тем, что на любом этапе возможно принятие решений, которые потребуют пересмотра решений, принятых ранее. Каждому этапу можно поставить в соответствие стадию разработки по ГОСТ –77 «Стадии разработки».
12
13 Традиционно разработка также включала этап сопровождения (началу этого этапа соответствует стадия «Внедрение» по ГОСТ). Однако по международному стандарту в соответствии с изменениями, произошедшими в индустрии разработки программного обеспечения, этот процесс теперь рассматривается отдельно. Традиционно разработка также включала этап сопровождения (началу этого этапа соответствует стадия «Внедрение» по ГОСТ). Однако по международному стандарту в соответствии с изменениями, произошедшими в индустрии разработки программного обеспечения, этот процесс теперь рассматривается отдельно.
В процессе постановки задачи чётко формулируют назначение программного обеспечения и определяют основные требования к нему.
15 Требование – это условие, которому должно удовлетворять программное обеспечение, или свойство, которым оно должно обладать, чтобы: удовлетворить потребность пользователя в решении некоторой задачи; удовлетворить требования контракта, спецификации или стандарта. Функциональные определяют действия, которые должна выполнять система, без учета ограничений, связанных с ее реализацией функциональные требования определяют поведение системы в процессе обработки информации Нефункциональные ( эксплуатационные ) не определяют поведение системы, но описывают атрибуты системы или атрибуты системного окружения
16 Этап постановки задачи заканчивается разработкой технического задания, фиксирующего принципиальные требования, и принятием основных проектных решений.
Спецификация требований к ПО является основным документом, определяющим план разработки ПО.
18 Совокупность спецификаций представляет собой общую логическую модель проектируемого программного обеспечения. Спецификация – точное формализованное описание функций и ограничений разрабатываемого программного обеспечения. Различают функциональные и эксплуатационные спецификации. Часть спецификаций может быть определена в процессе предпроектных исследований и, соответственно, зафиксирована в техническом задании. На этом этапе также целесообразно сформировать тесты для поиска ошибок в проектируемом программном обеспечении, обязательно указав ожидаемые результаты.
19 выбор или разработка методов решения подзадач определение подзадач построение модели предметной области выбор математического аппарата формализации формулировка содержательной постановки задачи анализ требований технического задания
Основной задачей этого этапа является определение подробных спецификаций разрабатываемого программного обеспечения.
21 проектирование компонентов декомпозиция компонентов и построение структурных иерархий в соответствии с рекомендациями блочно-иерархического подхода проектирование общей структуры определение основных компонентов и их взаимосвязей Результатом проектирования является детальная модель разрабатываемого программного обеспечения вместе со спецификациями его компонентов всех уровней. Процесс проектирования охватывает как проектирование программ (подпрограмм) и определение взаимосвязей между ними, так и проектирование данных, с которыми взаимодействуют эти программы или подпрограммы.
22 Принято различать два аспекта проектирования: Логическое проектирование проектные операции, которые непосредственно не зависят от имеющихся технических и программных средств, составляющих среду функционирования будущего программного продукта Физическое проектирование привязка к конкретным техническим и программным средствам среды функционирования, т.е. учёт ограничений, определённых в спецификациях
Реализация представляет собой процесс поэтапного написания кодов программы на выбранном языке программирования (кодирование), их тестирование и отладку.
Сопровождение – это процесс создания и внедрения новых версий программного продукта. На этом этапе в программный продукт вносят необходимые изменения, которые так же, как в остальных случаях, могут потребовать пересмотра проектных решений, принятых на любом предыдущем этапе.
25 необходимость исправления ошибок, выявленных в процессе эксплуатации предыдущих версий необходимость совершенствования предыдущих версий, например, улучшения интерфейса, расширения состава выполняемых функций или повышения его производительности изменение среды функционирования, например, появление новых технических средств и/или программных продуктов, с которыми взаимодействует сопровождаемое программное обеспечение
26 С изменением модели жизненного цикла программного обеспечения существенно возросла роль этапа сопровождения, так как продукты теперь создаются итерационно: сначала выпускается сравнительно простая версия, затем следующая с большими возможностями, затем следующая и т.д. Именно это и послужило причиной выделения этапа сопровождения в отдельный процесс жизненного цикла в соответствии со стандартом ISO/IEC С изменением модели жизненного цикла программного обеспечения существенно возросла роль этапа сопровождения, так как продукты теперь создаются итерационно: сначала выпускается сравнительно простая версия, затем следующая с большими возможностями, затем следующая и т.д. Именно это и послужило причиной выделения этапа сопровождения в отдельный процесс жизненного цикла в соответствии со стандартом ISO/IEC