Von problemunabhängigen Datenstrukturen kann keine Programmstruktur abgeleitet werden, Teil 1:\ Jackson trennt Entwurf und Implementierung

16.04.1981

"Der Entscheid für die Einführung der Jackson-Technik war richtig. Die Erwartungen werden erfüllt. Die JSP-Technik bringt Verbesserungen in bezug auf Qualität (Die korrekte und zuverlässige Lösung wird von allem Anfang an erarbeitet), Quantität (Für eine Steigerung der Produktivität sind Anzeichen vorhanden), Transparenz (Der Entwicklungsfortschritt ist sichtbar) wie auch auf die Mitarbeiter (Der Arbeitsbereich wird erweitert. Die Sicherheit in der Arbeit wird gesteigert durch die Qualität des Produktes)." So faßte Walter H. Haeni auf dem GMD-Benutzertreffen im November 1978 Stand und Erfahrungen bei der Anwendung der Jackson-Strukturierten-Programmierung (JSP) in der Swissair zusammen.

An anderer Stelle berichtet Kathleen S. Mendes von der Exxon Corporation, der Esso-Muttergesellschaft, in New Jersey, USA: "Bei Exxon verwenden wir die Jackson-Methode als Programmentwurfs-Methode. Wir haben die Jackson-Methode an unsere Bedürfnisse angepaßt (wir bezeichnen sie intern als Program Structure Technology - PST) und für sie hausinterne Seminare entwickelt, an denen inzwischen 1200 Mitarbeiter teilgenommen haben. Diese Programmentwurfs-Methode ist seit drei Jahren ein Standard innerhalb von Exxon und wird in vielen kaufmännischen und technischen Anwendungen eingesetzt. ... Wir stellten fest, daß diese Methode lehrbarer und weniger intuitiv ist als andere Methoden, die wir untersuchten. Von den 1200 Programmierern und Analytikern, die in der Methode ausgebildet wurden, wenden drei Viertel sie tatsächlich an."

Die JSP gehört zu den zur Zeit meistdiskutierten Programmentwurfs-Methoden, auch in den deutschsprachigen DV-Fachzeitschriften. Für Leser, die nicht selbst schon Seminare zu den entsprechenden Methoden besucht haben, ist es jedoch häufig unmöglich, die bei dieser Diskussion ins Feld geführten Argumente zu beurteilen. Dieser Beitrag soll hier Abhilfe schaffen. Dabei kann es nicht Ziel des Verfassers sein, den Leser zu befähigen, selbständig nach JSP Programme zu entwerfen (Michael Jackson benötigte dazu, zu einem Zeitpunkt als die Methode fünf Jahre alt war, rund 300 Seiten; inzwischen ist die Methode fünf Jahre weiterentwickelt worden). Das Ziel besteht vielmehr darin, dem Leser die wesentlichen Konzepte der JSP zu verdeutlichen und ihn anzuregen, sich weiter mit dieser Programmentwurfs-Methode kritisch auseinanderzusetzen.

Was unterscheidet die verschiedenen in Theorie und Praxis bekannten Datenstruktur-Begriffe?

Was die JSP mit dem Begriff "Datenstruktur" verbindet, unterscheidet sich grundlegend von anderen bekannten Datenstruktur-Begriffen. Da dies häufig zu Mißverständnissen führt und den Zugang zur Methode erschwert, wird zunächst eine entsprechende Begriffserklärung vorgenommen.

Mit dem Datenstruktur-Begriff werden grundlegende Konzepte der Datendarstellung und des Datengebrauchs verbunden.

Mit dem Begriff Datenstruktur werden in der Informatik einige grundlegende Konzepte der Datendarstellung und des Datengebrauchs bezeichnet, die durch Allgemeingültigkeit und Problemunabhängigkeit gekennzeichnet sind.

Beispiele für Datenstrukturen in diesem Sinne (vgl. Wirth 75, S. 21 f.):

þArray (Feld)

þRecord (Verbund)

þSet (Menge)

þFile (Sequenz)

Auf diesen grundlegenden Datenstrukturen bauen die abstrakten Datenstrukturen auf, die mit zunehmender Abstraktionsebene einen stärkeren Problembezug herstellen. Das

