CHAIR IV Software & Systems Engineering 09.06.2004 Dr. Markus Pizka, TUM 10 3.4 Konfigurationsmanagement (SCM) "Das KM stellt einen Mechanismus zur Identifizierung, Lenkung und Rückverfolgung der Versionen jedes Softwareelements dar. In vielen Fällen sind auch frühere, nach wie vor in Verwendung befindliche Versionen zu warten und lenken.“ SCM ist Bestandteil zahlreicher Vorgehensmodelle und Standard-Entwicklungsprozesse (V-Modell, CMM, …) ISO-9000-3
22
Embed
CHAIR IV 3.4 Konfigurationsmanagement (SCM) fileCHAIR IV Software & Systems Engineering 09.06.2004 Dr. Markus Pizka, TUM 10 3.4 Konfigurationsmanagement (SCM) "Das KM stellt einen
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 10
3.4 Konfigurationsmanagement (SCM)
"Das KM stellt einen Mechanismus zur Identifizierung, Lenkung und Rückverfolgung der Versionen jedes Softwareelements dar. In vielen Fällen sind auch frühere, nach wie vor in Verwendung befindliche Versionen zu warten und lenken.“
SCM ist Bestandteil zahlreicher Vorgehensmodelle und Standard-Entwicklungsprozesse (V-Modell, CMM, …)
ISO-9000-3
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 11
SCM aktuell
IEEE ComputerMay 2004Seite 0
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 12
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 13
SCM Motivation
Software-Systeme sind umfangreich und komplex:– mlocs in n >> 100 Dateien– eingebundene Fremdprodukte, generierte Komponenten (GUI, OR-Mapping)– verschiedenen Sprachen / Compiler / Interpreter / Plattformen– zahlreiche Zusatzdokumente: Anforderungen, Design, Modelle, Manuale, …
Parallelarbeit (ggf. geografisch verteilt)
Herausforderungen:1. Aktuelle, vollständige Zusammensetzung (Konfiguration) des Systems2. Wiederherstellen des Entwicklungsstandes einer/s Release oder Stichtages3. Koordination und Integration der parallelen Arbeiten
– Beispiel: Bearbeitung eines MS-Word Dokumentes im Team
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 15
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 16
… ohne SCM 2
alte Release nicht wieder herstellbar– Fehlermeldung weder nachvollziehbar noch behebbar– durchgeführte Änderung nicht ohne weiteres reversibel
individuelle Änderungen für eine Release unmöglich
Dokumentation & Programm, i.d.R. nicht konsistent
Änderungshistorie unbekannt
keine statistischen Daten bzw. Trendanalyse über Evolution
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 17
Primitiv SCM
Benennung von Dateien/Verzeichnissen mit Datum
z.B. help-040609.c
Defizite
– manueller Aufwand, Fehlerpotential
– nach wie vor unklar,
wer warum und was genau in help.c am 040609 geändert hat
– Parallelarbeit an help.c?
– Manipulation des Dateinamens vor der Übersetzung des Projekts?
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 18
Säulen des SCM
Build-
Mgmt
Release-
Mgmt
Change-
Mgmt
Versions-
Mgmt
Projekt-Datenbank
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 19
Versionsmanagement (VM)
Software = Menge D von Dokumenten (inkl. Programme, Libs, …)
Jedes d ∈ D individuell versioniert– Erweiterung der Bezeichnung von d mit einer Versionskennung (-nummer)
– Festlegung einer neuen Version von d nach Änderung explizit ~ commit
i.d.R. mit Erläuterung, was + warum
– Archivierung aller Versionen von d inkl. Erläuterungen
Voraussetzung: Werkzeug-Unterstützung (z.B. RCS)
1.1Test.java 1.2 1.3 2.0
pizka, 01.06.04 10:32
„Start“
bauer, 10.06.04
02:18 „s. CR 149“
maier, 07.06.04
22:41 „Methoden …“
huber, 01.06.04 11:07
„Attribut x hinzugefügt“
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 20
Archiv und Arbeitsbereich
Ablage aller Versionen aller d ∈ D in gemeinsamen Archiv(Repository)
Entwickler arbeiten auf Kopien in privaten Arbeitsbereichen(Workspace)
Transfer von d X D zwischen Archiv und Arbeitsbereich:– Check-Out (neues Dok R W)– Update (W aktualisieren)– Check-In (neues Dok W R)– Commit (R aktualisieren)
ArbeitsbereichMitarbeiter XArbeitsbereich
Mitarbeiter B
Repository
ArbeitsbereichMitarbeiter A
ci, commit
co, update
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 21
Versionsbäume
Szenario: Fehlerbehebung in Version 1.0, wobei 1.2 aktuellVerzweigung von Version 1.0individuelle Fehlerbehebung parallel zur Weiterentwicklungggf. Vereinigung mit Hauptast (u.U. aufwendig)
Arten von Releases:– haupt (Major): neue Produktversion für Kunde– neben (Minor): kompatibel, Korrektur/Anpassung/geringfügige Erweiterung– intern: zur „in-house“ Verwendung durch das Entwicklerteam
häufig parallele Entwicklung an verschiedenen Releases
in separaten Zweigen der Hauptentwicklung
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 26
Buildmanagement (1)
V/R-Management gewährleistet keine syntaktische / semantische Konsistenz
notwendig: Produktion (Build) des Zielsystems aus Archivinhalt– Generierung / Beschaffung zusätzlicher Dokumente
– Übersetzung, Binden
– Test
Zeitbedarf oft erheblich! Entwicklung soll nicht blockiert werden!
Lösung:1. Build-Spezifikationen und Werkzeuge (make, ANT)
2. Release-Zustände
3. Berechtigungskonzept
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 27
Buildmanagement (2)
Projekt xRel_1.0frei
Projekt xRel_2.0frei
Projekt xRel_3.1in Arbeit
Projekt xRel_2.1in Arbeit
Projekt xRel_2.1Build / Test
Projekt xRel_2.1frei
Entwickler
Buildmanager
CHAIR IV Software & Systems Engineering
09.06.2004 Dr. Markus Pizka, TUM 28
Variantenmanagement
Zusätzliche Dimension des SCM zu Versionen und Releases
Unterschiedliche Varianten desselben Produkts– verschiedene Branchen
– verschiedene Länder/Regionen (vgl. Microsoft Produkte)
– verschiedene Leistungsstufen
Prinzip:– Archiv i.d.R. allgemeinste Version
– Berücksichtigung der Spezifika entweder
• durch Konfiguration bei der Installation
• Selektion von Dokumenten durch SCM-Tool (selten)
– erweiterter Build-Prozess zur Produktion der Produkt-Varianten