Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Motivation Motivation Grundlagen Grundlagen Technologien Technologien Manipulation Manipulation Ecore Ecore Genmodell Genmodell Demo Demo Persistenz Persistenz.

Ähnliche Präsentationen


Präsentation zum Thema: "Motivation Motivation Grundlagen Grundlagen Technologien Technologien Manipulation Manipulation Ecore Ecore Genmodell Genmodell Demo Demo Persistenz Persistenz."—  Präsentation transkript:

1

2 Motivation Motivation Grundlagen Grundlagen Technologien Technologien Manipulation Manipulation Ecore Ecore Genmodell Genmodell Demo Demo Persistenz Persistenz Notification Notification Ausblick GMF Ausblick GMF Fazit / Quellen Fazit / Quellen

3 Soll ich Modellieren oder Programmieren? sowohl als auch!!! Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung durch Code-Generierung (und Fehlerminimierung) Produktivitäts-Steigerung durch Code-Generierung (und Fehlerminimierung) Software (Modell) leicht erweiterbar Software (Modell) leicht erweiterbar Annehmlichkeiten eines Frameworks nutzen (Notification, Persistenz, …) Annehmlichkeiten eines Frameworks nutzen (Notification, Persistenz, …)

4 EMF ist ein eigenständiges Eclipse-Projekt EMF ist ein eigenständiges Eclipse-Projekt Modellgetriebene Entwicklung Modellgetriebene Entwicklung Pragmatischer Ansatz von Model-Driven Software Development (MDSD) Pragmatischer Ansatz von Model-Driven Software Development (MDSD) Quelltextgenerierungs-Framework zur Erzeugung diverser Quellcode Artefakte Quelltextgenerierungs-Framework zur Erzeugung diverser Quellcode Artefakte Modell-Input/Output: Modell-Input/Output: XML-Schema XML-Schema Java-Code mit Annotations Java-Code mit Annotations UML-Diagramm UML-Diagramm Baum-Editor Baum-Editor Modell-Funktionalitäten: Modell-Funktionalitäten: Instanzierung Instanzierung Abfragen Abfragen Manipulieren Manipulieren Serialisieren, validieren, Persistenz Serialisieren, validieren, Persistenz Notification für MVC Notification für MVC Generieren von JUnit-Code, um den generierten Code zu testen Generieren von JUnit-Code, um den generierten Code zu testen

5 Vereinigt drei Technologien: Vereinigt drei Technologien: XML XML UML UML Java Java EMF ist die abstrahierte Notation, welche die Repräsentationen verbindet EMF ist die abstrahierte Notation, welche die Repräsentationen verbindet Modellierung des Datenmodells: Modellierung des Datenmodells: UML UML Java mittels Annotations Java mittels Annotations XMI (XML mit vordefinierten Tags) XMI (XML mit vordefinierten Tags)

6 Veränderung des Datenmodells werden in allen Repräsentation nachgezogenVeränderung des Datenmodells werden in allen Repräsentation nachgezogen

7 ecore ist die Meta-Sprache zur Definition des Daten-Modells ecore ist die Meta-Sprache zur Definition des Daten-Modells Grundlage für die Quelltexterzeugung Grundlage für die Quelltexterzeugung Eclipse bietet eine Baum-Editor für die Erfassung des ecore- Modells (siehe Bild) Eclipse bietet eine Baum-Editor für die Erfassung des ecore- Modells (siehe Bild) Gewisse Eigenschaften können nur im Baum-Editor gesetzt werden Gewisse Eigenschaften können nur im Baum-Editor gesetzt werden Salopp betrachtet, entspricht es dem Klassendiagramm Salopp betrachtet, entspricht es dem Klassendiagramm Konkret: Spezifikation der Daten einer Anwendung (Nutzdaten) Konkret: Spezifikation der Daten einer Anwendung (Nutzdaten) Objekte mit Attributen Objekte mit Attributen Relationen (Assoziationen) zwischen Objekten Relationen (Assoziationen) zwischen Objekten Operationen auf Objekten Operationen auf Objekten Einfache Bedingungen (z.B. Multiplizität) von Objekten und Relationen Einfache Bedingungen (z.B. Multiplizität) von Objekten und Relationen

