Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

11.09.1998 - 

PVCS, Clear Case, Harvest und Continuus im Vergleich, Teil 2

Im Test: Tools für die Organisation der Software-Entwicklung im Team

Ein Vertreter des integrierten Änderungs- und Konfigurations-Managements ist die Continuus/CM-Suite der Continuus Software Corporation. Es handelt sich hierbei um ein aufgabenorientiertes System. Dabei werden Dateien vor einer Änderung automatisch mit der dazugehörigen Aufgabe verknüpft. Diese läßt sich entweder direkt erzeugen oder entsteht als Ergebnis von Änderungsanforderungen. Als Datenspeicher für sämtliche Metadaten wird ein Datenbanksystem von Informix verwendet.

Die für Unix entwickelte Server-Komponente läuft inzwischen auch unter Windows NT. Client-Versionen gibt es für NT und Windows 95. Dort lassen sich sämtliche Aktionen sowohl über die grafische Oberfläche als auch durch alphanumerische Kommandos steuern. Befehle auf Kommandozeile sind dabei durch den Parameter "/g" auf das grafische Gegenstück umschaltbar. Diese Funktion ist von großem Vorteil, wenn Code in bestehende Entwicklungsumgebungen integriert werden muß. Die Continuus-Konkurrenten verlieren hier schlagartig ihre grafischen Möglichkeiten.

Ein ungewöhnliches Alleinstellungsmerkmal ist, daß CCM komplett im Quellcode geliefert wird. Für die Definition der Prozeßmodelle wird die Java-ähnliche Sprache "Accent" eingesetzt, die Oberfläche ist in "Guild" programmiert. Dieser extreme Flexibilitätsgrad hat leider auch einige Nachteile: Die Anpassungen müssen ohne besondere Werkzeugunterstützung durchgeführt werden. Der Interpreteransatz führt darüber hinaus an einigen Stellen zu Performance-Verlusten. Außerdem wurde der Portabilität einiges an grafischem Komfort geopfert. Anpassungen am Prozeßmodell müssen direkt im Accent-Quellcode vorgenommen werden, eine interaktive Definition des Modells, wie bei CCC/Harvest, wäre wünschenswert. Continuus empfiehlt daher, das mitgelieferte Basismodell zu verwenden und Änderungen gegebenenfalls mit externer Hilfe zu implementieren.

Continuus/CM verwaltet Objekte, Quelldateien, Dokumente, ausführbare Programme, Verzeichnisse etc. Objekte werden mitsamt ihren Beziehungen zueinander abgespeichert. Die Eigenschaften von Objekten definieren sich durch den Typ, etwa "Verzeichnis" oder "C-Source".

Projekte in Continuus/CM 4.4

Diese Vorgehensweise zieht sich durch das gesamte System, so daß sich beispielsweise abhängig vom Objekttyp ein anderes Compare- oder Merge-Tool verwenden läßt. Darüber hinaus kann pro Objekttyp definiert werden, welche Eigenschaften überhaupt verglichen werden sollen.

Objektrevisionen durchlaufen einen bestimmten Lebenszyklus. Welcher Zustand gerade sichtbar ist, hängt von der aktiven Benutzerrolle ab. Unter dem Begriff "Projekt" werden Objektrevisionen zusammengefaßt, die zu einem bestimmten Zustand des Lebenszyklus gehören. Projekte können auch plattformabhängig sein und verschachtelt werden. CCM kennt drei Projektarten:

- Arbeitsprojekte für Entwickler,

- Integrationsprojekte (Release-Vorbereitung) und

- Release-Projekte für ausgelieferte Stände.

Das mitgelieferte Prozeßmodell ist laut Continuus vielfach erprobt und wird dort auch intern eingesetzt. Inwieweit es beim Kunden unmodifiziert übernommen werden kann, ist unklar.

Die Verwaltung der Arbeitsbereiche übernimmt die Continuus-Software. Dabei hält sie Änderungen an ausgecheckten Dateien automatisch in einem Cache-Bereich vor. Um auf ältere, temporäre Zwischenversionen zurückgreifen zu können, kann der Anwender sogenannte Checkpoints setzen. Checkpoint-Revisionen lassen sich später, wenn die oft als Task bezeichnete Aufgabe offiziell eingecheckt wurde, wieder entfernen (Collapse).

Beim Offline-Arbeiten erfolgt der Check-Out von Dateien durch Verknüpfung mit einem auf Wunsch automatisierbaren Task. Dieser wird durch das Check-in mit allen verknüpften Objektrevisionen integriert und auf die nächste Stufe im Lebenszyklus promotet. Gerade weil nicht Dateien, sondern Tasks eingecheckt werden, sollten letztere nicht allzu umfangreich sein. Leider lassen sich keine Subtasks definieren, lediglich ein Change Request kann in mehrere Tasks zerlegt werden. Es gibt jedoch auch die Möglichkeit, datei- statt taskorientiert zu arbeiten.

