Artikel

 
Juni 2010 | Artikel

Eclipse Helios: Wie Programmierung und Modellierung immer mehr verschmelzen

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/3166)

Modellieren mit Eclipse Helios

Text: Dr. Jan Köhnlein
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Die Tatsache, dass e4, die zukünftige Generation von Eclipse, in wesentlichen Teilen auf EMF setzt, zeigt schon den hohen Stellenwert der Modellierung im Eclipse Projekt. Wen wundert es da, dass auch im Helios-Release wieder ein Großteil der 39 teilnehmenden Teilprojekte aus dem Eclipse Modeling Projekt stammt? Im Folgenden nehmen wir die wichtigsten Neuerungen genauer unter die Lupe.
Teil 1   Teil 2   Teil 3   

Zunächst ein kleiner Überblick. Alle Modeling-Projekte, die an Helios teilnehmen, sind in der Tabelle 1 aufgelistet. Als Neuzugänge sind das Extended Editing Framework (EEF), MoDisco und Amalgamation zu verzeichnen. Die Projekte Acceleo, Xtext, Xpand und MWE haben seit Galileo den "Brutkasten" des Eclipse-Inkubators verlassen und liegen erstmals als echte 1er- bzw. 3er-Version vor. Außerdem sind zwei Projekte umgezogen: EMF Compare wurde aus EMF Technology in das Projekt EMF versetzt, und MoDisco von GMT nach MDT.

Tabelle 1: Modeling-Projekte in Helios
Modeling Amalgamation Project Distribution der Modeling-Projekte
Eclipse Modeling Framework (EMF) Kernframework von Eclipse Modeling
Connected Data Objects (CDO) Zentrales Multi-User-Repository für EMF-Modelle
EMF Compare Modellvergleich
EMF Query Modellabfragen
EMF Transaction Modelltransaktionen
Net4j Signalling Platform Kommunikation für CDO
EMF Teneo OR-Mapping für Modelle
EMF Validation Modellvalidierung
Ecore Tools Graphischer Ecore-Editor
Mint JDT-Support für EMF-Code
Extended Editing Framework (EEF) Property-Editoren für Modelle
Modeling Workflow Engine (MWE) Orchestrierung von Modellverarbeitungsschritten
Graphical Modeling Framework (GMF) Notation Diagrammmodell für graphische Editoren
Graphical Modeling Framework (GMF) Runtime Runtime für graphische Editoren
Graphical Modeling Framework (GMF) Tooling Toolsupport für graphische Editoren
MoDisco Modellgestützte Migration von Altanwendungen
Object Constraint Language (OCL) Implementierung des OMG Standards OCL
Unified Modeling Language (UML2) Implementierung des OMG Standards UML2
XML Schema Definition (XSD) XML/XSD Verarbeitung
Atlas Transformation Language (ATL) Modelltransformation
QVT Operational (QVTO) Implementierung des OMG Standards QVTO
Acceleo Implementierung des OMG Standards MTL
Java Emitter Templates (JET) Codegenerierung für EMF
Xpand Codegenerierung
Xtext Eigene Sprachen entwickeln


Sehen wir uns nun einmal die wichtigsten Projekte im Einzelnen an.

EMF
Wer meint, dass sich in EMF, dem Kernframework des Eclipse Modeling Projekts, nichts mehr verändert, hat sich getäuscht: Neben drei Arten von Delegates für Verhaltensaspekte von Modellen gibt es jetzt die Integration in Web-Frameworks.

Zunächst zu den ValidationDelegates: In EMF 2.6 kann man jetzt Modellvalidierungsregeln in einer interpretierbaren Sprache über EAnnotations direkt im Modell ablegen. Zur Auswertung dieser Regeln wird ein ValidationDelegate als Interpreter benötigt. Wie bei EMF üblich, wird dieser bei einer (Singleton-)Registry angemeldet, wobei ein URI als Schlüssel dient. Die Anmeldung erfolgt entweder deklarativ an einen Extension Point oder programmatisch in Java. Um den Mechanismus der ValidationDelegates zu benutzen, muss man:

  • einen ValidationDelegate implementieren und registrieren,
  • den ValidationDelegate am EPackage des Ecore-Modells annotieren,
  • die Validierungsregeln durch Annotation an den zu überprüfenden Modellelementen deklarieren und
  • die Implementierung der Validierungsregeln durch zusätzliche Annotationen hinzufügen.

Fast genauso funktionieren die neuen OperationDelegates, mit denen man die Implementierung von EOperations in einer beliebigen Sprache im Modell annotiert. Ansonsten gleicht das Muster von Registry, Extension Point, Annotationen, Implementierung etc. dem der ValidationDelegates. Das gleiche gilt für die FeatureSettingDelegates, mit denen man abgeleitete Features implementieren kann. Hier kommt allerdings eine zusätzliche Factory ins Spiel. Mehr Details hierzu finden sich auf der "New and Noteworthy" Seite von EMF [1].

Durch die drei neuen Delegates werden Verhaltensaspekte, die bisher nur durch manuelles Implementieren im generierten Code umsetzbar waren, direkt in der Ecore-Beschreibung des Models realisiert. Somit werden sowohl nicht-generierte Modelle als auch andere Implementierungssprachen als Java – in der Dokumentation wird hier insbesondere OCL erwähnt – unterstützt. Weiterhin werden Probleme vermieden, die durch erneutes Generieren aktualisierter Modelle entstehen können. Mit dem Standard-EMF-Baumeditor fühlt sich das Ganze allerdings ein bisschen aufwändig an.

Der Code-Generator von EMF unterstützt jetzt außerdem die Rich Ajax Platform (RAP) und das Google Web Toolkit (GWT) und rückt EMF damit auch in die Interessensphäre Web-basierter Anwendungen. Der GWT-Implementierung fehlt derzeit leider noch der Baumeditor, der aber bald nachgeliefert werden soll. Die Abbildung 1 zeigt einen RAP-basierten EMF-Editor im Browser.

Teil 1   Teil 2   Teil 3   

andere Artikel dieser Serie


Anzeige

Kommentare


Anzeige

zurück zum Seitenanfang