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.
ProducerConsumerSystem
Abb. 1: Produzenten-Verbraucher-System

Petrinetze in Eclipse

Vorraussetzungen:

- Java ab Version 1.4

- Eclipse ab Version 3.0

- Eclipse EMF ab Version 2.0

- Eclipse GEF 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.

emfPetrinetzmodell
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.

baumbasierterPetrieditor
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.

GEF basierter Petrinetz-Editor

Abb. 4: GEF basierter Petrinetz-Editor