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

Benรถtigen Sie Konfigurationsmanagement

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

Teilnehmer des SCM-Prozesses

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.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: