Delta-NP-Verfahren führt zu kommerziellen Batch-Programmen ohne schmutziges Go To, Teil 1:\Eine Methode ist nur so gut wie das Werkzeug

16.04.1981

Die heute mancherorts diskutierten Methoden wie zum Beispiel HIPO, Jackson-Entwurfsmethode und Nassi-Schneidermann-Diagramme schaffen das ständige Neuentwickeln von Programmstrukturen nicht ab; im Gegenteil, sie fordern geradezu den Programmierer auf, für jedes Programm eine eigene Struktur zu entwerfen. Diese Strukturen sind entweder funktionsorientiert (sie betrachten die vom Programm zu erfüllenden Funktionen, etwa die nach der HIPO-Methode entwickelten Strukturen) oder datenstrukturorientiert (Jackson).

Was herauskommt, ist immer eine eigene problemabhängige Struktur, die jeweils auf Richtigkeit, Vollständigkeit und Funktionstüchtigkeit geprüft und ausgetestet werden muß. Ganz abgesehen davon, daß hier jeder Programmierer seine eigene Sprachregelung und seine eigenen Begriffskonventionen festlegen kann.

Überall dort, wo Menschen miteinander arbeiten, gibt es Verfahrensweisen und Methoden und Regeln, nach denen sie miteinander kommunizieren und aufgrund derer sie gemeinsam ihre Ziele erreichen. Ein typisches Beispiel ist die Buchhaltung: Ein einheitliches Denksystem (Kontenplan, Kontierungsvorschriften, Abschlußregeln) läßt zu, daß Firmen unterschiedlichster Fachrichtung miteinander verglichen werden können - zumindest haben sie eine gemeinsame Sprachbasis.

Gute alte Normierte Programmierung

Konnte ein solches System (in welchem, ähnlich wie beim Kontenplan ein Skelett, eine "Schubladen" -Ordnung, vorgegeben wird, in der die einzelnen Funktionen placiert werden) als allgemein gültige Sprachregelung und Ordnungssystematik auch für Programmstrukturen festgelegt werden?

Wenn dies möglich wäre, dann wüßte ein Organisationsprogrammierer der Firma X, der mit seinem Kollegen Y über das Konto 1400 spricht, daß es sich um die Forderung an Kunden handelt. (Die Programmierer würden sich natürlich über Programminhalte unterhalten und nicht über den Kontenrahmen).

Wir alle wissen, daß es solch ein Skelett bereits gibt. Seit nunmehr fast zehn Jahren ist die gute alte "Normierte Programmierung" ein Begriff ; es gab und gibt genügend Generatoren, die diese Methode unterstützen.

Diese Normierte Programmierung hat sich in der Tat bewährt. Sie gehört noch lange nicht zum alten Eisen; im Gegenteil: neue Denkmethoden (wie die Jackson-Methode) und neue Generatoren, die dieses Prinzip unterstützen, sind auf dem Markt, und nicht zuletzt trägt die DlN-Norm 66220 dazu bei, daß diese Methode eine Renaissance erlebt.

Die früher auf dem Markt verfügbaren NP-Generatoren hatten einen Nachteil: Sie waren "Inselgeneratoren", liefen also meistens parallel zu einer ganzen Reihe anderer Generatoren (Dictionary-Generatoren, Dateien-Katalog-Generatoren, Entscheidungstabellen-Generatoren); hinzu kam, daß es zwischen all diesen Generatoren (die in der Regel hintereinander für ein Programm ablaufen mußten) Kommunikationsschwierigkeiten gab. Häufig war die Anweisungssyntax der einzelnen Generatoren sehr unterschiedlich.

Langjährige Suche

Der Autor ist seit Jahren als Anwender solcher "lnselgeneratoren" auf der Suche nach einem Generatorsystem gewesen, das zunächst einmal die Hauptforderung erfüllte, nämlich die Vermeidung einer Vielzahl von parallelen Generatoren, und das darüber hinaus in der Lage schien, auch zukünftige neue Methoden auf diesem Gebiet (´falls man sich für solche Methoden in Zukunft einmal entschieden´) zu unterstützen.

Der langjährige Weg dieser Suche führte zu einem Generator-System, das einerseits ein umfassendes Werkzeugbündel anbietet und nicht nur alle zur Zeit auf dem Markt bekannten Methoden unterstützt, sondern das aufgrund seiner Konzeption mit Sicherheit in der Lage sein wird, alle denkbaren Zukunftsmethoden zu unterstützen. Es ist dies das Delta-System* von Dr. Reinhold Thurner. Daß diese Aussagen nicht nur eine unbegründbare Erwartungshaltung des Autors widerspiegeln, zeigt sich darin, daß er selbst mit Hilfe dieses Systems eine neuartige Strukturierungsmethode für Bildschirmprogramme entwickelt hat, von der im letzten Teil dieser Aufsatzreihe die Rede sein wird.

