Übersicht Eclipse Modeling Project EMP (PDF)

Autor:
Zoltan Horvath
Orientation in Objects GmbH
Zoltan Horvath
Zoltan Horvath
Datum:Februar 2010

Übersicht Eclipse Modeling Project

Das Eclipse Modeling Project dient der Entwicklung, Förderung und Zusammenführung von MDSD-Technologien innnerhalb der Eclipse-Community. Es besteht aus Modellierungs-Frameworks, Werkzeugen und der Implementierung von Standards.

Diese Artikel gibt eine Übersicht über das EMP mit Schwerpunkt auf das Thema Modellgetriebene Softwareentwicklung (MDSD).

Was ist EMP?

Das Eclipse Modeling Project(EMP)[1] ist ein relativ neues Top Level Projekt in Eclipse. Das EMP ist eine Sammlung von Projekten, die sich mit Modellierung, Erstellung von domänenspezifischen Sprachen(DSL) sowie Technologien der MDSD beschäftigen. Diese Sammlung wurde gebildet, um innerhalb der Eclipse Plattform Einsatzmöglichkeiten für MDSD zu schaffen.[2] Das Projekt ist noch jung, aber Bestandteile von Plattform selbst.

Aufgaben vom EMP

Das EMP führt unterschiedliche MDSD-Werkzeuge in Eclipse zusammen und ist in mehrere Unterprojekte unterteilt. Diese stellen standard-basierte und nicht standard-basierte Technologien für folgende Einsatzbereiche bereit:

  1. Enwicklung von abstrakter Syntax

  2. Enwicklung von konkreter Syntax

  3. Modell-zu-Modell Transformation

  4. Modell-zu-Text Transformation

Zusätzlich existiert ein Projekt innerhalb vom EMP, das Model Development Tools(MDT) Projekt, das industriestandard-basierte Modelle wie beispielsweise UML unterstützt.

Im Folgenden werden die wichtigsten Projekte vom EMP aus Sicht der modellgetriebenen Softwareentwicklung vorgestellt.

Enwicklung der abstrakten Syntax

Einer der ersten Schritte in der MDSD ist die Erstellung einer DSL. Eine DSL ist eine formale Sprache, die speziell für einen bestimmten Einsatzbereich, die sogenannte Domäne, entworfen ist. Der Kern einer DSL ist die abstrakte Syntax, die Elemente eines Domänenmodells und ihre Beziehungen untereinander beschreibt.

Eclipse Modeling Framework Projekt(EMF)

Das EMF ist ein Framework zur Modellierung und Codegenerierung, welches mit dem Ecore Model eine Basis für das Erstellen einer abstrakten Syntax bereitstellt. Das Ecore Modell ist eine Referenzimplementierung des Essential Meta-Object Facility(EMOF) Standards der OMG[3]. EMF bietet eine breite Unterstützung für die Interoperabilität mit anderen Werkzeugen. Modelle können zunächst in anderen Formaten wie beispielsweise UML definiert und hinterher in EMF importiert werden.

Neben der Kernfunktion, dem Erstellen einer abstrakten Syntax, wird EMF u.a. durch folgende Komponenten vervollständigt:

  1. Model Transaction:

    Bietet eine Model-Management Schicht, um EMF Resourcen zu verwalten.

  2. Model Validation

    Bietet Möglichkeiten zur Validierung von EMF Modellen durch Constraint Definitionen.

  3. Modell Query

    Bietet Abfragemöglichkeiten auf EMF-Modell Elemente.

  4. Teneo

    Eine Lösung für die Persistierung auf Basis von Hibernate oder EclipseLink.

  5. CDO

    Eine Lösung für verteilte EMF-Modelle und schnelle serverbasierte O/R Mapping Lösungen.

Für neue Technologien zur Erweiterung von EMF existiert das Incubation Project Eclipse Modeling Framework Technology(EMFT). Die hier neu entwickelten Technologien können entweder Teil von EMF selbst, oder ein anderes Projekt innerhalb von EMP werden.

Enwicklung der konkreten Syntax

