Жизненный цикл и этапы разработки программного обеспечения
Жизненный цикл (ЖЦ) ПО – это непрерывный процесс, начинающийся в момент принятия решения о создании ПО и заканчивающийся в момент полного изъятия всех версий ПО из эксплуатации. Состав процессов ЖЦ регламентируется международным стандартом ISO/IEC 12207:1995 «Information Technology - Software Life Cycle Process». ISO - International Organization for Standartization - Международная организация по стандартизации. IEC - International Electrotechnical Comission - Международная комиссия по электротехнике. Этот стандарт описывает структуру ЖЦ ПО и его процессы. Процесс ЖЦ определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами. В соответствии с этим стандартом структура ЖЦ основывается на трех группах процессов: 1. основные процессы ЖЦ (приобретение, поставка, разработка, эксплуатация, сопровождение); 2. вспомогательные процессы, обеспечивающие выполнение основных (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, разрешение проблем); 3. организационные процессы (управление, создание инфраструктуры, усовершенствование, обучение). Рассмотрим подробнее один из основных процессов – процесс разработки. По стандарту ISO / IEC процесс разработки включает следующие действия: · подготовительную работу – выбор модели ЖЦ, стандартов, методов и средств разработки, а также составление плана работ; · анализ требований к системе – определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, требований к внешним интерфейсам и т.д.;
· проектирование архитектуры системы – определение состава необходимого оборудования, ПО и операций, выполняемых обслуживающим персоналом; · анализ требований к ПО – определение функциональных возможностей, включая характеристики производительности, среды функционирования компонентов, внешних интерфейсов, спецификаций надежности и безопасности, эргономических требований, требований к используемым данным, установке, приемке, пользовательской документации, эксплуатации и сопровождению; · проектирование архитектуры ПО – определение структуры ПО, документирование интерфейсов его компонентов, разработку предварительной версии пользовательской документации, а также требований к тестам и плана интеграции; · детальное проектирование ПО – подробное описание компонентов ПО и интерфейсов между ними, обновление пользовательской документации, разработку и документирование требований к тестам и др.; · кодирование и тестирование ПО – разработку и документирование каждого компонента, а также совокупности тестовых процедур и данных для их тестирования, тестирование компонентов и т.д.; · интеграцию ПО – сборку программных компонентов в соответствии с планом интеграции, тестирование ПО на соответствие квалификационным требованиям; · квалификационное тестирование ПО – тестирование ПО в присутствии ммированиязаказчика для демонстрации его соответствия требованиям и готовности к эксплуатации; проверка готовности и полноты всей документации; · интеграцию системы – сборку всех компонентов системы, включая ПО и оборудование; · установку ПО – установку ПО на оборудовании заказчика и проверку его работоспособности; · приемку ПО – оценку результатов квалификационного тестирования ПО и системы в целом и документирование результатов оценки совместно с заказчиком, окончательную передачу ПО заказчику.
Указанные действия можно сгруппировать, условно выделив следующие основные этапы разработки ПО (стадии разработки по ГОСТ 19.102-77 «Стадии разработки»): · постановка задачи (стадия «Техническое задание»); · анализ требований и разработка спецификаций (стадия «Эскизный проект»); · проектирование (стадия «Технический проект»); · реализация (стадия «Рабочий проект»); Традиционно разработка также включала этап сопровождения (началу этого этапа соответствует стадия «Внедрение» по ГОСТ). Однако по международному стандарту этот процесс теперь рассматривается отдельно. Постановка задачи. В процессе постановки задачи четко формулируют назначение ПО и основные требования к нему. Каждое требование представляет собой описание необходимого или желаемого свойства ПО. Различают функциональные требования, определяющие функции, которые должно выполнять разрабатываемое ПО, и эксплуатационные требования, задающие особенности его функционирования. Требования к ПО, имеющему прототипы, обычно определяют по аналогии, учитывая структуру и характеристики уже существующего ПО. Прототип – это действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого ПО. Для формулирования требований к ПО, не имеющему аналогов, иногда необходимо провести специальные предпроектные исследования. В процессе таких исследований определяют разрешимость задачи, возможно, разрабатывают методы ее решения (если они новые) и устанавливают наиболее существенные характеристики разрабатываемого ПО. Для выполнения предпроектных исследований, как правило, заключают договор на выполнение НИР. В любом случае этап постановки задачи заканчивается разработкой технического задания (ТЗ), фиксирующего принципиальные требования, и принятием основных проектных решений. Анализ требований и определение спецификаций. Спецификация – это точное формализованное описание функций и ограничений разрабатываемого ПО. Различают функциональные и эксплуатационные спецификации. Совокупность спецификаций представляет собой общуюлогическую модель проектируемого ПО. (Модель – это описание системы, отображающее определенную группу ее свойств.)
Для получения спецификаций выполняют анализ требований ТЗ, формулируют содержательную постановку задачи, выбирают математический аппарат формализации, строят модель предметной области, определяют подзадачи и выбирают или разрабатывают методы их решения. Часть спецификаций может быть определена в процессе предпроектных исследований и соответственно зафиксирована в техническом задании. На этом этапе также целесообразно сформировать тесты для поиска ошибок в проектируемом программном обеспечении, обязательно указав ожидаемые результаты. Проектирование. Основной задачей этого этапа является определение подробных спецификаций разрабатываемого ПО. Процесс проектирования сложного ПО обычно включает: · проектирование общей структуры – определение основных компонентов и их взаимосвязей; · декомпозицию компонентов и построение структурных иерархий в соответствии с рекомендациями блочно-иерархического подхода; · проектирование компонентов. Результатом проектирования является детальная модель разрабатываемого ПО вместе со спецификациями его компонентов всех уровней. Тип модели зависит от выбранного подхода (структурный, объектный или компонентный) и конкретной технологии проектирования. Однако в любом случае процесс проектирования охватывает как проектирование программ (подпрограмм) и определение взаимосвязей между ними, так и проектирование данных, с которыми взаимодействуют эти программы или подпрограммы. Принято различать также два аспекта проектирования: · логическое проектирование, которое включает те проектные операции, которые непосредственно не зависят от имеющихся технических и программных средств, составляющих среду функционирования будущего программного продукта; · физическое проектирование – привязка к конкретным техническим и программным средствам среды функционирования, т.е. учет ограничений, определенных в спецификациях. Реализация. Реализация представляет собой процесс поэтапного написания кодов программы на выбранном языке программирования (кодирование), их тестирование и отладку.
Сопровождение. Сопровождение – это процесс создания и внедрения новых версий программного продукта. Причинами выпуска новых версий могут служить: · необходимость исправления ошибок, выявленных в процессе эксплуатации предыдущих версий; · необходимость совершенствования предыдущих версий, например, улучшения интерфейса, расширения состава выполняемых функций или повышения производительности; · изменение среды функционирования, например появление новых технических средств и/или программных продуктов, с которыми взаимодействует сопровождаемое ПО. На этом этапе в программный продукт вносят необходимые изменения, которые так же, как в остальных случаях, могут потребовать пересмотра проектных решений, принятых на любом предыдущем этапе. С появлением спиральной модели ЖЦ ПО роль этого этапа существенно возросла, так как программные продукты теперь создаются итерационно: сначала выпускается сравнительно простая версия, затем следующая с большими возможностями, затем следующая и т. д. Именно это и послужило причиной выделения этапа сопровождения в отдельный процесс жизненного цикла в соответствии со стандартом ISO / I ЕС 12207. Рассматриваемый стандарт только называет и определяет процессы ЖЦ ПО, не конкретизируя в деталях, как реализовывать или выполнять действия и задачи, включенные в эти процессы. Эти вопросы регламентируются соответствующими методами, методиками и т. п. Примечание. Подробное рассмотрение вопросов, касающихся моделей ЖЦ ПО (каскадной и спиральной), а также технологии ускоренной разработки ПО (технологии RAD) будет осуществлено на третьем курсе в рамках дисциплины «Теория информационных процессов и систем».
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|