Wirkungsvolles Changeund Releasemanagement Autor: Klaus Friemelt, TDS Deutschland AG & Co. oHG DOAGNews Q1_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, bei auch nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. ©2004 Integrierte Verwendung des PVCS Version Managers im Oracle-Umfeld In vielen Oracle-Projekten wird der PVCS Version Manager der Firma Merant vornehmlich dazu verwendet, die Versionierung der Programmquellen sicherzustellen und den konkurrierenden Zugriff der Entwickler darauf zu steuern. Das Potenzial dieses Werkzeugs wird nicht immer ausgeschöpft. Oft übersehen die Verantwortlichen, dass der Version Manager neben der grafischen Benutzeroberfläche auch über ein leistungsfähiges Kommandozeileninterface verfügt. Das Change- und Releasemanagement beschränkt sich in vielen Projekten auf die Verwaltung diverser Excellisten und das manuelle Auschecken aus dem Version Manager. Dabei ermöglicht PVCS in Kombination mit einer kleinen datenbankgestützten Anwendung ein komfortables Changemanagement und gewährleistet einen sicheren Auslieferungsprozess. Der Artikel beschreibt im Folgenden, wie sich durch die Integration von PVCS Version Manager mit einigen Forms-Masken ein wirkungsvolles Release- und Changemanagementsystem aufbauen lässt. Datenbankseitige Abbildung des Change- und Releasemanagements Die Abbildung zeigt ein vereinfachtes Datenmodell zur Abbildung des Entwicklungszyklus einer Anwendung. Eine Auslieferung kann ein Patch oder ein Hauptrelease sein. Sie hat als Kennzeichen ein eindeutiges Label. Für ausstehende Änderungen gibt es einen definierten Redaktionsschluss. In einer Auslieferung sind unterschiedliche Anforderungen gebündelt, die sich ©2004 wiederum auf ein oder mehrere Module beziehen. Die Anforderung ist ihrerseits durch ein Label eindeutig identifiziert. PVCS Version Manager Beim Version Manager sind folgende Funktionen wichtig: • • • • • Export der Archivinformationen in eine Oracle-Datenbank per VSQL-Kommando Modulkennzeichnung und Modulidentifizierung anhand der Label Eventtrigger, die auf bestimmte Ereignisse Programme und Batchskripte starten automatisches Einfügen von Archivinformationen in eine ASCII-basierte Quelldatei („Keyword Expansion“) Extraktion der Quellen per Kommandozeile aus dem Archiv Die folgende Abbildung zeigt schematisch die Einbindung des PVCS Version Managers in ein datenbankgestütztes Release- und Changemanagementsystem: Im Bereich Releaseverwaltung werden die gültigen Label von Releases, Patches, ProblemReports und Change-Requests in der Datenbank hinterlegt. ©2004 Ein Eventtrigger prüft bei jedem Check-In-Vorgang direkt gegen die Datenbank, ob ein erlaubtes Label an der aktuellen Quelle vergeben ist und bricht gegebenenfalls den CheckIn-Vorgang ab. Der Eventtrigger kann entweder mit Pro*C (C mit embedded SQL) oder mit Java (Datenbankzugriff mit jdbc) realisiert werden. Beim Check-In werden bei ASCII-Quellen – beispielsweise Packages oder Trigger – die Keywords durch Archivinformationen ersetzt. Binäre Quellen wie Oracle Forms Module (fmb) rufen durch einen Eventtrigger die FormsAPI auf, um so das Modul mit den Archivinformationen zu versehen. Mit diesem Mechanismus ist sichergestellt, dass man später jedem ausgelieferten Modul exakt die archivierte Version zuordnen kann.Des Weiteren sorgt der Eventtrigger für den Export der Modulinformationen in die Datenbank mit dem VSQL-Kommando. Im Bereich Skriptgenerator liegt eine Forms-Maske, die auf einem View im Schema der VSQL-Tabellen basiert. Mit dieser Maske können alle Module angezeigt werden, die zu einem bestimmten Release gehören: Diese sind durch entsprechende Label gekennzeichnet. Per Knopfdruck wird eine Steuerdatei mit den GET-Anweisungen für das Kommandozeileninterface erzeugt und gestartet. Mit dieser Methode werden Module aus dem Archiv geholt. Binäre Quellen müssen noch kompiliert werden, etwa per Host-Kommando aus Forms oder per Batch. Dann liegt das fertige Release im Dateisystem zur Auslieferung vor. Dieses Vorgehen lässt sich individuell an Projektbedürfnisse anpassen. Werden beispielsweise im Projekt Application-Mining Werkzeuge wie der Application Miner von CAST verwendet, kann der Eventtrigger beim Check-In per Kommandozeilenaufruf das Repository direkt aktualisieren. Forms-Dialoge Im Folgenden werden Beispiele für Forms-Dialoge gezeigt, die auf dem beschriebenen Daten-modell zum Releasemanagement aufsetzen. ©2004 In diesem Dialog werden die Auslieferungen verwaltet: In der folgenden Maske kann in den Archivinformationen, die per VSQL-Schnittstellen in die Datenbank exportiert wurden, gesucht werden. Weiterhin können die entsprechenden Module aus dem Archiv in den angegebenen Pfad extrahiert werden. Diese Maske deckt das Change- und Problemmanagement ab. Hier werden zu den einzelnen Modulen Änderungswünsche oder Fehler erfasst, Entwickler als Bearbeiter zugewiesen und der jeweilige Status der Bearbeitung eingetragen. ©2004 Wichtige Konfigurationsdialoge im PVCS Version Manager Eventtrigger zum Schreiben der Archivinformation in die Oracle-Datenbank: ©2004 Im ConfigureProjectDatabase-Dialog des Version Managers werden unter dem Punkt „Event Triggers“ zu den möglichen Aktionen die auszuführenden Programme oder Batchskripte eingetragen: Im ConfigureProjectDatabase-Dialog des Versin Managers werden unter „File Types“ die Modularten angeben, für die Keyword-Expansion gestattet ist. Schlüsselwörter sind u.a. $Log$, $Archive$, $Author$. ©2004 Fazit Durch die Kombination aus Datenbankfunktionalität, des Kommandozeileninterface des PVCS Version Managers und einiger einfacher Oracle Forms Masken, lässt sich ein Releasemanagementsystem aufsetzten. Im Projektalltag ist das System teureren Lösungen wie etwa Merants PVCS Dimensions ebenbürtig. Darüber hinaus bietet es den Vorteil, jederzeit erweiterbar und für Anpassungen an projektspezifische Bedürfnisse offen zu sein. Aber auch wenn man nicht alle der hier beschriebenen Möglichkeiten ausnutzt, führen schon Teile davon zu einer spürbaren Verbesserung der Qualität im Software-Entwicklungsprozess. Autor: Dipl. Phys. Klaus Friemelt Senior-Berater TDS Deutschland AG & Co. oHG [email protected] ©2004