Dieses Delta-System beinhaltet heute:

- Entscheidungstabellen-Generator (der bekannte Detab/GT ist in diesem System ein integrierter Bestandteil geworden),

- die Generierung von PLl/Cobol Code aufgrund der Jackson/Warnier-Prozedur-Sprachelemente,

- dto. für Befehle der Strukturierten Programmierung,

- die Generierung von fertigen Programmablaufstrukturen nach der Normierten Programmierung,

- natürlich auch File-Definitionsunterstützung,

- Report-Definitionsunterstützung

- und auch eine sehr wirksame Makro-Sprache (mit der der Benutzer eigene Programm-Generatoren schaffen kann),

- Verwaltung von Dokumentationstexten

Man wird in einem Haus sicherlich nicht alles gleichzeitig einsetzen, aber hier können sich Jackson-/SP/ET/NP Fans genau das herauspicken, was sie (glauben zu) brauchen.

Nur, der Verfasser hat hier eine sehr apodiktische Meinung: Viele Köche verderben den Brei - man sollte sich im eigenen Hause auf eine oder einige wenige Methoden beschränken. Diese Meinung wird sogar zum Dogma und wird zu einem Plädoyer für die Normierte Programmierung, wenn es sich um Batch-Programme handelt

Die Normierte Programmierung hat gezeigt, daß nahezu alle Verarbeitungsformen der kommerziellen Datenverarbeitung, wenn man einmal von der Dialog- (sprich Bildschirm-) Programmierung absieht, gelöst werden können. Die bisherigen NP-Generatoren waren jedoch zu monolithisch, zu unflexibel und auch nicht so transparent wie der NP-Generator, der als Bestandteil des oben erwähnten Delta-Systems verfügbar ist.

Dieser NP-Generator geht nicht mehr von Programmblöcken für den Programmvorlauf, für die Eingabe, für die Satzwahl, für die Gruppenwechsel- und Einzelverarbeitung aus; er unterteilt vielmehr das Programm in sogenannte Ebenen, die sich hierarchisch gliedern, und zwar oben beginnend mit der Ebene der Verarbeitung für die "logische" Datei, die sich fortsetzen in den Programmebenen für die einzelnen Gruppenwechsel, und die unten enden mit der Ebene für die Einzelsatzverarbeitung.

Interessant ist dabei, daß das Gedankengut von Jackson, nämlich daß die Datenstruktur die Basis für die Programmstruktur abgibt, hier Anwendung findet : Die hierarchische Datenstruktur führt unmittelbar zu den gleichfalls hierarchisch gegliederten Programmebenen.

Die Frage, die sich stellt, ist, wie der Weg von einer komplexen ("baumartigen") Datenstruktur (eventuell einer Datenbank) zu einer einfachen "schachtelhalm"-artigen Datenstruktur, die für die Bildung von Programmebenen nach der NP-Methode notwendig ist, beschritten werden kann. Dieses wird später noch in dieser Aufsatzserie beschrieben.

Ansteuern durch den Generator

Der Verfasser möchte noch einmal die Behauptung wiederholen, daß nahezu jedes kommerzielle Programm (einschließlich der Batch-Verarbeitung von Komplexen

Datenstrukturen) mit Hilfe dieser NP-Methode zu lösen ist.

Die Vorteile sind:

- Alle Batch-Programme haben die gleiche Struktur

- Die einzelnen Programmteile (hier "Programmbausteine" genannt) werden nach einer einheitlichen Namenskonvention benannt; damit ist bereits aufgrund seines Namens bekannt, welche Funktion der einzelne Baustein ausführt.

- Die Ansteuerung der einzelnen Bausteine wird nach logisch einsichtigen und transparenten Kriterien vom Generator vorgenommen; kein Programmierer schreibt selbst mehr Steuerungscode.

- Ein "schmutziges" Go To wird weitgehend vermieden.

- Bereits in der verbalen Beschreibung der Programmvorgabe ist eine eindeutige Gliederung durch das Programmskelett nach der Normierten Programmierung vorgegeben .

- Der Programmierer lernt nur diese Standardstruktur für Batch-Programme kennen sowie den Weg, wie grundsätzlich alle Ablaufprobleme mit ihr gelöst werden; er kann darauf verzichten, die sicherlich nicht einfache Thematik nach Jackson/HIPO oder ähnlichem zu erlernen.

- Komplexe Entscheidungslogik in den Bausteinen kann er mit Hilfe des Entscheidungstabellen-Generators lösen (für Jackson/SP-Fans: Solche Logik kann innerhalb dieser Bausteine auch mit der Jackson-Prozedursprache oder mit Pseudo-Code-Sprachelementen der SP gelöst werden; wir haben uns in unserem Hause für die Entscheidungstabellen-Methode entschieden) .

