zurück zur Startseite der Softwaretechnik-Trends , zu Band 19 Heft 3

Dissertationen


Sabine Sachweh: KoKoS - Ein Kooperatives Konfigurationsmanagement-System


1. Referent: Prof. Dr. W. Schaefer
2. Referent: Prof. Dr. G. Engels

Datum der Prüfung: 18. August 1999


Zusammenfassung:

Mit der ständig steigenden Größe und Komplexität von Softwaresystemen haben sich in den letzten Jahren auch die bei der Softwareentwicklung auftretenden Probleme verschärft. Dazu zählen insbesondere die Beherrschung großer Dokumentmengen, die Erhaltung der Systemkonsistenz bei häufig stattfindenden Änderungen von Dokumenten und die Koordination der Teamarbeit. Dabei umfaßt der Begriff Systemkonsistenz in diesem Kontext sowohl die interne Konsistenz eines Dokuments, als auch die Konsistenz zwischen verschiedenen Dokumenten. Bedingt durch diese Entwicklung ist im Forschungsbereich Softwaretechnik ein Teilgebiet, Softwarekonfigurationsmanagement (SKM), entstanden, das inzwischen als methodischer Ansatz für die oben genannten Probleme eine zentrale Rolle bei der Softwareentwicklung einnimmt.

Damit das SKM zur Lösung der bei der Softwareentwicklung auftretenden Probleme beiträgt, sind zwei kritische Punkte entscheidend zu verbessern, die den verfügbaren Ansätzen in diesem Bereich anhaften:

1. Die zentrale Aufgabe des SKM ist die Kontrolle der Entwicklung und Wartung großer Softwaresysteme, welche eine Vielzahl von Dokumenten enthalten. Diese Aufgabe verteilt sich auf die beiden wesentlichen Teilbereiche des SKM: das Versions- und das Konfigurationsmanagement. Das Versionsmanagement (VM) protokolliert die Änderungen, denen diese Dokumente - und damit auch die Softwaresysteme im Rahmen ihrer Entwicklung und Wartung - unterworfen sind, in Form einer Entwicklungsgeschichte. Das Konfigurationsmanagement (KM) beschäftigt sich dagegen mit der Verwaltung und Komposition der Systeme aus einer Menge von Dokumenten.

Während die verfügbaren SKM-Ansätze sich im Bereich des Versionsmanagements weitgehend überschneiden, divergieren diese jedoch stark im Bereich des Konfigurationsmanagements. Die existierenden Ansätze lassen sich bezüglich ihrer Funktionalität in diesem Bereich in drei Kernrichtungen einordnen: system-, komponenten-, und änderungsorientiertes Konfigurationsmanagement. Aufgrund der verschiedenen Schwerpunkte fördert die systemorientierte Richtung besonders die Erstellung konsistenter Systeme, während komponentenorientierte Ansätze insbesondere für die Wiederverwendung geeignet sind und änderungsorientierte ihren Schwerpunkt in der Änderungsverwaltung haben.

Zur vollständigen Unterstützung der Software-Entwicklung ist dagegen ein Konfigurationsmanagement erforderlich, welches jeden dieser Schwerpunkte unterstützt. Wesentliches Merkmal der geforderten integrierten SKM- Unterstützung muß darüber hinaus sein, daß diese zeitgleich Anforderungen an die system-, komponenten- oder änderungsorientierten Anteile erfüllen kann.

2. Da die Entwicklung großer Softwaresysteme in (großen) Teams, die u.U. noch verteilt an verschiedenen Orten arbeiten, erfolgt, ist die Koordination der Aktivitäten von Entwicklern, im Hinblick auf Versionierung, Konfiguration und Konsistenz, unverzichtbarer Bestandteil eines Konfigurationsmanagements. Diese Koordination basiert normalerweise auf einem unternehmens- oder projektspezifischen Vorgehensmodell, welches in diesem Zusammenhang z.B. Verantwortlichkeiten und Abläufe, bei der Ableitung und Freigabe von Versionen oder der Komposition von Konfigurationen, festlegt. Darüber hinaus sollte die Konsistenz einer Konfiguration soweit wie möglich automatisch sichergestellt werden, da im allgemeinen die einzelnen Versionen von verschiedenen Entwicklern (ggf. an verschiedenen Orten) erstellt werden und dementsprechend eine manuelle Konsistenzsicherung einen erheblichen Aufwand bedeutet.

Existierende SKM-Ansätze und entsprechende Werkzeuge bieten entweder keine Möglichkeit Vorgehensmodelle zu definieren und diese automatisch auszuführen oder zwingen den Benutzer, der ein solches Werkzeug anpaßt, dazu, die Definition in einer programmiersprachenähnlichen Notation zu erstellen. Letztgenanntes Vorgehen hat zur Folge, daß das erstellte Modell aufgrund der mangelnden Abstraktionsmöglichkeiten der Programmiersprache sehr umfangreich und damit die Wartung sehr schwierig wird, da diese Sprache kaum oder nicht formal analysierbar ist, und demzufolge eine hohe Fehlerwahrscheinlichkeit besteht.

Ansätze zur formalen und problemadäquaten Beschreibung von unternehmens- oder projektspezifischen Vorgehensmodellen findet man naheliegenderweise im Bereich der Softwareprozeßmodellierung (SPM). Dieser Teilbereich der Softwaretechnik hat sich in den letzten Jahren parallel zum SKM entwickelt. Eine Entwicklungsumgebung, die sich mit der Spezifikation eines Vorgehens- bzw. Prozeßmodelles parametrisieren läßt, wird als prozeßgesteuerte Software-Entwicklungsumgebung (PSEU) bezeichnet. Diese haben allerdings teilweise den gleichen Nachteil wie oben aufgeführte Konfigurationswerkzeuge, d.h. eine sehr programmiersprachennahe Notation, und bieten darüber hinaus keine weitere Unterstützung bei der Definition von SKM-Aspekten.

In existierenden Ansätzen ist weder der erste, noch der zweite Punkt zufriedenstelend gelöst. Die hier vorgestellte Dissertation stellt dagegen einen integrierten SKM-Ansatz zur Überwindung dieser Probleme vor, der sich durch die Spezifikation eines Vorgehensmodells an unternehmens- oder projektspezifische Abhängigkeiten anpassen läßt.

Die wesentliche Merkmale dieses Ansatzes sind:

1. Eine dedizierte, an verbreitete objektorientierte Modellierungssprachen, wie OMT [RBP+93] und Booch [Boo94], angelehnte Sprache ESCAPE+ zur Spezifikation firmen- oder projektspezifischer Vorgehensmodelle mit SKM-Unterstützung, die den Modellierungsaufwand minimiert.

Im Gegensatz, zu der verbreiteten Methode, firmenspezifische Strategien in einer programmiersprachenähnlichen Notation, auf der Ebene von Skripten und Triggern, festzulegen ermöglicht ESCAPE+ die Spezifikation von Vorgehensmodellen auf einer höheren Abstraktionsebene und ist folglich leichter zu handhaben.

Eine allgemeinere objektorientierte Spezifikationssprache liegt zwar auf einer angemessenen Abstraktionsebene, allerdings führen diese aufgrund der großen Anwendungsbreite im Vergleich zu ESCAPE+ zu sehr umfangreichen Spezifikationen.

2. Ein vordefiniertes, in ESCAPE+ spezifiziertes Modell, welches Grundkonzepte des SKM beschreibt. Das vordefinierte Modell legt einen Rahmen für die Spezifikation eines Vorgehensmodells in ESCAPE+ fest, der die Spezifikationsmöglichkeiten so einschränkt, daß die SKM-Grundkonzepte nicht verletzt werden können. Infolgedessen führt das vordefinierte Modell zu einer leichteren Benutzung der Sprache.

3. Ein Spezialisierungskonzept, welches eine methodische Unterstützung der Benutzung und Anpassung des vordefinierten Modells, durch Ausnutzung von Vererbung und Spezialisierung, darstellt. Die Anpassung von Subklassen ist in diesem Vererbungskonzept restriktiver gestaltet, als aus den meisten objektorientierten Sprachen bekannt, die ein beliebiges Anpassen (bzw. Überschreiben) erlauben. Der Vorteil dieses Vererbungskonzeptes liegt darin, daß sich Subklassen nur auf ``sinnvolle'' Weise anpassen lassen, so daß Grundkonzepte der Bearbeitung von Objekten, wie z.B. ``erst anlegen, dann löschen'' oder des Konfigurationsmanagements, z.B. ``erst einfrieren, dann ableiten'' eingehalten werden. Dieses führt zur Reduzierung von Fehlern und, wie zuvor schon erwähnt, zu einer einfacheren Handhabung der Spezifikationssprache.

4. Eine formale Beschreibung der Ausführungssemantik von ESCAPE+, in der ein kooperatives Konfigurationsmanagementsystem (KoKoS) realisiert ist, statt lediglich ein Werkzeug oder eine Umgebung zur Ausführung einer ESCAPE+-Spezifikation bereit zu stellen, wie es häufig der Fall ist. Die Beschreibung der Ausführungssemantik erfolgt in Prolog und basiert somit auf Prädikatenlogik 1. Ordnung.

Das Attribut kooperativ des Konfigurationsmanagementsystems bezieht sich auf die kooperative Teamarbeit, auf deren Förderung das KoKoS ausgerichtet ist. Da der Grad der Kooperation entscheidend von der Synchronisation nebenläufiger Zugriffe abhängig ist, wurde ergänzend ein Transaktionmanagementkonzept entwickelt, welches die Basis der kooperativen Teamarbeit bildet.

Das KoKoS umfaßt einen integrierten SKM-Ansatz, der gleichermaßen system-, komponenten- und änderungsorientiertes Konfigurationsmanagement unterstützt.



zurück zur Startseite der Softwaretechnik-Trends , zu Band 19 Heft 3