Die konkrete Syntax ist die echte Repräsentation eines bestimmten Domänenmodells und basiert auf der abstrakten Syntax. Die Darstellung kann sowohl grafisch als auch textuell ein. Dafür existieren in EMP folgende Projekte:

Graphical Modeling Framework(GMF)

GMF bietet die Möglichkeit, grafische Editoren auf Basis von EMF und dem Graphical Editing Framework(GEF) zu erstellen.

Textual Modeling Framework(TMF)

TMF bietet Werkzeuge und Frameworks für die Entwicklung einer textuellen Syntax, sowie passenden Editoren auf Basis von EMF. Folgende wichtige Komponenten stehen dazu bereit:

  1. Xtext:

    Ein mächtiges Framework für die Erstellung externer textbasierten DSLs auf Basis von EMF.

  2. Textual Concrete Syntax(TCS)

    Unterstützt die Spezifikation von textueller konkreter Syntax für DSLs.

Model Transformationen

Basierend auf der abstrakten Syntax ist die Model Transformation ein Schlüsselaspekt der MDSD. EMP bietet die Möglichkeit, aus erstellten Modellen Zielartefakte zu generieren, was sich in zwei Bereiche unterteilen lässt: Modell -zu- Modell Transformation und Modell -zu- Text Transformation. Dazu bietet EMP folgende Projekte:

Model to Model Transformation(M2M)

Das M2M Projekt von EMP liefert ein erweiterbares Framework für Modell-zu-Modell Transformationssprachen mit einer beispielhaften Implementierung der Query/Views/Transformations(QVT) Core Sprache. Mit der Atlas Transformation Language(ATL) wird eine zweite, alternative Modell-zu-Modell Transformationssprache bereitgestellt. ATL bietet eine Reihe von Standard Entwicklungswerkzeugen wie Syntax Highlighting oder einen Debugger, um die Entwicklung der Transformationen zu vereinfachen.

Model to Text Transformation(M2T)

Das M2T Projekt stellt Technologien für eine Modell-zu-Text Transformation zur Verfügung. Die Zielartefakte nach solch einer Transformation sind üblicherweise Quellcode mit ihren Ressourcen. Hierzu bietet M2T folgende Komponenten:

  1. Java Emitter Templates(JET):

    Stellt ein Framework zur Codegenerierung zur Verfügung, welches von EMF verwendet wird.

  2. Xpand

    Eine statisch typisierte Templatesprache, die Konzepte der aspektorientierten Programmierung sowie Polymorphismus unterstützt.

Weitere EMP Projekte

In EMP gibt es ausserdem noch weitere Projekte, die unterstützende Funktionalitäten sowie Neuentwicklungen und Erweiterungen für EMP bereitstellen, unter anderen:

  1. Model Development Tool(MDT)

    Wie bereits am Anfang des Artikel kurz erwähnt, bietet MDT Unterstützung um industriebasierte Modelle wie UML oder BPMN2 in Eclipse zu integrieren. Eine interessante Komponente bilden hier die UML2Tools. Sie sind eine Menge von GMF basierten Editoren für die Darstellung und Bearbeitung von UML2 Modellen.

  2. Generative Modeling Technologies(GMT)

    Das GMT Projekt ist ein Incubation Projekt von EMP, in dem neue MDSD und Modeling Technologien behandelt und später ein Teil des EMP Projekts werden können.

Fazit

Das Eclipse Modeling Project stellt Technologien für die erfolgreiche Umsetzung der modellgetriebenen Softwareentwicklung zur Verfügung. Mittels EMP steht für den Softwareentwickler eine Entwicklungsumgebung bereit, die alle Anforderungen - angefangen mit der Erstellung einer DSL bis hin zur Codegenerierung - abdeckt.

Bibliographie

[1] Eclipse Modeling Project Homepage
(http://www.eclipse.org/modeling/)

[2] Eclipse Modeling Project: A Domain-Specifik Language (DSL) Toolkit
(http://www.eclipse.org/resources/resource.php?id=493)
Gronback, Richard; 2009-04-02

[3] OMG Homepage
(http://www.omg.org/)

Zum Geschaeftsbreich Competence Center
Artikel
Tutorial für die Erstellung einer oAW (openArchitectureWare) Cartridge