Der Programmierer muß für jeden Nagel zunächst einen neuen Hammer schmieden:

Durchorganisierter Weg zur Individualsoftware

30.04.1981

Die Programmierung ist zum Nadelöhr in der Informationsverarbeitung geworden. Ständig wachsende Anforderungen der DV-Benutzer werden einerseits zum quantitativen Problem. Rasant steigende Leistungsfähigkeit der modernen Hardware- und Betriebssysteme sowie der Techniken, der

Datenbank- und Dialoganwendungen führen andererseits zu qualitativen Engpässen des Programmierers. Die Produktivität der Programmierung stagniert.

Standard-Software - erstellt auf der Basis ergebnisorientierter Technologien - bringt den Anwender zwangsläufig schneller und mit geringerem Aufwand zum Ziel. Individuelle DV-Aufgaben - und diese überwiegen in der Regel - müssen meistens mit eigenen Kräften gelöst werden. Ein viel zu großer Teil dieser Kräfte ist für die laufenden Wartungsaufgaben des gewachsenen Software-Bestandes gebunden. Andere bestehende Anwendungen müssen spätestens dann durch neue Konzepte abgelöst werden, wenn die sich ändernden Bedingungen der Benutzer und die DV-"Umwelt" wirtschaftlichere Lösungen erzwingen. Außerdem sind dringend neue Anwendungsgebiete zum Nutzen des Unternehmens zu planen und zu realisieren.

Problembehaftete Spezialisierung in die Breite

Die "Werkzeuge" für die Detailorganisation und für die Programmierung sollen den DV-Spezialisten in seinen Aufgaben entlasten. Die Technologien in Hardware und System-Software verfolgen das Idealziel, diese Werkzeuge so zu gestalten, daß sie in die Hände des DV-Anwenders in den technischen und betriebswirtschaflichen Fachbereichen gelegt werden können.

Diesem Ziel ist man in einigen Teilbereichen der Basisdatenverarbeitung (Minicomputer, Mittlere Datentechnik, Prozeßrechner) beispielsweise durch interaktive Parametersprachen nahegekommen. In der Regel ist der DV-Anwender jedoch nach wie vor auf den DV-Spezialisten als Anwendungsprogrammierer angewiesen.

Zu dessen Werkzeugen gehören heute

* maschinen- und problemorientierte Programmsprachen,

* Hardware-individuelle Betriebssysteme,

* Online-Programmiersysteme,

* Programm-Generatoren und -Interpreter,

* systemeigene Sprachen für den Entwurf und die Programmierung von Datenbanken,

* TP-Monitore ,in individuellster Ausprägung sowie

* diverse Entwurfs-, Programmier- und Darstellungstechniken.

Der Programmierer muß - über spitzt formuliert - für jeden Nagel, den er einschlagen will, zunächst einen neuen Hammer schmieden oder dessen Handhabung erkennen.

Die individuellen Werkzeuge bringen dem DV-Spezialisten neue Probleme, bevor sie - und das dann nur in begrenzten Teilbereichen - wirkliche Entlastung bedeuten. Die Spezialisierung entwickelt sich zwangsläufig "in die Breite", statt auf die eigentliche Aufgabenlösung zu zielen und sich dort in die Tiefe zu entwickeln.

Industrie als Produktionsvorbild

Es ist unwirtschaftlich und widerspricht zudem der Erfahrung aus der vergleichbaren Entwicklungsgeschichte der industriellen Einzelfertigung, wenn in der "Konstruktion" und in der "Produktion" individueller Software das Rad immer wieder neu erfunden wird. Die Programmierung kann aus ihrer stagnierenden Produktivität nur herauskommen, wenn sie den gleichen Weg wie die industrielle Fertigung geht:

- ARBEITSPLÄNE auf Basis der methodischen Vorgehensweise entwickeln und anwenden,

- NORMENRICHTLINIEN für Werkzeuge und Materialien schaffen und beachten,

- EINKAUFSTEILE und Halbfabrikate als Teillösung einsetzen,

- STANDARDAUSFÜHRUNGEN des Produktes für einheitliche logische Ablaufstrukturen verwenden,

- BAUGRUPPEN-VARIANTEN, als Modifikation des einheitlichen logischen Rahmens,

- ENDKONTROLLEN mit vorgeschriebenen Prüfverfahren und Techniken durchführen.

Den aufgezeigten Engpaß beseitigen nicht hochtechnisierte Instrumentarien, die nur unter Einsatz zusätzlicher Energie erlernt und beherrscht werden können. Vielmehr kann dies nur durch ein Software-Engineering erreicht werden, das bei möglichst geringem Lernaufwand zu einer Entlastung von zu standardisierenden, zu reproduzierenden und einfach zu generierenden Vorgängen führt.

Der erwartete Erfolg für den DV-Bereich kann sich nur dann einstellen, wenn alle Beteiligten eine einheitliche Vorgehensweise praktizieren, wenn diese sich also auf eine gemeinsame Struktur in den Produktionsplänen einigen. Die Einführung einer einheitlichen Vorgehensweise in der Detailorganistion und Programmierung scheitert in der Regel, wenn sie ausschließlich auf Richtlinien und Normen theoretischer Modelle aufbaut.

Grundvoraussetzung: Einheitliches Vorgehen

Der Grund ist einleuchtend. In einer neuen Strategie sind zunächst die Vorteile für den DV-Bereich und damit für das Unternehmen offensichtlich. Der Einzelne, nämlich der Detailorganisator oder der Programmierer, dagegen sieht seine eigenen Vorteile nicht. Vielmehr muß dieser seine bisherige, eigene Vorgehensweise verlassen.

Hierauf hatte er sich mit konkreten, aus seiner individuellen Erfahrung und Praxis erwachsenden Hilfsmitteln "eingestellt". Nun muß er sich mit dem Ziel einer gemeinsamen Strategie neu orientieren. Das einheitliche theoretische Modell muß praktikable Techniken, Werkzeuge und "vorgefertigte" Lösungen enthalten. Die Anwendung darf nicht mehr Aufwand für den Einzelnen bedeuten.

Es gilt also, die Akzeptanz und damit den zu erwartenden Erfolg durch einen produktionsplangesteuerten Einsatz von Techniken, Bausteinen und Werkzeugen zu sichern.

Methoden organisieren die Realisierungsarbeit

Methoden unterstützen die Organisation der Organisations- und Programmierungsarbeit in einer computergestützten Realisierung individueller Software durch:

- ein Arbeitssystem zur Planung und Implementierung von Informationssystemen (Orgware 4),

- Strukturierung des Projektablaufes,

- Aufbau und Verwaltung von Bausteinbibliotheken.

Techniken verbinden die Methoden mit den Bausteinen und Werkzeugen

Techniken werden zielgerichtet eingesetzt in der

- Konzeption der Daten in Bildschirm, Speicher und Liste durch Richtlinien für Batch- und Dialog-Entwicklungen,

- Auswahl der Ablauflogik durch standardisierte Programmstrukturen (Normierte, strukturierte Programmierung etc.),

- Programmerstellung durch toolgestützte Rahmenprogrammtechniken im Bausteinverfahren sowie

- Dokumentation der Produktion und des Produktes im computergestützten Verfahren .

Bausteine vermeiden redundante Entwicklungsarbeiten

Bausteine im weitesten Sinne ersetzen redundante Entwicklungsarbeiten durch vorgefertigte Lösungsformen:

-- das standardisierte Programmhandbuch als checklisten- und formulargestützte Vorgabedokumentation enthält die vorgefertigte Beschreibung des Programmablaufes (Rahmenvorgabe auf Basis der standardisierten Programmlogik),

- das vorgefertigte Batchprogramm, der vorgefertigte Dialogablauf als

Rahmen in der jeweiligen Programmsprache auf Basis der standardisierten

Ablauflogik,

- die anwendungsneutralen und anwendungsbezogenen Software-Bausteine, die standardisierbare Teile innerhalb der individuellen Problemlösung abdecken.

Werkzeuge verlagern die "Handarbeit" auf das DV-System

Der Benutzer wird in seinen Konstruktions- und Produktionsaufgaben von einem Supervisor-Tool geführt, der die Funktions- und Aktivitätensteuerung übernimmt. Als Subsysteme ruft dieser auf

- Tools zur maschinellen Dokumentation,

- Tools zur Generierung und Verwaltung der Datenbeschreibung,

- Tools zur parametergesteuerten Generierung von Dialogmoduln (Bildaufbau und Formalprüfungen per Definition),

- Tools zur Selektion und Montage von neutralen Software-Bausteinen und Programmrahmen zur individuellen Rahmenprogramm für Batch- und Dialoganwendungen.

One way only

Software-Engineering in der Entwicklung individueller DV-Anwendungen läßt sich nur in der geschilderten Vorgehensweise verwirklichen. Den einmal eingeschlagenen Weg muß man konsequent verfolgen. Die Strategie sollte sein, realisieren was machbar ist und Denkbares frühzeitig berücksichtigen - eine Strategie, die sich auf den Engpaß Detailorganisation und softwaretechnische Realisierung konzentriert.

*Hans Conrad ist Bereichsleiter für Software-Realisierungsprojekte bei der ADV/Orga F. A. Meyer GmbH, Wilhelmshaven.