Visuelle, regelbasierte Programmierung
Visuelle, regelbasierte Programmierung
Visuelle, regelbasierte Programmierung
Frank Drewes (Umeå University, Schweden)
Berthold Hoffmann (Universität Bremen)
Mark Minas
Vielen Anwendungsproblemen liegen Graphen zu Grunde oder lassen sich in natürlicher Weise mit Graphen modellieren. Auf Graphtransformationen beruhende Berechnungsmodelle bieten sich deshalb unmittelbar für ihre Bearbeitung an. Allerdings haben sie den Nachteil, daß Graphen, die an der Benutzungsoberfläche sichtbar sind, im allgemeinen von den Benutzern nicht als alleinige Datenstrukturen akzeptiert werden. Anwendungsspezifische Visualisierungen (z.B. mit Diagrammen) der Graphen würde die Akzeptanz von Programmiersprachen, die den regelbasierten Ansatz der Graphtransformation nutzen, verbessern. Ziel dieses Forschungsprojekts ist deshalb eine visuelle Programmiersprache, in der Datenstrukturen beliebige Diagramme sind, die intern mit Graphen dargestellt und mit Graphtransformationen regelbasiert manipuliert werden.
Ausgangspunkt dieser gemeinsamen Arbeiten ist ein Berechnungsmodell, das auf einem Graphtransformationsansatz beruht, der auf hierarchische Hypergraphen verwendet. Um anwendungsspezifische Visualisierungen erstellen zu können, wird das Spezifikations- und Generierungswerkzeug DiaGen genutzt, das damit im Rahmen dieses Projektes auch weiterentwickelt wird.
Langfristiges Ziel ist, in Zukunft anwendungsspezifische Programmiersprachen zur Verfügung stehen zu haben, die mit der Darstellung ihrer Datenstrukturen und Bedienumgebungen an den jeweiligen Anwendungsfall anpaßbar und deshalb besser anwendbar sind, als dies bei den heute vorherrschenden textuellen Programmiersprachen der Fall ist. Zwar nutzt man heute meist graphische Verfahren für Analyse und Entwurf (z.B. UML), doch ist man heute immer noch weitgehend gezwungen, Programme textuell zu verfassen. Dies ist umso bedauerlicher, da viele Probleme inhärent graphisch sind oder graphische Darstellungen nutzen. Stattdessen soll es in Zukunft möglich sein, Probleme von der Analyse über den Entwurf bis hin zur Programmierung durchgängig graphisch zu lösen und Programme damit besser erstellbar, wartbar und verständlich zu machen.



