Softwarekonfigurationsmanagement im Software Engineering
โก Intelligente Zusammenfassung
Software-Konfigurationsmanagement (SCM) ist ein Prozess zur systematischen Verwaltung, Organisation und Kontrolle von รnderungen an Dokumenten, Code und anderen Elementen wรคhrend des gesamten Softwareentwicklungszyklus. Sein Hauptziel ist die Steigerung der Produktivitรคt bei gleichzeitiger Aufrechterhaltung der Effizienz.ping Fehler auf ein Minimum reduzieren.

Was ist Softwarekonfigurationsmanagement?
Im Software-Engineering, Softwarekonfigurationsmanagement (SCM) SCM ist ein Prozess zur systematischen Verwaltung, Organisation und Kontrolle von รnderungen an Dokumenten, Codes und anderen Elementen wรคhrend des Softwareentwicklungszyklus. Hauptziel ist die Steigerung der Produktivitรคt bei minimalen Fehlern. SCM ist Teil des interdisziplinรคren Bereichs Konfigurationsmanagement und ermรถglicht die prรคzise Zuordnung von รnderungen durch die jeweiligen Entwickler.
Warum brauchen wir Konfigurationsmanagement?
Die Hauptgrรผnde fรผr die Implementierung eines technischen Softwarekonfigurationsmanagementsystems sind:
- Mehrere Personen arbeiten an einer Software, die stรคndig aktualisiert wird.
- Es kann vorkommen, dass bei einem Softwarekonfigurationsprojekt mehrere Versionen, Branches und Autoren beteiligt sind und das Team geografisch verteilt ist und parallel arbeitet.
- รnderungen der Benutzeranforderungen, der Richtlinien, des Budgets und des Zeitplans mรผssen berรผcksichtigt werden.
- Die Software sollte auf verschiedenen Rechnern lauffรคhig sein und Operating Systems.
- Hilft dabei, die Koordination zwischen den Beteiligten zu verbessern.
- Der SCM-Prozess ist auch deshalb vorteilhaft, weil er die Kosten kontrolliert, die mit Systemรคnderungen verbunden sind.
Jede รnderung der Softwarekonfigurationselemente wirkt sich auf das Endprodukt aus. Daher mรผssen รnderungen an Konfigurationselementen kontrolliert und verwaltet werden.
Aufgaben im SCM-Prozess
- Konfigurationsidentifikation
- Baselines
- Change Control
- Abrechnung des Konfigurationsstatus
- Konfigurationsaudits und RevAnsichten
Konfigurationsidentifikation
Die Konfigurationsidentifizierung dient der Bestimmung des Umfangs eines Softwaresystems. Mithilfe dieses Schrittes kรถnnen Sie Komponenten verwalten oder steuern, selbst wenn Sie deren genaue Art nicht kennen. Es handelt sich um eine Beschreibung, die den CSCI-Typ (Computer Software Configuration Item), eine Projektkennung und Versionsinformationen enthรคlt.
Aktivitรคten wรคhrend dieses Prozesses:
- Identifizierung von Konfigurationselementen wie Quellcodemodulen, Testfallund Anforderungsspezifikation.
- Identifizierung jedes CSCI im SCM-Repository mittels eines objektorientierten Ansatzes.
- Der Prozess beginnt mit Basisobjekten, die zu Aggregatobjekten zusammengefasst werden. Details darรผber, was, warum, wann und von wem รnderungen im Test vorgenommen werden.
- Jedes Objekt besitzt eigene Merkmale, die seinen Namen eindeutig kennzeichnen und ihn allen anderen Objekten klar machen.
- Liste der benรถtigten Ressourcen, wie z. B. das Dokument, die Datei, Werkzeuge usw.
Ejemplo:
Statt die Datei login.php zu nennen, sollte sie login_v1.2.php heiรen, wobei v1.2 fรผr die Versionsnummer der Datei steht.
Anstatt einen Ordner โCodeEs sollte โCode_Dโ wobei D fรผr bedeutet, dass der Code tรคglich gesichert werden sollte.
Baseline
Eine Baseline ist eine offiziell akzeptierte Version eines Softwarekonfigurationselements. Es wird zu einem bestimmten Zeitpunkt wรคhrend der Durchfรผhrung des SCM-Prozesses festgelegt und festgelegt. Es kann nur durch formelle รnderungskontrollverfahren geรคndert werden.
Aktivitรคten wรคhrend dieses Prozesses:
- Die Erstellung verschiedener Versionen einer Anwendung erleichtern.
- Mechanismen zur Verwaltung verschiedener Versionen dieser Arbeitsergebnisse definieren und festlegen.
- Die funktionale Basislinie entspricht den รผberprรผften Systemanforderungen.
- Zu den weit verbreiteten Baselines gehรถren funktionale, entwicklungsbezogene und produktbezogene Baselines.
In einfachen Worten bedeutet โBaselineโ โbereit zur Verรถffentlichungโ.
Change Control
Die รnderungskontrolle ist ein Verfahren, das Qualitรคt und Konsistenz bei รnderungen an Konfigurationsobjekten sicherstellt. In diesem Schritt wird der รnderungsantrag an den Softwarekonfigurationsmanager รผbermittelt.
Aktivitรคten wรคhrend dieses Prozesses:
- Kontrollieren Sie Ad-hoc-รnderungen, um eine stabile Softwareentwicklungsumgebung zu schaffen. รnderungen werden im Repository gespeichert.
- Die Anfrage wird hinsichtlich ihrer technischen Qualitรคt, mรถglicher Nebenwirkungen und der Gesamtauswirkungen auf andere Konfigurationsobjekte geprรผft.
- Es verwaltet รnderungen und stellt Konfigurationselemente wรคhrend des gesamten Softwarelebenszyklus zur Verfรผgung.
Abrechnung des Konfigurationsstatus
Konfigurationsstatusabrechnung tracks bei jeder Freigabe wรคhrend des SCM-Prozesses. Diese Phase beinhaltet tracErklรคren Sie, was jede Version beinhaltet und welche รnderungen zu dieser Version gefรผhrt haben.
Aktivitรคten wรคhrend dieses Prozesses:
- Es werden alle รnderungen protokolliert, die gegenรผber dem vorherigen Ausgangswert vorgenommen wurden, um einen neuen Ausgangswert zu erreichen.
- Identifizieren Sie alle Elemente, die zur Definition der Softwarekonfiguration erforderlich sind.
- Status von รnderungsanforderungen รผberwachen.
- Vollstรคndige Auflistung aller รnderungen seit der letzten Basislinie.
- Erlaubt tracKรถnig des Fortschritts zur nรคchsten Basislinie.
- Ermรถglicht das Hinzufรผgen vorheriger Releases/Versionen.tracted zum Testen.
Konfigurationsaudits und RevAnsichten
Softwarekonfigurationsprรผfungen stellen sicher, dass das gesamte Softwareprodukt die Grundanforderungen erfรผllt. Es stellt sicher, dass das, was gebaut wird, auch geliefert wird.
Aktivitรคten wรคhrend dieses Prozesses:
- Die Konfigurationsprรผfung wird von Prรผfern durchgefรผhrt, indem รผberprรผft wird, ob definierte Prozesse befolgt werden und sichergestellt wird, dass die SCM-Ziele erfรผllt werden.
- Zur รberprรผfung der Einhaltung der Konfigurationskontrollstandards werden die vorgenommenen รnderungen geprรผft und dokumentiert.
- SCM-Audits stellen auรerdem sicher, dass tracDie Funktionsfรคhigkeit bleibt wรคhrend des Prozesses erhalten.
- Stellt sicher, dass รnderungen an einer Basislinie mit den Konfigurationsstatusberichten รผbereinstimmen.
- รberprรผfung auf Vollstรคndigkeit und Konsistenz.
Teilnehmer des SCM-Prozesses
Im Folgenden sind die wichtigsten Akteure im Supply Chain Management aufgefรผhrt:
1. Konfigurationsmanager
- Der Konfigurationsmanager ist der Leiter, der fรผr die Identifizierung von Konfigurationselementen verantwortlich ist.
- CM stellt sicher, dass das Team den SCM-Prozess einhรคlt.
- Er/Sie muss รnderungsantrรคge genehmigen oder ablehnen.
2. Entwickler
- Der Entwickler muss den Code gemรคร den รผblichen Entwicklungsaktivitรคten oder รnderungsanforderungen anpassen. Er ist fรผr die Pflege der Codekonfiguration verantwortlich.
- Der Entwickler sollte die รnderungen รผberprรผfen und Konflikte beheben.
3 Wirtschaftsprรผfer
- Der Auditor ist fรผr SCM-Audits und -Reviews verantwortlich.
- Es muss die Konsistenz und Vollstรคndigkeit der Verรถffentlichung sichergestellt werden.
4. Projektleiter:
- Stellen Sie sicher, dass das Produkt innerhalb eines bestimmten Zeitrahmens entwickelt wird.
- รberwacht den Entwicklungsfortschritt und erkennt Probleme im SCM-Prozess.
- Generieren Sie Berichte รผber den Status des Softwaresystems.
- Stellen Sie sicher, dass die Prozesse und Richtlinien fรผr die Erstellung, รnderung und das Testen eingehalten werden.
5. Benutzer
Der Endnutzer sollte die wichtigsten Begriffe des Supply Chain Managements verstehen, um sicherzustellen, dass er รผber die neueste Version der Software verfรผgt.
Managementplan fรผr die Softwarekonfiguration
Der SCMP-Prozess (Software Configuration Management Planning) beginnt in den frรผhen Codierungsphasen eines Projekts. Das Ergebnis der Planungsphase ist der SCM-Plan, der im Laufe des Projekts erweitert oder รผberarbeitet werden kann.
- Das SCMP kann einem รถffentlichen Standard wie dem IEEE 828 oder einem organisationsspezifischen Standard folgen.
- Es definiert die zu verwaltenden Dokumenttypen und eine Namenskonvention fรผr Dokumente. Beispiel: Test_v1.
- SCMP definiert die Person, die fรผr den gesamten SCM-Prozess und die Erstellung von Baselines verantwortlich ist.
- Richtlinien fรผr Versionsverwaltung und รnderungskontrolle festlegen.
- Definieren Sie Werkzeuge, die wรคhrend des SCM-Prozesses eingesetzt werden kรถnnen.
- Konfigurationsverwaltungsdatenbank zur Aufzeichnung von Konfigurationsinformationen.
Software-Konfigurationsmanagement-Tools
Jede Change-Management-Software sollte die folgenden drei Hauptmerkmale aufweisen:
Parallelitรคtsmanagement:
Wenn zwei oder mehr Aufgaben gleichzeitig ausgefรผhrt werden, spricht man von paralleler Bearbeitung. Im Kontext von SCM bedeutet Parallelitรคt, dass dieselbe Datei von mehreren Personen gleichzeitig bearbeitet wird.
Wenn die Parallelitรคt mit SCM-Tools nicht ordnungsgemรคร verwaltet wird, kann dies zu vielen dringenden Problemen fรผhren.
Versionskontrolle:
SCM verwendet eine Archivierungsmethode oder speichert jede รnderung an einer Datei. Mithilfe dieser Archivierungs- oder Speicherfunktion ist es mรถglich, im Problemfall auf die vorherige Version zurรผckzugreifen.
SyncChronisierung:
Benutzer kรถnnen mehrere Dateien oder eine vollstรคndige Kopie des Repositorys auschecken. Anschlieรend bearbeiten sie die benรถtigte Datei und checken die รnderungen wieder ins Repository ein. Sie kรถnnen ihre lokale Kopie synchronisieren, um stets รผber die รnderungen anderer Teammitglieder informiert zu sein.
Folgende Tools sind beliebt:
1.Git: Git ist ein kostenloses Open-Source-Tool, das die Versionskontrolle unterstรผtzt. Es wurde entwickelt, um alle Arten von Projekten schnell und effizient abzuwickeln.
Download-Link: https://git-scm.com/
2. Team Foundation Server: Team Foundation ist eine Gruppe von Tools und Technologien, die es dem Team ermรถglichen, bei der Entwicklung eines Produkts zusammenzuarbeiten und sich zu koordinieren.
Download-Link: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: Es handelt sich um ein Open-Source-Tool zur Konfigurationsverwaltung. Neben der Konfigurationsverwaltung bietet es auch Anwendungsbereitstellung und Aufgabenautomatisierung.
Download-Link: https://www.ansible.com/


