Softwarekonfigurationsmanagement im Software Engineering
Was ist Softwarekonfigurationsmanagement?
Im Software-Engineering, Softwarekonfigurationsmanagement (SCM) ist ein Prozess zur systematischen Verwaltung, Organisation und Kontrolle der รnderungen in Dokumenten, Codes und anderen Einheiten wรคhrend des Softwareentwicklungslebenszyklus. Das Hauptziel besteht darin, die Produktivitรคt mit minimalen Fehlern zu steigern. SCM ist Teil des interdisziplinรคren Bereichs des Konfigurationsmanagements und kann genau bestimmen, wer welche Revision vorgenommen hat.
Warum brauchen wir Konfigurationsmanagement?
Die Hauptgrรผnde fรผr die Implementierung eines technischen Softwarekonfigurationsmanagementsystems sind:
- Es gibt mehrere Leute, die an Software arbeiten, die stรคndig aktualisiert wird
- Es kann vorkommen, dass mehrere Versionen, Zweige und Autoren an einem Softwarekonfigurationsprojekt beteiligt sind und das Team geografisch verteilt ist und gleichzeitig arbeitet
- รnderungen der Benutzeranforderungen, Richtlinien, Budgets und Zeitplรคne mรผssen berรผcksichtigt werden.
- Software sollte auf verschiedenen Maschinen laufen kรถnnen und Operating Systems
- Hilft bei der Entwicklung der Koordination zwischen den Beteiligten
- Der SCM-Prozess ist auch hilfreich, um die Kosten zu kontrollieren, die mit der Durchfรผhrung von 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 Konfigurationsidentifikation ist eine Methode zur Bestimmung des Umfangs des Softwaresystems. Mit Hilfe dieses Schrittes kรถnnen Sie etwas verwalten oder kontrollieren, auch wenn Sie nicht wissen, was es ist. 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 mithilfe eines objektorientierten Ansatzes
- Der Prozess beginnt mit Basisobjekten, die zu Aggregatobjekten gruppiert werden. Details darรผber, was, warum, wann und von wem รnderungen im Test vorgenommen werden
- Jedes Objekt verfรผgt รผber eigene Merkmale, die seinen Namen identifizieren, der fรผr alle anderen Objekte eindeutig ist
- Liste der benรถtigten Ressourcen wie Dokument, Datei, Tools usw.
Ejemplo:
Anstatt eine Datei login.php zu benennen, sollte sie login_v1.2.php heiรen, wobei v1.2 fรผr die Versionsnummer der Datei steht
Anstatt den Ordner โCodeโ zu nennen, sollte er โCode_Dโ heiรen, wobei D fรผr Code steht, der 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:
- Erleichtern Sie die Erstellung verschiedener Versionen einer Anwendung
- Definieren und Bestimmen von Mechanismen zur Verwaltung verschiedener Versionen dieser Arbeitsprodukte
- Die funktionale Baseline entspricht den รผberprรผften Systemanforderungen
- Zu den hรคufig verwendeten Baselines gehรถren Funktions-, Entwicklungs- und Produkt-Baselines
In einfachen Worten bedeutet โBaselineโ โbereit zur Verรถffentlichungโ.
Change Control
Die รnderungskontrolle ist eine Verfahrensmethode, die Qualitรคt und Konsistenz bei รnderungen am Konfigurationsobjekt sicherstellt. In diesem Schritt wird die รnderungsanforderung an den Softwarekonfigurationsmanager รผbermittelt.
Aktivitรคten wรคhrend dieses Prozesses:
- Kontrollieren Sie Ad-hoc-รnderungen, um eine stabile Softwareentwicklungsumgebung aufzubauen. รnderungen werden im Repository festgeschrieben
- Die Anfrage wird auf der Grundlage des technischen Nutzens, mรถglicher Nebenwirkungen und der Gesamtauswirkungen auf andere Konfigurationsobjekte geprรผft.
- Es verwaltet รnderungen und stellt Konfigurationselemente wรคhrend des Softwarelebenszyklus zur Verfรผgung
Abrechnung des Konfigurationsstatus
Die Konfigurationsstatusabrechnung verfolgt jede Version wรคhrend des SCM-Prozesses. In dieser Phase geht es darum, zu verfolgen, was jede Version enthรคlt und welche รnderungen zu dieser Version fรผhren.
Aktivitรคten wรคhrend dieses Prozesses:
- Zeichnet alle รnderungen auf, die an der vorherigen Baseline vorgenommen wurden, um eine neue Baseline zu erreichen
- Identifizieren Sie alle Elemente, um die Softwarekonfiguration zu definieren
- รberwachen Sie den Status von รnderungsanforderungen
- Vollstรคndige Auflistung aller รnderungen seit der letzten Baseline
- Ermรถglicht die Verfolgung des Fortschritts bis zur nรคchsten Baseline
- Ermรถglicht die รberprรผfung frรผherer Releases/Versionen, die zum Testen extrahiert werden sollen
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.
- Um die Einhaltung von Konfigurationskontrollstandards zu รผberprรผfen. Prรผfung und Berichterstattung รผber die vorgenommenen รnderungen
- SCM-Audits stellen auรerdem sicher, dass die Rรผckverfolgbarkeit wรคhrend des Prozesses gewahrt bleibt.
- Stellt sicher, dass an einer Baseline vorgenommene รnderungen den Konfigurationsstatusberichten entsprechen
- Validierung der Vollstรคndigkeit und Konsistenz
Teilnehmer des SCM-Prozesses
Im Folgenden sind die wichtigsten Teilnehmer am SCM 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 befolgt
- Er/Sie muss รnderungswรผnsche genehmigen oder ablehnen
2. Entwickler
- Der Entwickler muss den Code gemรคร Standardentwicklungsaktivitรคten oder รnderungsanforderungen รคndern. Er ist fรผr die Aufrechterhaltung der Codekonfiguration verantwortlich.
- Der Entwickler sollte die รnderungen รผberprรผfen und Konflikte lรถsen
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
- Erstellen Sie Berichte รผber den Status des Softwaresystems
- Stellen Sie sicher, dass Prozesse und Richtlinien beim Erstellen, รndern und Testen befolgt werden
5. Benutzer
Der Endbenutzer sollte die wichtigsten SCM-Begriffe verstehen, um sicherzustellen, dass er รผber die neueste Version der Software verfรผgt
Managementplan fรผr die Softwarekonfiguration
Die SCMP-Prozessplanung (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.
- Der SCMP kann einem รถffentlichen Standard wie IEEE 828 oder einem organisationsspezifischen Standard folgen
- Es definiert die zu verwaltenden Dokumententypen und die Benennung der Dokumente. Beispieltest_v1
- SCMP definiert die Person, die fรผr den gesamten SCM-Prozess und die Erstellung von Baselines verantwortlich ist.
- Korrigieren Sie Richtlinien fรผr Versionsverwaltung und รnderungskontrolle
- Definieren Sie Werkzeuge, die wรคhrend des SCM-Prozesses verwendet werden kรถnnen
- Konfigurationsverwaltungsdatenbank zur Aufzeichnung von Konfigurationsinformationen.
Software-Konfigurationsmanagement-Tools
Jede รnderungsmanagement-Software sollte รผber die folgenden drei Hauptfunktionen verfรผgen:
Parallelitรคtsmanagement:
Wenn zwei oder mehr Aufgaben gleichzeitig ausgefรผhrt werden, spricht man von parallelem Betrieb. Parallelitรคt im Zusammenhang mit SCM bedeutet, 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 an der Datei vorgenommene รnderung. Mithilfe der Archivierungs- oder Speicherfunktion ist es mรถglich, bei Problemen zur vorherigen Version zurรผckzukehren.
SyncChronisierung:
Benutzer kรถnnen mehrere Dateien oder eine vollstรคndige Kopie des Repositorys auschecken. Der Benutzer arbeitet dann an der benรถtigten Datei und checkt die รnderungen wieder in das Repository ein. Er kann seine lokale Kopie synchronisieren, um รผber die von anderen Teammitgliedern vorgenommenen รnderungen auf dem Laufenden zu bleiben.
Nachfolgend sind beliebte Tools aufgefรผhrt
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 Verwaltung der Softwarekonfiguration. Neben der Konfigurationsverwaltung bietet es auch Anwendungsbereitstellung und Aufgabenautomatisierung.
Download-Link: https://www.ansible.com/
Sehen Sie sich weitere SW-Konfigurationstools an: https://www.guru99.com/software-configuration-management-tools.html
Fazit
- Best Practices fรผr das Konfigurationsmanagement helfen Unternehmen dabei, die รnderungen in den Dokumenten, Codes und anderen Einheiten wรคhrend des Prozesses systematisch zu verwalten, zu organisieren und zu kontrollieren Lebenszyklus der Softwareentwicklung.
- Das Hauptziel des SCM-Prozesses besteht darin, die Produktivitรคt mit minimalen Fehlern zu steigern
- Der Hauptgrund fรผr den Konfigurationsmanagementprozess besteht darin, dass mehrere Personen an einer Software arbeiten, die stรคndig aktualisiert wird. SCM hilft dabei, Parallelitรคt, Synchronisierung und Versionskontrolle herzustellen.
- Eine Baseline ist eine offiziell akzeptierte Version eines Softwarekonfigurationselements
- Die รnderungskontrolle ist eine Verfahrensmethode, die Qualitรคt und Konsistenz bei รnderungen am Konfigurationsobjekt sicherstellt.
- Die Konfigurationsstatusabrechnung verfolgt jede Version wรคhrend des SCM-Prozesses
- Softwarekonfigurationsprรผfungen stellen sicher, dass das gesamte Softwareprodukt die Grundanforderungen erfรผllt
- Projektmanager, Konfigurationsmanager, Entwickler, Auditor und Benutzer sind Teilnehmer am SCM-Prozess
- Die SCM-Prozessplanung beginnt in den frรผhen Phasen eines Projekts.
- Git, Team Foundation Server und Ansible sind einige beliebte SCM-Tools.


