Einführung
Normalerweise erstellen die Projektmitarbeiter jeden Tag viele neue Versionen von Code, Dokumentationen, Zeichnungen usw. Diesen Arbeitsablauf zu kontrollieren und darauf basierend ein Produkt zu erstellen, ist mühsam und fehleranfällig. Und genau darum geht es beim Konfigurationsmanagement.
Im Folgenden sind die wichtigsten Aspekte des Konfigurationsmanagements in Automotive SPICE dargestellt.
1. Erstellen Sie ein Konfigurationsmanagement-System, das alle Entwicklungsaktivitäten abdeckt
Im Konfigurationsmanagement-System muss alles gespeichert werden, was zur Definition eines Produkts erforderlich ist. Wenn ein Produkt aus Software, Hardware und mechanischen Komponenten besteht, gibt es Stücklisten, Zeichnungen, Anforderungen, Entwurf, Code, Tests usw. Stellen Sie sich vor, dass alle diese Elemente in verschiedenen Tools gespeichert sind. Wie kann man trotzdem alle Elemente und ihre Auswirkungen aufeinander für eine Produktversion verwalten? Siehe Abbildung 1.
Abbildung 1. Lösung für das Konfigurationsmanagement.
Jedes Symbol steht für ein Element. In unserem Prozess
- markieren wir alle Softwareelemente, die wir zur Erstellung der nächsten Softwareversion verwenden werden. Dies nennen wir eine lokale Baseline. Wir weisen dieser Baseline ein Label zu, das diese eindeutig bezeichnet und ihre Elemente eindeutig identifiziert (#1).
- Dasselbe machen wir für die Hardwarekomponenten, die wir für die nächste Version der Leiterplatte verwenden werden. Wir markieren sie mit einem zweiten Label, das nun eine weitere lokale Baseline darstellt (#2).
- Mit allen Zeichnungen, Anforderungen, Entwurf, Code, Tests usw. verfahren wir genauso, so dass es immer mehr Labels werden (#3).
Und jetzt kommt der Trick: Wir geben alle Labels in ein Konfigurationsmanagement-Tool ein und definieren die übergeordnete Gesamt-Baseline, siehe Abbildung 2.
Abbildung 2. Gesamt-Baseline.
Im Prinzip verwenden Sie eines der Softwaretools als führendes Tool und können das gesamte Produkt durch lokale Baselines und eine übergeordnete Gesamt-Baseline beschreiben.
2. Entscheiden Sie, was in das Konfigurationsmanagement aufgenommen werden soll
Manchmal werden Ressourcen verschwendet, weil Elemente unnötigerweise in das Konfigurationsmanagement einfließen. Deshalb muss anhand der folgenden Kriterien entschieden werden, welche Elemente dem Konfigurationsmanagement zugeführt werden sollen:
- Brauchen Sie das Element, um das Produkt herzustellen?
- Brauchen Sie das Element, um das Produkt zu beschreiben?
- Definieren Sie, wie das Verzweigen und Zusammenführen korrekt gehandhabt werden soll
In der Softwareentwicklung arbeiten manchmal mehrere Entwickler gleichzeitig an demselben Code, was zu starken Inkonsistenzen führen kann. Wie können wir die Versionen zusammenführen, ohne Konflikte zu verursachen? Siehe Abbildung 3.
Abbildung 3. Verzweigung.
In der Regel ist dies Ihre Lösung: Bei der Zusammenführung der Versionen hebt das Konfigurationsmanagement-Tool beide Arten von Änderungen hervor. Sie müssen eine Regel definieren, wie damit umgegangen werden soll (z. B. „Die Person, die die letzte Änderung vornimmt, ist für die Durchführung einer Codereview und die Lösung von Konflikten verantwortlich.“). Generell sollten Sie Regeln festlegen, welche Arten von Verzweigungen und Zusammenführungen in welchen Situationen zulässig sind.
Zusammenfassung
Das ist Konfigurationsmanagement in aller Kürze.
Wenn Sie diese Punkte beachten, gelingt Folgendes besser:
- Aufbau eines effektiven und effizienten Konfigurationsmanagement-Systems
- Signifikante Unterstützung für das Projekt- und Releasemanagement
- Helfen Sie der Projektleitung zu halten, was dem Kunden versprochen wurde.
Konfigurationsmanagement – der Prozess nach Automotive SPICE®
Der Zweck des Konfigurationsmanagement-Prozesses besteht darin, die Integrität aller Arbeitsprodukte eines Prozesses oder Projekts herzustellen und zu erhalten und sie den Beteiligten zur Verfügung zu stellen.
Best Practice (BP1): Entwickeln Sie eine Strategie für das Konfigurationsmanagement. Dafür muss u. a. Folgendes festgelegt werden:
- Zuständigkeiten
- Tools und Repositories
- Kriterien für Konfigurationselemente
- Namenskonventionen
- Zugriffsrechte
- Kriterien für Baselines
- Strategie für Zusammenführung und Verzweigung
- Ansatz für die Revisionshistorie der Konfigurationselemente
- Anmerkung 1: Die Konfigurationsmanagement-Strategie unterstützt typischerweise die Handhabung von Produkt-/Softwarevarianten, die ggf.durch unterschiedliche Applikationsparameter oder andere Faktoren verursacht werden.
- Anmerkung 2: Die Verzweigungsstrategie legt fest, in welchen Fällen eine Verzweigung zulässig ist, ob eine Autorisierung erforderlich ist, wie Zweige zusammengeführt werden und welche Aktivitäten erforderlich sind, um zu überprüfen, ob alle Änderungen konsistent integriert wurden, ohne andere Änderungen oder die ursprüngliche Software zu beschädigen.
BP2: Identifizieren Sie Konfigurationselemente. Identifizieren und dokumentieren Sie Konfigurationselemente gemäß der Konfigurationsmanagement-Strategie.
- Anmerkung 3: Die Konfigurationskontrolle wird in der Regel für die Produkte angewandt, die an den Kunden geliefert werden, für bestimmte interne Arbeitsprodukte, erworbene Produkte, Tools und andere Konfigurationselemente, die bei der Erstellung und Beschreibung dieser Arbeitsprodukte verwendet werden.
BP3: Richten Sie ein Konfigurationsmanagement-System gemäß der Konfigurationsmanagement-Strategie ein.
BP4: Richten Sie eine Verzweigungsstrategie gemäß der Konfigurationsmanagement-Strategie ein, gegebenenfalls für parallele Entwicklungen, die dieselbe Basis verwenden.
BP5: Kontrollieren Sie Änderungen und Releases. Erstellen Sie Mechanismen zur Kontrolle der Konfigurationselemente gemäß der Konfigurationsmanagement-Strategie und kontrollieren Sie Änderungen und Releases anhand dieser Mechanismen.
BP6: Erstellen Sie Baselines für interne Zwecke und für die externe Bereitstellung gemäß der Konfigurationsmanagement-Strategie.
- Anmerkung 4: Bei Fragen zu Baselines siehe auch Produktfreigabeprozess SPL.2.
BP7: Erfassen Sie den Konfigurationsstatus. Zur Unterstützung des Projektmanagements und anderer relevanter Prozesse sollte der Status von Konfigurationselementen erfasst und angezeigt werden.
- Anmerkung 5: Regelmäßige Updates über den Konfigurationsstatus (z. B. wie viele Konfigurationselemente derzeit in Arbeit, eingecheckt, geprüft, freigegeben usw.sind) unterstützen das Projektmanagement, u. a. in speziellen Projektphasen wie der Softwareintegration.
BP8: Überprüfen Sie, ob die Informationen über die konfigurierten Elemente und ihre Baselines vollständig sind, und bestätigen Sie die Konsistenz der Baselines.
- Anmerkung 6: Eine typische Implementierung ist die Durchführung von Baseline- und Konfigurationsmanagement-Audits.
BP9: Verwalten Sie die Speicherung von Konfigurationselementen und Baselines. Unterstützen Sie die Integrität und Verfügbarkeit von Konfigurationselementen und Baselines durch angemessene Planung und Bereitstellung von Ressourcen für die Speicherung, Archivierung (langfristige Speicherung) und Sicherung der verwendeten Konfigurationsmanagement-Systeme.
- Anmerkung 7: Die Sicherung, Speicherung und Archivierung muss möglicherweise über die garantierte Lebensdauer aktuell verfügbarer Speichermedien hinausgehen. Zu den betroffenen Konfigurationselementen können die in Anmerkung 2 und 3 genannten gehören. Die Verfügbarkeit kann durch vertragliche Anforderungen festgelegt werden.
Arbeitsergebnisse
- Leitfaden für Verarbeitung und Speicherung
- Konfigurationsmanagement-Plan
- Wiederherstellungsplan
- Baseline
- Konfigurationsmanagement-Aufzeichnung
- Änderungshistorie
- Konfigurationsmanagement-System
Konfigurationsmanagement: Tutorial für Fortgeschrittene
Welchen Nutzen bietet das Konfigurationsmanagement?
In der Automobilbranche ist die Entwicklung in hohem Maße inkrementell und es müssen immer wieder Änderungswünsche berücksichtigt werden. Die große Anzahl der daraus resultierenden geänderten Arbeitsprodukte miteinander in Einklang zu bringen, ist keine leichte Aufgabe. Dies gilt sogar über die Entwicklung hinaus, da Zulieferer in der Lage sein müssen, ihre Systeme bis zu 30 Jahre nach dem Ende der Produktion zu ändern. Das kann nur mit einem äußerst strengen Konfigurationsmanagement-System funktionieren.
Was beinhaltet das Konfigurationsmanagement?
- Zunächst wird eine Konfigurationsmanagement-Strategie entwickelt und dokumentiert, in der Regel in einem Konfigurationsmanagement-Plan (BP1). BP1 führt typische Elemente einer Strategie auf. Dazu gehört auch die Strategie für Verzweigung und Zusammenführung.
- Die Arbeitsprodukte, die im Konfigurationsmanagement kontrolliert werden sollen (siehe Abbildung 4: Tabelle Konfigurationselemente), werden definiert (BP2).
- Das Verzweigen und Zusammenführen muss bei Bedarf gemäß der Strategie (BP4) erfolgen.
- Es wird ein geeignetes Konfigurationsmanagement-System eingerichtet, das die Kontrolle der Änderungen an den Konfigurationselementen und die Erstellung von Baselines und Releases ermöglicht (BP3/5/6).
Abbildung 4. Tabelle mit beispielhaften Konfigurationselementen und deren Zuordnung zu Baselines.
- Konfigurationsmanagement-Tools ermöglichen die Erstellung von Berichten, die den Status von Konfigurationselementen auf Basis eines Lebenszyklusmodells anzeigen (z. B. in Arbeit, geprüft, Unit-getestet, Integration getestet) (BP7). Dies ist sehr nützlich für Projektmanager, Buildmanager, Testmanager usw.
- Mit Kontrollen wird gewährleistet, dass das hergestellte Produkt den funktionalen Anforderungen (funktionaler Konfigurationsaudit) und dem Entwurf () entspricht (BP8).
- Die Speicherung und Sicherung von Konfigurationselementen, Baselines und Releases muss definiert und organisiert werden und ihre Langzeitarchivierung muss gemäß Kundenanforderungen gewährleistet sein (BP9). Dazu gehört auch die Archivierung von Entwicklungstools.
Überlegungen zu gängigen Herausforderungen
- Konfigurationselemente sind in der Regel alle relevanten technischen Arbeitsprodukte (die das gesamte V-Modell abdecken) im Rahmen von Produktfreigaben. Dazu gehören auch die verwendeten Tools und alle relevanten Arbeitsprodukte aus Management- und Unterstützungsprozessen.
- Der Beginn einer parallelen Entwicklung von Software wird als Verzweigung bezeichnet. Ob und in welchen Fällen dies zulässig ist, muss genau festgelegt werden. Wenn die Zweige wieder zusammengeführt werden, müssen alle Inkonsistenzen beseitigt werden.
- Das Konfigurationsmanagement-System muss auf alle Bereiche (Software, Hardware, Mechanik usw.) ausgelegt sein und verteilt sich deshalb auf verschiedene Konfigurationsmanagement-Tools. Es wird eine Methode benötigt, um bereichsübergreifende Baselines festzulegen.
- Eine Baseline ist ein genau definierter Satz eindeutig identifizierter Konfigurationselemente. Baselines können dazu verwendet werden, einen bestimmten Entwicklungsstand einzufrieren, um ihn vor unkontrollierten Änderungen zu schützen (z. B. Einfrieren der Anforderungen und des Entwurfs für ein bestimmtes Release, um sich anschließend auf die Implementierung und Fehlerbehebung zu konzentrieren). Zumindest werden Baselines verwendet, um eine neue Produktfreigabe zu erstellen.
Software wird durch die Traceability und Konsistenz der Engineeringprozesse unterstützt. Dabei ist das Ziel die Bestätigung, dass die laut Beschreibung im Build enthaltenen Funktionalitäten auch tatsächlich darin enthalten sind. Quellen für eine solche Bestätigung sind der Freigabeplan, geplante Änderungsanträge und Fehlerbehebungen.
Erfahren Sie mehr über Automotive SPICE®
Wenn Sie alles über das Angebot von Automotive SPICE® erfahren und ein Automotive SPICE®-Experte werden wollen, sehen Sie sich unsere Automotive SPICE-Schulung an.
Über den Autor
Klaus Hoermann arbeitet seit 1998 mit Automotive SPICE®. Seitdem hat er Hunderte von Assessments und Schulungen durchgeführt. Eine seiner Stärken ist es, schwer verständliche Modelle so herunterzubrechen, dass jeder sie verstehen kann.