8 Daten-Modell unserer Anwendung leitet schlussendlich von EObject ab: primär EClass, EAttribute, EReference Persistenz, Notification, … Daten-Modell unserer Anwendung leitet schlussendlich von EObject ab: primär EClass, EAttribute, EReference Persistenz, Notification, … /** abstract="true" */ public interface Shape extends EObject {... }

9 durch genmodel wird die Quelltexterzeugung ermöglicht durch genmodel wird die Quelltexterzeugung ermöglicht im Gegensatz zur ecore stellt es plattformspezifische (CPU/OS) Informationen zu Verfügung im Gegensatz zur ecore stellt es plattformspezifische (CPU/OS) Informationen zu Verfügung Mittels genmodels kann konfiguriert werden, wie der Quelltext generiert werden soll: Mittels genmodels kann konfiguriert werden, wie der Quelltext generiert werden soll: Angabe der weiter benötigten Package für die Code-Generierung Angabe der weiter benötigten Package für die Code-Generierung Spezifikation des Base Package Spezifikation des Base Package Vorgang wird meistens durch einen Wizard unterstützt Vorgang wird meistens durch einen Wizard unterstützt

10

11 Standardmässig wird eine dateibasierte Persistenz auf XML- Basis angeboten Standardmässig wird eine dateibasierte Persistenz auf XML- Basis angeboten Beispiel Speichern/Laden eines EObject in XMI: Beispiel Speichern/Laden eines EObject in XMI: // ResourceSet erzeugen ResourceSet resourceSet = new ResourceSetImpl(); // URI zur Modelldatei (XMI) festlegen URI fileURI = URI.createFileURI(new File("anyModelFile.xmi").getAbsolutePath()); // Resource für Modelldatei anlegen Resource resource = resourceSet.createResource(fileURI); // Ein Objekt vom Typ Vertrag hinzufügen RectabgularShape rectangle = EvmsFactory.eInstance.createRectabgularShape(); resource.getContents().add(rectangle); // Inhalt von Resource speichern resource.save(Collections.EMPTY_MAP);

12 Plugin EMF Teneo Plugin EMF Teneo Ermöglicht die Anbindung an eine beliebige relationalen Datenbank Ermöglicht die Anbindung an eine beliebige relationalen Datenbank Nutzt vorhandene O/R-Mapping-Technologien wie Hibernate oder EclipseLink Nutzt vorhandene O/R-Mapping-Technologien wie Hibernate oder EclipseLink

13 public interface EObject extends Notifier {... } public interface Shape extends EObject {... } public abstract class ShapeImpl extends EObjectImpl implements Shape {... */ */ public void setName(String newName) { public void setName(String newName) { String oldName = name; String oldName = name; name = newName; name = newName; if (eNotificationRequired()) if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.SHAPE__NAME, oldName, name)); eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.SHAPE__NAME, oldName, name)); }... Ist ein Benachrichtigungs-Mechanismus bei Änderungen eines Objektes Observer-Pattern Ist ein Benachrichtigungs-Mechanismus bei Änderungen eines Objektes Observer-Pattern Dient zur Aktualisierung von Views und abhängigen Objekten (MVC) Dient zur Aktualisierung von Views und abhängigen Objekten (MVC) Notification ist wichtiger Bestandteil von EMF Notification ist wichtiger Bestandteil von EMF Jedes Objekt des Daten-Modells leitet von EObject ab und implementiert somit automatisch Notifier Jedes Objekt des Daten-Modells leitet von EObject ab und implementiert somit automatisch Notifier

