+7 (499) 638-64-11
Попробовать
Постановка и автоматизация процессов разработки ПО

Управление конфигурацией (configuration management)

05.05.2010 12:18

Если вашей команде успешно удалось завершить хотя бы один проект, то согласно модели CMMI, процессу, который вы использовали для создания продукта, может быть присвоен первый уровень зрелости из пяти. Последующие уровни зрелости достигаются постановкой определенных процессов, связанных с разработкой программного обеспечения, одним из которых является управление конфигурацией (configuration management).

 

"The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits."

 

Процесс управления конфигурацией программных продуктов заключается в следующем:

  • Идентификация конфигураций рабочих продуктов, которые представляют собой некоторую основу (baseline) в некоторый момент времени, где под рабочим продуктом понимаются любые артефакты, создаваемые или используемые в процессе разработки: дефекты, коды, сборки, планы, требования, тестовая документация, тесты, пользовательская документация и т.п.
  • Контроль за изменениями, произошедшими с элементами конфигурации, например изменения в требованиях, программном коде и т.п. Обеспечение возможности создания рабочих продуктов (спецификаций, исходного и исполняемого кода) с использованием только системы управления конфигурациями.
  • Обеспечение целостности и согласованности каждого из выделенных baselines, позволяющих относительно свободно перемещаться между различными baselines, то есть, получить согласованный срез конфигурации рабочих продуктов (требований, доработок, исходного кода, исполняемого кода) на некоторый момент времени.
  • Предоставление текущего состояния и данных конфигурации программного продукта для разработчиков, конечных пользователей, заказчиков и др.

 

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

  • Идентификация версий разрабатываемого продукта, где номер версии и является основой (baseline) для конфигураций.
  • Управление скоупом будущих версий, то есть фиксация бизнес требований в рамках некоторой версии продукта.
  • Производство исполняемого кода на основе исходного кода, что достигается использованием сборочных станций или серверов.
  • Тестирование работы исполняемого кода (программ) с целью выявления согласованности с исходными функциональными требованиями и различными критериями качества (нефункциональными требованиями).
  • Подготовка заметок к релизу (release notes), которые описывают состав некоторой версии продукта, с указанием реализованных требований, выполненных доработок, исправленных ошибок, проверенных тестовых сценариев, места расположения исполняемых файлов и т.д.
  • Трассировка одних артефактов в другие: доработок в требования, требований в тестовую и пользовательскую документацию, доработок и дефектов в исходный код, исходный код в исполняемый код и т.д. Тем самым обеспечивается возможность аудита и контроля за целостностью конфигурации некоторой версии продукта.
  • Сохранение истории изменений и контроль версий каждого артефакта, например, требований, исходного кода, исполняемого кода. Типичные системы контроля версий как раз реализуют данную часть процесса управления конфигурацией.

 

DEVPROM совместно с системой контроля версий, инфраструктурами автотестирования и выпуска сборок, реализует полноценную систему управления конфигурацией:

  • Все артефакты, создаваемые при разработке продукта, имеют свой уникальный идентификатор в системе, позволяя тем самым идентифицировать конфигурационные элементы.
  • Этапы разработки программного продукта неразрывно связаны с версиями продукта, к которым привязываются все артефакты: пожелания, требования, тестовая и пользовательская документация, тесты, файлы и т.д.
  • Журналы пожеланий, управление требованиями, тестовой и пользовательской документацией позволяют создавать весь необходимый набор артефактов для заданной версии продукта, то есть определять конфигурацию для заданного baseline.
  • Автоматическое создание связей между пожеланиями, задачами, требованиями, тестовой и пользовательской документацией, позволяет организовать согласованную конфигурацию программного продукта и выполнять аудит с целью выявления рассогласований. DEVPROM автоматически отслеживает неактуальные связи и предлагает выполнить согласование (приведение в соответствие) артефактов между собой.
  • Все изменения в системе протоколируются, что позволяет контролировать любые изменения в конфигурации, выполненные участниками проекта.
  • Формирование заметок к релизу (release notes) для определенной версии продукта, включающих в себя список реализованных доработок и исправленных ошибок.

Еще интересные статьи на эту тему: