EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Einführung in dasEclipse Modeling Framework
(EMF)
Timo Kehrer, Cristoph Berane
Praktische Informatik
November 2010
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
ÜberblikEcore
Was ist EMF?
EMF ist ein eigenständiges Eclipse-Projekt (Eclipse ModelingFramework Project)
Die Antwort auf „Was ist EMF?“ hängt davon ab, wen man fragt:1 EMF ist ein Quelltextgenerierungs-Framework zur Erzeugung von
plug-ins für Eclipse(z.B. um Eclipse Editoren zu erzeugen)
2 EMF ist ein Modellierungs- & Datenintegrations-Framework(Grundlage für die Speicherung von Metadaten und Metamodellen)
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
ÜberblikEcore
Was ist Ecore? I
EMF “Modellierungstechnik” zur Definition struktureller Modelle
Diese werden, je nach Einsatzkontext, auch bezeichnet als
DatenmodelleMetamodellePlatform Independent Models
Konzeptuell ähnlich zu
UML KlassendiagrammenXML SchemadefinitionenEntity Relationship Diagrammen
Wesentliche Konzepte:
Typbildung in Form von Klassen (EClass)Definition lokaler Eigenschaften von Klassen (EAttribute)Bildung von Relationen in Form von (gerichteter) Assoziationen(EReference)
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
ÜberblikEcore
Was ist Ecore? II
Ecore-Modelle sind damit ganz zentral in EMF:
1 Grundlage für die Quelltexterzeugung2 Standard für die Erstellung von Modellhierarchien
Standards
Inspiriert durch MOF 1.4 (Meta Object Facility) der OMG (ObjectManagement Group)Überarbeitet und entspricht jetzt OMGs Essential Meta ObjectFacility (MOF 2.0 EMOF)
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
ÜberblikEcore
Erzeugen eines Ecore-ModellsErzeugung des Ecore-Modells (hier als PIM bezeichnet) aufvielfältige Art möglich
[Bacvanski, Graff. 2005]
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
ÜberblikEcore
Demo
Erstellung eines einfachen Ecore-Modells
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
GeneratormodellQuelltextgenerierungGenerierungsprozessDemo
Das Generatormodell (genmodel)
Zusätzlich zum Ecore-Modell wird ein Generatormodell, dasgenmodel benötigt
Das genmodel stellt platformspezifische Informationen zuVerfügung
Im Gegensatz zum Ecore-Modell enthält es nur platformspezifischeInformationen
Ohne das genmodel ist Quelltexterzeugung nicht möglich
Mittels des genmodels kann konfiguriert werden, wie derQuelltext generiert werden soll
Welche Pakete sollen genutzt werden?Wie soll die Modellstruktur dargestellt werden?. . .
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
GeneratormodellQuelltextgenerierungGenerierungsprozessDemo
Quelltext-Generierung
[Bacvanski, Graff. 2005]
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
GeneratormodellQuelltextgenerierungGenerierungsprozessDemo
Was wird generiert?
EMF.editor (Benutzerschnittstellen)Modell EditorModell Erzeugungs-Wizard
EMF.edit (Editor Anwendungslogik)Undo/Redo FunktionalitätAdapter (item provider)
[Bacvanski, Graff. 2005]
EMF.model (Editor Datenhaltung)Schnittstellenklassen für alle modellierten ObjekteImplementierungsklassen für alle SchnittstellenEine Fabrikklasse zur Erzeugung von Exemplaren derModellobjekteEine Paketklasse die Zugriff auf die Metadaten des Modellsgewährt
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
GeneratormodellQuelltextgenerierungGenerierungsprozessDemo
Arbeitsablauf und Workflow
[Bacvanski, Graff. 2005]
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
GeneratormodellQuelltextgenerierungGenerierungsprozessDemo
Demo
Quelltext-Generierung
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Modelle und Modell-InstanzenModellhierarchienDemo
Modelle und Modell-Instanzen
Im Fokus: Datenmodellierungsaspekt von Ecore
Unterstützung für die Instanziierung von Klassen, Eigenschaftenund Beziehungen
In unserem Bibliotheksbeispiel:Welche Bücher (Buch-Instanzen) gibt es?Welche Schriftsteller (Schriftsteller-Instanzen) gibt es?Welche Ausprägungen besitzen die Eigenschaften der Bücher undSchriftsteller (Name, Seitenanzahl etc.)?Wie stehen die Bücher und Schriftsteller zueinander in Beziehung(wer hat welche Bücher geschrieben)?
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Modelle und Modell-InstanzenModellhierarchienDemo
Modell-Hierarchie (Bibliotheks-Beispiel)
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Modelle und Modell-InstanzenModellhierarchienDemo
Demo: Instanziierung (Variante 1)
Erstellung der Anwendungsdaten („Nutzdaten“) mit Hilfe desreflektiven Editors zur Bearbeitung von Modell-Instanzen
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Modelle und Modell-InstanzenModellhierarchienDemo
Demo: Instanziierung (Variante 2)
Erstellung der Anwendungsdaten („Nutzdaten“) mit Hilfe desgenerierten Editors zur Bearbeitung von Modell-Instanzen
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Applikationsentwicklung auf Basis von EMF
EMF lässt sich bei der Entwicklung von Applikationen vielfältigeinsetzen, so z.B.
zur Generierung der Datenhaltungsschicht,zur Generierung von Teilen des Anwendungskerns durchBereitstellung von Methoden-Rümpfen,als Framework zur Definition und Verarbeitung von Modellen undMetamodellen im Rahmen der modellbasierten Entwicklung,. . .
Dafür benötigen wir Mechanismen fürdas Persistenzmanagement (Laden und Speichern von Modellen),den Zugriff auf Modelldaten (schreibend und lesend),. . .
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Demo
Verarbeitung der erstellten Anwendungsdaten über diegenerierten Schnittstellen
T. Kehrer, C. Berane Eclipse Modeling Framework
EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework
Applikationsentwicklung auf Basis von EMF
Weiterführende Literatur
EMF homepagehttp://www.eclipse.org/modeling/emf/
B. Moore et al.: Eclipse Development using the GraphicalEditing Framework and the Eclipse Modeling Framework (Buch)http://www.redbooks.ibm.com/redpieces/pdfs/sg246302.pdf
V. Bacvanski, P. Graff: Mastering Eclipse Modeling Framework(Konferenzbeitrag)http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial28.pdf
E. Merks, D. Steinberg: From Models to Code with the EclipseModeling Framework (Konferenzbeitrag)http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial11final.pdf
T. Kehrer, C. Berane Eclipse Modeling Framework