Tips für die Wahl der "richtigen" 4GL

4GLs für mehr Produktivität und schnellere Programmierung

07.02.1992

Programmiersprachen der vierten Generation (4GLs) haben einen Ruf zu verlieren. In den letzten Jahren wurden sie als schöne neue Welt der Systementwicklung angepriesen. Dabei sind die Probleme, die sie lösen sollen, alles andere als klar umrissen. Kein System oder Systementwicklungsprojekt gleicht dem anderen. Ihnen allen mit nur einer Entwicklungsumgebung zu begegnen, hat sich als problematisch erwiesen, weil Entwicklungsziele ständigen Veränderungen unterliegen. Die passende 4GL zu finden kann schwierig sein. Martin Whybrow* erläutert den Weg zur richtigen Entscheidung.

So war zum Beispiel beim Erscheinen der ersten 4GLs vor fünf Jahren von Client/Server-Architekturen noch kaum die Rede. Trotzdem steigt ungeachtet aller Schwierigkeiten die Zahl erfolgreich implementierter 4GL-Umgebungen. Wie bei vielen anderen neuen Systementwicklungstechniken fällt auch hier den Softwarehäusern tendenziell eine Pionierrolle zu. Ihren Kunden wird dabei oft nicht einmal bewußt, daß ihre Softwarepakete auf 4GLs basieren. Allerdings wollen viele Endkunden, von Ladenketten bis zur Steuerbehörde, ebenfalls auf diesen Zug aufspringen und zunehmend von den 4GLs profitieren.

Exzessives Marketing und leere Versprechungen

Die Wahl der richtigen 4GL-Umgebung ist jedoch alles andere als einfach. Da ist zunächst die schiere Masse des Angebots. Innerhalb dieser Vielfalt finden sich unterschiedlichste Ansätze und Funktionsumfänge. Außerdem leidet der Ruf der 4GLs, wie man es bereits aus anderen Bereichen der Systementwicklung gewohnt ist, unter exzessivem Marketing und leeren Vesprechungen. Viele 4GLs teilen ihr Schicksal als Ladenhüter mit konventionellen front-end-orientierten CASE-Tools (Computer- Aided Systems Engineering - computerunterstützte Systementwicklung), weil sie am Bedarf vorbeigingen oder mangelhaft implementiert waren. Systementwickler sind im allgemeinen überarbeitet und daher bei der Auswahl ihrer Werkzeuge eher konservativ. Neue Tools, die keine offensichtlichen Vorteile bieten oder schwer anzuwenden sind, bleiben schnell auf der Strecke.

Die 4GLs selbst sind komplex, weisen erhebliche Unterschiede auf und sind daher keineswegs gleichermaßen für alle Anwender geeignet. Anwender müssen sich über ihre Ziele im klaren sein, bevor sie sich für einen Weg in Form einer 4GL, entscheiden. Daß in diesem Markt Konfusion und Unsicherheit an der Tagesordnung sind, ist nicht weiter erstaunlich. Potentielle Anwender sollten sich aber angesichts der möglichen Vorteile einer 4GL-Umgebung nicht davon abschrecken lassen.

In Anbetracht, der Unsicherheit empfiehlt es sich, mit einer Definition anzufangen, die aus einer neueren Studie (Robin Bloor, 4GLs on Unix: An Evaluation and Comparison) stammt und für unsere Zwecke geringen dürfte. Danach ist eine 4GL-Umgebung eine "Entwicklungsumgebung für kommerzielle Systeme, die auf einer Wissensbasis aufbaut". Diese Definition ist flexibel genug, um die meisten Angebote abzudecken. Eine 4GL-Umgebung kann als Reihe konzentrischer Kreise veranschaulicht werden. Im Zentrum befindet sich die Wissensbasis, der von innen nach außen eine 4GL und ein 4GL-Generator folgen. Die äußerste Schicht bildet eine konventionelle Programmiersprache der dritten Generation, auf die der Entwickler von Zeit zu Zeit in mehr oder weniger großem Umfang zurückgreifen muß.

Die Wissensbasis einer 4GL enthält Befehle, Datendefinitionen und andere Systemelemente. Ihre zentrale Bedeutung ist der Hauptgrund dafür, daß sich viele der führenden 4GL-Lieferanten aus den Reihen der Datenbank-Spezialisten rekrutieren. Sowohl Oracle als auch Ingres, Sybase und Informix bieten 4GLs an, "Das Herz jeder 4GL ist eine Wissensdatenbank", erläutert Ian Howells, Produktmanager für Großbritannien bei ASK Ingres. Sie sorgt für konsistente Datendefinitionen und gewährleistet bei objektorietierten Ansätzen den bedarfsgerechten Zugriff des Systems auf die einzelnen Elemente. Müssen zum Beispiel Feldgrößen oder Prozesse wie die Berechnung der Mehrwertsteuer geändert werden, bedarf es lediglich einer Änderung der Wissensbasis, die sich automatisch auf das gesamte System auswirkt.

