Suchen

Definition „Software Configuration Management“ Was ist SCM?

| Autor / Redakteur: RoSch / Stephan Augsten

Als Software Configuration-Management, kurz SCM oder auch Softwarekonfigurationsmanagement, bezeichnet man die Spezialisierung des Konfigurationsmanagements in Bezug auf alle Aktivitäten, die das Gebiet der Softwareentwicklung betreffen. Das SCM wird auch als Software-Versionsverwaltung verstanden und verfolgt diverse Ziele.

Firmen zum Thema

Mit einem ausgereiften SCM-Ansatz kann ein Unternehmen allein die Komponenten einer Standardsoftware verwenden, die es tatsächlich auch benötigt.
Mit einem ausgereiften SCM-Ansatz kann ein Unternehmen allein die Komponenten einer Standardsoftware verwenden, die es tatsächlich auch benötigt.
(© EtiAmmos - stock.adobe.com)

Über allem steht das SCM-System

Beim SCM kommt in der Regel ein spezielles SCM-System zum Einsatz, eine allgemeingültige Definition des Terminus „Software Configuration Management System“ existiert allerdings nicht. So wird das SCM einerseits häufig auf das alleinige Ein- und Auschecken von Quellcodes in bzw. aus einem Versionskontrollsystem limitiert und andererseits als ein Teilgebiet der Applikationskonfiguration reduziert. De facto ist ein Software Configuration Management System jedoch weitaus mehr.

Seinen Ursprung hat das Software Configuration Management in der Konfiguration von Hardware. In Bezug auf Software wurde der Begriff zum ersten Mal in den 1970er Jahren verwendet und diente zur Beschreibung von Software, nachdem sie die eigentliche Entwicklungsabteilung verlassen hatte. Demnach dient ein Software Configuration Management System dazu, die Entwicklung von erstellter Software zu begleiten.

Definiert werden kann SCM folgendermaßen: Im Rahmen des Software Configuration Managements werden Standards und Verfahren zur Entwicklung, Anwendung und Verwaltung eines innovativen, d.h., sich weiterentwickelnden, Systemprodukts vollzogen.

Folgt man dem IEEE-Standard 729-1983, beinhaltet das Software Configuration Management die folgenden Aspekte:

  • Identifikation: das Verfügbarmachen der Produktstruktur über differente Versionen hinweg
  • Controlling: das Steuern des Releasings sowie der Produktmodifikationen
  • Status Accounting: die Aufnahme und das Reporting der Status der einzelnen Bestandteile sowie der Änderungsanforderungen
  • Audit und Review: die Verifikation der Vollständigkeit eines Produkts, um eine konsistente Version bereitzustellen

Die Aufgaben des Software Configuration Managements

Im Allgemeinen gilt es als Aufgabe des Software Configuration Managements, diejenigen Elemente der Software, welche im Zuge des Entwicklungsprozesses eines Systems oder aber einer ganzen Systemfamilie entstanden sind, zu verwalten. In der Regel ergeben sich im Rahmen dieses Prozesses verschiedene Einzelprobleme.

Entsprechend handelt es sich bei einem Software Configuration Management um einen Mechanismus, der dazu dient, die unterschiedlichen, d.h. sowohl aktuelle als auch frühere, Versionen eines Software-Elements zu identifizieren, zu lenken und zurückzuverfolgen.

Mit Blick auf den ISO-Standard ISO 9000 können folgende Aufgaben des Software Configuration Managements genannt werden:

  • 1. die Software-Elemente, die zu einer spezifischen Version eines Softwareprodukts gehören, zu identifizieren;
  • 2. den Entwicklungsstatus der Software sowohl während der Entwicklung als auch nach Lieferung und Installation der Software zu identifizieren;
  • 3. das Koordinieren des gleichzeitigen Überarbeitens eines spezifischen Software-Elements durch mehrere Personen;
  • 4. das Lenken und Überwachen von mehr als einem Produkt an einer oder - insofern notwendig - mehreren Stellen;
  • 5. die Identifikation und Verfolgung aller Aktionen und Modifikationen, die sich aus einem Modifikationsvorhaben ergeben.

De facto werden diese Aufgaben teilweise erst dann notwendig, wenn das System sehr umfangreich ist und auf einer Entwicklungszeit von mehreren Jahren basiert. Andere Aufgaben müssen dagegen schon bei recht kleinen Systemen realisiert werden.

Die Durchführung der Software-Konfiguration

Von Software-Konfiguration ist in der Regel dann die Rede, wenn eine Standardsoftware im Rahmen des Customizing-Prozesses konfiguriert wird. Mit anderen Worten: Ist es notwendig, für ein Unternehmen den von diesem benötigten Funktionsumfang aus einzelnen Komponenten, d.h. Modulen, einer Standardsoftware zusammenzustellen, wird von Software Configuration Management gesprochen.

Im Allgemeinen werden hierfür einzelne Komponenten ausgewählt. Dabei kann es sich einerseits um Standardkomponenten, die im Lieferumfang einer Standardsoftware enthalten sind, handeln, oder aber um Spezialkomponenten, die entweder aus eigener Entwicklung stammen oder von anderen Softwareproduzenten entwickelt wurden. Im Rahmen des SCM werden dann zwischen den jeweiligen Komponenten mithilfe vorgegebener Schnittstellen Relationen definiert.

Durch eine Software-Konfiguration erhält das jeweilige Unternehmen die Möglichkeit, alleinig diejenigen Komponenten einer Standardsoftware zu verwenden, die es tatsächlich auch benötigt. Das Resultat einer Software-Konfiguration ist sowohl eine Erhöhung der Performanz eines Systems als auch eine Senkung der Kosten.

Die Relevanz von derartigen kundenorientierten Ansätzen steigt stetig. Allerdings gilt es zu beachten, dass die Zergliederung der Standardsoftware in einzelne Komponenten bzw. Module als grundlegende Voraussetzung für die Software Konfiguration gilt. Aus diesem Grund wird dieser Prozess auch Modularisierung genannt. Entsprechend eignet sich eine Standardsoftware vor allem dann für Konfigurationen, wenn sie aus zahlreichen einzelnen Komponenten besteht, die zahlreiche Schnittstellen zu anderen Komponenten sowie zu etwaigen Erweiterung aufweisen.

Fazit: Software Configuration Management

Aufgrund der Tatsache, dass Software kontinuierlich weiterentwickelt wird und so stetigen Veränderungen unterliegt, wurden Software Configuration Management Systems entwickelt. SCM wird zum Beispiel eingesetzt, um Fehler zu identifizieren, die unterschiedlichen Versionen einer Software zu dokumentieren sowie Funktionsumfänge anzupassen und zu erweitern.

Durch ein entsprechendes Management-System wird es möglich, die Aktualität und Vollständigkeit einer spezifischen Softwareversion zu gewährleisten, Änderungen zurückzuverfolgen, Versionsstände klar zu definieren und Fehler zu vermeiden.

(ID:44776793)