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/