14 Erlaubt einen beliebigen, grafischen Editor «zusammen zu klicken» ohne eigenen Code zu schreiben. Diese Arbeit wird von Generatoren übernommen. Erlaubt einen beliebigen, grafischen Editor «zusammen zu klicken» ohne eigenen Code zu schreiben. Diese Arbeit wird von Generatoren übernommen. GMF verwendet EMF um das Daten-Metamodell abzubilden GMF verwendet EMF um das Daten-Metamodell abzubilden GMF greift auf GEF (Graphical Editing Framework) zurück, dieses stellt umfangreiche Klassen für die graphische Darstellung und Werkzeuge für Editoren bereit. GMF greift auf GEF (Graphical Editing Framework) zurück, dieses stellt umfangreiche Klassen für die graphische Darstellung und Werkzeuge für Editoren bereit.

15

16 Enge Eclipse-Integration: Generierung von UI-Komponenten, Zusammenarbeit mit anderen Eclipse-Projekten, etwa im Eclipse Graphical Modeling Framework (GMF) Enge Eclipse-Integration: Generierung von UI-Komponenten, Zusammenarbeit mit anderen Eclipse-Projekten, etwa im Eclipse Graphical Modeling Framework (GMF) Man bekommt als Entwickler viel geschenkt, etwa Persistenz und Validierung. Dies steigert die Produktivität beim Entwickeln. Man bekommt als Entwickler viel geschenkt, etwa Persistenz und Validierung. Dies steigert die Produktivität beim Entwickeln. Wenig Einarbeitungszeit notwendig zum Modellieren aufgrund vieler Möglichkeiten der Modellierung (XML, UML, Java-Annotations) Wenig Einarbeitungszeit notwendig zum Modellieren aufgrund vieler Möglichkeiten der Modellierung (XML, UML, Java-Annotations) Einsatz von Code-Generatoren steigert Produktivität und reduziert Wiederholungen und damit mögliche Fehlerquellen Einsatz von Code-Generatoren steigert Produktivität und reduziert Wiederholungen und damit mögliche Fehlerquellen Basiert auf offenen Standards und Open-Source-Frameworks Basiert auf offenen Standards und Open-Source-Frameworks Nur noch geringfügige Konfigurationen oder manuelle Anpassungen am Quellcode für das Daten-Modell erforderlich Nur noch geringfügige Konfigurationen oder manuelle Anpassungen am Quellcode für das Daten-Modell erforderlich Erste Erfolge sind schnell erreicht. Komplexe Aufgaben erfordert tiefere Einarbeitung in das Thema aufwendig Erste Erfolge sind schnell erreicht. Komplexe Aufgaben erfordert tiefere Einarbeitung in das Thema aufwendig Diverse Anbindung an EMF vorhanden: GMF, Teneo, … Diverse Anbindung an EMF vorhanden: GMF, Teneo, … Es gelten die allgemeinen Vor-/Nachteile von Frameworks (Einarbeitung, Komfort, Skalierbarkeit, Abstraktion, Standard-Lektüre, …) Es gelten die allgemeinen Vor-/Nachteile von Frameworks (Einarbeitung, Komfort, Skalierbarkeit, Abstraktion, Standard-Lektüre, …) Framework-Wechsel erfordert komplettes Redesign Framework-Wechsel erfordert komplettes Redesign

17 Web: Web: EMF-Projekt-Homepage: EMF-Projekt-Homepage: EMF-Tutorial für Eclipse: EMF-Tutorial für Eclipse: GMF-Tutorial: Step.pdf GMF-Tutorial: Step.pdf Step.pdf Step.pdf Bücher: Bücher: EMF Eclipse Modeling Framework, Addison Wesley, ISBN 10: EMF Eclipse Modeling Framework, Addison Wesley, ISBN 10:


Herunterladen ppt "Motivation Motivation Grundlagen Grundlagen Technologien Technologien Manipulation Manipulation Ecore Ecore Genmodell Genmodell Demo Demo Persistenz Persistenz."

Ähnliche Präsentationen


Google-Anzeigen