Hierin liegt ein Grund für die beachtlichen Produktivitätsgewinne, die sich mit 4GLs bei der Systemwartung erzielen lassen.

"Eine 4GL wird viel einfacher, wenn Objekte oder Methoden auf einem Server gehalten werden und damit nicht Bestandteil der eigentlichen 4G1, sein müssen", meint Howells. Von diesem Ausgangspunkt können Formulare und Berichte automatisch generiert werden.

Worin liegen die potentiellen Vorteile einer 4GL? Die Produktivität des einzelnen Programmierers spielt sicher eine wichtige Rolle da sich über diesen Faktor die Entwicklungszeiten für Anwendungen verkürzen lassen. Miracle Products, ein auf Buchhaltungssysteme spezialisiertes Softwarehaus, setzte eine 4GL ein, um ein neues Programmpaket für den gesamteuropäischen Markt zu entwickeln. Das Projekt war ausgesprochen komplex. Das bestehende Programmpaket umfaßte bereits 1,25 Millionen Codezeilen, und das neue System sollte zusätzlich in mehreren Sprachen und Währungen operieren. Das Unternehmen schätzte zunächst den Zeitaufwand für eine Projektrealisierung mit einer 3GL und konventioneller manueller Programmiertechnik ab. Laut Bob Thompson, Geschäftsführer von Miracle Products, ließ sich das Projekt in einer 4GL-Umgebung gegenüber dieser Aufwandsschätzung fünf- bis sechsmal schneller durchführen: "Ingres (in diesem Fall Lieferant der 4GLUe) ging uns gegenüber von einer zehnfachen Geschwindigkeitssteigerung aus, aber der Lernaufwand sollte eben nicht unterschätzt werden." War diese Hürde jedoch erst einmal überwunden, "konnten unsere Entwickler nur so durch den Code fliegen".

Eine 4GL kann außerdem die Ansprüche an die Kenntnisse der Entwickler reduzieren, weil sie die Verwaltung der Benutzerschnittstelle, der SQL-Anbindung und der Netzwerkverbindungen weitgehend unabhängig von der vorgesehenen Einsatzplattform übernimmt. "Das erspart einem eine Menge Ärger", meint Howells. "Unsere Anwender programmieren in Ingres. Dabei ist es völlig egal, ob im System TCP/IP oder DECnet, System V oder OSF, Openview oder was auch immer eingesetzt wird." In seinen Augen ist die Produktivitätssteigerung der Programmierer außerordentlich wichtig: "4GLs sollten einigermaßen schnell sein, aber das ist heutzutage von sekundärer Bedeutung. Was teuer ist, sind die Mitarbeiter. Den Großteil der Kosten macht inzwischen die Zeit ans, die man braucht, um eine Anwendung zu schreiben. Falls die 4GL zu langsam läuft, kann man sich ja mehr Speicher zulegen."

Für die meisten Anwender rechnen sich die Ausgaben für eine 4GL allein schon durch die verbesserte Produktivität ihrer Systementwicklung, doch bringt die Fähigkeit zur schnellen Software-Entwicklung noch weitere erwähnenswerte Vorteile mit sich John Arthur, Produktmarketingleiter für die 4GL PRO IV bei McDonnell Douglas, gibt zu bedenken, daß sich die Vorteile einer schnellen Software-Entwicklung nicht in einer hohen Produktivität der einzelnen Programmierer erschöpfen: "Die Leute kaufen eine 4G1" weil ihre internen DV-Abteilungen nicht schnell genug liefern können." Wenn Anwender versuchen, die Kosten für eine 4GL zu rechtfertigen, sollten sie dabei nicht den zusätzlichen Nutzen übersehen, der dadurch zustandekommt, daß ein Produkt oder eine Dienstleistung schneller auf dem Markt ist. Im Falle von Miracle Products konnte das gesamteuropäische Buchhaltungspaket wesentlich früher eingeführt werden, als dies mit traditionellen Programmiertechniken möglich gewesen wäre.

Ein weiterer Vorteil der 4GLs liegt in der vereinfachten Systemwartung, ein wichtiges Thema, denkt man an die Unmengen finanzieller Ressourcen, die immer noch in die Wartungsabteilungen gepumpt werden. David Sidwell, Marketingleiter bei McDonnell Douglas, glaubt, daß 4GLs auf dem Wartungssektor Einsparungen von 75 bis 80 Prozent ermöglichen. Falls die ganze Anwendung mit einem 4GL-Generator erstellt wird, ist mit wenigen Softwarefehlern zu rechnen.

Systeme sind weitgehend fehlerfrei

Natürlich sind 4GLs nicht unfehlbar. Ein Anwender weiß von einer 4GL zu berichten, die unabhängig von der jeweils definierten Feldgröße Eingaben beliebiger Länge zuließ, und beklagt sich außerdem über Schwierigkeiten beim Bildlauf in Fenstern.

Im großen und ganzen sind mit 4GLs entwickelte Systeme jedoch weitgehend fehlerfrei. Ein Anwender ans dein Finanzsektor entwickelte zum Beispiel mit Hilfe einer 4GL ein privates Banksystem für den Hausgebrauch. Obwohl keine einzige Codezeile von Hand geschrieben wurde, mußte das Unternehmen zum allgemeinen Erstaunen feststellen, daß das fertige System keinen einzigen Bug aufwies, wovon man bei konventionellen Programmiermethoden nur träumen kann. Dabei kann es selbstverständlich vorkommen, daß ein fertiges System immer noch nicht das tut, was der Anwender von ihm erwartet, doch liegen in solchen Fällen eher Analyse- oder Designfehler als Fehler bei der Codegenerierung vor. Selbst dann sind 4GLs eine große Hilfe, weil ihre besondere Stärke beim Prototyping liegt.

Wie bereits erwähnt, wird die Wartung auch dadurch erleichtert, daß viele Änderungen an Anwendungen, die mit 4GLs erstellt wurden, nur an einer bestimmten Stelle anfallen. Die Portierbarkeit der Software ist ein weiterer gewichtiger Vorteil, auf den sich Anwender immer wieder berufen. "Wir sind unabhängig von "wechselnden Hardware- und Datenbanktypen", sagt Tony Bews, Marketingdirektor bei Peterborough Software. Das Unternehmen entschied sich für eine 4GL-Umgebung, als die Entwicklung eines neuen Lohnabrechnungssystems anstand. Eine Portierung des Systems auf neue Plattformen sollte laut Bews nicht mehr als "ein paar Wochen" in Anspruch nehmen, und nicht mehrere Monate. Die Portierbarkeit umfaßt dabei auch die Benutzerschnittstelle. Grafische Benutzerschnittstellen (GUIs), die nicht fest codiert sind, erleichtern den Wechsel erheblich.

Trotz des potentiellen Nutzens herrscht nicht für alle Anwender eitel Sonnenschein. Die Wahl der richtigen 4GL ist außerordentlich wichtig, wobei eine Reihe von Kriterien unbedingt berücksichtigt werden sollte. "Wenn Sie Ihre Software bei einer Firma kaufe,', deren Ressourcen überwiegend ins Marketing fließen, brauchen Sie sich nicht zu wundern, wenn Sie nicht gerade das am besten entwickelte, nützlichste Produkt bekommen. Man läßt sich viel zu leicht Ladenhüter andrehen", warnt Sidwell. Wie also kann der Anwender vermeiden, sich einen Ladenhüter einzuhandeln? Relevante Punkte sind die Komplexität der zu lösenden Entwicklungsaufgabe, eine einfache Anwendbarkeit, die Möglichkeiten zur Integration bestehender Tools und Datenbanken, die Zahl der unterstützten Benutzer, die voraussichtliche Lebensdauer des zu entwickelnden Systems und die Portierbarkeit.

Anwender sollten sich über ihren Kurs im klaren sein. Die Wahl einer 4G1, hängt hauptsächlich von der anvisierten Anwendung ab. Die 4GL muß den Grundanforderungen des zukünftigen Systems gerecht werden. Dazu zählen zum Beispiel Online-Transaktionsverarbeitung oder verteilte Verarbeitung über unterschiedliche Plattformen, sei es in Form einer kooperativen Verarbeitung, einer verteilten Datenbank oder allgemein im Rahmen einer Client/Server-Architektur. Manche Anwender möchten sich einen objektorientierten Entwicklungsansatz zunutze machen, der aber nicht von allen heute erhältlichen 4GLs unterstützt wird.

