Почему это называется управлением конфигурацией программного обеспечения (SCM)?

9

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

Когда я впервые столкнулся с «управлением конфигурацией программного обеспечения», я подумал, что это означает управление только файлами конфигурации, но я быстро понял, что инструменты SCM касаются не только файлов конфигурации, но и программного кода, исполняемого / двоичного файла программного обеспечения и ресурсов.

Так почему же мы используем термин «Управление конфигурацией программного обеспечения»? Разве «Управление программным обеспечением» не будет более всеобъемлющим? Или мне не хватает понимания того, что считается «конфигурацией»?

flow2k
источник

Ответы:

13

Термин « управление конфигурацией» относится к общему инженерному словарю.

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

Другими словами, управление конфигурацией - это управление версиями для промышленных продуктов. Это позволяет в любой момент собрать предыдущую версию продукта.

В программном обеспечении нет отраслевого каталога деталей, который позволял бы однозначно идентифицировать часть программного обеспечения и его последующие версии и найти его на каком-либо складе для сборки (настройки) более старой версии продукта. Программная часть / компонент лучше всего описывается своим кодом полностью. Таким образом, управление конфигурацией программного обеспечения означает управление версиями исходного кода. Вот почему термин «управление конфигурацией программного обеспечения» используется для управления версиями исходного кода.

Однако обратите внимание, что SCM больше, чем только управление версиями исходного кода. Это может также включать управление внешними зависимостями (например, сторонние библиотеки или платформы с версиями, управляемыми где-то еще), внешними ресурсами (например, сторонними двоичными файлами или библиотеками или определениями API для взаимодействия с внешними системами), а также цифровыми активами (например, изображениями или видео, чтобы быть пакеты с конечным продуктом).

Christophe
источник