Strukturierte Programmierung als einheitliche Programmiermethodik und Hilfsmittel zur Rationalisierung im EDV-Bereich

02.11.1979

Die COMPUTERWOCHE setzt in dieser Ausgabe die Serie zum Thema "Strukturierte Programmierung" fort. Dieser Beitrag stammt von Heinz Neubeck, Leiter EDV-Organisation bei der IWKA Industrie-Werke Karlsruhe Augsburg Aktiengesellschaft, Karlsruhe.

3.3.5 Zweipoligkeit

Jede Komponente hat genau einen Eingang und genau einen

Ausgang. Strukturblöcke werden im allgemeinen durch PERFORM aufgerufen. GOTO-Befehle sollten nur innerhalb von Strukturblöcken verwendet werden.

3.3.6 Das Prinzip der schrittweisen Verfeinerung

In der Strukturierten Programmierung wird die Programmentwicklung in deutlich unterschiedenen Schritten durchgeführt.

Die Programme werden konsequent von oben nach unten geplant.

Ausgehend von der Benutzervorstellung wird das Problem schrittweise verfeinert, bis die so erarbeiten Komponenten überschaubar genug sind, um unmittelbar in der gewählten Programmiersprache ausgedrückt werden zu können.

Die in den aufeinanderfolgenden Entwicklungsschritten entstehenden Entwürfe unterscheiden sich durch wachsende Detailtiefe.

Mit jedem Entwicklungsschritt entsteht eine vollständige Zerlegung des jeweils letzten Entwurfs in logische Einheiten (Strukturblöcke).

Die in einem Entwicklungsschritt neu entworfenen Strukturblöcke bilden eine (Entwicklungs-)Ebene.

Die Strukturblöcke jeder Ebene werden zunächst nur funktionell beschrieben. Sie müssen mit dem nächsten Entwicklungsschritt so geplant werden, daß ihre innere Arbeitsweise unabhängig von der inneren Arbeitsweise aller übrigen Strukturblöcke gleicher Ebene ist.

Sobald eine Ebene erreicht ist, die sich bereits in der gewählten Programmiersprache darstellen läßt, sollte mit Kodierung und Test - nach Strukturblöcken getrennt - begonnen werden.

Anmerkung:

Die Zerlegung des Programmes sollte soweit erfolgen, bis Strukturblöcke einer übersichtlichen Größe (zirka eine Seite) erreicht werden.

4 . Dokumentation und Beschreibung

4.1 Systemgesamtbeschreibung

þSystem- beziehungsweise Projektbeschreibung

- Gesamtübersicht Nummernsysteme und -schlüssel

- Gesamtübersicht Dateiorganisation

- Beschreibung Eingabebelege

- Beschreibung der Ausgabelisten

- EDV-interne Dateien

4.2 Programmbeschreibung

4.2.1 Funktionelle Programmbeschreibung

Jedes Programm muß, bevor es entworfen wird, durch eine Beschreibung seiner Funktion - nicht seiner Arbeitsweise - bestimmt werden.

4.2.2 Programmgrobablaufplan (Diagramm)

Das Programmablaufdiagramm dient dazu, die Zusammenhänge zwischen den einzelnen Programmkomponenten sichtbar zu machen. Jede Programmkomponente (Modul) wird durch ein Symbol nach DIN 66220 dargestellt. Die einzelnen Komponenten werden verbal beschrieben, und zwar soweit, daß ein Programmierer mit entsprechenden Sachkenntnissen daraus die notwendigen Befehle ableiten kann.

Schwierige Verarbeitungsroutinen können eventuell schon während der SystemanaIyse grob vorkodiert werden. Dadurch wird bereits zu diesem Zeitpunkt erkannt, ob ein vorgesehenes Verfahren überhaupt durchführbar ist und ob die Voraussetzungen hierfür alle vorhanden sind.

Dieser Programmgrobablaufplan dient einerseits als Programmvorgabe, andererseits aber auch als Programmdokumentation.

Der Ersteller des Grobablaufplanes sollte sich deshalb immer vor Augen halten, daß die Dokumentation in erster Linie nicht für ihn selbst sondern für andere erstellt wird.

Teil lll

5. Lesbarkeit

5.1 Transparenz

Ein Programm ist allgemein lesbar, wenn es den Algorithmus, der ihm zugrunde liegt, transparent macht.

Lesbarkeit erleichtert die Fehlersuche erheblich beziehungsweise trägt dazu bei, Fehler von vornherein zu vermeiden.

Nur ein lesbares Programm kann als richtig erkannt werden, außerdem ist Lesbarkeit wesentlich für die Verständlichkeit und damit für die Änderbarkeit von Programmen.

Um ein Programm lesbar zu machen, genügt es nicht, nachträglich Kommentare in den Text einzufügen. Vielmehr müssen bereits während der Programmierung die im folgenden beschriebenen Gesichtspunkte berücksichtigt werden.

5.2 Gliederung

Ein Programm ist in überschaubare funktionell abgrenzbare Komponenten mit klar erkennbarem Zusammenhang zu gliedern.

Die Niederschrift einer Programmkomponente sollte, um leicht verstanden werden zu können, maximal eine Seite umfassen.

5.3 Zusammenhang von Programmtext und dynamischem Ablauf

Der Zusammenhang zwischen dem Text eines Programmes und den von ihm beschriebenen dynamischen Abläufen muß leicht durchschaubar sein.

Die natürliche Ausführung von Programmanweisungen ist die Richtung ihrer Niederschrift (zum Beispiel Abarbeiten eines Satzes von links nach rechts).

Diese Reihenfolge soll, soweit wie möglich, nicht unterbrochen werden. Unnötiges Hin- und Herspringen im Programm bedeutet für den Leser Hin- und Herspringen im Text und erschwert damit das Verständnis eines Programmes, ohne dem Programmierer einen Nutzen zu bringen.

Es wird deshalb empfohlen. Sprungbefehle wenig zu verwenden, und nur dort, wo sie einen leicht erkennbaren Zweck erfüllen.

In Cobol bedeutet das eine sparsame Verwendung von GOTO-Anweisungen. Die Verwendung der ALTER-Anweisung, die die Sprungziele dynamisch ändert, wird aus Gründen der Lesbarkeit verboten.

5.4 Darstellung des Steuernflusses

Ein Programm stellt im allgemeinen einen komplizierten dynamischen Prozeß dar, der aus vielen kleinen Bausteinen aufgebaut ist.

Wegen der großen Anzahl der auftretenden Einzelbausteine ist es wichtig, diese Bausteine durch ein möglichst kleines Repertoire von standardisierten Bausteintypen zu realisieren.

Damit gelingt eine Vereinheitlichung der verwendeten Konstruktionen zur Beschreibung des Steuerflusses.

Die Strukturblöcke haben zudem den besonderen Vorteil, daß ihre Funktionen als algorithmische Bausteine sehr leicht zu erkennen sind.

Werden sie in einem Programm ausschließlich verwendet, dann kann der Leser seine Aufmerksamkeit auf die größeren Zusammenhänge richten und die Leistung der Bausteine dabei als bekannt voraussetzen.

5.5 Einheitliche Namensgebung

5.5.1 Datennamen

Als Datennamen sollten grundsätzlich nur aussagefähige Begriffe gewählt werden, die einen Zusammenhang zum Inhalt herstellen. Um gleiche Datennamen, die in verschiedenen Dateien enthalten sind, im Programm eindeutig zu kennzeichnen, sind zwei Versionen zugelassen:

a) Kennzeichnung von Datennamen

Einem nicht eindeutigen Namen werden zur Kennzeichnung mit Hilfe der Cobol-Wörter IN oder OF ein oder mehrere Namen beigefügt, die das zu bezeichnende Element eindeutig identifizieren.

Diese Version, die sich der Möglichkeiten der Cobol-Sprache bedient, hat zwar den Nachteil eines erhöhten Schreibaufwandes, der sich jedoch später beim Lesen eines Programmes macht.