Жизненный цикл программного продукта
При серьезном, инженерном подходе к созданию программных средств (ПС) необходимо учитывать, что разработка ПС — не случайный импульсивный акт творения, но закономерный этап (один из многих) в так называемом жизненном цикле (ЖЦ) ПС, который может быть изображен следующей схемой (рис. 2.1).
Рис. 2.1. Схема жизненного цикла программного средства
В таблице 2.1 приведены пояснения к содержанию отдельных этапов ЖЦ.
Таблица 2.1
Этап | Содержание |
Системный анализ | Определение потребности в ПС, его назначения, основных характеристик и возможной эффективности. |
Проектирование ПС | Разработка структуры, программирование модулей, отладка, испытание и внедрение. |
Эксплуатация | Исполнение на ЭВМ, обеспечение достоверности и подлинности результатов. |
Сопровождение | Обслуживание, исправление ошибок, расширение возможностей, перенос в другие вычислительные среды |
В зависимости от объема, содержания, значимости и области применения ПС (глобальная КИС, система бухучета, офисный пакет, компьютерная игра) различают ПС с малым и большим временем жизни.
Длительность ЖЦ определяет выбор стратегии и технологии проектирования ПС, говорят о гибком (для малого времени) и жестком (для большого времени жизни) подходах к проектированию (т.е. о гибких и жестких технологиях).
Разница в жестком и гибком подходе к проектированию обусловлена проявляется в трех основных факторах:
· организация и управляемость процесса проектирования;
· сроки разработки и её стоимость;
· набор используемых технологических приемов.
В последнее время в литературе по технологиям проектирования ПС появилась терминология — тяжеловесные (прогнозирующие, heavyweight) и облегченные (адаптивные, подвижные, agile) процессы проектирования.
Традиционно для упорядочения и ускорения программных разработок предлагались строго упорядочивающие тяжеловесные процессы. В этих процессах прогнозируется весь объем предстоящих работ, поэтому они называются прогнозирующими (predictive) процессами. Они представляют собой набор последовательных этапов, выполняемых в определенной последовательности, нарушать которую нельзя. Однако они оказались неэффективными для разработки ПС с малой длительностью ЖЦ и в условиях изменяющихся или не вполне определенных в начале проектирования требованиях.
Адаптивные процессы проектирования пытаются учесть динамический характер разработки ПС в условиях неполной начальной определенности требований, допускают гибкость в управлении и последовательности этапов разработки.
Таким образом, в современной инфраструктуре программной инженерии существуют два семейства процессов разработки:
· семейство прогнозирующих (тяжеловесных) процессов;
· семейство адаптивных (подвижных, облегченных) процессов.
У каждого семейства есть свои достоинства, недостатки и область применения:
· адаптивный процесс используют при частых изменениях требований, малочисленной группе высококвалифицированных разработчиков и «грамотном» заказчике, который способен и согласен участвовать в разработке;
· прогнозирующий процесс применяют при фиксированных требованиях, больших по объему программных проектах и многочисленной группе разработчиков разной квалификации.