Жизненный цикл программного продукта

При серьезном, инженерном подходе к созданию программных средств (ПС) необходимо учитывать, что разработка ПС — не случайный импульсивный акт творения, но закономерный этап (один из многих) в так называемом жизненном цикле (ЖЦ) ПС, который может быть изображен следующей схемой (рис. 2.1).

 

Рис. 2.1. Схема жизненного цикла программного средства

 

В таблице 2.1 приведены пояснения к содержанию отдельных этапов ЖЦ.

Таблица 2.1

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

 

В зависимости от объема, содержания, значимости и области применения ПС (глобальная КИС, система бухучета, офисный пакет, компьютерная игра) различают ПС с малым и большим временем жизни.

Длительность ЖЦ определяет выбор стратегии и технологии проектирования ПС, говорят о гибком (для малого времени) и жестком (для большого времени жизни) подходах к проектированию (т.е. о гибких и жестких технологиях).

Разница в жестком и гибком подходе к проектированию обусловлена проявляется в трех основных факторах:

· организация и управляемость процесса проектирования;

· сроки разработки и её стоимость;

· набор используемых технологических приемов.

В последнее время в литературе по технологиям проектирования ПС появилась терминология — тяжеловесные (прогнозирующие, heavyweight) и облегченные (адаптивные, подвижные, agile) процессы проектирования.

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

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

Таким образом, в современной инфраструктуре программной инженерии существуют два семейства процессов разработки:

· семейство прогнозирующих (тяжеловесных) процессов;

· семейство адаптивных (подвижных, облегченных) процессов.

У каждого семейства есть свои достоинства, недостатки и область применения:

· адаптивный процесс используют при частых изменениях требований, малочисленной группе высококвалифицированных разработчиков и «грамотном» заказчике, который способен и согласен участвовать в разработке;

· прогнозирующий процесс применяют при фиксированных требованиях, больших по объему программных проектах и многочисленной группе разработчиков разной квалификации.