Software Configuration Management: Detaillierte Anleitung zu SCM

Software-Konfigurationsverwaltung
HubSpot Blog

Software Configuration Management (SCM) ist eine Methode im Software-Engineering, die Änderungen an Dokumenten, Codes und anderen Entitäten über den Softwareentwicklungslebenszyklus hinweg systematisch verwaltet, organisiert und kontrolliert. In diesem Beitrag gehen wir durch den Softwarekonfigurationsverwaltungsprozess und die Tools, die bei der Verfolgung, Verwaltung und Regulierung von Änderungen an Konfigurationselementen während des gesamten Softwareentwicklungslebenszyklus helfen.

Was ist Softwarekonfigurationsmanagement (SCM)?

Softwarekonfigurationsmanagement (SCM) ist ein Teilgebiet des Software-Engineerings, das darauf abzielt, den Prozess der Verarbeitung, Koordinierung und Regulierung von Änderungen in Anforderungen, Codes, Teams und anderen Faktoren während des Lebenszyklus der Softwareprojektentwicklung zu verbessern. Das SCM befasst sich hauptsächlich mit der Versionsauswahl, der Verfolgung von Änderungen und der Versionskontrolle von Softwareprojekten, um die Effizienz zu maximieren und gleichzeitig Fehler oder Risiken zu minimieren.

Was ist der Zweck des Softwarekonfigurationsmanagements?

Im Folgenden sind die Hauptgründe für die Implementierung eines technischen Software-Konfigurationsmanagementsystems aufgeführt:

  • Ständige Aktualisierung der verschiedenen Personen, die an der Software arbeiten.
  • Ein Softwarekonfigurationsprojekt kann mehrere Versionen, Zweige und Autoren enthalten, und das Team kann geografisch verstreut sein und gleichzeitig arbeiten.
  • Änderungen der Benutzeranforderungen, Richtlinien, Budgets und Zeitpläne müssen angepasst werden.
  • Software sollte auf einer Vielzahl von Plattformen und Betriebssystemen lauffähig sein.
  • Hilft bei der Entwicklung der Stakeholder-Koordinierung
  • Der SCM-Prozess ist auch nützlich, um die Kosten von Systemänderungen zu kontrollieren.

Schritte eines Softwarekonfigurations-Managementplans

Der Softwarekonfigurationsverwaltungsprozess in der Softwareentwicklung besteht aus einer Reihe von Verfahren, die alle Fehler, Ressourcen, Codes, Dokumentationen, Hardware und Budgets eines Projekts verfolgen und verwalten sollen.

SCM ist ein multidisziplinärer Prozess, der DevOps, Entwickler, Projektmanager/Eigentümer, SysAdmin und Tester auf allen Ebenen umfasst.

#1. Identifizierung und Planung

Der erste Schritt in diesem Prozess ist die Planung und Identifizierung. Der Zweck dieses Schritts besteht darin, die Entwicklung des Softwareprojekts zu planen und die Dinge zu identifizieren, die in den Anwendungsbereich fallen. Meetings und Brainstorming-Sitzungen mit Ihrem Team helfen Ihnen, die grundlegenden Anforderungen für den Rest des Projekts zu erarbeiten.

Ein Teil dieses Prozesses beinhaltet die Bestimmung des Projektfortschritts und die Bestimmung der Abschlusskriterien. Auf diese Weise wird Ihr Team verstehen, wann alle Projektziele erreicht wurden.

Zu den spezifischen Aktivitäten in dieser Phase gehören:

  • Erkennen von Testfällen, Spezifikationsanforderungen und Codemodulen
  • Jedes Computersoftware-Konfigurationselement im Prozess muss identifiziert werden.
  • Sammeln Sie grundlegende Informationen darüber, warum, wann und welche Änderungen vorgenommen werden und wer für deren Umsetzung verantwortlich ist.
  • Erstellen Sie eine Liste aller Ressourcen, die Sie benötigen, z. B. Tools, Dateien und Dokumente.

#2. Baseline- und Versionskontrolle

Die Versionskontrolle und die Baseline-Phase stellen die kontinuierliche Integrität des Produkts sicher, indem eine akzeptable Version der Software bestimmt wird. Diese Baseline wird an einem bestimmten Punkt im SCM-Prozess festgelegt und kann nur über eine formale Methode geändert werden.

Das Ziel dieser Phase ist es, die am Produkt vorgenommenen Änderungen nachzuverfolgen. Im Laufe des Projekts werden neue Baselines erstellt, was zu mehreren Softwareversionen führt.

Diese Phase umfasst die folgenden Aktivitäten:

  • Identifizieren und Kategorisieren der vom Projekt abgedeckten Komponenten
  • Entwicklung eines Mittels zur Verfolgung der Hierarchie verschiedener Versionen der Software
  • Identifizieren der kritischen Verbindungen zwischen verschiedenen Komponenten
  • Erstellen mehrerer Produkt-Baselines, z. B. Entwicklungs-, Funktions- und Produkt-Baselines
  • Erstellen eines konsistenten Kennzeichnungsschemas für alle Produkte, Revisionen und Dateien, damit alle auf derselben Seite sind.
  • Wenn für ein Projektattribut eine Baseline erstellt wird, werden formelle Kontrollprozesse für Konfigurationsänderungen ausgelöst, falls diese Attribute geändert werden.

#3. Kontrolle ändern

Änderungsmanagement ist der Prozess, bei dem sichergestellt wird, dass alle vorgenommenen Änderungen mit dem Rest des Projekts konsistent sind. Das Vorhandensein dieser Kontrollen hilft sowohl bei der Qualitätssicherung als auch bei der Freigabe und Freigabe neuer Basisdaten. Die Fähigkeit, Veränderungen zu bewältigen, ist entscheidend für den Erfolg des Projekts.

Anforderungen zur Änderung von Konfigurationen werden in diesem Schritt an das Team gestellt und vom Softwarekonfigurationsmanager autorisiert oder abgelehnt. Die typischsten Anfragen sind das Hinzufügen oder Bearbeiten verschiedener Konfigurationselemente sowie das Ändern von Benutzerberechtigungen.

Dieses Verfahren beinhaltet:

  • Kontrolle von vom Kunden angeforderten Ad-hoc-Änderungen
  • Untersuchung der gesamten Auswirkung der Änderungsanforderung auf das Projekt, um ihren Wert zu bestimmen.
  • Autorisierte Anpassungen vornehmen oder erklären, warum Änderungswünsche abgelehnt wurden

#4. Abrechnung des Konfigurationsstatus

Der nächste Schritt besteht darin, zu bestätigen, dass sich das Projekt gemäß dem Plan entwickelt, indem es gemäß den vordefinierten Baselines getestet und verifiziert wird. Es beinhaltet die Überprüfung der Versionshinweise und anderer zugehöriger Materialien, um zu bestätigen, dass die Software alle funktionalen Anforderungen erfüllt.

Die Abrechnung des Konfigurationsstatus überwacht jede während des Prozesses herausgegebene Version und ermittelt, was in jeder Version neu ist und warum die Änderungen erforderlich waren. Diese Phase umfasst die folgenden Aktivitäten:

  • Verfolgen und Bewerten von Änderungen von einer Baseline zur nächsten
  • Alle Änderungsanfragen werden nachverfolgt und gelöst.
  • Pflege der Dokumentation jeder Änderung, die als Reaktion auf Änderungsanforderungen vorgenommen wurde, und Erreichen einer neuen Baseline
  • Frühere Versionen werden untersucht und getestet.

#6. Audits und Bewertungen

Die letzte Phase ist eine technische Untersuchung jeder Phase des Softwareentwicklungslebenszyklus. Audits und Reviews untersuchen den Prozess, die Konfigurationen, den Arbeitsablauf, die Änderungsanforderungen und alles andere, was im Laufe der Projektentwicklung in die Erstellung jeder Baseline eingeflossen ist.

Das Team analysiert die Anwendung mehrfach, um ihre Integrität sicherzustellen, und erstellt auch die notwendige Begleitdokumentation wie Versionshinweise, Benutzerhandbücher und Installationsrichtlinien.

Zu den Aktivitäten dieses Schritts gehören:

  • Sicherstellen, dass die in den Planungs- und Identifizierungsschritten festgelegten Ziele erreicht werden
  • Sicherstellen, dass die Software den etablierten Konfigurationskontrollstandards entspricht
  • Stellen Sie sicher, dass die Änderungen gegenüber den Baselines den Berichten entsprechen
  • Validierung, dass das Projekt in Bezug auf die Projektziele konsistent und vollständig ist.

Wer nimmt am Software Configuration Management-Prozess teil?

SCM ist ein multidisziplinärer Prozess, an dem nahezu jedes Mitglied des Softwareentwicklungsteams beteiligt ist.

#1. Konfigurationsmanager

Während des gesamten Entwicklungsprozesses ist der Konfigurationsmanager dafür verantwortlich, zu bestimmen, wer wofür verantwortlich ist. Sie stellen sicher, dass sich alle während des gesamten Projekts an das SCM-Verfahren halten und bei allen Änderungswünschen das letzte Wort haben.

# 2. Projektmanager

Die Rolle des Projektmanagers ist entscheidend für den SCM-Prozess. Sie definieren den Zeitplan des Projekts, um sicherzustellen, dass es pünktlich abgeschlossen wird, und sie erstellen auch Updates zum Fortschritt des Teams. Eine weitere entscheidende Verantwortung des Projektmanagers besteht darin, sicherzustellen, dass jedes Teammitglied die festgelegten Kriterien für die Entwicklung, Änderung und Prüfung der Software einhält.

#3. Softwareentwickler

Entwickler sind dafür verantwortlich, Code zu schreiben und alle akzeptierten Änderungswünsche während der Entwicklung zu erfüllen.

#4. Wirtschaftsprüfer

Diese Position ist für alle Audits und Überprüfungen verantwortlich und dafür verantwortlich, dass die endgültige Version umfassend und konsistent ist.

Top-Konfigurationsmanagement-Software und -Tools

#1. Git

Git ist das branchenweit beliebteste Versionskontrollsystem zum Verfolgen von Codeänderungen. Das Einschließen von Konfigurationsmanagementdaten in ein Git-Repository mit Code bietet eine umfassende Ansicht der Versionskontrolle eines gesamten Projekts. Git ist ein wichtiges Tool für das Konfigurationsmanagement auf höherer Ebene. Die folgenden Konfigurationsverwaltungstools sollen in einem Git-Repository gespeichert werden und die Nachverfolgung der Git-Versionskontrolle verwenden.

#2. Docker

Die Containerisierung wurde von Docker ähnlich wie ein Konfigurations-Lockdown als eine ausgeklügelte Art des Konfigurationsmanagements vorgeschlagen. Docker basiert auf Dockerfiles, bei denen es sich um Konfigurationsdateien handelt, die eine Liste von Befehlen bereitstellen, die bewertet werden, um den beabsichtigten Snapshot des Betriebssystemstatus zu rekonstruieren. Docker verwendet diese Dockerfiles, um Container zu generieren, die Snapshots einer voreingestellten Anwendung sind. Dockerfiles werden zur Versionskontrolle an ein Git-Repository übergeben und erfordern eine zusätzliche Konfigurationsverwaltung, bevor sie in einer Infrastruktur bereitgestellt werden können.

#3. Terraform

Terraform von HasiCorp ist eine Open-Source-Softwarekonfigurationsmanagementplattform. IaC wird von Terraform verwendet, um Cluster, Cloud-Infrastruktur und Dienste bereitzustellen und zu verwalten. Terraform ist mit AWS, Microsoft Azure und anderen Cloud-Plattformen kompatibel. Für gängige Infrastrukturkomponenten wie Server, Datenbanken und Warteschlangen hat jede Cloud-Plattform ihre eigene Darstellung und Schnittstelle. Terraform hat eine Abstraktionsebene aus Konfigurationstools für Cloud-Plattformen erstellt, die es Teams ermöglichen, Dateien zu erstellen, die reproduzierbare Beschreibungen ihrer Infrastruktur darstellen.

#4. Koch, Marionette, Ansible, Salzstapel

Zu den Frameworks für die IT-Automatisierung gehören Ansible, Salt Stack, Chef und Puppet. Viele typische Systemadministratorprozesse werden durch diese Frameworks automatisiert. Jedes Framework verwendet eine Reihe von Konfigurationsdatendateien, typischerweise YAML oder XML, die von einer ausführbaren Datei analysiert werden.

Die Konfigurationsdatendateien beschreiben die Schritte, die zum Konfigurieren eines Systems zu unternehmen sind. Das Programm führt dann die Aktionen aus. Die Sprache der ausführbaren Datei variiert zwischen den Systemen – Chef ist in Ruby geschrieben, während Ansible und Salt Stack in Python geschrieben sind. Diese Methode ist analog zum Ausführen von Ad-hoc-Shell-Skripten, bietet jedoch eine strukturiertere und verfeinerte Erfahrung durch die Ökosysteme der jeweiligen Plattformen. Diese Tools bieten die Automatisierung, die zum Erreichen von CI/CD erforderlich ist.

Was sind die Vorteile der Bereitstellung von Software Configuration Management und Tools?

In der Softwareentwicklung stehen verschiedene Tools zur Verfügung, um den Prozess des Softwarekonfigurationsmanagements zu unterstützen. Das Ziel dieser Instrumente ist es, typischerweise manuelle Tätigkeiten zu automatisieren, was eine verbesserte Genauigkeit, Geschwindigkeit und Kontrolle ermöglicht. Sie können konkret helfen bei:

  1. Alarme und Berichte: Bei Abweichungen von der vereinbarten Baseline sendet ein kompetentes SCM-Tool Warnungen und Berichte. Diese Daten werden nahezu in Echtzeit übertragen, sodass das Management schnell reagieren kann, wenn etwas schief geht.
  2. Änderungen verfolgen: SCM-Tools verfolgen Änderungen an Servern oder Anwendungen automatisch und ermöglichen auch die menschliche Eingabe solcher Daten. Überwachungsskriptausgaben können auch für die Änderungsprüfung verwendet werden.
  3. Konfigurationsvergleiche: Die besten Software-Konfigurationsmanagement-Tools ermöglichen es Ihnen, Unterschiede zwischen Konfigurationen zu erkennen.
  4. Fehler: Fehler und Probleme werden schnell entdeckt, sodass Ingenieure Maßnahmen ergreifen können, bevor sich das Problem verschlimmert.
  5. Inventarverfolgung: Die meisten SCM-Tools enthalten einen Mechanismus zur Nachverfolgung von Hardware- und Software-Assets, wodurch die Notwendigkeit entfällt, ein handschriftliches Inventar zu führen.
  6. Patch-Management: SCM-Tools können Ihnen dabei helfen, alle Feinheiten im Zusammenhang mit dem Patch-Management bei der Bereitstellung aktualisierter Software im Auge zu behalten.

Gibt es etwas Negatives an der Verwendung eines Software-Konfigurationsmanagement-Tools?

Beachten Sie vor der Implementierung eines SCM-Tools die folgenden Punkte:

  1. Entzug von Ressourcen: Sie müssen über die Ressourcen verfügen, um den Prozess von Anfang bis Ende zu unterstützen.
  2. Wissensbeschränkungen: Jeder Teilnehmer muss mit den eingesetzten Softwaremanagement-Tools vertraut sein.
  3. SMB-Nachteil: Der Umfang dessen, was erforderlich ist, um diese Tools effektiv zu nutzen, kann für eine kleine Organisation eine Herausforderung darstellen.
  4. Hardwareanforderungen: Damit das Verfahren erfolgreich funktioniert, ist eine schnelle und fein abgestimmte Hardware unerlässlich.

Was ist das Hauptziel der Verwaltung der Softwarekonfiguration?

Es überwacht und überwacht neue Produkte und deren Iterationen. Darüber hinaus erkennt und verwaltet es die Konfiguration der Hardware, Software und Tools, die während des Entwicklungszyklus verwendet werden.

Was ist Konfigurationsmanagement im SDLC?

Um die Konsistenz der Funktions-, Leistungs- und physischen Merkmale eines Produkts mit seinen Anforderungen, Design und Betriebsinformationen über den gesamten Lebenszyklus des Produkts herzustellen und aufrechtzuerhalten, ist das Konfigurationsmanagement ein entscheidendes Verfahren im System- und Software-Engineering.

Welchen Nutzen hat die CE-Konfiguration?

In Hochfrequenzschaltungen werden auch Verstärker mit gemeinsamem Emitter verwendet, um beispielsweise schwache Signale zu verstärken, die von einer Antenne empfangen werden. In dieser Situation wird häufig anstelle des Lastwiderstands ein Schwingkreis verwendet. Dies könnte durchgeführt werden, um die Bandbreite auf ein schmales Band zu reduzieren, das auf der Betriebsfrequenz zentriert ist.

Zusammenfassung

Das Konfigurationsmanagement ist ein unverzichtbares Werkzeug für die Verwaltung komplizierter Softwaresysteme. Ein Mangel an Konfigurationsmanagement in der Softwareentwicklung kann zu großen Problemen mit der Systemzuverlässigkeit, Betriebszeit und Skalierbarkeit führen. Viele moderne Softwareentwicklungstools bieten Konfigurationsverwaltungsfunktionen.

Häufig gestellte Fragen zum Softwarekonfigurationsmanagement

Was sind die 4 Hauptfunktionen des Softwarekonfigurationsmanagements?

Identifizierung, Kontrolle, Prüfung und Statusabrechnung

Was sind Softwarekonfigurationselemente?

Ein Configuration Item (CI) ist eine Servicekomponente, ein Infrastrukturteil oder andere Dinge, die kontrolliert werden müssen, damit Services erfolgreich bereitgestellt werden können. Jedes CI hat die folgenden Merkmale: Eine Kategorisierung oder Kategorie von etwas, das seine Natur angibt.

Was ist eine Konfigurationsmanagementstrategie?

Eine Konfigurationsmanagementstrategie wird verwendet, um festzulegen, wie und wer die Produkte des Projekts kontrolliert und sichert. Es gibt Antworten auf folgende Fragen: Wie und wo werden die Produkte des Projekts gelagert? Welche Ein- und Auslagersicherheit wird implementiert?

Bibliographie

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Das Könnten Sie Auch Interessieren