1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Maik Schmidt Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 21. April 2009
Was ist EMF? Eclipse Modeling Framework 2 / 14 EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) Umfasst: - Modellierungssprache (ecore) zur Modellbildung - Laufzeitumgebung, Schnittstellen u. Infrastruktur (Instanzierung, Persistenz etc.) - Quelltextgenerierungs-Framework zur Erzeugung diverser Quellcode Artefakte (plug-ins für Eclipse) z.b. Modellklassen, oder um Eclipse Editoren zu erzeugen
Wie wird EMF eingesetzt? 3 / 14 [Bacvanski, Graff. 2005]
EMF in der Übersicht 4 / 14
Was ist ecore? Eclipse Modeling Framework 5 / 14 ecore ist eine Sprache zur Definition objektorientierter Modelle - d.h. eine Metasprache ecore wird genutzt um Platform Independent Models zu definieren - Grundlage für die Quelltexterzeugung Standards - Inspiriert durch MOF 1.4 (Meta Object Facility) der OMG (Object Management Group) - Überarbeitet und entspricht jetzt OMGs Essential Meta Object Facility (MOF 2.0 EMOF)
Was ist ein ecore Modell? 6 / 14 Erlaubt die Definition struktureller Modelle Diese sind häufig zu finden in Form von - UML Klassendiagrammen - XML Schemadefinitionen - Entity Relationship Diagrammen -... Konkret: Spezifikation der Daten einer Anwendung ( Nutzdaten ) - Objekte mit Attributen - Relationen (Assoziationen) zwischen Objekten - Operationen auf Objekten - Einfache Bedingungen (z.b. Multiplizität) von Objekten und Relationen
Erzeugen eines Platform Independent Model (PIM) Erzeugung des PIM (ecore-modells) auf vielfältige Art möglich 7 / 14 [Bacvanski, Graff. 2005]
Demo Eclipse Modeling Framework 8 / 14 Modellierung eines einfachen Modells mit EMF
Demo Eclipse Modeling Framework 9 / 14 Erstellung der Anwendungsdaten ( Nutzdaten ) mit Hilfe des EMF-eigenen Editors zur Bearbeitung von Modell-Instanzen
EMF in der Übersicht 10 / 14 [Bacvanski, Graff. 2005]
Das Generatormodell (genmodel) 11 / 14 Zusätzlich zum ecore-modell wird ein Generatormodell, das genmodel benötigt Das genmodel stellt platformspezifische Informationen zu Verfügung - Im Gegensatz zum ecore-modell enthält es nur platformspezifische Informationen Ohne das genmodel ist Quelltexterzeugung nicht möglich Mittels des genmodels kann konfiguriert werden, wie der Quelltext generiert werden soll - Welche Pakete sollen genutzt werden - Welche Infrastrukturteile sollen generiert werden - Wie soll die Modellstruktur dargestellt werden -...
Quelltexterzeugung EMF.editor - Umfasst von Benutzerschnittstelle (Eclipse) abhängigen Teile - Modell Editor - Modell Erzeugungs-Wizard - Registrierung der Dateiendung -... 12 / 14 EMF.edit - Allgemeine Editieroperationen für Modell(-instanz) - EMF-Adapter (item provider) [Bacvanski, Graff. 2005] EMF.model - Umfasst Java Modell Quelltext - Schnittstellenklassen für alle Modellelemente - Realisierung für alle Schnittstellen - Eine Fabrikklasse zur Erzeugung von Exemplaren der Modellobjekte - Eine Paketklasse die Zugriff auf die Metadaten des Modells gewährt
13 / 14 Demo Generierung der Java-Klassenstruktur und Verarbeitung der erstellten Anwendungsdaten über das EMF API
Weiterführende Literatur 14 / 14 EMF homepage http://www.eclipse.org/modeling/emf/ B. Moore et al.: Eclipse Development using the Graphical Editing 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 Eclipse Modeling Framework (Konferenzbeitrag) http://www.eclipsecon.org/2005/presentations/ EclipseCon2005_Tutorial11final.pdf