wohl meistzitierte Beispiel für eine solche abstrakte Datenstruktur ist der Stack (Keller). Betrachtet man eine abstrakte Datenstruktur und die auf ihr definierten Operationen und Bedingungen als eine Einheit, so hat man einen abstrakten Datentyp geschaffen. Für das Beispiel Stack (Keller) sind dies die Operationen "push" und "pop" sowie die Bedingung leer". "Push" bewirkt das Erhöhen, "pop" das Verringern der Kellertiefe um 1 Element.

Geschickter Entwurf abstrakter Datentypen führt zu problemnaher, verständlicher

Formulierung von Programmen. Selbst einer der Väter dieses Strukturierungskonzepts, Niklaus Wirth von der ETH Zürich, stellt jedoch heute fest, daß "es relativ wenig erfolgreiche Anwendungen gibt"; Dies liegt nach seiner Meinung daran, daß es "prinzipiell schwierig ist für eine gegebene Aufgabenstellung geeignete Datentypen zu entdecken" (vgl. Wirth 79, S. 8 f.).

Zurück zu den "konkreten" Datenstrukturen wie Datei und (Daten-) Satz. Da diese Datenstrukturen problemunabhängig sind, kann von ihnen keine Programmstruktur abgeleitet werden. Dieselbe Datei und derselbe Datensatz treten schließlich in den verschiedensten Aufgabenstellungen auf. Ein Programm hingegen dient zur Lösung eines bestimmten Problems. Wie sollten dann Datei- und Satzaufbau Grundlage einer Programmstruktur sein können?

Der Datenstruktur-Begriff in der "Datenbankwelt".

Mit dem Datenstruktur-Begriff in der "Datenbankwelt" werden etwas andere Konzepte bezeichnet als mit dem erstgenannten.

In der "Datenbankwelt" werden Daten(bank)strukturen im allgemeinen für mehrere Anwendungen (Bereiche) gemeinsam entwickelt. Man spricht häufig in diesem Zusammenhang von globalen Strukturen. Diese werden dem einzelnen Anwendungsprogramm bekannte, sogenannte lokale Strukturen zugeordnet. Lokale Strukturen sind in der Regel also eine Teilmenge der globalen Struktur. Häufig sind zusätzlich in der lokalen Struktur, bezogen auf elementare Felder, abweichende Formate (Konversion von Gleitkomma nach Festkomma) oder andere Satzstrukturen möglich.

Häufig werden die auf dem Markt verfügbaren Datenbank-Managementsysteme anhand der von ihnen unterstützten (globalen) Datenstrukturen in Gruppen eingeteilt. Die bekanntesten Gruppen sind relationale, netzwerkartige (insbesondere Codasyl-artige) und hierarchische Datenstrukturen.

Bildet man diese Strukturen ab auf physische Speichermedien (Platte, Band), spricht man von der physischen Organisation der Daten. In vielen Literaturstellen wird für die "physische Organisation" auch der Begriff "physische Datenstruktur" benutzt.

*Wolfgang George ist Gruppenleiter Methodenberatung bei der mbp (Mathematischer Beratungs- und Programmierungsdienst) GmbH, Dortmund.

JSP: Hier etabliert und da umstritten

DORTMUND (je) - Obwohl die Jackson-Strukturierte-Programmierung (JSP) sich schon in vielen Unternehmen im In- und Ausland als Standard für den Programmentwurf durchgesetzt hat, gehört sie nach wie vor zu den am meisten diskutierten Methoden. Auf diesen Tatbestand weist Wolfgang George, Gruppenleiter und Methodenberater bei der Dortmunder mbp GmbH, hin. George hat sich deshalb als langjähriger JSP-Anwender und Trainer daran gemacht, dem CW-Leser in dieser und den folgenden Ausgaben, gestützt auf Beispiele, diese Programmentwurfs-Methode näherzubringen.

Dabei will er die in der JSP geforderte strikte Trennung von Entwurf und Implementierung sowie die Verwendung des Prozeßkonzepts beim Systementwurf verdeutlichen. Es ist Georges erklärtes Ziel aufzuzeigen, warum JSP für die heutigen Dialog- und Stapelanwendungen sowie für die zunehmende Anzahl von Realisierungen mit verteilter Datenverarbeitung und andere zukunftsorientierte Implementierungsformen eine angemessene Entwurfsmethode ist.