EJSL - Visueller Editor mit Sirius
Diese Seite beschreibt die Nutzung und Arbeitsweise eines visuellen Editors der das Erstellen und Bearbeiten von Extensions, Entitäten und Pagereferenzen ermöglicht.
iCampus-Projekt | |
---|---|
Arbeitstitel | EJSL - Visueller Editor mit Sirius |
Betreuer | Dennis Priefer |
Projektbeginn | 2015 |
Mitarbeiter | Thomas Flemmer, Dominik Bassing |
Programmiersprache | eJSL |
Inhaltsverzeichnis
Einleitung
Mit dem Visuellen Editor, basierend auf Sirius, lassen sich Domänenmodelle erstellen und editieren. Es können vorhandene Modell geladen und erweitert oder von Grund auf neue Instanzmodelle erstellt werden. Der Editor ist für die eJSL Sprache ausgelegt welche das Modellgetriebene entwickeln von Joomla Extensions ermöglicht. Der Editor unterstützt 3 Sichtweisen (Viewpoints):
- Entitys
- Extensions und
- Pages
Warum ein visueller Editor?
Durch den Einsatz eines Visuellen Editors lassen sich Domänenmodelle leichter und schneller entwickeln. Es kann beipielsweise ohne kenntnis der zur Grunde liegenden Grammatik ein Model erstellt werden. Durch einfaches Drag and Drop können Elemente Grafisch dargestellt werden. Da der Editor die Grammatik kennt, können Elemente nur an Stellen platziert werden die auch zulässig sind wodurch Fehlerquellen vermieden werden.
Integration in den MDD Prozess
Betrachtet man den gesamten MDD Prozess, gliedern sich die Editoren im bereich der Konkreten Syntaxbäume ein. Ein Editor dient zur Erstellung dieser. Der Konkrete Syntaxbaum kann sowohl textuell als auch visuell erstellt werden.
Der Gesammte Ablauf bessiert zunächst auf der eJSL Grammatik welche mit xText Formuliert wurde. Durch Generatoren wird ein ecore Metamodel erstellt welches den abstrakten Syntaxbaum darstellt. Mit geeigneten Editoren kann nun der konkrete Syntaxbaum generiert werden. An dieser stelle agiert auch der hier beschriebe visuelle Editor. Mit ihm wird ein Instanz Model erzeugt welches bspw. von einem Codegenerator weiterverarbeitet werden kann.
Projektaufbau und Abhängigkeiten
- Eclipse Mars Modeling Tools
- Sirius Integration with Xtext 3.0.0
- Xtext Complete SDK
Arbeitsweise
Viewpoints und Representations
Sirius arbeitet mit Viewpoints. Ein Viewpoint beschreibt eine bestimmte Sichtweise auf ein Modell. Innerhalb eines Viewpoints kann festgelegt werden welche Elemente dargestellt werden und welche erstellt werden können. Viewpoints werden in einem .odesign Projekt definiert. Ist in einem Workspace ein .odesign Projekt vorhanden, erkennt Eclipse dieses automatisch und stellt alle vorhandenen Viewpoints bereit(Anwendungsbeispiel s.u.). Um ein Modell anzuzeigen ist eine Representation notwendig. Diese wird für das jeweilige Modell angelegt und stellt eine Diagramübersicht inklusive Werkzeugleiste bereit in der modelliert werden kann.
Im Hintergrund arbeitet Sirius mit Knoten, Kanten und Containern. Ein Container kann mehrere Container und Knoten enthalten. Kanten werden aus Relationen gelesen und als Verbindung zwischen Objekten angezeigt. Durch Semantische Ausdrücken können diese Relationen implementiert werden.
Editor Darstellung
Die Grafische Darstellung zeigt sich wie folgt.
Die Abbildung zeigt ein Entity Model welches mit dem Editor erstellt wurde. An der rechten Seite befindet sich die Werkzeugleiste. In ihr liegen alle Elemente die Angelegt werden können. Mittels Drag and Drop können diese Elemente auf das Diagramm gezogen und platziert werden. Die Entity View beinhaltet folgende Möglichkeiten:
- create Datapackage
- create Entity
- create Datatype
- create Attribute
- create Reference
- simple htmltype (String, Int, bool...)
- simple dbtype (Datatype)
- data htmltype (Datatype)
Die Pages View ist analog zu den anderen aufgebaut. Hier stehen folgende Features zur Verfügung:
- create Parameter
- create Index Page
- create Static Page
- create Detail Page
- create Internal Link
- create External Link
Weitere Einstellungsmöglichkeiten befinden sich hinter dem "Semantic" Reiter. Für jedes Objekt können hier Namen, Abhängigkeiten, Referenzen usw. hinterlegt werden. Es stehen die jeweiligen Variablen und Felder zur Auswahl welche in der Grammatik formuliert sind.
Installation und Anleitung
Klonen der eJSL Grammatik. git@git.thm.de:JooMDD/joomdd_repo.git
Probleme
Aktuelle besteht das Problem, dass der Editor nicht im Host Eclipse als Plugin eingebunden werden kann. Sobald das Plugin integriert ist treten Abhängigkeitsprobleme im Code der eJSL Projekte auf. Um das Problem zu umgehen muss das Editor Plugin in der geöffneten Eclipse Instanz und nicht im Host installiert werden.
Vision
Für die Zukunft sind vor allem Designtechnische dinge anzupassen. Auch sollte das .odesign Projekt als Plugin eingebunden werden können. Dadurch würde sich der einrichtungsaufwand auf das simple einbinden eines Plugins beschränken, was eine deutliche Zeitersparnis mit sich bringen würde. Außerdem bietet Sirius viele weitere nützliche Tools an, die aus Zeitgründen noch nicht implementiert wurden. Zu nennen währe hier bspw. die "direct Edit" Funktion mit der Elemente Direkt im Diagramm editiert werden können, wodurch man nicht mehr alle Einstellungen über den "Semanic" Reiter vornehmen müsste.
Weblinks
- Sirius – Offizielle Website von Sirius.
- Sirius Dokumentation – Dokumentation von Sirius.
- Git Repository – MDD Repository für eJSL.