Der Verstich, DIN 66220 vom Sockel zu stoßen:

Programmablauf des Schichtenmodells

20.09.1978

BRAUNSCHWEIG (hö) - In CW Nr. 42 beschrieb Dr. Klaus Riemer, Koordinator Methoden und Verfahren beim Volkswagenwerk, das Für und Wider der einzelnen modernen Programmiermethoden. Als weiteres Hilfsmittel empfahl er das bis dato als zu kompliziert betrachtete Schichtenmodell der Strukturierten Programmierung. Wie bereits in CW Nr. 41 angekündigt, soll hier am Beispiel von Ablaufdiagrammen der Programmaufbau des Schichtenmodells - und gleichzeitig der einfachste Weg zur Anwendung - dargestellt werden. Im folgenden wird eine Darstellung, des Schichtenmodells versucht, wobei die Kenntnis von DIN 66220 vorausgesetzt wird. Bewußt werden auch hier Sinnbilder nach DIN 66001 verwendet, weil sie allgemein bekannt sind und durch das Schleifen-Sinnbild der Strukturierten Programmierung gut entgegenkommen. Außerdem erlauben sie, auf eine Spezifizierung von Fehlerbehandlungen zu verzichten.

Dieses Schleifen-Sinnblid wurde auch verwendet, wo die Schleife beim Codieren durch entsprechend viele Einzelanweisungsfolgen nacheinander aufgelöst werden muß: bei der ersten Eingabe im Vorlauf. Für diesen "Trick" wird indes um Verständnis gebeten, weil er das Prinzip der Wiederholung gleichartiger Anweisungsfolgen in der allgemeingültigen Form des Modells so plastisch herausstellt. Ebenso ist es bei wenigen Eingabedateien in einer Satzauswahl zweckmäßig, die bedingten Anweisungen ohne Schleife einfach so oft nacheinander aufzuführen, als Dateien am Mischprozeß beteiligt sind. Ein Softwarehaus hat einmal herausgefunden, daß dies bis zu sechs Dateien Performance-Vorteile hat. - Aber die Programmiertechnik soll auch hier nicht vorgeschrieben werden.

Bild 1 Programmablauf (Gesamtablauf)

Vorlauf und Abschluß rahmen die Schleife (DO WHILE) der Satzgruppenverarbeitung ein - eine simple Grundstruktur, wie sie immer wieder vorkommt.

Bild 2 Vorlauf

Die doppelte Schleife (DO UNTIL) zur ersten Eingabe aller Dateien und ihrer rangweisen Satzauswahl wird ebenfalls eingerahmt von Vorlauf und Abschluß, die hier als Eröffnung und Vorbereitung bezeichnet werden und einmalige Arbeiten vor beziehungsweise nach der ersten Eingabe enthalten. Vor der Eingabe erfolgt zum Beispiel das Eröffnen dieser Dateien, nach der Eingabe das Eröffnen der daraufhin zu erstellenden Ausgaben. Bei der Codierung ist die Schleife durch eine Folge von Einzelanweisungsfolgen aufzulösen (siehe oben).

Bild 3 Verarbeitung einer Satzgruppe

Für jede Satzgruppenstufe gibt es eine Schleife (DO UNTIL) zur Verarbeitung, solange das Gruppierwort gleichen Inhalt aufweist. Diese Schleife enthält Einzelverarbeitung, Eingabe und Satzauswahl der Dateien dieses Ranges und wird eingerahmt von Gruppenanfangs- und Gruppenende-Verarbeitung. Zum Gruppenanfang gehört das Löschen des Gruppenwechsels durch Übertragen des datei-neutralen neuen Gruppierwortes des Ranges in das alte.

Bild 4 Verarbeitung und Eingabe

Die in der Verarbeitung einer Satzgruppe aufgerufene Verarbeitung und Eingabe wird jeweils nur für die Datei durchlaufen, von der der zuletzt verarbeitete Satz stammt. Die Information hierüber ("Merker Dateiauswahl") kann zum Beispiel an das Gruppierwort gekoppelt sein durch eine Variable, die in der Satzauswahl einfach mit übertragen wird.

Als Datei gilt hier auch die Gesamtheit der Sätze aus niedrigeren Rängen. Sie werden repräsentiert durch das datei-neutrale Gruppierwort des tieferen Ranges, verkürzt um das letzte Gruppierelement. Dieses neue Gruppierwort des höheren Ranges nimmt mit passender Dateipriorität an der Satzauswahl des höheren Ranges teil. Bei einer Auswahl dieser "Datei" erfolgt jedoch statt Einzelverarbeitung und Eingabe die Verarbeitung der tieferen Satzgruppe wie in Bild 3.

Bild 5 Satzauswahl

In jedem Rang findet eine eigene Satzauswahl statt zwischen dem Ergebnis des Mischprozesses im tieferen Rang und den in diesem Rang dazukommenden Eingaben (siehe Erläuterung zu Bild 4). Ausgewählt wird der Satz mit dem geringsten Wert im Gruppierwort - bei mehreren gleichen Werten entscheidet die Dateipriorität. Jeder Rang hat seine eigenen datei-neutralen Gruppierwörter (alt und neu), die mit aufsteigenden Rängen jeweils um ein Gruppierelement kürzer werden, sowie seine eigenen Dateiprioritäten.

Bild 6 Eingabe einer Datei

Dieser Ablauf entspricht DIN 66220. Daß über die - problemspezifische - Behandlung nicht freizugebender Sätze (wie Überlesen nach Protokollierung, Programmabbruch oder Modifikation einzelner Werte) keine endgültige Aussage in diesem allgemeingültigen Programmablauf getroffen werden muß, ist ein entscheidender Vorteil der Sinnbilder nach DIN 66001, auch wenn dies im Einzelfall zu Verstößen gegen die

Strukturierte Programmierung führen kann.