EMF TexoVorlesung – Modellgetriebene SoftwareentwicklungHochschule Karlsruhe – Technik und Wirtschaft
Benjamin Meyer
2
Agenda
Kurzer Ausblick auf nächste Woche: EMF
Wann lohnt sich Texo? Einführung Texo Möglichkeiten mit Texo Vor- und Nachteile von Texo Live Präsentation Diskussion
31.05.2013
3
Eclipse Modeling Framework (EMF) Definition
Java-Framework zur automatisierten Generierung von Quelltext anhand von strukturierten Modellen
Vorgehensweise EMF Modell kann aus XSD, annotierten Java-Interfaces
oder aus UML Diagrammen (beste Lösung) generiert werden (Bsp.: MagicDraw)
Warum mit Modellen arbeiten? Ein Modell ist eine Abstraktion, es bietet eine high-level
Beschreibung von Objekten=> Das Modell ist eine „lebendige“ und up to date Doku
31.05.2013
4
EMF Metamodelle
Zwei Metamodelle EMF basiert auf zwei Metamodelle:▪ das Ecore (Informationen über die def.
Klassen) und ▪ Genmodel Modell (zusätzliche Infos, Pfad
usw.)
31.05.2013
5
Wann lohnt sich Texo?
Zu aller erst braucht man ein Modell = xsd oder ecore
Wann lohnt sich Texo? Wenn man.. Java Beans benötigt ORM benötigt Eine Web Rich Client UI integration mit Einen XML/JSON Rest Web Service
benötigt31.05.2013
6
Einführung Texo Erfinder: Martin Taal (EMF Mitentwickler)
Lateinisch: errichten, bauen MDD erweiterbare Technologie um verschiedene
Artifakte durch Templates zu generieren
Templates für das Generieren der Artifakte Xpand template engine für das Überschreiben
oder Erweitern der generierten Artifakte Texo selbst benutzt seit Oktober 2012 xtend2
aufgrund von performance Gründen31.05.2013
7
Interner Datenfluss von Texo
31.05.2013
8
Möglichkeiten mit Texo Code generieren
„True POJOs“ von Ecore Modell oder XSD
ORM/JPA generieren JPA Annotationen im Sourcecode oder durch eine orm.xml
Generischen CRUD und Query Web Service Layer JSON und XML
Laufzeitunterstützung Auf Ecore Modelle wird zur Laufzeit zugegriffen
Automatisierung möglich mittels ANT, Java (makefile!)31.05.2013
9
Vor- und Nachteile von Texo Vorteile:
POJO Java Beans▪ Keine Laufzeit/Kompilierungs- Abhängigkeiten von Texo▪ Keine spezifischen Annotationen▪ Keine Vererbung von Texo Klassen (im Gegensatz zur EMF
Codegenerierung) Code Formattierung und Code Zusammenführung
(merge)▪ @generated und @generatedNOT
Überschreiben oder Erweitern der standart Templates
Einfache Einführung des Texo Frameworks▪ Gute Dokumentation, wenig Wissen nötig
31.05.2013
10
Vor- und Nachteile von Texo Nachteile:
Abhängigkeit von der Eclipse IDE bei der Generierung▪ Sprich für XML/JSON Rest Web Service: auf
den Servern muss eine Eclipse Installation vorliegen
Wie so oft: Viel „Magie“ im Hintergrund Kein richtiger Support (aber: Entwickler
selbst ist sehr präsent im Forum)
31.05.2013
Live Präsentation und Diskussion
31.05.2013 11
12
Den POJOs ein Model-Gesicht „geben“
27.10.2011
Output ist: