Eclipse Modeling Project - Technische Universität München

Werbung
Technische Universität München
Eclipse Modeling Project
das "Schweizer Taschenmesser" zur
Entwicklung von Modellierungswerkzeugen
Markus Herrmannsdörfer
7. Januar 2009
Perlen der Informatik
Garching
Technische Universität München
Eclipse Modeling Project
•
•
•
•
•
•
Unterstützung von Industrie-Standards
Basis: Eclipse und damit Java
Entwicklung von Modellierungsprachen
Lizenz: Open Source
Verwendung in kommerziellen Werkzeugen
Komponenten
– Syntax: abstrakt, konkret
– Modellierungssprachen
– Transformation: Modell-zu-Modell, Modell-zu-Text
– Verteilte Modellierung
– Domänenspezifische Modellierung
Technische Universität München
Überblick
1. Syntax
2. Modellierungssprachen
3. Transformation
4. Verteilte Modellierung
5. Domänenspezifische Modellierung
Technische Universität München
Syntax
Beschreibung der gültigen Modelle einer Sprache
• Abstrakte Syntax: Beschreibung der Konzepte einer
Modellierungssprache unabhängig von der konkreten
Repräsentation
– Eclipse Modeling Framework (EMF)
• Konkrete Syntax: Wiedergabe der Konzepte einer
Modellierungssprache in einer konkreten Repräsentation
– Graphisch: Graphical Modeling Framework (GMF)
– Textuell: Textual Modeling Framework (TMF) / Xtext
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
Überblick
• Referenz-Implementierung des OMG-Standards (Essential) Meta
Object Facility (EMOF)
• aktuelle Version: 2.4
Ressourcen
• Webseite: http://www.eclipse.org/modeling/emf/
(Downloads, Wiki, FAQ, Dokumentation)
• Newsgroup: eclipse.tools.emf (news.eclipse.org)
• Buch: Eclipse Modeling Framework, Second Edition (Steinberg,
Budinsky, Paternostro, Merks)
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
eReferenceType
EClass
1
EDataType
name : EString
name : EString
konformZu
Meta -Metamodell
1 eAttributeType
Ecore (vereinfacht )
0..*
eReferences
eAttributes
EReference
Metamodell
EAttribute
name : EString
containment : EBoolean
konformZu
name : EString
State
Ecore -Modell
children
0..*
name : EString
konformZu
ON
Modell
Modell
0..*
RED
GREEN
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
Annotationen
Pakete
Operationen
Enumerationen
[Ed Merks: The Unbearable
Stupidity of Modeling]
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
XML Schema
UML
Ecore
State
children 0..*
name: EString
Java
public interface State {
String getName();
void setName(String value);
List<State> getChildren();
} // State
<xsd:complexType name=“State">
<xsd:sequence>
<xsd:element
name="children"
type=“state:State"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute
name=“name"
type="xsd:string"/>
</xsd:complexType>
[Ed Merks: The Unbearable
Stupidity of Modeling]
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
derive
Metamodel
Generator Model
Injektion von Code
über Annotationen
Interpretation
auch möglich
Veränderung
generate
Model Plugin
Edit Plugin
Editor Plugin
Metamodel
API
Controller
Baum mit
Eigenschaften
Überschreiben des generierten Codes
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
TreeViewer
Properties
Technische Universität München
Abstrakte Syntax: Eclipse Modeling Framework
Kern
Erweiterungen
•
•
•
•
•
•
•
•
•
•
Adapter: Notifizierung
Switch, TreeIterator: Besucher
Factory: Erzeugung
Resource: Persistierung (XMI)
ItemProvider: Controller
Reflection: generische API
Command Framework:
CommandStack, Undo, Redo
•
•
•
Query: Abfragen
Search: Suche in Modellen
ChangeRecorder: Aufzeichnung
von Änderungen
Transaction: Verteiltes Editieren
Validation: Überprüfung von
Konsistenzbedingungen
DataBinding: Binden von
Modellen an Views
Technische Universität München
Graphische Syntax: Graphical Modeling Framework
Überblick
• Editor-Generierung aus einem Modell der graphischen Syntax
• Basis: Graphical Editing Framework (GEF)
• aktuelle Version: 2.1
Ressourcen
• Webseite: http://www.eclipse.org/modeling/gmf/
(Downloads, Wiki, Tutorials, Dokumentation)
• Newsgroup: eclipse.modeling.gmf (news.eclipse.org)
Technische Universität München
Graphische Syntax: Graphical Modeling Framework
Model Plugin
Edit Plugin
Diagram Editor Plugin
Technische Universität München
Graphische Syntax: Graphical Modeling Framework
Undo
Layout
Select
Print
Zoom
Validate
Routing
Overview
Resize
Move
Technische Universität München
Graphische Syntax: Graphical Modeling Framework
Vorteile
• Editor-Erstellung auf Knopfdruck
• saubere Trennung von abstrakter und konkreter Syntax
Nachteile
• komplizierte Erstellung der Editor-Modelle
• keine direkte Unterstützung mehrerer Ansichten auf einem Modell
• mangelnde Flexibilität gegenüber abstrakter Syntax
Alternative
• Graphical Editing Framework (GEF)
Technische Universität München
Textuelle Syntax: Textual Modeling Framework / Xtext
Überblick
• Editor-Generierung aus einer Grammatik für die textuelle Syntax
• Basis: ANTLR
• aktuelle Version: 4.3 (OAW), 0.7 (TMF)
Ressourcen
• Website: http://www.openarchitectureware.org/ (OAW),
http://www.eclipse.org/modeling/tmf/ (TMF)
(Download, Documentation, Wiki)
• Newsgroup: eclipse.modeling.tmf (news.eclipse.org)
Technische Universität München
Textuelle Syntax: Textual Modeling Framework / Xtext
Grammatik
Statemachine :
(state+=State)*;
derive
Metamodel
State :
'state' name=ID
(outgoing+=Transition)*
(children+=State)*
'end';
Transition :
trigger=ID '=>' target=[State];
import
Text Editor Plugin
generate
Technische Universität München
Textuelle Syntax: Textual Modeling Framework / Xtext
Syntax Highlighting
Folding
Navigation
Validation
Code Completion
Abstrakter Syntaxbaum
Technische Universität München
Textuelle Syntax: Textual Modeling Framework / Xtext
Vorteile
• einfaches Erstellen einer Grammatik
• Editor-Erstellung auf Knopfdruck
• Speicherung in textueller Repräsentation => existierende Lösung
für Konfigurations-Management
Nachteile
• mangelnde Flexibilität gegenüber abstrakter Syntax
• Performanz-Probleme bei bestimmter Art der Syntax
Alternative
• Verfeinerung der erzeugten ANTLR-Grammatik
Technische Universität München
Überblick
1. Syntax
2. Modellierungssprachen
3. Transformation
4. Verteilte Modellierung
5. Domänenspezifische Modellierung
Technische Universität München
Modellierungssprachen
Überblick
• Implementierung von standardisierten Metamodellen
• beispielhafte Modellierungs-Werkzeuge
Ressourcen
• Website: http://www.eclipse.org/modeling/mdt/
• Newsgroup: eclipse.modeling.mdt (news.eclipse.org)
Technische Universität München
Modellierungssprachen
vorhanden
• Ecore: graphischer Editor (Ecore Tools)
• Object Constraint Language (OCL): Parser, Interpreter
• Unified Modeling Language 2 (UML2): graphische Editoren (UML2
Tools)
• XML Schema Definition (XSD): API
geplant
• Business Process Model and Notation 2.0 (BPMN2)
• Information Management Metamodel (IMM)
• Semantics of Business Vocabulary and Business Rules (SBVR)
• Ontology Definition Metamodel (ODM)
Technische Universität München
Überblick
1. Syntax
2. Modellierungssprachen
3. Transformation
4. Verteilte Modellierung
5. Domänenspezifische Modellierung
Technische Universität München
Modell-Transformation
Abbildung eines Quell-Modells auf ein Ziel-Artefakt entsprechend
einer Vorschrift
• Modell-zu-Modell: Ziel-Artefakt = Modell
– Atlas Transformation Language (ATL)
– Query View Transformation (QVT)
– medini QVT (nicht Teil des Eclipse Modeling Project)
• Modell-zu-Text: Ziel-Artefakt = Text
– Java Emitter Templates (JET)
– Xpand
– Model To Text Language (MTL)
Technische Universität München
Modell-zu-Modell: Atlas Transformation Language
Überblick
• Hybride Transformations-Sprache (deklarativ mit imperativen
Anteilen)
• OCL als Sprache für Ausdrücke (eigene Implementierung)
• aktuelle Version: 2.0
Ressourcen
• Webseite: http://www.eclipse.org/m2m/atl/
(Dokumentation, Wiki, Use Cases, Beispiele, Patterns)
• Newsgroup: eclipse.modeling.m2m (news.eclipse.org)
• Wissenschaftliche Veröffentlichungen: z.B. „Transforming Models
with ATL“ (Jouault, Kurtev)
Technische Universität München
Modell-zu-Modell: Atlas Transformation Language
Technische Universität München
Modell-zu-Modell: Query View Transformation
Überblick
• Implementierung des gleichnamigen OMG-Standards
• OCL als Sprache für Ausdrücke
• Komponenten: Operational (QVTO), Relational (QVTR)
• aktuelle Version: 1.0 (QVTO), in Entwicklung (QVTR)
Ressourcen
• Webseite:
http://wiki.eclipse.org/M2M/Operational_QVT_Language_(QVTO),
http://wiki.eclipse.org/M2M/Relational_QVT_Language_(QVTR)
• Newsgroup: eclipse.modeling.m2m (news.eclipse.org)
• Spezifikation: http://www.omg.org/cgi-bin/doc?ptc/2007-07-07
Technische Universität München
Modell-zu-Modell: Query View Transformation
QVTO
QVTR
Operational
Mapping
Transformation
Core
• Editor
• Debugger
• in Entwicklung
Black Box
Implementaiton
Relations
Technische Universität München
Modell-zu-Modell: medini QVT
Überblick
• Relations-Implementierung des gleichnamigen OMG-Standards
• Komponenten: Engine, Editor, Debugger
• aktuelle Version: 1.6
Ressourcen
• Webseite: http://projects.ikv.de/qvt
(Download, Wiki, Tutorial, Forum)
• Lizenz: Engine => EPL, Editor + Debugger => nur frei für nichtkommerzielle Nutzung
Technische Universität München
Modell-zu-Text: Java Emitter Templates
Überblick:
• Syntax ähnlich zu Java Server Pages (JSP)
• Java als Sprache für Ausdrücke
• Verwendung: Generierung von API und Editor in EMF
• aktuelle Version: 0.9
Ressourcen:
• Website: http://www.eclipse.org/modeling/m2t/?project=jet#jet
• Newsgroup: eclipse.modeling.m2t (news.eclipse.org)
Technische Universität München
Modell-zu-Text: Java Emitter Templates
Technische Universität München
Modell-zu-Text: Xpand
Überblick
• Syntax, die speziell für die Text-Generierung entwickelt wurde
• eigene Sprache für Ausdrücke
• Verwendung: Generierung des graphischen Editors in GMF (hier
OCL als Sprache für Ausdrücke)
• aktuelle Version: 4.3 (OAW)
Ressourcen
• Website: http://wiki.eclipse.org/Xpand,
http://www.openarchitectureware.org/
• Newsgroup: eclipse.modeling.m2t (news.eclipse.org)
Technische Universität München
Modell-zu-Text: Xpand
Technische Universität München
Modell-zu-Text: Model To Text Language
Überblick
• Implementierung des OMG-Standards MOF Model To Text
Language
• OCL als Sprache für Ausdrücke
• aktuelle Version: 0.7
Ressourcen
• Website: http://wiki.eclipse.org/Model_To_Text_MTL
• Newsgroup: eclipse.modeling.m2t (news.eclipse.org)
• Spezifikation: http://www.omg.org/spec/MOFM2T/1.0/
Technische Universität München
Modell-zu-Text: Model To Text Language
Technische Universität München
Überblick
1. Syntax
2. Modellierungssprachen
3. Transformation
4. Verteilte Modellierung
5. Domänenspezifische Modellierung
Technische Universität München
Verteilte Modellierung
Zusammenarbeit
• Vergleichen und Zusammenführen vom Modellen
– EMF Compare
Zentrale Persistenz von Modellen auf einem Server
• online: Clients müssen ständig mit Server verbunden sein
– Teneo
– Connected Data Objects (CDO)
• offline: Clients brauchen nicht mit Server verbunden sein
– EMFStore (nicht Teil des Eclipse Modeling Project)
Technische Universität München
Zusammenarbeit: EMF Compare
Überblick
• Vergleichen und Zusammenführen von Modellen
• aktuelle Version: 0.8
• Planung: graphisches Vergleichen (GMF), Patches für Modelle,
Vergleichen von Resource-Mengen
Ressourcen
• Webseite: http://wiki.eclipse.org/index.php/EMF_Compare
(Download, User Guide, FAQ)
• Newsgroup: eclipse.technology.emft (news.eclipse.org)
Technische Universität München
Zusammenarbeit: EMF Compare
Problem: standardmäßig
keine IDs in EMF
[EMF Compare
Webseite]
Technische Universität München
Zusammenarbeit: EMF Compare
Unterschiede
Zusammenführen
Vergleichen
Version 1
Version 2
Technische Universität München
Zentrale Persistenz online: Teneo
Überblick
• Persistenz von Modellen in einer relationalen Datenbank
• Objektrelationale Mapper: Hibernate, Java Data Objects (JDO)
• aktuelle Version: 1.0
Ressourcen
• Website: http://www.elver.org/ (Dokumentation, Tutorials),
http://www.eclipse.org/modeling/emf/downloads/?project=teneo
(Downloads)
• Newsgroup: eclipse.tools.emf (news.eclipse.org)
• Beispiel:
https://www.gpublication.com/eclipse/#requestedContent=contentI
D://EclipseConferences/ESE2008/48
Technische Universität München
Zentrale Persistenz online: Teneo
Design time
Runtime
[Teneo Webseite]
Technische Universität München
Zentrale Persistenz online: Connected Data Objects
Überblick
• Persistenz von Modellen in einer Datenbank (relational,
objektorientiert, …)
• viele Anpassungs- und Erweiterungsmöglichkeiten
• aktuelle Version: 1.0
Ressourcen
• Website: http://wiki.eclipse.org/CDO (Download, Dokumentation,
Tutorial)
• Newsgroup: eclipse.technology.emf(t) (news.eclipse.org)
• Beispiel:
https://www.gpublication.com/eclipse/#requestedContent=contentI
D://EclipseConferences/ESE2008/48
Technische Universität München
Zentrale Persistenz online: Connected Data Objects
Version 1.0
•
•
•
•
•
generiertes
Metamodell
interpretiertes
Metamodell
server-side
transactions
object versioning
views
high-performance
protocol
…
Version 2.0
•
•
•
•
[CDO Webseite]
•
•
structured
resources
explicit locking
save points
change
subscriptions
query framework
…
Technische Universität München
Zentrale Persistenz offline: EMFStore
Überblick
• Versionierung von Modellen ähnlich wie CVS/SVN
• aktuelle Version: momentan Teil von UniCase, unabhängige
Version geplant
Ressourcen
• Website: http://www.unicase.org/
• Entwicklung: Maximilian Kögel, Jonas Helming (Lehrstuhl Brügge)
Technische Universität München
Zentrale Persistenz offline: EMFStore
update
EMFStore Server
Client Workspace
commit
Technische Universität München
Überblick
1. Syntax
2. Modellierungssprachen
3. Transformation
4. Verteilte Modellierung
5. Domänenspezifische Modellierung
Technische Universität München
Domänenspezifische Modellierung
Überblick
• Integration aller Modellierungs-Komponenten zu einem Werkzeug
zur Erstellung von domänenspezifischen Sprachen
• Komponenten: EMF, GMF, QVTO, Xpand, MWE (Modeling
Workflow Engine), OCL, UML2 Tools, Teneo
• Erscheinung: Galileo (Eclipse 3.5)
Ressourcen
• Website: http://www.eclipse.org/modeling/amalgam/
• Newsgroup: eclipse.modeling.amalgam (news.eclipse.org)
• Buch: Eclipse Modeling Project: A Domain-Specific Language
Toolkit (Gronback)
Technische Universität München
Eclipse Modeling Project
•
•
•
•
•
•
Abstrakte Syntax: EMF
Konkrete Syntax
– Textuelle Syntax: XText
– Graphische Syntax: GMF
Modellierungssprachen: Ecore, OCL, UML2, XSD
Transformation
– Model-zu-Model: ATL, QVT, medini QVT
– Model-zu-Text: JET, XPand, MTL
Kollaboration
– Persistenz: Teneo, CDO, EMFStore
– Compare and Merge: EMF Compare
Domänenspezifische Modellierung: Modeling Amalgam
Herunterladen