eclipse modelling framework
Download
Skip this Video
Download Presentation
Eclipse Modelling Framework

Loading in 2 Seconds...

play fullscreen
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

Eclipse Modelling Framework

Christian Kästner

Modellgetriebene Softwareentwicklung

berblick
Überblick
  • Einleitung EMF
  • Einordnung
  • Eclipse Platform
  • Modellerstellung
  • Code Generierung
  • Zusammenfassung/Ausblick
slide3
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
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
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
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
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
Kommentiertes Java-Interface
  • /**
  • * @model
  • */
  • public interface Book
  • {
  • /**
  • * @model
  • */
  • String getTitle();
  • /**
  • * @model
  • */
  • int getPages();
  • }
generierter java code
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
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
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
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
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
ad