Visuelles Programmieren mit Graphtransformationen

Andreas J. Winter, Aachener Berichte zur Informatik, Band 27,
Wissenschaftsverlag Mainz, Aachen, 1999

Bei der Modellierung der Internstruktur von Entwicklungswerkzeugen für Software oder andere Disziplinen treten komplexe Beziehungsgeflechte auf, die als Relationen in und zwischen Graphen aufgefaßt werden. Am Lehrstuhl für Informatik III wurde die Sprache PROGRES und ihre Entwicklungsumgebung zur Erstellung von Spezifikationen entwickelt, mit dem diese Strukturen und die darauf stattfindenden Veränderungen beschrieben werden können.

Zur Erstellung großer Spezifikationen wurde ein Modulkonzept für die Sprache entwickelt. Es ermöglicht, Spezifikationen in logische, weitgehend unabhängige Einheiten, z.B. in Form von abstrakten Datentypen, zu zerlegen und diese in anderen Spezifikationen wiederzuverwenden. Dabei wurden Konzepte aus dem Bereich klassischer Programmiersprachen, objektorientierter Modellierungssprachen und der Graphtransformationssysteme berücksichtigt.

Basis des entstandenen PROGRES-Paketkonzepts ist das Paketkonzept der “Unified Modeling Language”. Seine unklare Semantikdefinition erfordert allerdings eine formale Präzisierung, um Mehrdeutigkeiten zu vermeiden und Widersprüche aufzuheben. Diese Präzisierung wurde mit Hilfe prädikatenlogischer Formeln vorgenommen, die das Zusammenspiel von Sichtbarkeiten der in einem Paket enthaltenen Elemente und von Paketbeziehungen festlegen.

Über das Basiskonzept hinaus sind weitere Überlegungen notwendig, um den besonderen Anforderungen gerecht zu werden, die sich beim “Spezifizieren-im-Großen” mit PROGRES als visueller Modellierungssprache ergeben. Ein Konzept, welches in modernen objekt-orientierten Programmiersprachen wie z.B. Eiffel immer mehr Verbreitung findet, ist das “Programming by Contract”. Abstrakte Datentypen formaler Spezifikationsmethoden verfügen über Invarianten und Vor- und Nachbedingungen zu Operationen (siehe z.B. Eiffel-Klassen), die bestimmte Eigenschaften des Datentyps oder einer Operation garantieren. PROGRES bietet den Benutzern dafür globale Constraints sowie Vor- und Nachbedingungen zu einzelnen Operationen.

Der Graphentechnikansatz liefert eine Methodik zum systematischen Erstellen von Spezifikation und zur Generierung interaktiver Werkzeuge aus diesen Spezifikationen. Auf diese Weise ist es möglich, das Verhalten eines Werkzeugs für graphische Sprachen zu spezifizieren und den generierten Code in ein interaktives Rahmenwerk einzubetten, das die Spezifikation vor dem Endanwender verbirgt. Dabei liegt das Hauptaugenmerk bei der Generierung auf der Anpaßbarkeit und Erweiterbarkeit der Benutzeroberfläche, um komfortable Werkzeuge für bestimmte, konkrete Anwendungen zu erhalten.

Referent: Prof. Dr.-Ing. Manfred Nagl, Lehrstuhl für Informatik III, RWTH Aachen
Korreferent: Prof. Dr.rer.nat. Gregor Engels, AG Informationssysteme, Universität GHS Paderborn
Tag der mündlichen Prüfung: 13. August 1999