EJSL - Visueller Editor mit Sirius

Aus THM-Wiki
Wechseln zu: Navigation, Suche

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

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?

Editoren beschreiben den konkreten Sytnaxbaum.

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

Aufbau eines odesigns.

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.

Mdd entities doku.JPG

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)

Mdd pages doku.JPG

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

Mdd semantic doku.JPG

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

Ejsl import.PNG

1.PNG

2.PNG

3.PNG

4.PNG

5.PNG

Ejsl import.PNG

Ejsl import.PNG

Ejsl import.PNG

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