Definition „Software Configuration Management“

Was ist SCM?

| Autor / Redakteur: RoSch / Stephan Augsten

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)

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.

Ü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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Was ist Git?

Definition „Git SCM“

Was ist Git?

Git ist ein weit verbreitetes Open-Source-Tool zur verteilten Versionskontrolle von Software. Es wird sowohl in Unternehmen als auch von privaten Entwicklern weltweit genutzt und funktioniert zusammen mit verschiedensten Plattformen und IDEs. lesen

Agile Methoden in großen Unternehmen

Klare Strukturen – so wird agiles Arbeiten zum Erfolg

Agile Methoden in großen Unternehmen

Agiles Arbeiten mausert sich zum Standard in der Softwareentwicklung. Allerdings besteht bei allzu hastiger Einführung agiler Methoden die Gefahr, über die eigenen Füße zu stolpern. Doch Hindernisse und Anfangsprobleme lassen sich methodisch aus dem Weg räumen. lesen

5 häufige DevOps-Fehler und wie man sie vermeidet

Konfiguration, Bereitstellung, Organisation

5 häufige DevOps-Fehler und wie man sie vermeidet

Continuous Integration und Continuous Deployment helfen dabei, die Softwareentwicklung effizienter zu gestalten. Im Zuge von DevOps-Strategien werden die beiden Prinzipien kombiniert. Fünf gängige Fehler lassen sich dabei von Vornherein vermeiden. lesen

AWX und Ansible Tower 3.2 einrichten und nutzen

DevOps-Enabler Ansible, Teil 4

AWX und Ansible Tower 3.2 einrichten und nutzen

Nach der Installation von Ansible Tower werfen wir einen optionalen Blick auf die Installation von AWX, um uns dann mit Konzept und Arbeitsweise der grafischen Oberfläche für Ansible vertraut zu machen. Ab hier unterscheiden sich AWX und Ansible Tower kaum. lesen

AWS CodeStar mit CodeCommit und lokalem Git integrieren

Amazon Web Services für Entwickler, Teil 2

AWS CodeStar mit CodeCommit und lokalem Git integrieren

Mit AWS CodeStar gestaltet sich das Erstellen, Verwalten und Bearbeiten von Software-Development-Projekten im Team besonders komfortabel. Für das Arbeiten in der AWS-Cloud sind allerdings eine Handvoll Integrationsmaßnahmen erforderlich. lesen

IT-Verwaltung mit Red Hat Ansible Automation

Ansible Engine und Tower für große Unternehmen

IT-Verwaltung mit Red Hat Ansible Automation

DevOps-Operationen wie das Lifecycle Management von Applikationen werden erst durch eine automatisierte Zuteilung von Ressourcen effizient. Hier hilft Red Hat Ansible, das im Herbst 2017 zahlreiche Neuerungen erfuhr. lesen

Modernisierung macht auch heterogene IT-Umgebungen agil

DevOps im Mainframe-Umfeld

Modernisierung macht auch heterogene IT-Umgebungen agil

Die Heterogenität der IT-Landschaften erschwert die Umsetzung von DevOps-Konzepten. Um auch im Mainframe-Umfeld von schneller Software-Entwicklung und kurzen Release-Zyklen zu profitieren, ist zunächst eine Modernisierung erforderlich. lesen

Mainframe-Entwicklung wird agil

Scrum für Großrechner

Mainframe-Entwicklung wird agil

Auch auf dem Mainframe müssen Entwickler ihre Applikationen immer schneller und in kürzeren Zyklen bereitstellen. Agile Entwicklungsmethoden wie das Scrum-Framework bieten sich daher auch für den Mainframe an. lesen

Entwicklungstool für den Mainframe von Micro-Focus

Enterprise Developer Connect

Entwicklungstool für den Mainframe von Micro-Focus

Mit „Enterprise Developer Connect“ hat Micro Focus ein Eclipse-basiertes Werkzeug parat, das es erlaubt, Applikationen direkt auf dem Mainframe zu entwickeln. Zentraler Vorteil dieser Software: Die Entwickler können etablierte Prozesse und Tools weiterhin verwenden. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44776793 / Definitionen)