Programmierwerkzeuge helfen Zeit sparen:

Mit Tools den Programmierfrust angehen

08.04.1983

DORTMUND - Immer häufiger werden zur Programmerstellung Werkzeuge eingesetzt. Klaus Peter Springer beschreibt in seinem Beitrag die Erfahrungen, die er in dem Dortmunder Softwarehaus SAS GmbH mit dem Programmierwerkzeug Mantis der Düsseldorfer Cincom Systems GmbH & Co. oHG machte. Neben den Erleichterungen, die ein solches System dem Profi bietet, erwähnt der Autor aber auch einige Bereiche, in denen noch Verbesserungen möglich wären.

Seit einiger Zeit beschäftigen wir uns mit den Möglichkeiten von verschiedenen Programmierwerkzeugen der "vierten Generation". Da die eigenen Erfahrungen nach unserer Ansicht die beste Beurteilungsgrundlage bieten, haben wir - trotz einer Reihe von Bedenken - zugestimmt, als wir Anfang 1983 das Angebot erhielten, ein Projekt mit dem Entwicklungssystem Mantis der Firma Cincom Systems für einen ihrer Anwender zu realisieren.

Die Bedenken resultierten hauptsächlich daraus, daß wir das System nicht kannten und für das Projekt bereits eine von Cincom erstellte Kalkulation , vorhanden war. Unsere Skepsis ist vielleicht zu verstehen, wenn man bedenkt, daß beispielsweise für ein Stammdaten-Pflegeprogramm im Dialog ein Aufwand von drei Stunde für Menüprogramme oder einfache Listen jeweils nur eine Stunde kalkuliert waren.

Horizont erweitern

Um unseren Erfahrungshorizont zu erweitern, haben wir das Projekt trotzdem übernommen. Der "Einstiege" bestand in der Erarbeitung des Anwenderhandbuches und in einem eintägigen Workshop beim Kunden. Hier hatten wir unser erstes Erfolgserlebnis, als wir feststellen konnten, daß die in Handbuch beschriebenen Möglichkeiten tatsächlich problemlos funktionierten. Innerhalb von Stunden waren wir vertraut mit den Funktionen Bildschirm-Maskenentwurf, Datei-Entwurf, Programmierung und Online-Dokumentation.

Diese Funktionen sind menügesteuert aufzurufen und können ohne Warte- oder Kompilationszeiten ausgeführt werden.

Als dann nach ein paar Stunden das erste Dialog-Anwendungsprogramm, bereits fehlerfrei lief, schlug die Skepsis in verhaltene Begeisterung um, die bis heute anhält.

Um einen Eindruck über die zu leistende Arbeit zu vermitteln stellen wir kurz das Projekt vor: Zu realisieren war ein Projekt-Accounting-System (PACS) als Dialog-Anwendung auf einem IBM-Rechner der Serie 43XX unter CICS. Als Vorlage diente eine verbale Beschreibung sowie skizzierte Masken und Dateien.

Das Projekt umfaßte 20 Programme, 15 Dateien und 14 Bildschirmmasken. (Die Programme erzeugen 14 Auswertungen, die wahlweise gedruckt oder angezeigt werden können.)

Für die Realisierung einschließlich aller Nebentätigkeiten und Tests wurde ein Zeitraum von zwölf Manntagen veranschlagt.

Ein entscheidender Faktor beim Umgang mit dem Cincom-System ist, daß dem Entwickler alle Komponenten innerhalb von Mantis zur Verfügung gestellt werden. Man bewegt sich nur noch in dieser Welt und kann Probleme, die sich aus der aktuellen Rechnerumgebung ergeben (zum Beispiel JCL, CICS) vergessen.

Das Entwicklungssystem wird bei der Installation gegenüber dem TP-Monitor (hier: CICS) einmalig als eine Applikation bekanntgegeben. Die erstellten Anwendungen müssen daher nicht neu in den Systemtabellen eingetragen werden.

Aktuelle Rechnerprobleme vergessen

Bildschirmlayouts können eins zu eins entworfen und in einer Bildschirmbibliothek gespeichert werden. Hierbei werden den einzelnen Feldern Standardattribute zugeordnet, die in einem sich anschließenden Dialog verändert werden können. Nach der Vergabe von Namen für jedes Eingabefeld stehen die Masken für die Verarbeitung zur Verfügung. Schon in diesem Stadium können mit einer simulierten Eingabefunktion die Cursorsteuerung, Feldbegrenzungen und Attribute überprüft werden.

Bei den Dateibeschreibungen kann (zumindest während der Entwicklungsphase) mit internen Dateien gearbeitet werden. Diese (VSAM-KSDS-Dateien) werden nach der Beschreibung des Datensatzes automatisch angelegt und verwaltet.

