Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rickert Kessen Geändert vor über 10 Jahren
1
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework
2
EMF / Christian Kästner / 2 Überblick Einleitung EMF Einordnung Eclipse Platform Modellerstellung Code Generierung Zusammenfassung/Ausblick
3
EMF / Christian Kästner / 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 / Christian Kästner / 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
EMF / Christian Kästner / 5 Eclipse
6
EMF / Christian Kästner / 6 Eclipse Architektur
7
EMF / Christian Kästner / 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
EMF / Christian Kästner / 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
EMF / Christian Kästner / 9 Beispiel
10
EMF / Christian Kästner / 10 Ecore Darstellung
11
EMF / Christian Kästner / 11 Kommentiertes Java-Interface /** * @model */ public interface Book { /** * @model */ String getTitle(); /** * @model */ int getPages(); }
12
EMF / Christian Kästner / 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
EMF / Christian Kästner / 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
EMF / Christian Kästner / 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
EMF / Christian Kästner / 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
EMF / Christian Kästner / 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
EMF / Christian Kästner / 17 Danke für die Aufmerksamkeit
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.