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

19.10.1979

Die COMPUTERWOCHE beginnt in dieser Ausgabe mit der ersten Folge einer dreiteiligen Serie zum Thema "Strukturierte Programmierung". Dieser Beitrag stammt von Heinz Neubeck, Leiter EDV-Organisation bei der IWKA Industrie-Werke Karlsruhe Augsburg Aktiengesellschaft, Karlsruhe.

Gliederung

1. Zielsetzung einer einheitlichen Programmiermethodik

2. Forderung an Programme

3. Konzeptbildung und Planung

3.1 Notwendigkeit einer sorgfältigen Planung

3.2 Benutzervorstellung als Grundlage für die Programmplanung

3.3 Methodik der Programmplanung

3.3.1 Gliederung in Moduln

3.3.2 Funktionelle Beschreibung als Grundlage für die technische Realisierung

3.3.3 Unabhängigkeit von Komponenten

3.3.4 Hierarchische Programmstrukturierung

3.3.5 Zweipoligkeit

3.3.6 Das Prinzip der schrittweisen Verfeinerung

4. Dokumentation und Beschreibung

4.1 Systemgesamtbeschreibung

4.2 Programmbeschreibung

4.2.1 Funktionelle Programmbeschreibung

4.2.2 Programmgrobablaufplan

5. Lesbarkeit

5.1 Transparenz

5.2 Gliederung

5.3 Zusammenhang von Programmtext und dynamischem Ablauf

5.4. Darstellung des Steuerflusses

5.5 Einheitliche Namensgebung

5.5.1 Datennamen

5.5.2 Paragraphen- und Kapitelnamen

5.6 Vermeiden von Literalen

5.7 Einrücken von Befehlsfolgen

5.8 Verwendung von Kommentaren

9. Zusammenfassung

1. Zielsetzung einer einheitlichen Programmiermethodik

- Die Strukturierte Programmierung hilft, komplexe Probleme leichter zu bewältigen, indem sie eine streng gegliederte hierarchische Struktur bewirkt.

-Die Strukturierte Programmierung ist eine Methodik, die dazu anleitet, ein Programm so zu erstellen, daß es das zugrunde liegende Verfahren (Algorithmus) verständlich und transparent macht.

- Ziel der Strukturierten Programmierung ist nicht die Einschränkung des Programmierers, sondern eine erhöhte Effektivität bei der Wartung (Änderung und Erweiterung) von Programmen.

Wartungsfreundliche Programme setzen die Übersichtlichkeit und Lesbarkeit voraus.

2. Forderung an Programme

Die Güte von Programmen kann an mehreren, zunächst voneinander unabhängigen, Merkmalen gemessen werden:

-Effektivität

-Fehlerfreiheit

-Verständlichkeit

-Wartungsfreundlichkeit

-Überschaubarkeit

-Wirtschaftlichkeit

Jedes dieser Merkmale beschreibt einen bestimmten Aspekt des Gebrauchswertes

eines Programmes. Günstige Werte dieser Größen können nur dann erreicht werden, wenn bereits während der Programmentwicklung entsprechende Maßnahmen getroffen werden. Vielfach besteht die Ansicht, daß Maßnahmen zur Verbesserung eines bestimmten Merkmales notwendigerweise auf Kosten eines anderen Merkmales gehen (zum Beispiel Erhöhung der Lesbarkeit gehe auf Kosten der Effektivität).

Die Strukturierte Programmierung lehrt demgegenüber, daß diese Forderungen nicht notwendigerweise im Konflikt zueinander liegen, sondern sehr wohl gemeinsam berücksichtigt werden können.

Bei der Frage nach der Wirtschaftlichkeit von Programmen genügt es nicht, wenn nur die Kosten für die Programmerstellung, die Laufzeit und der Kernspeicherbedarf berücksichtigt werden. Bei der verallgemeinerten Wirtschaftlichkeitsbetrachtung, die der Strukturierten Programmierung zugrunde liegt, wird vielmehr davon ausgegangen, daß die Programme einem ständigen Wartungsdienst unterliegen. Gerade die Kosten für Wartung stehen oft in keinem Verhältnis mehr zu den ursprünglichen Programmerstellungskosten.

Die zentrale Forderung der Strukturierten Programmierung ist es deshalb, rechtzeitig, das heißt bereits während der Programmerstellung, dafür Sorge zu tragen, daß der nachfolgende Wartungsdienst leicht durchgeführt werden kann. Diese Forderung setzt voraus, daß ein Programm entsprechend der sachlichen Aufgabenstellung klar strukturiert wird, daß diese Struktur in der optischen Programmgestaltung zum Ausdruck kommt, daß die Daten- und Paragraphennamen einen sachlichen Bezug herstellen, und daß bestimmte Passagen im Programm durch Kommentare erläutert werden.

Die Fehlerfreiheit von Programmen kann nicht durch Testen bewiesen werden. Da es selbst bei einfachen Programmen im allgemeinen unmöglich ist, jeden möglichen dynamischen Ablauf mit allen möglichen Datenkombinationen durchzuspielen, kann man durch Testen zwar das Vorhandensein, nicht aber die Abwesenheit von Fehlern zeigen.

Ein strukturiertes Programm, das aus modularen Bausteinen besteht, bietet gerade beim Testen und bei der Fehlersuche wesentliche Vorteile. Die einzelnen Programmbausteine (Moduln) können, wenn sie nicht zu umfangreich sind, am Schreibtisch ohne übermäßigen Zeitaufwand getestet werden. Die auftretenden Fehler können dann im allgemeinen sehr schnell lokalisiert und gefunden werden.

Im Wartungsdienst bietet die Strukturierte Programmierung die Möglichkeit, leicht änderbare und damit flexible Programme herzustellen. Man kann insbesondere eine Komponente eines Programmes gegen eine andere mit der gleichen Leistung auswechseln, ohne in den Rest des Programmes eingreifen zu müssen.