Mit dem "Luv" (logical user view) unterstützt Mantis den, Zugriff zu externen Dateien (zum Beispiel VSAM) auf logischer Elementebene.

Mit Hilfe des sogenannten Run-Systems können mit den erstellten Masken und Dateien die ersten Tests stattfinden! Das Run-System ist ein Standardprogramm, welches die Funktionen Dateneingabe, -änderung und , -anzeige für beliebige Datenstrukturen ermöglicht.

Ursprünglich war geplant, auf konventionelle Weise die Programme zuerst zu codieren, danach einzugehen und zu testen. Hier brachte der Workshop bereits die Erkenntnis, daß sich der von uns seit mehrere Jahren für den Programmentwurf benutzte, Pseudocode direkt in Mantis-Befehle umsetzen ließ, da das System zwar einerseits eine einfache Sprache (wie Basic) ist, andererseits aber die Elemente der strukturierte Programmierung (wie Pascal) enthält. Da zudem praktisch keine Datendefinitionen erforderlich waren (alle Felder von Masken und Dateien sind dem Tool bekannt), konnte der Pseudocode interaktiv in entsprechende Befehle umgesetzt werden. (Später wurde dann anstelle von Pseudocode teilweise direkt am Bildschirm entworfen.)

Als nützlich hat sich hierbei erwiesen, daß das System Befehle bei der Eingabe interpretiert und in einen Zwischencode umwandelt. Hierdurch kann bei List-Funktionen das Programm durch hierarchisches Einrücken entsprechend der logischen Struktur dargestellt werden.

Programmentwurf am Bildschirm

Ebenso ist eine Testumgebung vorhanden, da Programme oder Programmteile sofort durch Eingabe des Run-Befehls ausgeführt, werden können. Da Programmbefehle auch außerhalb des Programms eingegeben werden können und gleich ausgeführt werden, ist das Anzeigen und Ändern von Variablen bei Unterbrechungen kein Problem.

Wichtig für den Programmierer ist noch, daß mit den vier Befehlen "Get", "Insert", "Update" und "Delete" alle Dateizugriffe unabhängig von der physischen Speicherungsform (Mantis-intern, VSAM, Datenbank) ausgeführt werden können.

Ebenso erübrigen sich "Move" -Befehle, wenn die miteinander korrespondierenden Felder in Maske und Datensatz bei der Definition dieselben Namen erhalten.

Da die Zugriffe auf externe Dateien aus "logischer" Sicht erfolgen und die Verbindung dahin über das System-Directory erst zum Zeitpunkt der Programmausführung stattfindet, ist das Programm unabhängig von der aktuellen physischen Datenstruktur. Bei Hinzufügen von Datenfeldern müssen nur diejenigen Programme angepaßt werden, die unmittelbar auf diese neuen Felder zugreifen. Veränderungen von Datenfeldern (zum Beispiel Feldlänge) erfordern keine Änderung der Anwendungsprogramme (mit Ausnahme eventueller Spaltenverschiebungen bei Listen).

Kurzbefehle sinnvoll

Etwas schwach erschien uns der zeilenorientierte Editor. Wenn komplette Programme in Höchstgeschwindigkeit entwickelt werden, ist es hinderlich, daß alle Befehle in ausfürlicher Form eingetippt werden müssen. Zumindest Kurzbefehle (wie "A" für "Alter" oder "D" für "Delete") sollten bei einem insgesamt hervorragenden Werkzeug kein Problem für das Entwicklungsteam des Herstellers sein.

Ebenso wäre eine komfortablere Druckaufbereitung wünschenswert. Die jetzigen Möglichkeiten sind etwas für Programmier-Profis. Da sich das Tool auch als Endbenutzer-Werkzeug eignet, sollte der Hersteller hier noch einige Verbesserungen entwickeln.

Für die Dokumentation könnte das, System unseres Erachtens leicht um Funktionen zur automatischen Erstellung von Referenzlisten (Programme - Dateien, Programme - Datenelemente) ergänzt werden.

Durch das Zusammenspielen der beschriebenen Komponenten gelang es uns, das Projekt im vorgesehenen Zeitraum von zwölf Manntagen fertigzustellen und dem Kunden zu übergeben. Wir haben einmal die Entwicklungszeit mit herkömmlichen Programmierungsmethoden unter Ausnutzung der uns zur Verfügung stehenden Mittel (Generatoren) kalkuliert und kamen zu dem Ergebnis, daß im günstigen Fall die doppelte Zeit erforderlich gewesen wäre.