ScholarGate
Assistent

Software-Konfigurationsmanagement

Software-Konfigurationsmanagement (SCM) ist die Disziplin der Identifizierung, Kontrolle und Nachverfolgung von Versionen und Änderungen von Software-Artefakten, sodass der Zustand eines Systems während seines gesamten Lebenszyklus bekannt und reproduzierbar ist.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Software-Konfigurationsmanagement ist die Menge von Aktivitäten zur Identifizierung von Konfigurationselementen, zur Kontrolle von Änderungen an diesen, zur Aufzeichnung und Berichterstattung des Änderungsstatus sowie zur Überprüfung der Vollständigkeit und Korrektheit, sodass die sich entwickelnde Software auf eine kontrollierte, reproduzierbare Weise verwaltet wird.

Scope

Dieses Thema behandelt die Konfigurationsidentifikation und Baselines; Versionskontrollsysteme sowie Branching- und Merging-Modelle; Änderungskontrolle und die Rolle eines Änderungskontrollgremiums; Build- und Release-Management; Konfigurationsstatusbuchhaltung und -prüfung; sowie Standards wie ISO/IEC/IEEE 828, die SCM-Prozesse definieren.

Core questions

  • Wie werden Konfigurationselemente identifiziert und als Baseline festgelegt?
  • Wie verwalten Versionskontrolle und Branching-Modelle gleichzeitige Änderungen?
  • Wie werden Änderungen vorgeschlagen, überprüft und genehmigt?
  • Wie werden der Status und die Integrität von Konfigurationen erfasst und geprüft?

Key theories

Baselines und Konfigurationskontrolle
Eine Baseline ist eine formal überprüfte Konfiguration, die als stabile Referenz dient; Änderungen an baselined Elementen durchlaufen eine kontrollierte Überprüfung und Genehmigung, wodurch das System in einem bekannten, reproduzierbaren Zustand gehalten wird.
Verteilte Versionskontrolle und Branching
Moderne Systeme wie Git geben jedem Entwickler ein vollständiges Repository und unterstützen kostengünstiges Branching und Merging, was paralleles Arbeiten und Integrations-Workflows ermöglicht, die Continuous Integration und Delivery zugrunde liegen.

Clinical relevance

SCM macht Builds reproduzierbar, Änderungen nachvollziehbar und Releases kontrollierbar; ohne SCM können Teams eine ausgelieferte Version nicht zuverlässig reproduzieren, gleichzeitige Arbeit nicht koordinieren oder Änderungen nicht prüfen, was für eine zuverlässige Bereitstellung und für die DevOps-Automatisierung grundlegend ist.

Evidence & guidelines

ISO/IEC/IEEE 828 spezifiziert Konfigurationsmanagement-Prozesse, und der SWEBOK Software Configuration Management Wissensbereich bietet eine Konsensreferenz für SCM-Aktivitäten.

History

Die Versionskontrolle entwickelte sich von frühen Tools wie SCCS und RCS in den 1970er und 1980er Jahren über zentralisierte Systeme wie CVS und Subversion bis hin zu verteilten Systemen wie Git in den 2000er Jahren; die formale Konfigurationsmanagement-Praxis wanderte von Hardware- und Verteidigungsstandards in die allgemeine Softwareentwicklung ab.

Debates

Branching-Strategien
Teams diskutieren Workflows wie Trunk-based Development versus langlebige Feature-Branches und Git-Flow; Trunk-based Development mit häufiger Integration unterstützt Continuous Delivery, während stärkeres Branching die Arbeit isolieren kann, jedoch auf Kosten schmerzhafter Merges.

Key figures

  • Walter Tichy
  • Linus Torvalds
  • Marc Rochkind

Related topics

Seminal works

  • ieee828
  • chacon2014
  • swebok2014

Frequently asked questions

Ist Konfigurationsmanagement nur Versionskontrolle?
Nein. Versionskontrolle ist ein zentrales Werkzeug, aber SCM ist breiter gefasst: Es umfasst auch die Konfigurationsidentifikation, Baselines, Änderungskontrolle, Build- und Release-Management sowie die Statusbuchhaltung und -prüfung aller Konfigurationselemente, nicht nur des Quellcodes.
Warum sind Baselines wichtig?
Eine Baseline erfasst eine als gut bekannte Konfiguration, die reproduziert und weiterentwickelt werden kann; sie bietet eine stabile Referenz für kontrollierte Änderungen, ermöglicht es Teams, zurückzurollen, und ist unerlässlich für reproduzierbare Releases und Audits.

Methods for this concept

Related concepts