11
Следует подчеркнуть, что стандарт ГОСТ Р ИСО/МЭК 12207-99 не является ни руководством к действию, ни алгоритмом, ни технологией, так как носит лишь рекомендательный характер и определяет терминологию, процессы и работы, связанные с разработкой, приобретением, эксплуатацией, сопровождением и т.д. программных продуктов (информационных систем). Приведём примеры описания некоторых процессов жизненного цикла информационной системы:
1.Основные процессы жизненного цикла.
1.1.Приобретение готовых ИС.
1.2.Поставка программного продукта или услуги.
1.3.Создание программного продукта, оформление проектной и эксплуатационной документации, подготовка тестовых и учебных материалов, а также внедрение и адаптация.
1.4.Эксплуатация.
1.5.Сопровождение (внесений изменений в программное обеспечение в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям).
2.Вспомогательные процессы жизненного цикла.
2.1.Документирование процесса разработки.
2.2.Управление конфигурацией программного комплекса.
2.3.Обеспечение качества программных средств.
3.Организационные процессы жизненного цикла.
3.1.Управление проектом создания информационной системы.
3.2.Создание инфраструктуры (выбор и сопровождение технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных продуктов, используемых для разработки, эксплуатации или сопровождения).
3.3.Усовершенствование (оценка, измерение, контроль и усовершенствование процессов).
3.4.Обучение (первоначальное обучение и последующее постоянное повы-
шение квалификации персонала).
Итак, вопросы технологии программирования, в т.ч. вопросы организации процессов жизненного цикла программных продуктов остаются вне компетенции стандарта и являются авторскими идеями, открытыми или закрытыми, апробированными на реальных проектах или остающимися в виде теоретических постулатов. Рассмотрим некоторые из них на примерах каскадной, спиральной и итерационной моделей жизненного цикла программных продуктов.
12
Модель жизненного цикла информационной системы − совокупность последовательностей выполнения и взаимосвязи процессов, действий и задач на протяжении жизненного цикла. Модель жизненного цикла зависит от специфики, масштаба и сложности проекта и условий, в которых система создается и функционирует. В состав модели жизненного цикла входят стадии и результаты выполнения работ на каждой стадии (артефакты в виде ключевых событий, т.е. документы, решения, проекты, программные модули и т.д.). Под стадией следует понимать часть процесса создания информационной системы, ограниченную определёнными временными рамками и заканчивающуюся созданием артефакта, соответствующего заданным для данной стадии требованиям. На каждой стадии могут выполняться несколько процессов (см. стандарт ГОСТ Р ИСО/МЭК 12207-99), равно как и один и тот же процесс может выполняться на различных стадиях.
1.2. Каскадная модель жизненного цикла ИС
Каскадная модель жизненного цикла («модель водопада») была разработана в 1970 г. Данная модель предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определённые на стадии формирования требований, строго документируются в виде технического задания. Техническое задание является основным документом, который служит перечнем обязательных к реализации задач. Такой документ закрыт для изменений после своего создания до момента завершения разработки проекта. Каждый этап в ходе исполнения задач завершается созданием артефакта − выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена далее, возможно даже другой командой разработчиков (при условии сохранения команды лидеров).
Этапы проекта в соответствии с каскадной моделью:
1)формирование требований (фиксация требований в виде документа);
2)проектирование (фиксация рабочего, а затем технического проекта);
3)реализация (исполнение кода);
4)тестирование;
5)ввод в действие;
6)эксплуатация и сопровождение.
К достоинствам данной модели следует отнести чёткое определение последовательности этапов работ, выполнение работ согласно утверждённому календарному графику, отслеживание этапов выполнения, возможность предварительной
13
оценки затрат ресурсов на разработку. Каскадная модель с успехом применялась и применяется при осуществлении проектов использующих процедурные, собы- тийно-неориентированные технологии программирования (разработка аппарат- но-зависимых программ).
Главным недостатком данной модели жизненного цикла является отсутствие возможности внесения изменений в законченный этап проекта. Например, этап формирования перечня функциональных требований завершается фиксированием данного перечня в виде согласованного и подписанного сторонами (т.е. разработчиком и заказчиком) документа в виде технического задания и, возможно, совершением оплаты работ по данному этапу. При этом внесение последующих изменений в перечень функциональных требований будет не только противоречить принятому регламенту работ, но и требовать дополнительных, несогласованных затрат со стороны разработчика. Крайне затруднено будет также внесение последующих исправлений и доработок в созданный и отлаженный исходный программный код, так как он реализует зафиксированные структурные элементы и функции системы, соответствующие техническому заданию. С точки зрения теории систем такой подход не позволяет системе развиваться, так как отсутствует возможность изменения структуры программной системы в ответ на изменение граничных условий существования самой системы (иначе – в условиях постоянно изменяющихся функциональных требований к информационной системе).
1.3. Спиральная модель жизненного цикла ИС
Спиральная модель была разработана в середине 1980-х годов. Она основана на классическом цикле Дёминга PDCA (англ. plan−do−check−act − планирование, выполнение, контроль, исполнение). При использовании этой модели жизненного цикла информационная система создаётся за несколько многократноповторяющихся не рекурсивных процессов (итераций). На каждой итерации создаётся фрагмент (прототип) информационной системы, который уточняется и дорабатывается на следующей итерации (витке спирали). Таким образом, начиная с прообраза (прототипа) некоторых основных функций и(или) внешних интерфейсов системы, каждый новый шаг итерации привносит и реализует на новом витке новые возможности проекта. На каждом шаге итерации оценивается качество полученных результатов (в виде артефактов) и планируются работы для следующей итерации.
На каждой итерации оцениваются:
14
1)риск превышения сроков и стоимости проекта;
2)необходимость выполнения ещё одной итерации;
3)степень полноты и точности понимания требований к системе;
4)целесообразность завершения работы над проектом.
Один из примеров реализации спиральной модели — RAD (англ. Rapid Application Development, метод быстрой разработки приложений).
К недостатком данной модели следует отнести необходимость дополнительных затрат на организацию более плотного и постоянного взаимодействия с заказчиком, обязательное создание группы квалифицированных системных аналитиков для изучения предметной области и группы управления проектом, а также сложности в оценке и методике предварительной оценки затрат на разработку информационной системы.
Спиральная модель требует применения объектно-ориентированной технологии анализа и программирования. При осуществлении проектов применяется модульное и компонентное программирование, реализуется событийноориентированный интерфейс.
Главным достоинствам данной модели жизненного цикла является возможность внесения изменений на любом этапе проекта. Например, процесс формирования новых, либо уточнения уже имеющихся функциональных требований может продолжаться даже на этапе доработки и обновления системы. При этом внесение изменений и исправлений в созданный и отлаженный исходный программный код возможно не только без его коренного изменения и переработки, но, наоборот, с максимальным использованием ранее написанного кода. С точки зрения теории систем такой подход позволяет программному продукту развиваться и быть адаптируемым к изменяющимся функциональным требованиям.
1.4. Итерационная модель жизненного цикла ИС
Итерационный подход представляет собой сочетание каскадной и спиральной моделей. Итерационная модель реализована в современной технологии RUP (от англ. Rational Unified Process — унифицированный процесс разработки программного обеспечения), созданной компанией Rational Software. Процессом называется упорядоченное неким образом множество шагов, направленных на достижение некоторой цели. В контексте проектирования программного обеспечения целью является поставка программного продукта, удовлетворяющего требованиям, в заданные сроки и в пределах заранее составленной сметы. Организация процесса RUP позволяет ему быть адаптируемым для самых разных про-
15
ектов. С точки зрения управления проектом RUP-процесс предлагает упорядоченный подход к тому, как должны распределяться работа и ответственность в организации, занимающейся производством программного обеспечения.
Воснове RUP лежат следующие основные принципы:
1)ранняя идентификация и непрерывное (до окончания проекта) устранение основных рисков;
2)концентрация на выполнении требований заказчиков к исполняемой программе (анализ и построение модели прецедентов);
3)готовность к изменениям в требованиях и проектных решениях при в процессе разработки;
4)компонентная архитектура, реализуемая и тестируемая на ранних стадиях проекта информационной системы;
5)постоянный мониторинг качества на всех этапах разработки проекта;
6)работа над проектом в команде под руководством центрального звена системных аналитиков.
Вконце каждой итерации (продолжительностью от двух до шести недель) проектная команда должна достичь всех целей, запланированных на данную итерацию, создать или доработать проектные артефакты и получить промежуточную, но функционирующую версию конечного продукта. Итеративная разработка позволяет быстро реагировать на меняющиеся требования, обнаруживать
иустранять риски на ранних стадиях проекта, а также эффективно контролировать качество создаваемого продукта.
Полный жизненный цикл разработки продукта состоит из четырёх фаз, каждая из которых включает в себя одну или несколько итераций:
1)начальная фаза;
2)проектирование (уточнение);
3)построение (конструирование);
4)внедрение.
Итерация «Начальная фаза» включает в себя следующие этапы:
1)формирование модели проекта (основная цель и границы);
2)создание экономического обоснования;
3)определение основных требований, ограничений и основного функционального ядра продукта;
4)создание базовой версии модели прецедентов;
5)оценка рисков при выполнении работ.
Итерация «Проектирование» включает в себя следующие этапы: