Der Vergleich mit Programmiersprachen vorangegangener Generationen hinkt:

4Gls müssen mehr bieten als eine "Sprache"

18.09.1987

Programmiersprachen der vierten Generation gehören zu den am heißesten diskutierten Themen in der DV-Branche. Soviel gilt als sicher: Wunder bewirken auch die 4GLs nicht; aber sie können den Entwicklungsaufwand besonders für komplexe Anwendungen deutlich reduzieren. Alex Schreiber* steuert theoretisches Rüstzeug und eine Reihe von Argumenten zur Auseinandersetzung mit den Anwendungsentwicklungssystemen bei.

In den letzten Jahren ist auch in Deutschland das Interesse an Software-Produkten, die sich als Sprachen der vierten Generation (4GL) bezeichnen, sprunghaft gestiegen. Zwar existieren hierzulande wahrscheinlich erst 400 bis 500 konkrete Anwenderinstallationen von 4GL-Produkten. Doch der Bedarf und die Marktnachfrage nach effektiven Instrumenten zur Verbesserung der problematischen Situation in der Software-Entwicklung sowie zur Einbindung von Fachbereichs-Endbenutzern in Informationssystem-Konzepte ist immens.

Ausgangspunkte für die Diskussion um Software-Produkte der vierten Generation waren der sogenannte Anwendungsstau sowie die daraus resultierende Kritik an der herkömmlichen Software-Entwicklung. Schon Ende der 70er Jahre stellte IBM fest, daß die DV-Abteilungen von den geplanten Anwendungen etwa zwei Drittel wegen Überlastung nicht realisieren konnten. Dahinter stehen nochmals 112 Prozent verborgene Anwendungswünsche, die in Anbetracht dieser Situation erst gar nicht formuliert wurden.

Nur zwei Gründe von vielen für die Überlastung: Die wachsende Daten- und Informationsflut weckte bei immer mehr Mitarbeitern in den Fachabteilungen den Wunsch, ihre Informationsbedürfnisse mit Hilfe der DV zu lösen. Zum zweiten wurden die Anwendungen immer komplexer und komplizierter; sie setzten zudem fundierte Kenntnisse der betriebswirtschaftlichen Zusammenhänge voraus: Damit waren DV-Experten jedoch überfordert.

"Help the user help himself" lautete der Slogan Anfang der 80er Jahre. Auch das Massachusetts Institute of Technology (MlT) folgerte, daß dem Endanwender Sprachen mit einem hohen Niveau, Zugriffsmöglichkeiten auf Datenbanken und außerdem ein fundiertes Training an die Hand gegeben werden müßten. Dabei unterschied das Institut zwischen zwei Kategorien: Auf der einen Seite stehen die für traditionelle DV, das heißt die für Transaktionen, konzipierten, auf der anderen die auf Abfrage und Analyse ausgerichteten Systeme, also die Sprachen der vierten Generation. Um den Endanwender zufriedenzustellen, müssen die Produkte mit flexiblen Datenbanksystemen, Modellbildung, "Was ist, wenn?-"Fragen und Ad-hoc-Analysen aufwarten können.

In diesem Szenario entwickelte sich folgerichtig auch massive Kritik an der traditionellen Software-Entwicklung: Zum Beispiel ist der Prozeß ZU bürokratisch und zu langsam. Die fachlichen Anforderungen lassen sich nicht ohne praktisches Modell bis zu den letzten Details definieren und spezifizieren. Außerdem sieht der Benutzer nichts vom System, solange der Entwurf und die Programmierung durchgeführt werden. Er muß also darauf vertrauen, daß die Software-Entwickler die Fachspezifikationen in seinem Sinne DV-technisch umsetzen. Es besteht die Gefahr, daß der User sein System bei der Integration und Erprobung "nicht wiedererkennt".

Die Entwicklung des Entwurfs dauert in der herkömmlichen Software-Entwicklung zu lange. Wenn die Fachspezifikation endlich fertig ist, haben sich die fachlichen Anforderungen inzwischen geändert. Überdies weiß der Benutzer oft nicht genau, was er will, wenn er kein praktisches Modell hat, an dem er sich orientieren kann. Ziemlich aufwendig sind im allgemeinen die Entwurfsänderungen. Last but not least wird in der traditionellen Entwicklung der Lernprozeß zuwenig unterstützt. Eine Beteiligung der Benutzer ist nicht immer ausreichend gewährleistet.

