Warum heißt es Software Configuration Management (SCM)?

9

Wenn ich an die Softwarekonfiguration denke, denke ich an eine Datei, die zur Laufzeit gelesen wird. Diese Datei enthält beispielsweise den Port, den ein Server möglicherweise verwendet, ob Verschlüsselung verwendet werden soll, und Pfade verschiedener Ressourcen.

Als ich zum ersten Mal auf "Software Configuration Management" stieß, dachte ich, dass dies nur die Verwaltung von Konfigurationsdateien bedeutet, aber ich erkannte schnell, dass SCM-Tools nicht nur die Konfigurationsdateien betreffen, sondern auch den Softwarecode, die ausführbare / binäre Software und die Ressourcen.

Warum verwenden wir den Begriff "Software Configuration Management"? Wäre "Software Management" nicht umfassender? Oder fehlt mir mein Verständnis dessen, was als "Konfiguration" angesehen wird?

flow2k
quelle

Antworten:

13

Der Begriff Konfigurationsmanagement gehört zum allgemeinen technischen Vokabular.

Ihr Zweck ist es, die Eigenschaften aller Teile / Komponenten eines komplexen Systems (z. B. eines Autos, einer Rakete, eines elektronischen Geräts) und natürlich die Änderung dieser Eigenschaften aufzuzeichnen, wenn eine Komponente durch eine ähnliche Komponente ersetzt wird. Eine Konfiguration beschreibt genau ein bestimmtes Produkt.

Mit anderen Worten, Konfigurationsmanagement ist Versionsmanagement für Industrieprodukte. Sie können jederzeit eine frühere Version eines Produkts zusammenstellen.

In Software gibt es keinen Branchenkatalog von Teilen, mit dem eine Software und ihre aufeinander folgenden Versionen eindeutig identifiziert und in einem Lager gefunden werden können, um eine ältere Version des Produkts zusammenzustellen (zu konfigurieren). Der Softwareteil / die Softwarekomponente wird am besten durch ihren Code in seiner Gesamtheit beschrieben. Konfigurationsmanagement für Software bedeutet also, die Versionen des Quellcodes zu verwalten. Aus diesem Grund wird der Begriff Softwarekonfigurationsverwaltung für die Quellcode-Versionsverwaltung verwendet.

Beachten Sie jedoch, dass SCM größer ist als nur die Quellcode-Versionierung. Dies kann auch die Verwaltung externer Abhängigkeiten (z. B. Bibliotheken oder Frameworks von Drittanbietern mit Versionen, die an einem anderen Ort verwaltet werden), externer Ressourcen (z. B. Binärdateien oder DLLs von Drittanbietern oder API-Definitionen für die Zusammenarbeit mit externen Systemen) sowie digitaler Assets (z. B. Bilder oder Videos als Pakete mit dem Endprodukt).

Christophe
quelle