Bis 2005 hatte die WS Unternehmensberatung auch die Bereitstellung intern entwickelter Software und die interne Entwicklung nach Kunden-Auftrag im Angebot. Dieser Beitrag beschreibt die dabei verwendeten Tools, die m.E. wesentlich zu unserer Produktivität und zur Qualität unserer Ergebnisse beigetragen haben. Die Tools waren weitestgehen in SAS entwickelt.
Später ist aus diesen Erfahrungen das Modellierungs- und Dokumentationstool XDWH auf der Basis eines Java-Frontends zur Datenpflege, und PHP/MySQL im Backend zur Datenhaltung und zum Reporting hervorgegangen
Auch wir mussten uns mit der Frage befassen, wie die gemeinsame Arbeit in einem Entwicklungs-Projekt effizient koordiniert werden kann. Der sonst übliche Einsatz eines Versions-Kontroll-Systems wie CVS/RCS oder PVCS scheitert an der Vielzahl der im SAS-System verwendeten binären Formate (Frame, SCL, Format und Informat usw.) und ihrer Speicherung in SAS-Katalogen. Die SAS-Lösungen, z.B. SCM, decken nur einen Teil der Anforderungen ab. Notwendig ist aber eine integrierte Lösung, die mindestens folgende Anforderungen erfüllt:
checkout / checkin für alle Dokumente und Programmteile, .B. Auch Installations- und Benutzeranleitungen.
zentrale Speicherung wiederverwendbarer Elemente und projektspezifische Erstellung von Test- und Produktions-Versionen,
Für uns kommt hinzu:
Unterstützung von Notebooks, d.h. Entwickler können zeitweise auch außer Haus arbeiten,
Unterstützung bei der technischen Dokumentation,
effizientes Change-Management, d.h. Änderungen und Weiterentwicklungen müssen mit ihrem Anlass und Status protokolliert werden.
Mit unseren „xTools“ (xManager, XDWH, xRef, xMaintenance und xTools-Reporter) ist es uns gelungen diese Anforderungen weitgehend zu erfüllen.
Dank unserer langjährigen Erfahrung mit Dokumentations-Tools (die erste Version von xRef wurde bereits 1994 vorgestellt) und der konsequenten Verbindung von eigenem Training und sinnvollen Ergebnissen ist es uns gelungen, mit vertretbarem Aufwand eine zufrieden stellende Eigenentwicklung zu realisieren.
Der xManager ist unsere zentrale Applikation für die Teamarbeit. Mit ihm haben wir uns eine platformübergreifende Umgebung geschaffen, so dass wir auf verschiedenen Betriebssystemen am selben Projekt gemeinsam entwickeln und testen können.
Auf der Grundlage von SAS/Connect implementiert
der xManager eine zentrale Verwaltung aller SAS-Objekte sowie
zusätzlicher Text- und Binärdateien – z.B. auch
Java-Archive und Office-Dokumente. Ein checkout/checkin-Mechanismus
stellt sicher, dass ein Objekt(1) immer nur von einem
Mitarbeiter bearbeitet wird. Eingecheckte Objekte werden automatisch
an alle anderen Arbeitsplätze verteilt. Damit sich Entwickler
beim Testen nicht gegenseitig behindern (und zur Sicherstellung
der platformübergreifenden Entwicklung), ist es notwendig,
dass die Entwickler immer über eine aktuelle,
schreibgeschützte Kopie des Server-Bestands verfügen.
Einzige Ausnahme sind das Datenmodell aus XDWH und die dort
modellierten Dateien, die zentral gehalten werden.
Der xManager unterstützt die Wiederverwendung von Objekten, indem Projekte definiert und die Objekte diesen Projekten zugeordnet werden. Daraus lässt sich dann automatisiert eine Testversion extrahieren, die nach dem erfolgreichen Abschluss der Tests zusammen mit dem aktuellen Stand der begleitenden Dokumente versioniert und ausgeliefert wird.
Anmerkung:
Viele Style-Guides für Programme sehen vor, dass die Verwendung von Objekten (Dateien, Formate, Macros, Macro-Variablen, Methoden, Klassen usw.) im Kommentar-Kopf dokumentiert wird. Das ist aber aus verschiedenen Gründen nicht ausreichend:
Bei wiederverwendbaren Modulen (Klassen, Macros etc.) muss zumindest ihre Verwendung außerhalb des Codes erfasst werden. Schließlich soll der Code nicht verändert werden, nur weil z.B. das Macro auch noch woanders verwendet wird.
Viele Verwendungen (insb. manche Macro-Variablen, Formate, Methoden-Aufrufe, temporäre Dateien) sind zu unbedeutend, um im Kommentar-Kopf aufgeführt zu werden, würden diesen aufblähen und von Wichtigem ablenken.
Die getrennte manuelle Erfassung ist fehleranfällig – insbesondere bei späteren Änderungen. Auch der räumliche Abstand zwischen dem Kopf und der entsprechenden Stelle in einem längeren Programm begünstigt Fehler.
In binären Objekten wie Class- und Frame-Entries lassen sich solche Kommentare nicht unterbringen.
Bei XRef, unserem Cross-Reference-Tool, setzen wir deshalb konsequent auf die automatische Analyse von Kommentaren und Code. Dabei unterscheiden wir zwischen Verwendungen (Aufrufen, Macros, Macro-Variablen), die nur im Code vorkommen, und solchen, die zusätzlich in einem Kommentar aufgeführt sind. Die Kommentare können dabei im Kommentarkopf und/oder an der jeweiligen Stelle im Code stehen.
XDWH ist ein Teil unseres Konzepts zur Planung und Dokumentation eines DWH und wurde schon 1999 auf der SEUGI und der DISK vorgestellt. Kerngedanke ist, dass eine einheitliche Verwendung von Namen dann erreicht wird, wenn Variablen und Indizes in einem Repository definiert und dokumentiert werden. Die Dateien werden aus diesen Variablen zusammengesetzt. Der Code zur Erstellung der leeren bzw. Aktualisierung von existierenden SAS-Dateien wird dann automatisch generiert.
Neben einer konsistenten Verwendung von Namen wird dadurch auch erreicht, dass Formate, Variablen und Indizes zentral gepflegt werden können, und sich Änderungen automatisch auf alle Dateien auswirken.
Die Dateien lassen sich zu „Bereichen“ (Subjects und Prozesse) zusammenstellen. Zu diesen Bereichen können auch ER- und Datenfluss-Diagramme erzeugt werden.
XDWH ist multi-user-fähig. D.h. es unterstützt ein
Concurrent-Update des Datenmodells und implementiert ein der
jeweiligen Situation entsprechendes Locking.
Bei der Erstellung der Dokumentation werden auch die Ergebnisse der xRef-Analyse berücksichtigt und mit ausgegeben.
Zum Lebenszyklus einer Anwendung gehört die Beseitigung auftretender Fehler und die Weiterentwicklung. Diese Änderungen können nur nachvollzogen werden, wenn ihre Dokumentation in die Dokumentation der Anwendung integriert wird. Bei unserer 1995 auf der SEUGI erstmals vorgestellten Lösung implementieren wir
die Erfassung der Anforderung (bzw. des Fehlers),
die Beschreibung der Lösung und eine Liste der geänderten oder neu erstellten Objekte,
die Zusammenstellung der Änderungen zu einer oder mehreren Anforderungen in Paketen und
die Integration dieser Informationen in das Dokumentations-System zu xRef.
Die neue Version ist zur Zeit in Arbeit und wird eine Erfassung der Anforderungen über das Intranet (Browser) sowie eine Integration in den xManager beinhalten. Dazu soll auch die Erfassung von speziellen Hinweisen zu Dateien, Variablen und Programmen kommen, die dann in der Dokumentation mit ausgegeben werden.
Nach dem Erstellen der Test- oder Produktions-Version einer Anwendung sollten sich auch die dazu gehörenden Dokumente nicht mehr ändern (bis auf Test- und Fehler-Protokolle). Bei der Auslieferung reichen deshalb auch für die automatisch erstellte Dokumentation statische Dateien.
In der Entwicklungsphase ist es aber wichtig, dass auch die technischen Beschreibungen zu den einzelnen Objekten immer auf dem aktuellen Stand gehalten werden und leicht verfügbar sind. Deshalb müssen alle eingecheckten Objekte regelmäßig (bei uns automatisch in der Nacht und manuell bei Bedarf) analysiert werden. Die Ergebnisse dieser Analysen werden aber nur in der xTools-Datenbank gespeichert. Die eigentlichen Dokumente werden bei der Abfrage dynamisch über ein Servlet und HTMLOUT (unserer Implementierung für „Server-Pages“ in SAS) erzeugt. U.a. wird damit sicher gestellt, dass immer alle aktuellen Verwendungen eines Objekts ausgegeben werden. Andernfalls müssten auch die Seiten für Objekte neu erstellt werden, die selbst nicht geändert wurden.
Das Servlet ist so ausgelegt, dass statische (manuell erstellte) Dokumente und dynamisch zu erzeugende Seiten kombiniert werden können. Dabei können für Links auf dynamisch erstellte Dokumente normale HTML-Pfade verwendet werden, die nach der Erstellung der vollständigen statischen Dokumentation nicht mehr angepasst werden müssen.
© WS Unternehmensberatung und Controlling-Systeme GmbH
Friedrich-Weinbrenner-Straße 20
69126 Heidelberg
Tel.: 06221 / 401 409
Fax: 06221 / 401 422
EMail: info @ ws-unternehmensberatung.de
Amtsgericht Mannheim, HRB 335485
Geschäftsführer: Wilfried Schollenberger
Datenschutzerklärung