Siemens: Das Ei des Columbus

Höhere Laufzeit kontra Sicherheit

13.05.1977

MÜNCHEN (ee) - Rationelleres Software-Engineering bleibt für die nächste Zukunft wohl noch ein mit Kompromissen gepflasterter Weg. Daß die Kluft zwischen fehlerfreier Hardware und immer noch problematischer Software endlich geschlossen werden muß, wird immerhin allgemein anerkannt. Doch während die meisten Anwender sich gegenwärtig noch mit Tuningmethoden herumschlagen, scheint das langsamere Programm sicherer - und damit zukunftsträchtiger zu sein. So jedenfalls sieht es Siemens-Software-Spezialist Thomas Kellermann, der sich kürzlich mit den Möglichkeiten (siehe Kasten) des strukturierten Programmierens auseinandersetzte. Wozu relevant ist, daß Siemens selbst mit Columbus ein entsprechendes Werkzeug anbietet. So richtig engagiert allerdings erst seit kurzer Zeit.

Kellermann hat die Entscheidungstabellen-Technik, die noch vor zwei Jahren en vogue war, abgeschrieben. Bei Siemens schwört man jetzt auf strukturiertes Programmieren, ohne es (Kellermann: "Wegen der in der

Vergangenheit begangenen Fehler") selbst konsequent anwenden zu können. Trotz der unterdessen erkannten Vorteile des strukturierten Programmierens hänge es bei Siemens daran, "daß nur 30 Prozent Software-Entwicklung betrieben wird und 70 Prozent Wartungsarbeiten sind". Kellermann weiter: "Die wesentliche, über den Erfolg entscheidende Phase bei einem Strukturprogramm ist die Design-Phase. Je exakter die Schnittstellen fixiert werden und je detaillierter die einzelnen Strukturblöcke gestaltet sind, desto müheloser gelingt die Translation in die Maschinensprache und desto geringer wird die Gefahr des eingebauten Fehlers."

Bei Columbus werden fünf Strukturelemente (eins als einfache Folge zwei als ja/nein, drei als Mehrfachverzweigung, vier als Variable und Element fünf mit Abbruchbedingung) zu einem in sich geschlossenen Strukturblock vereinigt. Dies hat nach Siemens-Angaben den Vorzug, daß jeder Strukturblock als Modul austauschbar ist, zu einer Zentralisierung der Funktionen führt, die aneinandergekettet den "wünschenswerten" dynamischen Ablauf von oben nach unten (Top-down-Design) liefern.

Zu den gewichtigsten Vorzügen zählt die Personalunabhängigkeit eines solchen Programmes, in das sich jeder mühelos einlernen kann. Kellermann: "Ein strukturiertes Programm ist wesentlich transparenter als ein künstlerischer Entwurf mit unmotivierten Sprüngen." Der alte Scherz vom "unkündbaren Programmierer" funktioniere beim strukturierten Programm nicht mehr: "Daß die Design-Phase dabei den Hauptteil der Entwicklungszeit beansprucht, tut den Vorzügen eines strukturierten Programmes keinen Abbruch". Denn inzwischen sei empirisch abgesichert, daß Programme, die sofort codiert werden, tatsächlich erst nach langer Laufzeit fehlerfrei arbeiten während ein sorgfältig entworfenes Programm nach einem zunächst flachen Anstieg der Leistungskurve insgesamt in kürzerer Zeit die erwartete Leistung bringe.

Dokumentation gleich einarbeiten

Columbus hat nach Siemens-Auffassung auch den Vorzug, daß in die eingesetzten Nassi-Shneidermann-Struktur-Diagramme zwischen die Befehle gleich die Dokumentation eingearbeitet werden kann: Da die Dokumentation gegenüber der Programmentwicklung noch immer zwei Drittel der Zeit braucht, besticht diese Möglichkeit in der Tat. Schließlich kann der Anwender wählen, ob er sich später nur die Dokumentation ausdrucken läßt oder nur die Befehle. In jedem Fall ist dies eine Möglichkeit, die Aktualität von beiden Dingen schnell zu überprüfen.

Die Nachteile: Praktisch ist Columbus eine Art Vorübersetzer, der ein strukturiertes Programm in Cobol übersetzt. Dadurch werden die Programmlaufzeiten etwas länger und der Kernspeicher-Aufwand wächst.

Was bringt strukturiertes Programmieren?

In einer nicht repräsentativen Umfrage (130 Befragte, Mehrfachantworten waren möglich) kristallisierte sich zum strukturierten Programmieren (SP) heraus: 53 Prozent erwarten eine Verbesserung der laufenden Dokumentation und 49,6 Prozent eine Verbesserung des Top-down-Designs. Als Ziel soll mit SP erreicht werden: Personenunabhängigkeit (77 Prozent), geringere Fehlerhäufigkeit und Steigerung der Effizienz bei der Programmentwicklung. Am meisten wird am strukturierten Programmieren geschätzt: Die Zuverlässigkeit (78 Prozent), die Modularität (72,6) und die flexibleren Programme (56,6 Prozent).