Eclipse modelling framework
Download
1 / 17

Eclipse Modelling Framework - PowerPoint PPT Presentation


  • 138 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Eclipse Modelling Framework' - hampton


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Eclipse modelling framework l.jpg

Eclipse Modelling Framework

Christian Kästner

Modellgetriebene Softwareentwicklung


Berblick l.jpg
Überblick

  • Einleitung EMF

  • Einordnung

  • Eclipse Platform

  • Modellerstellung

  • Code Generierung

  • Zusammenfassung/Ausblick


Slide3 l.jpg
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


Emf im mdsd kontext l.jpg
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




Metamodelle l.jpg
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.


Erstellung von modellen l.jpg
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



Ecore darstellung l.jpg
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>


Kommentiertes java interface l.jpg
Kommentiertes Java-Interface

  • /**

  • * @model

  • */

  • public interface Book

  • {

  • /**

  • * @model

  • */

  • String getTitle();

  • /**

  • * @model

  • */

  • int getPages();

  • }


Generierter java code l.jpg
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));

  • } [...]


Anpassung des java codes l.jpg
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


Vorteile des generierten java codes l.jpg
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


Zusammenfassung ausblick l.jpg
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


Literatur l.jpg
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