Aus KM-Sicht ist es sinnvoll, daß neue Aufgaben einem geplanten Release zugeordnet werden müssen. Tasks können entweder direkt erzeugt werden oder die Folge von Änderungsanforderungen (Change Requests) sein.

In dem mitgelieferten Prozeßmodell nimmt der "Build-Manager" eine zentrale Rolle ein. Er ist für das Zusammenbauen der Release-Kandidaten zuständig und erzeugt bei Problemen Änderungsmitteilungen.

Den Build-Prozeß erledigt die zu Nmake und Sunmake kompatible Komponente "Continuus /OM" (Objectmake). Anders als Konkurrenzprodukte kann das Modul Build-Prozesse verteilt auf mehreren Maschinen ablaufen zu lassen. Dieses Feature hilft bei großen Projekten, oder wenn die Zielplattform nicht von Continuus unterstützt wird. Objectmake kann darüber hinaus eine Stückliste des Build-Vorgangs erzeugen, die den Build-Prozeß im Detail dokumentiert und zusammen mit den Ergebnissen archiviert. Die von Objectmake erzeugten Produkte lassen sich auf Wunsch von CCM automatisch verwalten. Die letzte Phase im Lebenszyklus der entstehenden Anwendung ist der Release-Zustand, an dem keine Änderungen mehr möglich sind.

Verteilte Entwicklungen unterstützt das Tool mit "Continuus/ DCM", das mit Hilfe von sogenannten Transfer Sets sowie der Import- und Export-Funktion einen automatischen Abgleich vornimmt. Wie bei Clear Case entsprechen unterschiedliche Standorte einer Parallelentwicklung an einem Standort.

Ein Web-Client mit vollem Funktionsumfang existiert derzeit nicht. Dafür wurde die Komponente "Continuus Web Synergy" speziell auf die Verwaltung von Web-Projekten optimiert und ermöglicht in gewissem Rahmen Check-in- und Check-out-Vorgänge. Die Integration in den Explorer von Windows NT erfolgt durch "CCMBar".

Continuus/CM hat seine Stärke im unternehmensweiten Einsatz. Durch die freie Konfigurierbarkeit läßt es sich auf alle unternehmensspezifischen Anforderungen anpassen. Leider kann es seine Unix-Herkunft nicht ganz verleugnen. Viele administrativen Aufgaben müssen durch Anpassung von mitgelieferten Skrip- ten und Konfigurationsdateien erfolgen. Eine interaktive Unterstützung wäre hier wünschenswert. Einmal installiert, überzeugt die Software durch ihre Robustheit.

CCC/Harvest 4.0 von Platinum

CCC/Harvest von Platinum ist wie Continuus ein integrierter Werkzeugkasten für das Konfigurations-Management. Die Software besteht aus einer Server- und mehreren Client-Komponenten. Als Server-Betriebssysteme sind diverse Unix-Derivate sowie Windows NT einsetzbar, am Client werden Windows 95, Windows 3.11, NT, OS/2 und Unix unterstützt. Unter der Bezeichnung "CCC/Life Cycle Manager" existiert zudem eine Version für das Großrechner-Betriebssystem MVS. Als Datenbanksystem kommt Oracle zum Einsatz.

Wie Continuus ist auch Harvest für den unternehmensweiten Einsatz konzipiert und deckt daher mit seinen Komponenten den gesamten Entwicklungszyklus ab. Zudem bietet CCC/Harvest für jeden zu verwaltenden Datenbestand einen Workflow, der sich nach den Bedürfnissen der jeweiligen Anwender gestalten läßt. Der Vorteil liegt darin, daß die User nicht zwischen unterschiedlichen Applikationen wechseln müssen, sondern alle Aktivitäten innerhalb der Harvest Workbench erledigen können. Für Einsteiger bietet CCC/Harvest eine ganze Palette von vorgefertigten Workflow-Modellen, die nach Belieben angepaßt werden können. Aber auch die Neumodellierung ist einfach.

Bei der Modellierung eines Workflows werden Prozesse innerhalb eines sogenannten "Environments" definiert - zum Beispiel könnte ein Environment für Wartung und eines für Neuentwicklungen definiert werden. Environments beinhalten den Lebenszyklus, der wiederum durch Zustände abgebildet wird. Ein sehr einfacher Zyklus könnte aus den Zuständen "Development" - "Test" - "Release" bestehen.