Ein großer Bereich unseres heutigen Programmiereralltags wird jedoch durch die NP nicht abgedeckt: Bekannterweise lassen sich Dialog Bildschirmprogramme nicht mit der NP lösen.

Auf diesem Gebiet gibt es hier und da bereits Ansätze (so etwa Hilfen für die Masken-/Bilddefinitionen), aber noch keine in sich abgeschlossenen Konzepte,

- die eine grundsätzliche, generelle Lösung der Ablaufsteuerungsprobleme in einem Bildschirmprogramm bringen,

- die darüber hinaus eine generalisierte Datenflußsteuerung anbieten,

- die nicht nur eine Methode beinhalten, sondern auch gleichzeitig ein Werkzeug hierfür bereitstellen. (Eine Methode ist nur so gut wie das Werkzeug: Was wäre die Schraube mit ihrem Schlitz - der Schlitz ist die Methode - ohne den Schraubenzieher?),

- die darüber hinaus in ihrem Generator nicht nur die Ablauf- und Datenflußprobleme lösen, sondern gleichzeitig auch eine wirksame Hilfe für die Definition der Bildinhalte anbieten (möglichst mit allem Komfort wie Tabellendefinition, wirksame Ansteuerung von Texten, Formatierungen oder variables Schützen und "Öffnen von Feldern),

- die damit die Möglichkeit bieten, auf das Erlernen von TP-Monitor-abhängigen Ballast wirklich vollständig zu verzichten.

Der Autor glaubt, eine Methode gefunden zu haben, die den Anspruch erfüllt, allgemeingültig eine Lösung für alle kommerziellen Bildschirmprogramme anzubieten und die obengenannten Anforderungen abzudecken.

Diese Methode wird unterstützt durch ein Makro-System, das er im Jahreszeiten-Verlag mit seiner Methodenmannschaft entwickelt und eingeführt hat.

Die Grundlage für die Realisierung eines solchen Makro-Systems ist das Delta-System, das eine kompakte und übersichtliche Makro-Sprache anbietet.

In den nächsten Teilen dieser Reihe wird das Methoden- und Werkzeugbündel Delta vorgestellt; im Detail wird gezeigt, wie mit dem NP-Generator Batch-Programme strukturiert werden können.

lm letzten Teil dieser Aufsatzreihe wird der Autor über die Kernpunkte dieser Methode berichten.

*Klaus-D. Ahrens ist Org./DV-Leiter im Jahreszeiten-Verlag, Hamburg.

Warten auf das Super- Softwarewerkzeug ist fehl am Platze

HAMBURG (je) - Viele EDV-Leute warten auf den Tag , an dem allumfassende Werkzeug verfügbar ist, das möglichst alle Methoden - am besten zwecks Verwendung gleichzeitig in einem Programm - unterstützt; sie werden auf Dictionary-, Autoflow-, NP-, oder Jackson-Generator ewig warten. Diese Ansicht vertritt Klaus. D. Ahrens, seit vielen Jahren Leiter von Organisations- und Datenverarbeitungsabteilungen. Der engagierte Methodenbefürworter, der auf diesem Gebiet nicht immer positive Erfahrungen gemacht hat, ist im Hamburger Jahreszeiten-Verlag als Bereichsleiter Org./DV tätig und will mit der in dieser CW- Ausgabe beginnenden Artikelserie ein Methodenkonzept schildern, mit dem er gute Erfahrungen gemacht hat und in dessen Mittelpunkt der Programmgenerator "Delta" steht, den in Deutschland die Hamburger GMO vertreibt .

Ahrens gehört zu denen, die die ständige Neuerfindung des Rades für höchst unsinnig halten. In Diskussionen, Aufsätzen, Stellungnahmen in Fachzeitschriften und -zeitungen wie auch in Büchern -so hat er beobachtet - werden immer wieder neue Methoden und Denkansätze für die Lösung von Problemen der Programmablaufsteuerung angeboten.

Ahrens: "Man unterhält sich darüber, ob die eine oder andere Form der grafischen Darstellung, die Form eines Struktogramms richtig oder falsch ist; man fragt sich, ob die Jackson-Idee tot ist oder ob (und wenn, wie lange) sie noch leben wird und so weiter und so weiter."

Davon hält Ahrens nicht allzuviel, nicht zuletzt, weil es seiner Ansicht nach heute Werkzeuge auf dem Markt gibt, die das wiederholte neue Erfinden der Programmstrukturen abbauen und somit dem Programmierer eine Menge an Schreib- und Denkarbeit abnehmen.