Doch was verbirgt sich überhaupt hinter dem Begriff "Sprachen der vierten Generation", und welche konkreten Vorteile kann man von diesen Produkten erwarten? Zunächst einmal muß man sich die vorangegangenen Entwicklungsgenerationen sowie die zukünftigen Möglichkeiten vor Augen halten:

- Die erste Generation war noch für wenige hochspezialisierte DV-Mitarbeiter reserviert; sie gehörte den Maschinensprachen und den sequentiellen Dateien.

- Die zweite Generation profitierte von einigen Verbesserungen in Form von Assembler-Sprachen und indizierten Dateien; aber die Personen, die damit zu tun hatten, blieben im wesentlichen der gleiche geschlossene Kreis.

- Die dritte Generation ist durch höhere Programmiersprachen, zum Beispiel Cobol, Fortran etc., sowie durch Datenbanksysteme charakterisiert. Die Zahl der "Datenverarbeiter" nahm stark zu, doch die Systeme blieben weiterhin eine Domäne der Profis.

- Die vierte Generation ist die der deskriptiven, also beschreibenden oder auch "nichtprozeduralen" Programmiersprachen und der deutlich größeren Zugriffsmöglichkeiten - sei es für den professionellen Benutzer oder für den Endanwender.

- Die fünfte Generation wird auf den Grundlagen der Künstlichen Intelligenz aufbauen und die Datenverarbeitung einer noch größeren Anzahl von Benutzern zugänglich machen.

Eindeutige Definition von 4GL noch nicht in Sicht

Eine verbindliche Norm dafür, was eigentlich eine 4GL ist, gibt es nicht. Der Anspruch, eine neue Generation zu sein, ist jedoch nur dann gerechtfertigt, wenn wesentliche Fortschritte gegenüber der bisherigen vorliegen. Die Fortschritte gegenüber der dritten Generation - also gegenüber Cobol, PL/1 oder Fortran - bestehen nicht in einzelnen Funktionen oder Einrichtungen, sondern in einer veränderten Dimension der Anwendungsentwicklung. Angestrebt sind folgende Ziele: eine erhebliche Beschleunigung der Programmentwicklung, gesteigerte Anpassungsfähigkeit und Wartungsfreundlichkeit, bessere Integration in den Entwicklungsprozeß sowie besondere Eignung für dispositive Aufgaben und Informationssysteme. Diese Ziele können folgendermaßen erreicht werden:

Möglichst viele Komponenten werden extern definiert; dazu gehören Datensichten, Bildschirmmasken, Plausibilitäten, Reports und Dialogabläufe. Deshalb muß das 4GL-System unbedingt durch ein Data-Dictionary abgestützt werden. Erforderlich ist auch, daß eine Reihe mächtiger Funktionen, also routinemäßiger Operationen, existiert. Das sind zum Beispiel Datenkonvertierung, Ausgabe/Aufbereitung, Kontrollblockverwaltung, Report-Erstellung, Terminal-Ein-/Ausgabe, Bildschirmblättern und Hilfe-Funktionen. Ebenso wichtig ist die Verwendung von nichtprozeduraler Sprache ohne GOTO-Statements, aber mit deskriptiver Beschreibung von Datenmanipulationen (mittels relationaler Algebra), Plausibilitätsprüfungen, Reports oder Dialogabläufen.

Auf jeden Fall sollte das System DB/DC-orientiert sein. Die Anweisungen für Datenbanksysteme und TP-Monitor bilden dabei integrale Bestandteile der Sprache. Dazu gehört auch eine interaktive Entwicklungsumgebung: Ein 4GL-Programm muß im Dialog entwickelt, getestet und in Produktion gesetzt werden können - unterstützt von Menüs, Formularführung, Full-Screen-Editor und Split-Screen-Funktion. Natürlich ist auch die DB/DC-Unabhängigkeit hilfreich: Eine 4GL-Sprache sollte mit verschiedenen Datenbanken und TP-Monitoren einsetzbar sein.

Integration ist bei 4GL der entscheidende Faktor

Der Begriff Sprache der vierten Generation kann leicht in die Irre führen, da sich hinter dieser Software-Technologie eben mehr als nur eine "Sprache" im herkömmlichen Sinne verbirgt. Ihre gesamte Konzeption unterscheidet diese Systeme zur Anwendungsentwicklung von den bisherigen Programmiersprachen. Es ist eben nicht nur eine neue, sehr viel mächtigere Sprachenebene, die ein System der vierten Generation ausmacht; vielmehr bilden viele andere integrierte Komponenten eine Software-Umgebung, die alle benötigten Funktionen für den Entwurf, die Realisierung, den Einsatz und die Pflege einer DV-Anwendung umfaßt.

Die Integration ist der Faktor, der eine drastische Produktivitätssteigerung in der Anwendungsentwicklung und eine ebenso drastische Senkung des Pflegeaufwands erbringt. Das Konzept eines integrierten Softwaresystems geht beachtliche Schritte weiter: So sind inzwischen die Verknüpfung der Personal Computer, die Grafikausgabe, die Einbindung von Textkonserven oder von anderen administrativen Funktionen aus Büro und Verwaltung technisch gelöst.

Data Dictionary wird zum Informationslexikon

Die Rolle des Data-Dictionary-Systems verändert sich durch die Integration in ein Software-Gesamtsystem ebenfalls: Vom eher passiven System für die projektbegleitende Dokumentation wandelt es sich zum aktiv genutzten Informationslexikon. Der Nutzen des Data-Dictionary-Systems wird so deutlich höher als der Aufwand für seinen Betrieb. Wichtige Aspekte, wie die Verteilung von Daten und Prozessen auf verschiedene Knoten eines Rechnernetzes oder die Portabilität fertiger Anwendungen in neue systemtechnische Umgebungen, wurden ebenfalls von den Entwicklern umfassender Systemsoftware berücksichtigt und technisch weitgehend realisiert. Es fällt schwer, das aufgezeigte Szenario mit der Cobol- oder PL/1- Welt zu vergleichen.

Ein häufig genannter Fachbegriff im Zusammenhang mit Sprachen der vierten Generation ist "Prototyping". Was verbirgt sich nun dahinter? Die Idee der Herstellung von Prototypen im Rahmen der Software-Produktion ist nicht neu. Bisher war dieses Verfahren in der professionellen Softwareentwicklung jedoch nicht interessant, weil die Herstellungskosten für Prototypen mit Sprachen der dritten Generation fast so hoch ausfallen wie das endgültige Produkt.

Mit Hilfe des "Prototyping" sollen unter Einbeziehung der Benutzer ein System oder Teile eines Systems schnell hergestellt, getestet, geprüft und verändert werden können, bevor unter großem Aufwand und hohen Kosten das System mit allen Funktionen und Bestandteilen entworfen und implementiert wird. Zu unterscheiden sind vier generelle Prototyping-Formen:

- Masken- und Listenentwürfe, die mit dem Benutzer abgestimmt werden können;

- Maskenfolge-Darstellungen, also Maskenentwürfe mit dem Benutzer und Darstellung der Maskenfolge mit eingeschränkten Verknüpfungsmöglichkeiten

- Entwurfsmodelle, bei denen ein Teil des Systems mit einigen Funktionen oder den Hauptfunktionen für den Entwurf zur Verfügung steht;

- iterative Anwendungsentwicklung am Modell.

Überzogene Erwartung macht ernüchternden Zahlen Platz

Relativiert haben sich in jüngster Zeit allerdings die eher überzogenen Erwartungen an die Leistungsfähigkeit der 4GL-Systeme. Wurden von überzeugten Verfechtern dieser Technologie, wie von dem Amerikaner James Martin, bisher Aufwandsreduzierungen um den Faktor 10 versprochen, so ergab jetzt eine Studie der Radolfzeller Informatik-Training GmbH eine tatsächliche Zeiteinsparung von durchschnittlich 40 Prozent. Bei komplexen Aufgaben, wie der Organisation vollkommen neuer DV-Anwendungen, reduziert sich der Aufwand laut Untersuchung allenfalls um weitere 20 Prozent.

Trotz dieser ernüchternden Zahlen aus der Praxis sind Überlegungen und konkrete Produkteinsätze im Bereich der 4GLs lohnend. Denn angesichts der Millionenkosten für mittlere und große DV-Entwicklungen kommt den Anwendern jede Möglichkeit der Zeit- und Kosteneinsparung sicher gelegen.

*Alex Schreiber ist Produktmanager bei der Bull AG, Köln.