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.