4GLs sind noch relativ, neu und unterscheiden sich erheblich in ihrer Funktionalität. Viele Anbieter planen zum Beispiel bei ihren Tools eine Schwerpunktverlagerung in Richtung Client/Server-Struktur oder grafische Benutzerschnittstellen, andere sind noch nicht so weit. Anwender, die solche Systeme entwickeln wollen, können es sich nicht leisten zu Quarten, bis ihr 4GL-Lieferanten irgendwann einmal die entsprechende Funktionalität zur Verfügung stellt. Auf diese Weise ginge der Vorteil schneller Entwicklungszeiten wieder verloren. Wenn die 4GL nicht zum Entwicklungsgegenstand paßt, kann es am Ende passieren, daß der Entwickler einen Großteil des Systems in einer konventionellen 3GL schreiben muß.

Nur 80 Prozent der Entwicklungen mit 4GL

Obwohl 4GLs sehr vielseitig sind, werden sie selten allein Ansprüchen gerecht. Für die meisten Anwender dürfte es sich empfehlen, zirka 80 Prozent der Entwicklung mit einer 4GL durchzuführen und zusätzlich 3GL-Bibliotheken aufzubauen, auf die im Bedarfsfall zurückgegriffen werden kann.

Auch wenn er Zufriedenheit mit seiner 4GL-Umgebung bekundet, muß Tony Bews von Peterborough Software zugeben, daß seine Firma letztendlich einen wesentlich größeren Teil ihres Systems als ursprünglich erwartet in einer 3GL schreiben mußte. Seines Erachtens konnte die 4GL dadurch, daß sie Bereiche wie den Aufbau von Bildschirmseiten und die Berichterstellung übernahm, die Produktivität wesentlich verbessern, doch mußten zirka 90 Prozent des Systems in C geschrieben werden. Bei großen, komplexen Systemen geraten manche 4GL ins Schwimmen. "Worauf es wirklich ankommt, ist die Brauchbarkeit", meint Howells von ASK Ingres. Eine 4GL, die lediglich 3GLs aufruft, ist in seinen Augen "ein völliger Fehlschlag".

Als Anwender sollte man außerdem ein Auge darauf haben, wie es tatsächlich um die Portierbarkeit der 4GL bestellt ist. Ist es für Sie zum Beispiel akzeptabel, an eine bestimmte Datenbank gebunden zu sein? Datenbankspezialisten neigen dazu, auch Schnittstellen zu fremden Datenbanksystemen anzubieten, die meisten verkaufen jedoch 4GL und Datenbank als Paket und raten vom gemischten oder angepaßten Betrieb mit anderen Systemen ab.

Portierbarkeit und Flexibilität dürfen in ihrer Bedeutung nicht unterschätzt werden, weil eine 4GL eine beträchtliche Investition repräsentiert und voll den meistern Anwendern als einzige Entwicklungsumgebung für aktuelle und zukünftige Projekte Vorgesehen ist.

Insgesamt sollten die Anwender eine 4GL an der gesamten Breite ihrer geschäftlichen Aktivitäten messen. "Anwender sollten sich damit vertraut machen, sie akzeptieren und so entwickeln, daß sie zum Teil des geschäftlichen Kernbereichs wird", empfiehlt Arthur. Neil Colling, Marketingdirektor bei ASK Ingres, stimmt dem zu: "Man sollte die Sache nicht nur isoliert als Werkzeug sehen, sondern muß es als Teil einer DV-Umgebung begreifen." Eine 4GL läßt sich oft nur schwer von der Datenbank oder der gesamten Systementwicklungsumgebung trennen.

Die richtige 4GL-Umgebung auszuwählen, zu implementieren und einzusetzen, ist alles andere als leicht. Wer es richtig macht, kann dabei einen beträchtlichen Nutzen in Form von Produktivitätssteigerung, Wartungsvereinfachung und Portierbarkeit einfahren. Trotz einiger Hürden, die erst überwunden werden müssen, und der am Markt weiter vorherrschenden Verwirrung setzen mehr und mehr Anwender auf 4GLs.

"Die Entscheidung fällt schwer", räumt McDonnell Douglas-Mann Sidwell ein. "Vor uns liegt eine schöne neue Welt, die diesmal sogar funktionieren dürfte."

* Martin Whybrow ist freier EDV-Fachjournalist in London.

Dieser Artikel wurde mit freundlicher Genehmigung der VNU (International Management) Business Publications, London, aus der englischen Zeitschrift Informatics (November 1991) übernommen.