Den Übergang von einer niederen Entwicklungsstufe auf ein höheres Niveau bezeichnet Platinum als "Promote"-Prozeß, die umgekehrte Richtung als "Demote"-Vorgang. Wie Clear Case verwendet auch CCC/Harvest den Begriff der Views. Ein View definiert die sichtbaren Versionen innerhalb eines Zustands und wird daher mit diesem verknüpft. Meta-Informationen und Datei-Inhalte werden in Repositories gehalten, wobei die Metadaten in Oracle und die Deltas der Dateiversionen im File-System gespeichert werden. Ein View stellt somit eine Teilsicht auf ein oder mehrere Repositories dar.

Eine gute Idee ist die Zuordnung von Änderungen zu sogenannten Arbeitspaketen. Soll eine Datei zur Bearbeitung ausgecheckt werden, so muß dieser Vorgang mit einem Arbeitspaket verknüpft werden, das auf diese Weise dokumentiert, warum die Modifika- tion erfolgt. Änderungen, die innerhalb eines bestimmten Zustands erfolgen, werden erst dann im nächsthöheren Level sichtbar, wenn das mit der Modifikation verknüpfte Arbeitspaket auf diese Stufe "promotet" wird.

Arbeitspakete können gruppiert und mit Formularen, beispielsweise mit Änderungsanforderungen, verknüpft werden. Auf diese Weise erfolgt die Integration von Änderungs- und Konfigurations-Management. Für die Erstellung von Formularen wird der Zusatz "Forms Customization Package" verwendet, der in der aktuellen Version nicht gerade intuitiv bedienbar ist.

Jeder Zustand (etwa "Development") enthält eine Liste von möglichen Prozessen (Befehlen), die dem Anwender als Menüpunkte angeboten werden. Welche Befehle in der jeweiligen Stufe nötig sind, wird bei der Definition des Environments festgelegt. Es existieren beispielsweise die Prozesse Check-in, Check-out, Merge, Create Package (zur Anlage eines neuen Arbeitspakets), List diffe- rences, Promote und Demote.

Hervorzuheben sind die Prozesse

- Approve: zur Freigabe vor einem Promote,

- Notify: zur automatischen Benachrichtigung,

- User Defined Process: zum Aufruf von eigenen Programmen und

- Synchronize, womit die Arbeitsumgebung mit dem aktiven Zustand des Environments abgeglichen wird.

Jeder Prozeß läßt sich noch mit eigenen Funktionen vor oder nach der Ausführung verknüpfen und durch Benutzerrechte steuern.

Neben den bereits erwähnten (Working) Views können Meilensteine oder Lieferstände durch sogenannte Snapshot Views eingefroren werden. Solche Momentaufnahmen dienen als Basis späterer Wartungsprojekte. Haben sich Versionen auseinanderentwickelt, werden sie durch ein interaktives Merge-Programm wieder zusammengebracht.

Für die Integration mit anderen Entwicklungswerkzeugen stellt Platinum das "Version Control Interface" bereit, das auf Basis der Microsoft-Schnittstelle Common Source Code Control (SCC) arbeitet.

Die Arbeit mit dem Werkzeug

Nach der Installation des KM-Tools wird die grafische Oberfäche, die Harvest Workbench, gestartet. Nach der Anmeldung wählt der User seine Umgebung, in der dann alle vorhandenen Dateien (Items), Versionen und Befehle sichtbar werden. Soll eine Datei bearbeitet werden, erfolgt ein Check-out, wobei dieser Vorgang entweder einem bestehenden Arbeitspaket oder einem neuen zugeordnet werden muß. Oft werden Arbeitspakete vom Projektleiter angelegt. Ist der Stand in dieser Umgebung konsistent, so wird das Arbeitspaket auf die Ebene "Test" promotet. Dadurch werden jetzt in der Testumgebung alle mit diesem Paket verknüpften Änderungen und das Paket selbst sichtbar. Nach einem erfolgreichen Test erfolgt erneut die Weitergabe. Bei einem Fehlschlag findet ein "Demote" statt und die Ebene "Test" fällt wieder auf den vorherigen Versionszustand zurück.

Ob ein Entwickler oder der Projektleiter den "Promote" durchführt, läßt sich durch Zugriffsberechtigungen definieren. Häufig wird auch der "Approval"-Prozeß verwendet, um einen "Promote" nur nach Freigabe von einem bestimmten Benutzer oder einer Gruppe zu erlauben.

CCC/Harvest glänzt durch seinen prozeßorientierten Ansatz. Jeder KM-Prozeß läßt sich ohne großen Aufwand und ohne spezielle Programmiersprachen oder Skripts abbilden. Durch die Verfügbarkeit auf allen gängigen Plattformen einschließlich MVS eignet es sich sehr gut für einen firmenweiten Einsatz. Das Arbeiten in verteilten Umgebungen ist jedoch nicht optimal gelöst.

GUIDO WEISCHEDEL hat vier Produkte für Systems-Management getestet.