Spezifikation und Generierung von Diagrammeditoren auf der Basis von EMF

Abgeschlossene Diplomarbeiten

Spezifikation und Generierung von Diagrammeditoren auf der Basis von EMF


Hintergrund

Eclipse ist das von IBM und OTI ins Leben gerufene Open-Source-Projekt einer Tool-Integrationsplattform, das unter anderem auch als Java-Entwicklungsumgebung bekannt ist. Eclipse ist im Grunde eine universelle integrierte Entwicklungsumgebung, der Tools für spezielle Probleme in Form von sog. Plugins hinzugefügt werden können. Die Plugins für die o.g. Java-Entwicklungsumgebung gehören zum Standardumfang mitgelieferter Plugins, die die gewohnte Funktionalität einer graphischen Programmierumgebung samt Debugger und GUI-Builder zur Verfügung stellt.

DiaGen ist ein Rapid Prototyping-Werkzeug zur weitgehend automatischen Generierung von Diagrammeditoren aus einer Spezifikation. Es besteht aus einem graphischen Werkzeug zum Erstellen solcher Spezifikationen, einem Editor-Framework und einem Programmgenerator, der die Spezifikation einer Diagrammsprache und ihres Editors in Java-Klassen übersetzt. Zusammen mit dem Framework realisieren diese Klassen einen Diagrammeditor für die spezifizierte Diagrammsprache. Der Editor unterstützt freies Editieren, aber auch - sofern spezifiziert - strukturiertes Editieren und automatisches Layout.

EMF (Eclipse Modeling Framework) ist ein Framework zur Modellierung eines strukturierten Datenmodells zusammen mit Codegenerierungsfähigkeiten, um Werkzeuge und Anwendungen, die auf so modellierten Datenstrukturen basieren, automatisch zu erzeugen. EMF unterstützt damit den Metamodellierungsansatz, um Modellierungssprachen und -werkzeuge zu spezifizieren und zu erzeugen, und ist damit mit MOF (Meta Object Facility) der OMG (Object Management Group) verwandt. Tatsächlich begann EMF als eine Implementierung der MOF-Spezifikation, EMF entspricht der MOF-Spezifikation aber nicht mehr vollständig, da sich auch die MOF seitdem weiterentwickelt hat. Im Grunde kann EMF aber als effiziente Java-Implementierung des zentralen Kerns der MOF-API angesehen werden.

Aufgabe

Bislang nutzt DiaGen Hypergraphgrammatiken, um eine Diagrammsprache zu spezifizieren und darauf aufbauend einen Diagrammeditor zu erzeugen. Für die Analyse von Diagrammen, die in solchen Editoren erstellt werden, kommt ein Hypergraph-Parser zum Einsatz. Erfahrungen mit diesem Ansatz haben gezeigt, dass die Erstellung einer Hypergraphgrammatik eine anspruchsvolle Aufgabe ist. Die Grammatik ist dabei so zu entwerfen, dass sie eine effiziente Diagrammanalyse mit dem Hypergraph-Parser ermöglicht. Diese Randbedingung erschwert den Vorgang des Grammatikentwurfs zusätzlich.

Wegen der geschilderten Probleme mit grammatikbasierten Ansätzen werden zur Zeit verstärkt Metamodellierungsansätze für die Sprachdefinition verwendet (siehe hierzu die aktuelle Initiative von Microsoft oder die Web-Seiten des DSM-Forums). Im Rahmen dieser Diplomarbeiten soll DiaGen deshalb um die Möglichkeit erweitert werden, Diagrammsprachen mittels Metamodellierung zu spezifizieren, statt ausschließlich Hypergraphgrammatiken zu unterstützen. Da DiaGen bereits in Eclipse integriert ist, bietet es sich an, sich dabei auf EMF zu stützen.

Die im Rahmen dieser Diplomarbeitenen zu bearbeitenden Teilthemen sind:

  • Modellierung von Diagrammsprachen mit EMF und zusätzlichen Constraints
  • Konzept und Realisierung der Syntaxanalyse an Hand eines Metamodells, das auf EMF basiert.
  • Codegenerierung für Diagramme an Hand ihres EMF-Modells. Hier kann man sich auf das EMF-Werkzeug JET (Java Emitter Templates) abstützen.

Referenzen

  • Web-Seite zu EMF mit Dokumentation zu EMF und Download-Möglichkeit.
  • Web-Seite Eclipse.org mit Aufsätzen, Dokumentation und Download-Möglichkeit.
  • Web-Seite zu DiaGen mit Aufsätzen etc.

Bild von Mark Minas
Prof. Dr.-Ing. Mark Minas

Adresse
Institut für Softwaretechnologie
Fakultät für Informatik
Universität der Bundeswehr München
85577 Neubiberg

Büro: Gebäude 41/400, Raum 2408

Tel.: +49 89 6004-2220 (-3352, -2263)
Fax: +49 89 6004-2448
E-Mail: Mark.Minas@unibw.de
PGP: PGP key (GnuPG v1.2.5)