Systemthorie für die Software-Entwicklung

26.11.1976

- Was ist denn nun eigentlich das Neue, das Einzigartige an der Strukturierten Programmierung?

Das Einzigartige besteht für mich darin, daß endlich auch in der Datenverarbeitung - so wie seit langem in der Technik - von den Erkenntnissen der Systemtheorie über die Gestaltung komplexen Systeme Gebrauch gemacht wird.

- Wie läßt sich die Systemtheorie konkret bei der Software-Erstellung anwenden?

Die Software-Entwicklung als Systemgestaltungsprozeß erstellt verschiedene Modelle des Systems. Solche Modelle des Systems Datenverarbeitung sind die fertigen Programme, die Dokumentation, die Benutzerhandbücher, die Anweisungen für das Rechenzentrum - die alle verschiedenen Aspekte ein-, und desselben Objektes, nämlich des Datenverarbeitungssystems, darstellen. Wichtig ist nun, daß es für jede Ebene des Systems, also für jede Form von Subsystemen, ein für die jeweilige Systemumwelt verständliches Modell gibt.

- Welche Systemebenen sind zu unterscheiden und weiche Modelle korrespondieren damit?

Die höchste Ebene ist die funktionale Ebene des Systems. Die Realisierung dieser Funktion - verfügbare Daten in gewünschte Informationen zu transformieren - geschieht durch die Bildung von Verarbeitungs-Subsystemen, Das Modell dieser nächsten Ebene ist der Datenflußplan, der einen einzelnen Prozeß bezüglich seiner Ein- und Ausgabeinformationen beschreibt. Die innere Struktur dieser Prozesse wird nun weiter unterteilt in einzelne Programmbausteine oder Prozeduren. Mit der klaren und übersichtlichen Organisation dieser Ebene hat sich die strukturierte Programmierung befaßt. Die entsprechenden Modelle sind zum Beispiel Struktogramme - aber auch Entscheidungstabellen. Auf der niedersten Ebene des Systems finden wir die Statements. Das Modell für die Maschine ist der Code.

-Schön und gut, aber was folgt daraus?

Transparenz bei großen komplex en Systemen ist nicht mehr mit einer einzigen Dokumentation zu erzielen, sondern nur durch Systembeschreibungen für unterschiedliche Systemumwelten, also für unterschiedliche Zielgruppen.

- Gibt es das nicht heute schon, indem man für die Anwender Projektvereinbarungen schafft, für die die Maschine Programme schreibt und Codelisten dokumentiert und für das Rechenzentrum Operator Manuals erstellt?

Selbstverständlich hat es immer schon Anwender gegeben, die sehr fortschrittlich die unterschiedlichen erforderlichen Dokumentationen erstellen und immer auf neuestem Stand halten. In der Regel ist es aber leider so, daß nur die komplizierteste Dokumentation, die für die Maschine auf neuestem Stand gehalten wird und alle anderen Systembenutzer sich mit dieser Dokumentation begnügen müssen.

- Ist es nicht so, daß verbesserte Dokumentation allein das Problem nicht liest, weil die Systeme immer komplexer und somit die Dokumentation auch zwangsläufig immer weniger transparent wird?

Einer der ganz wesentlichen Vorteile der Systemtheorie ist es, die Komplexität von Systemen durch verschiedene Ebenen von Systembeschreibungen zu reduzieren. Dies wird auf zwei Wegen erreicht. Der erste Weg: Reduktion der Systemgröße durch Subsystembildung. Zweitens: Reduktion der Komplexität durch Vermeidung von unnötigen, überflüssigen Beziehungen zwischen den Subsystemen. Das eine bezeichnen wir als klare innere Struktur, das andere als klare Interfaces.

-Wie wirkt sich das für die Praxis aus?

Wir minimieren die Interfaces durch klare Schnittstellenbeschreibungen sowohl für Daten-Interfaces wie auch für Prozedur-Verknüpfungen - letzteres bewirkt zum Beispiel die Vorschrift der strukturierten Programmierung, daß jedes Modul nur einen Eingang und einen Ausgang haben darf. Eine klare innere Struktur wird erreicht, wenn die System-Elemente - bei Programmen sind das die Befehle - zueinander in überschaubaren Beziehungen stehen. Solche Beziehungen werden durch die Nachbarschaft hergestellt oder durch syntaktische Elemente wie zum Beispiel GOTO oder DO WHILE. Die strukturierte Programmierung empfiehlt nur eine kleine Menge von Steuerungs-Konstrukten zu benutzen und strukturverschlechternde Elemente zu vermeiden. Ein weiteres Beispiel für die Beschreibung klarer Beziehungen ist die Entscheidungstabelle.

- Warum, meinen Sie, hat die Systemtheorie für die Praxis der Datenverarbeitung bisher so wenig Einfluß gehabt?

Die Systeme waren bisher noch nicht sehr komplex. Die Komplexität der Programme hat aber jetzt einen Punkt erreicht, an dem man sich nach Hilfsmitteln und Werkzeugen umzusehen beginnt.