Организация стандарта и архитектура жизненного цикла

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

Стандарт описывает 17 процессов жизненного цикла, распределенных по трем категориям – группам процессов (названия представлены с указанием номеров разделов стандарта, следуя определениям на русском и английском языке, определяемыми [ГОСТ 12207, 1999] и оригинальной версией ISO/IEC 12207, соответственно):

5. Основные процессы жизненного цикла - Primary Processes

5.1 Заказ - Acqusition
5.2 Поставка - Supply
5.3 Разработка - Development
5.4 Эксплуатация - Operation
5.5 Сопровождение - Maintenance

6. Вспомогательные процессы жизненного цикла – Supporting Processes

6.1 Документирование - Documentation
6.2 Управление конфигурацией – Configuration Management
6.3 Обеспечение качества – Quality Assurance
6.4 Верификация - Verification
6.5 Аттестация - Validation
6.6 Совместный анализ – Joint Review
6.7 Аудит - Audit
6.8 Решение проблем – Problem Resolution

7. Организационные процессы жизненного цикла – Organizational Processes

7.1 Управление - Management
7.2 Создание инфраструктуры - Infrastructure
7.3 Усовершенствование - Improvement
7.4 Обучение - Training

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

Дерево процессов жизненного цикла представляет собой структуру декомпозиции жизненного цикла на соответствующие процессы (группы процессов). Декомпозиция процессов строится на основе двух важнейших принципов , определяющих правила разбиения (partitioning) жизненного цикла на составляющие процессы. Эти принципы:

Модульность

  • задачи в процессе являются функционально связанными;
  • связь между процессами – минимальна;
  • если функция используется более, чем одним процессом, она сама является процессом;
  • если Процесс Y используется Процессом X и только им, значит Процесс Y принадлежит (является его частью или его задачей) Процессу X, за исключением случаев потенциального использования Процесса Y в других процессах в будущем.

Ответственность

  • каждый процесс находится под ответственностью конкретного лица (управляется и/или контролируется им), определенного для заданного жизненного цикла, например, в виде роли в проектной команде;
  • функция, чьи части находятся в компетенции различных лиц, не может рассматриваться как самостоятельный процесс.

Общая иерархия (декомпозиция) составных элементов жизненного цикла выглядит следующим образом:

  • группа процессов
    • процессы
      • работы
        • задачи

В общем случае, разбиение процесса базируется на широко распространенном PDCA-цикле:

  • “P” – Plan – Планирование
  • “D” – Do – Выполнение
  • “C” – Check – Проверка
  • “A” – Act – Реакция (действие)

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