Im folgenden werden zwei Eclipse Editor-Plug-Ins für Petrinetze
forgestellt:
Grundlagen: Petrinetze
Petrinetze sind eine weit verbreitete formale Modellierungssprache in
der Informatik. Sie bestehen aus Stellen (schwarze Kreise) und
Transitionen (schwarze Rechtecke), welche durch Pfeile verbunden sind.
Auf Stellen können sich Token (ausgefüllte schwarze Kreise) befinden.
Weiterhin können Stellen und Transitionen durch Namen (Labels)
beschriftet werden. Abb. 1 zeigt ein einfaches Petrinetz am Beispiel
des weit verbreiteten Produzenten-Verbraucher-Systems.
Abb. 1: Produzenten-Verbraucher-System
Petrinetze in Eclipse
Vorraussetzungen:
- Java ab Version 1.4
- Eclipse ab Version 3.0
- Omondo(R) UML Plug-In für
Eclipse
(passend zur installierten
Eclipse Version)
EMF-Metamodell für Petrinetze in Eclipse
Mit dem Omondo(R) UML Plug-In lässt sich über den Menüpunkt File > New > Other > EMF Diagrams
> EMF Class Diagram einfach grafisch das EMF-Metamodell für
Petrinetze aus Abb. 2 editieren.
Abb. 2: EMF-Petrinetzmodell
Codegenerierung und Ausführung des generierten baumbasierten
Editor-Plug-Ins
Im Kontextmenü (rechte Maustaste) lässt sich durch Generate Model Code der Modellcode
zum EMF-Klassendiagramm generieren. Weiterhin wird durch Generate Edit Code und Generate Editor Code Code für ein
einfaches baumbasiertes Editor-Plug-In generiert, welches direkt in der
Eclipse Runtime-Workbench unter dem Menüpunkt Run > Run > Runtime-Workbench
ausgeführt werden kann. Hierzu muss in der Runtime-Workbench
unter dem Menüpunkt File > New
> Other > Simple Project ein neues Projekt erstellt
werden. Der baumbasierte Editor (siehe Abb. 3) kann nun über den
Menüpunkt File > New > Example
EMF Model Creation Wizard initialisiert werden.
Abb. 3: Baumbasierter Petrinetz-Editor in der Eclipse Runtime-Workbench
GEF basierter Petrinetz-Editor
Auf der Grundlage des generierten Modellcodes kann mit dem Graphical Editing Framework (GEF) von
Eclipse ein grafisches Editor-Plug-In erstellt werden. GEF bietet
allerdings keinen Codegenerator. Vielmehr stellt GEF Basisklassen
bereit, welche eine ganze Reihe von grundlegenden
Editorfunktionalitäten (wie Ersetzen/Wiederherstellen und Zoomen)
bereitstellen. Abb. 4 zeigt den GEF basierten Petrinetz-Editor, welcher
unter dem Download-Link
erhältlich ist.
Abb. 4: GEF basierter Petrinetz-Editor