Eclipse Modeling Framework Stefan Berlik Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universit¨ at Siegen
14. November 2007
Eclipse Modeling Framework 2 / 14
Was ist das Eclipse Modeling Framework (EMF)?
EMF ist Teil des tools project von Eclipse Die Antwort auf Was ist EMF?“ h¨angt davon ab, wen man fragt: ” - EMF ist ein Modellierungs- & Datenintegrations-Framework (Grundlage f¨ ur die Speicherung von Metadaten und Metamodellen)
- EMF ist ein Quelltextgenerierungs-Framework zur Erzeugung von plug-ins f¨ ur Eclipse (Genutzt um Eclipse Editoren zu erzeugen)
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 3 / 14
Wie wird EMF eingesetzt?
[Bacvanski, Graff. 2005]
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 4 / 14
¨ EMF in der Ubersicht
[Bacvanski, Graff. 2005] Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 5 / 14
Was ist ecore? ecore ist die EMF Sprache zur Definition von Modellen - d.h. eine Metasprache
ecore erm¨oglicht das Anlegen objektorientierter Modelle ecore wird genutzt um Platform Independent Models zu definieren - Grundlage f¨ ur die Quelltexterzeugung - Standard f¨ ur die Modellierung von Metadaten
Standards - Inspiriert durch MOF 1.4 (Meta Object Facility) der OMG (Object Management Group) ¨ - Uberarbeitet und entspricht jetzt OMGs Essential Meta Object Facility (MOF 2.0 EMOF)
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 6 / 14
Was ist ein ecore Modell?
Erlaubt die Definition struktureller Modelle Diese sind h¨aufig zu finden in Form von - UML Klassendiagrammen - XML Schemadefinitionen - Entity Relationship Diagrammen
Konkret: Spezifikation der Daten einer Anwendung -
Objekte mit Attributen Relationen (Assoziationen) zwischen Objekten Operationen auf Objekten Einfache Bedingungen (z.B. Multiplizit¨ at) von Objekten und Relationen
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 7 / 14
Erzeugen eines Platform Independent Model (PIM) Erzeugung des PIM (ecore-Modells) auf vielf¨altige Art m¨oglich
[Bacvanski, Graff. 2005] Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 8 / 14
¨ EMF in der Ubersicht
[Bacvanski, Graff. 2005] Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 9 / 14
Das Generatormodell (genmodel) Zus¨atzlich zum ecore-Modell wird ein Generatormodell, das genmodel ben¨ otigt Das genmodel stellt platformspezifische Informationen zu Verf¨ ugung - Im Gegensatz zum ecore-Modell enth¨ alt es nur platformspezifische Informationen
Ohne das genmodel ist Quelltexterzeugung nicht m¨ oglich Mittels des genmodels kann konfiguriert werden, wie der Quelltext generiert werden soll - Welche Pakete sollen genutzt werden - Wie soll die Modellstruktur dargestellt werden - ...
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 10 / 14
Quelltexterzeugung EMF.editor - Umfasst den von Benutzerschnittstellen abh¨ angigen Quelltext - Modell Editor - Modell Erzeugungs-Wizard
EMF.edit - Umfasst den von Benutzerschnittstellen unabh¨ angigen Quelltext - Adapter (item provider) [Bacvanski, Graff. 2005]
EMF.model - Umfasst den PIM basierten Java Modell Quelltext - Schnittstellenklassen f¨ ur alle modellierten Objekte Einschließlich get/set Methoden f¨ ur alle Objektattribute
- Implementatierungsklassen f¨ ur alle Schnittstellen Unterst¨ utzt Modell¨ anderungs-Notifikationen
- Eine Fabrikklasse zur Erzeugung von Exemplaren der Modellobjekte - Eine Paketklasse die Zugriff auf die Metadaten des Modells gew¨ ahrt Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 11 / 14
Entwurfsmuster im EMF Das EMF.edit plug-in setzt drei Entwurfsmuster um - Beobachter - Befehl - Adapter
[Bacvanski, Graff. 2005]
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 12 / 14
Demo Modellierung eines einfachen UML-Modells mit EMF
Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 13 / 14
Zusammenfassung: EMF . . . Bietet - Ein Modell (ecore) Erzeugt durch Editor, XML Schema, Annotiertem Java, . . .
- Generiert Java Quelltext Effizient und einfach Modifizierbarkeit ist sichergestellt
- Persistenz und Serialisierung Standardm¨ aßig in XMI (XML metadata interchange), kann aber u ¨berschrieben werden
- Eingebauter Notifikationsmechanismus bei Modell¨ anderungen An notwendigen Stellen sind lediglich weitere observer hinzuzuf¨ ugen
- Reflexion und Dynamisches EMF Vollst¨ andige F¨ ahigkeit zur Introspektion
Hebt das (immanente) Modell in die Applikation Steigert die Produktivit¨at und vereinfacht die Integration Mischt Modellierung und Programmierung zur beiderseitigen Effizienzmaximierung Stefan Berlik (Universit¨ at Siegen)
Eclipse Modeling Framework 14 / 14
Weiterf¨uhrende Literatur 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