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

Тема 3

Жизненный цикл (ЖЦ) ПО – это непрерывный процесс, начинающийся в момент принятия решения о создании ПО и заканчивающийся в момент полного изъятия всех версий ПО из эксплуатации.

Состав процессов ЖЦ регламентируется международным стандартом 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 «Стадии разработки»):

· постановка задачи (стадия «Техническое задание»);

· анализ требований и разработка спецификаций (стадия «Эскизный проект»);

· проектирование (стадия «Технический проект»);

· реализация (стадия «Рабочий проект»);

Традиционно разработка также включала этап сопровождения (началу этого этапа соответствует стадия «Внедрение» по ГОСТ). Однако по международному стандарту этот процесс теперь рассматривается отдельно.

Постановка задачи. В процессе постановки задачи четко формулируют назначение ПО и основные требования к нему. Каждое требование представляет собой описание необходимого или желаемого свойства ПО. Различают функциональные требования, определяющие функции, которые должно выполнять разрабатываемое ПО, и эксплуатационные требования, задающие особенности его функционирования.

Требования к ПО, имеющему прототипы, обычно определяют по аналогии, учитывая структуру и характеристики уже существующего ПО. Прототип – это действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого ПО. Для формулирования требова­ний к ПО, не имеющему аналогов, иногда необходимо провести специальные предпроектные исследования.

В любом случае этап постановки задачи заканчивается разработкой технического задания (ТЗ), фиксирующего принципиальные требования, и принятием ос­новных проектных решений.

Анализ требований и определение спецификаций. Спецификация – это точное формализованное описание функций и ограничений разрабатываемого ПО. Различают функциональные и эксплуатационные спецификации. Совокупность спецификаций представляет собой общуюлогическую модель проектируемого ПО. (Модель – это описание системы, отображающее определенную группу ее свойств.)

Для получения спецификаций выполняют анализ требований ТЗ, формулируют содержательную постановку задачи, выбирают математический аппарат формализации, строят модель предметной области, определяют подзадачи и выбирают или разрабатывают методы их решения. Проектирование. Основной задачей этого этапа является определение подробных спецификаций разрабатываемого ПО. Процесс проектирования сложного ПО обычно включает:

- проектирование общей структуры – определение основных компонентов и их взаимосвязей;

- декомпозицию компонентов и построение структурных иерархий в соответствии с рекомендациями блочно-иерархического подхода;

- проектирование компонентов.

Результатом проектирования является детальная модель разрабатываемого ПО вместе со спецификациями его компонентов всех уровней. Тип модели зависит от выбранного подхода (структурный, объектный или компонентный) и конкретной технологии проектирования. Однако в любом случае процесс проектирования охватывает как проектиро­вание программ (подпрограмм) и определение взаимосвязей между ними, так и проектирование данных, с которыми взаимодействуют эти программы или подпрограммы.

Принято различать также два аспекта проектирования:

- логическое проектирование, которое включает те проектные операции, которые непосредственно не зависят от имеющихся технических и программных средств, составляющих среду функционирования будущего программного продукта;

- физическое проектирование – привязка к конкретным техническим и программным средствам среды функционирования, т.е. учет ограничений, определенных в спецификациях.

Реализация. Реализация представляет собой процесс поэтапного написания кодов программы на выбранном языке программирования (кодирование), их тестирование и отладку.

Сопровождение. Сопровождение – это процесс создания и внедрения новых версий программного продукта. Причинами выпуска новых версий могут служить:

- необходимость исправления ошибок, выявленных в процессе эксплуатации предыдущих версий;

- необходимость совершенствования предыдущих версий, например, улучшения интерфейса, расширения состава выполняемых функций или по­вышения производительности;

- изменение среды функционирования, например появление новых тех­нических средств и/или программных продуктов, с которыми взаимодейст­вует сопровождаемое ПО.

На этом этапе в программный продукт вносят необходимые изменения, которые так же, как в остальных случаях, могут потребовать пересмотра проектных решений, принятых на любом предыдущем этапе.

Рассматриваемый стандарт только называет и определяет процессы ЖЦ ПО, не конкретизируя в деталях, как реализовывать или выполнять действия и задачи, включенные в эти процес­сы. Эти вопросы регламентируются соответствующими методами, методиками и т. п.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: