Kapitel 12: Konfigurationsmanagement Inhalt 12.1 Grundlagen 12.2 Konfiguration und Release 12.3 Änderungswesen 12.4 Problemmeldewesen Schlüsselbegriffe Software-Einheit, Konfiguration, Release, Änderungswesen, Problemmeldewesen Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-1
12.1 Grundlagen Ändern Sie noch eben schnell... Die (zu) einfache Möglichkeit, Software zu ändern, verursacht Fehler, z. B. Codieren anhand der falschen Version des Entwurfs unnötige Kosten, z.b. Testen einer veralteten Version eines Moduls Gefahren, z.b. unkontrollierte Schnellreparaturen an in Betrieb befindlicher Software Das Gegenmittel heißt Konfigurationsmanagement. Konfigurationsmanagement von Software ist die Gesamtheit aller Verfahren zur eindeutigen Kennzeichnung der Konfiguration eines Software-Systems mit dem Zweck, den Aufbau und alle Änderungen dieser Konfiguration systematisch zu überwachen, die Konsistenz des Software-Systems sicherzustellen und die Möglichkeit der Rückverfolgung anzubieten. Grundlage des Konfigurationsmanagements sind Software- Einheiten, die als Ganzes verwaltet, d.h. insbesondere auch geändert und freigegeben werden. Software-Einheiten sind z.b. Programm-Module oder Dokumente. Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-2
12.2 Konfiguration und Release Kennzeichnung der Software-Einheiten Jede Software-Einheit braucht: LOG 0027.03 Stückliste Logistiksystem 0372538-1 eine eindeutige Kennzeichnung einen Namen (in der Regel mit einem Verweis auf das zugehörige Produkt bzw. Projekt) möglichst ein Verfahren zur Feststellung der Identität z.b. eine Prüfsumme Verwaltung der Software-Einheiten Die Software-Einheiten werden von einem Software-Bibliothekar registriert und verwaltet. (Bild 12.1) Nummer Name Typ Ver Prüfsumme Status... LOG 0021 Materialwesen EntwDok 02 0873451-2 freigegeben LOG 0027 Stückliste Prog 03 0372538-1 freigegeben LOG 0028 Verwendungsnachweis Prog 02 0576927-6 in Prüfung... Bild 12.1: Registrierung von Software-Einheiten Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-3
Versionen Von jeder Einheit können mehrere Versionen geführt werden. Einfachster Fall: Aufsteigende Versionsnummern (= Reihenfolge der Entstehung; Bild 12.2 a) Allgemeiner Fall (Bild 12.2 b): Revisionen (entstehen durch Überarbeitung) Varianten (haben gemeinsame Eigenschaften und in der Regel eine gemeinsame Vorgängerversion) 1 2 3 4 5 6 Bild 12.2 a: Einfache Folge von Versionen 1.4-A 2.0-A 1.1 1.2 1.3 1.4 2.0 2.1 2.2 1.4-B 2.0-B Bild 12.2 b: Beispiel einer Versionsgeschichte mit Revisionen und Varianten Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-4
Konfiguration Eine Konfiguration ist eine konsistente Zusammenstellung von Software-Einheiten zu einem System. Eine Konfigurationsliste führt alle zu einer Konfiguration gehörenden Software-Einheiten auf. Meistens enthält die Konfigurationsliste auch noch Angaben zu Abhängigkeiten zwischen den Software-Einheiten. Mit Hilfe dieser Angaben und mit entsprechenden Werkzeugen kann eine Konfiguration dann automatisch generiert werden. (Bild 12.3) Software-Einheit Version abhängig von... Materialwesen.DOC 01 Teil.h 03 Materialwesen.DOC Stueckliste.h 02 Verwendungsnachweis.h 02 Teil.c 03 Teil.h Stueckliste.c 02 Stueckliste.h, Teil.h Verwendungsnachweis.c 02 Verwendungsnachweis.h, Teil.h... Bild 12.3: Konfigurationsliste mit Abhängigkeiten Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-5
Release Eine Konfiguration, welche an einen Kunden ausgeliefert wird, heißt Release. Mit Hilfe von Releases organisiert und verwaltet ein Software-Hersteller die an seine Kunden ausgelieferte Software. Jedes Mal, wenn Änderungen (aufgrund von Fehlerbehebungen oder der Implementierung neuer Fähigkeiten) auszuliefern sind, wird eine neuer Release gebildet. Die Releases tragen Nummern, die zur Kennzeichnung aufeinanderfolgender Änderungen dienen. Die Zahl vor dem Punkt bezeichnet große, die Zahl nach dem Punkt kleine Änderungen. Software-Einheiten Name... Stückliste Verwendungsnachweis Teil Losgröße... Versionen 01 02 03 04 05 06 Releases: 1.0 1.1 2.0 2.1 2.2 Bild 12.4: Eine Folge von Releases Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-6
12.3 Änderungswesen Grundlage eines geordneten Änderungswesens sind getrennte Umgebungen (Bild 12.5) für Entwicklung (Arbeitsumgebung) Verwaltung (Referenzumgebung) Test (Testumgebung) operativen Einsatz (Produktionsumgebung) der Software-Einheiten. fertig zur Änderung zur Prüfung geprüft Lieferung Produktionsumgebung(en) Referenzumgebung ungeprüft freigegeben Testumgebung Arbeitsumgebungen Bild 12.5: Umgebungen für Herstellung, Verwaltung und Betrieb von Software-Einheiten Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-7
Es gelten folgende Regeln: freie Änderungen nur in Arbeitsumgebungen strikt reglementiertes Änderungsprozedere für Software- Einheiten in der Referenzumgebung (Bild 12.6) Änderungen in der Produktionsumgebung sind verboten Schnellreparaturen in der Produktionsumgebung sind manchmal zwingend erforderlich. Diese sind zu dokumentieren und so rasch als möglich durch ordentlich durchgeführte Änderungen zu ersetzen Der Änderungsstand einer Software-Einheit muss jederzeit nachweisbar sein. Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-8
Änderungsantrag bewilligt abgelehnt zu ändernde Software-Einheiten in Arbeitsumgebung kopieren Änderungen durchführen geänderte Einheiten mit neuer Versionsnummer in Referenzumgebung bringen Einheiten testen und freigeben Neue Konfiguration / neues Release bilden Bild 12.6: Änderungsprozedere Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-9
12.4 Problemmeldewesen Grundlage für die adäquate Behandlung von Problemen, die bei den Verwendern eines Software-Systems auftreten, ist ein gut organisiertes Problemmeldungswesen beim Hersteller. Problemmeldungsformular (Bild 12.7) Enthält alle notwendigen Angaben über das Problem kann gleichzeitig als Leitblatt für die Problembearbeitung verwendet werden wird vom Kunden ausgefüllt falls Kunde formlos meldet, Ausfüllung durch Wartungspersonal des Lieferanten geordneter Bearbeitungsablauf beim Lieferanten Registrierung eingegangener Problemmeldungen Analyse der Meldung: Fehler? Fehlbedienung? Verbesserungswunsch? Reklamation? Vorläufige Antwort Problemlösung: z.b. Fehlerbehebung, Beratung, Aufnahme von Verbesserungswünschen in die Produktplanung, etc. Abschließende Antwort Abschluss und Ablage der Problemmeldung später: Auslieferung von neuem Release, in dem das Problem behoben ist. Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-10
Problemmeldung Verfasser Nr. Name Datum Firma Telefon Fax Adresse Betrifft Produkt Leistung anderes Verwendete Hardware Betriebssystem Problem ist ja nein reproduzierbar umgehbar Problem betrifft Programme Unterlagen Leistungen Antwort erwartet bis Problembeschreibung Problembeschreibung in Beilage Dieser Teil wird vom Wartungspersonal des Lieferanten ausgefüllt Zu treffende Maßnahmen Klassifizierung der Maßnahmen Fehlerbehebung Anpassung Erweiterung Beratung/Info Schulung Verantwortlicher Sachbearbeiter Name Meldung erhalten am Visum Zwischenbescheid an Kunde Name Datum Visum Problem erledigt und Kunde benachrichtigt Name Datum Visum Bild 12.7: Problemmeldungsformular Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-11
Zitierte und weiterführende Literatur Babich, W. A. (1986). Software Configuration Management. Reading, Mass.: Addison- Wesley. Bersoff, E.K., V.P. Henderson, S.G. Siegel (1980). Software Configuration Management. Englewood Cliffs, N.Y.: Prentice Hall. Conradi, R., B. Westfechtel (1998). Version Models for Software Configuration Management. ACM Computing Surveys 30, 2 (June 1998). 232-282. Frühauf, K., J. Ludewig, H. Sandmayr (1991). Software-Projektmanagement und - Qualitätssicherung. Zürich: Verlag der Fachvereine und Stuttgart: Teubner. IEEE (1983). IEEE Standard for Software Configuration Management Plans. ANSI/IEEE Std 828-1983. IEEE Computer Societey Press. IEEE (1987). IEEE Guide to Software Configuration Management. ANSI/IEEE Std 1042-1987. IEEE Computer Societey Press. Software-Qualitätsmanagement Kapitel 12: Konfigurationsmanagement Seite 12-12