SlideServe
Menu
Préférences
© SlideServe · v2026

Eclipse Modelling Framework

hampton avatar
17 diapositives · 373 Views · Jul 19, 2012

Eclipse Modelling Framework. Christian Kästner Modellgetriebene Softwareentwicklung. Überblick. Einleitung EMF Einordnung Eclipse Platform Modellerstellung Code Generierung Zusammenfassung/Ausblick. EMF. Was ist EMF Framework für strukturierte Modelle (beschreiben und erstellen)

Eclipse Modelling Framework - slide 1
01 / 17Eclipse Modelling Framework
1 / 17

Télécharger la présentation

Eclipse Modelling Framework
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Eclipse Modelling Framework Christian Kästner Modellgetriebene Softwareentwicklung

  2. Überblick • Einleitung EMF • Einordnung • Eclipse Platform • Modellerstellung • Code Generierung • Zusammenfassung/Ausblick

  3. EMF • Was ist EMF • Framework für strukturierte Modelle (beschreiben und erstellen) • Java Code Generator • Teilprojekt von Eclipse, Open Source • Framework, für Entwickler • Üblicher Anwendungsfall: Erstellung von Datenmodellen für Java Applikationen, als Alternative zu POJOs • Kann Eclipse Editoren für die Modelle generieren

  4. EMF im MDSD Kontext • EMF ist ein Werkzeug im Rahmen der MDSD, bildet aber nur einen Teil ab • Plattformunabhängige Modellierung, aber deutliche Ergänzungen am generierten Code • Nur Java-Code Generierung

  5. Eclipse

  6. Eclipse Architektur

  7. Metamodelle • EMF begann als Implementierung der MOF • Internes MOF-ähnliches Meta Modell wird Ecore genannt. • Beschränkt sich auf den Kern der MOF • MOF 2.0 definiert einen ähnlichen Kern genannt EMOF (Essential MOF), der mit Ecore vergleichbar ist. • Transformation von MOF nach Ecore und zurück i.d.R. problemlos möglich.

  8. Erstellung von Modellen • EMF kann Modelle aus XMI laden • Manuell erzeugt mit einem XML oder Text-Editor • Exportiert aus Modellierungswerkzeugen wie Rational Rose • Editor-Plugins für Eclipse die EMF-Modelle erstellen und bearbeiten können z.B. Omondo • Modelle können aus kommentierten Java Interfaces generiert werden. • „Best of Breed“ • EMF definiert nur Basisstruktur und einen sehr grundlegenden Editor • Tools wie Rational Rose oder Omondo zum Bearbeiten der Modelle, der Benutzer kann bestes Werkzeug auswählen

  9. Beispiel

  10. Ecore Darstellung • <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" [...]> <eClassifiers xsi:type="ecore:EClass" name="Book"> <eStructuralFeatures xsi:type="ecore:EAttribute“ name="title" eType="ecore:EDataType [...] EString"/> <eStructuralFeatures xsi:type="ecore:EAttribute“ name="pages" eType="ecore:EDataType [...] EInt"/> </eClassifiers></ecore:EPackage>

  11. Kommentiertes Java-Interface • /** • * @model • */ • public interface Book • { • /** • * @model • */ • String getTitle(); • /** • * @model • */ • int getPages(); • }

  12. Generierter Java-Code • public class BookImpl extends EObjectImpl implements Book { • [...] • protected static final int PAGES_EDEFAULT = 0; • protected int pages = PAGES_EDEFAULT; • /** • * @generated • */ • public int getPages() { • return pages; • } • /** • * @generated • */ • public void setPages(int newPages) { • int oldPages = pages; • pages = newPages; • if (eNotificationRequired()) • eNotify(new ENotificationImpl(this, Notification.SET, LibraryPackage.BOOK__PAGES, oldPages, pages)); • } [...]

  13. Anpassung des Java-Codes • In den generierten Javaklassen können eigene Methoden und Member hinzugefügt werden. • Generierte Methoden können überschrieben werden indem das @generated – JavaDoc-Tag entfernt wird • Ersetzen der generierten Methode durch eine mit “Gen”-Postfix

  14. Vorteile des generierten Java-Codes • Trennung von Interface und Implementierung • Factory Pattern für leichte Erweiterbarkeit • Notifier für alle Attribute durch Observer Pattern • Lazy Loading durch Proxy Pattern • Leichter Zugriff auf Metadaten via Reflection • Referenzielle Integrität • Serialisation nach XMI • Persistenz • Leichter Austausch von Daten mit XML-Dateien • Referenzen bleiben erhalten auch über mehrere Dateien

  15. Zusammenfassung / Ausblick • Eclipse Modeling Framework (EMF) ist ein leistungsstarkes Framework zur Generierung von Java-Code auf Basis eines EMF-Klassenmodells • Generierte Modelle häufig effizienter als POJOs • Bereits praktisch einsetzbar • Intern in vielen IBM Produkten genutzt z.B. Websphere • Sehr leicht Editoren, zukünftig auch graphische Editoren für die Modelle generierbar

  16. Literatur • B. Moore, D. Dean, A. Gerber, G. Wagenknecht und P. Vanderheyden, Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework, Redbooks IBM, 2004 • www.eclipse.org/emf

  17. Danke für die Aufmerksamkeit