Каждая система, независимо от сложности и объема работ, необходимых для ее реализации, проходит в своем развитии определенные состояния: от состояния, когда «системы еще нет» до состояния, когда «системы уже нет». Поэтому одним из базовых понятий, связанных с разработкой системы, является понятие ее жизненного цикла /6/.
Жизненный цикл системы принято разделять на фазы (стадии, этапы):
- концептуальная фаза (изучение предметной области, формирование идеи, постановка целей, изучение требований заказчика, сбор исходных данных, определение основных требований и ограничений, требуемых материальных, финансовых и трудовых ресурсов, сравнительная оценка альтернатив, представление предложений, их экспертиза и утверждение);
- разработка технического задания (разработка базовой структуры проекта системы, его планирование, декомпозиция, разработка и утверждение технического задания, составление сметы и бюджета проекта, определение потребности в ресурсах, разработка календарных планов и укрупненных графиков работ, подписание контракта с заказчиком);
- проектирование (определение подсистем, их взаимосвязей, выполнение базовых проектных работ, разработка частных технических заданий, выполнение концептуального проектирования, составление технических спецификаций и инструкций, представление проектной разработки, экспертиза и утверждение);
- разработка (изготовление подсистем, их объединение и тестирование, разработка программного обеспечения, выполнение подготовки к внедрению системы, контроль и регулирование основных показателей проекта);
- ввод системы в эксплуатацию (комплексные испытания, подготовка кадров для эксплуатации системы, подготовка рабочей документации, сдача системы заказчику и ввод ее в эксплуатацию, сопровождение, поддержка, сервисное обслуживание, оценка результатов проекта и подготовка итоговых документов, разрешение конфликтных ситуаций и закрытие работ по проекту, накопление опытных данных для последующих проектов, анализ опыта, определение направлений развития).
Начальные фазы проекта имеют решающее влияние на достигаемый результат, так как в них принимаются основные решения, определяющие качество проектируемой системы. При этом обычно 30% трудозатрат расходуется на фазах концепции и предложений, 20% — на фазе проектирования, 20% — на фазе изготовления, 30% — на фазе сдачи проекта и завершения. Кроме того, на обнаружение ошибок, допущенных на стадии системного проектирования, расходуется примерно в два раза больше времени, чем на последующих фазах, а исправление их обходится в пять раз дороже. Наиболее часто на начальных фазах допускаются такие ошибки:
- ошибки в определении интересов заказчика;
- концентрация внимания на маловажных, сторонних интересах;
- неправильная интерпретация исходной постановки задачи;
- неправильное или недостаточное понимание деталей;
- неполнота функциональных спецификаций (системных требований);
- ошибки в определении требуемых ресурсов и сроков;
- редкая проверка на согласованность этапов и отсутствие контроля со стороны заказчика.
Основным нормативным документом, регламентирующим жизненный цикл (ЖЦ) проекта, является международный стандарт ISO/IEC 12207 (ISO — International Organization of Standardization — Международная организация по стандартизации, IEC –
International Electrotechnical Commission — Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены при реализации проекта /6/.
Структура ЖЦ по стандарту ISO/IEC 12207 базируется на трех группах процессов:
- основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);
- вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, аудит, решение проблем);
- организационные процессы (управление проектом, создание его инфраструктуры, оценка и улучшение самого ЖЦ, обучение).
Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными на предыдущем этапе, и результатами. Результатами анализа, в частности, являются функциональные модели, информационные модели и соответствующие им диаграммы. ЖЦ носит итерационный характер: результаты очередного этапа часто вызывают изменения в проектных решениях, выработанных на более ранних этапах.