Управление конфигурацией программного обеспечения
Управление конфигурацией программного обеспечения (УКПО) — это дисциплина идентификации, контроля и отслеживания версий и изменений артефактов программного обеспечения, чтобы состояние системы было известно и воспроизводимо на протяжении всего ее жизненного цикла.
Definition
Управление конфигурацией программного обеспечения — это набор действий по идентификации элементов конфигурации, контролю изменений в них, записи и отчетности о статусе изменений, а также проверке полноты и правильности, чтобы развивающееся программное обеспечение управлялось контролируемым, воспроизводимым образом.
Scope
Эта тема охватывает идентификацию конфигурации и базовые версии; системы контроля версий и модели ветвления и слияния; контроль изменений и роль совета по контролю изменений; управление сборкой и выпуском; учет состояния конфигурации и аудит; а также стандарты, такие как ISO/IEC/IEEE 828, которые определяют процессы УКПО.
Core questions
- Как идентифицируются и базово определяются элементы конфигурации?
- Как контроль версий и модели ветвления управляют одновременными изменениями?
- Как предлагаются, рассматриваются и утверждаются изменения?
- Как записывается и проверяется статус и целостность конфигураций?
Key theories
- Базовые версии и контроль конфигурации
- Базовая версия — это официально проверенная конфигурация, которая служит стабильной точкой отсчета; изменения в базовых элементах проходят контролируемый обзор и утверждение, поддерживая систему в известном, воспроизводимом состоянии.
- Распределенный контроль версий и ветвление
- Современные системы, такие как Git, предоставляют каждому разработчику полный репозиторий и поддерживают недорогое ветвление и слияние, что позволяет параллельную работу и рабочие процессы интеграции, лежащие в основе непрерывной интеграции и поставки.
Clinical relevance
УКПО делает сборки воспроизводимыми, изменения отслеживаемыми, а выпуски контролируемыми; без него команды не могут надежно воспроизвести выпущенную версию, координировать одновременную работу или проверять, что изменилось, что является основополагающим для надежной поставки и автоматизации DevOps.
Evidence & guidelines
ISO/IEC/IEEE 828 определяет процессы управления конфигурацией, а область знаний по управлению конфигурацией программного обеспечения SWEBOK предоставляет консенсусную ссылку для деятельности по УКПО.
History
Контроль версий развивался от ранних инструментов, таких как SCCS и RCS в 1970-х и 1980-х годах, через централизованные системы, такие как CVS и Subversion, до распределенных систем, таких как Git в 2000-х годах; формальная практика управления конфигурацией мигрировала из аппаратных и оборонных стандартов в основную инженерию программного обеспечения.
Debates
- Стратегии ветвления
- Команды обсуждают рабочие процессы, такие как разработка на основе основной ветки (trunk-based development) против долгоживущих функциональных веток и Git-flow; разработка на основе основной ветки с частой интеграцией поддерживает непрерывную поставку, в то время как более интенсивное ветвление может изолировать работу ценой болезненных слияний.
Key figures
- Walter Tichy
- Linus Torvalds
- Marc Rochkind
Related topics
Seminal works
- ieee828
- chacon2014
- swebok2014
Frequently asked questions
- Является ли управление конфигурацией просто контролем версий?
- Нет. Контроль версий — это центральный инструмент, но УКПО шире: оно также охватывает идентификацию конфигурации, базовые версии, контроль изменений, управление сборкой и выпуском, а также учет состояния и аудит всех элементов конфигурации, а не только исходного кода.
- Почему базовые версии важны?
- Базовая версия фиксирует известную хорошую конфигурацию, которую можно воспроизвести и на основе которой можно строить дальнейшую работу; она обеспечивает стабильную точку отсчета для контролируемых изменений, позволяет командам откатываться назад и необходима для воспроизводимых выпусков и аудитов.