einführung in das eclipse modeling framework...

18
Einführung EMF als Generierungsframework EMF als Modellierungsframework Applikationsentwicklung auf Basis von EMF Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer, Cristoph Berane Praktische Informatik November 2010

Upload: vanhanh

Post on 06-Feb-2018

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 2: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 3: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 4: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 5: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 6: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 7: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 8: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework

Applikationsentwicklung auf Basis von EMF

GeneratormodellQuelltextgenerierungGenerierungsprozessDemo

Quelltext-Generierung

[Bacvanski, Graff. 2005]

T. Kehrer, C. Berane Eclipse Modeling Framework

Page 9: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 10: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 11: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

EinführungEMF als GenerierungsframeworkEMF als Modellierungsframework

Applikationsentwicklung auf Basis von EMF

GeneratormodellQuelltextgenerierungGenerierungsprozessDemo

Demo

Quelltext-Generierung

T. Kehrer, C. Berane Eclipse Modeling Framework

Page 12: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 13: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 14: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 15: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 16: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 17: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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

Page 18: Einführung in das Eclipse Modeling Framework (EMF)pi.informatik.uni-siegen.de/Mitarbeiter/kehrer/lehre/ws10/st1/emf... · Einführung EMF als Generierungsframework EMF als Modellierungsframework

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