Download - Benjamin Meyer

Transcript
Page 1: Benjamin Meyer

EMF TexoVorlesung – Modellgetriebene SoftwareentwicklungHochschule Karlsruhe – Technik und Wirtschaft

Benjamin Meyer

Page 2: 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

Page 3: Benjamin Meyer

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

Page 4: Benjamin Meyer

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

Page 5: Benjamin Meyer

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

Page 6: Benjamin Meyer

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

Page 7: Benjamin Meyer

7

Interner Datenfluss von Texo

31.05.2013

Page 8: Benjamin Meyer

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

Page 9: Benjamin Meyer

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

Page 10: Benjamin Meyer

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

Page 11: Benjamin Meyer

Live Präsentation und Diskussion

31.05.2013 11

Page 12: Benjamin Meyer

12

Den POJOs ein Model-Gesicht „geben“

27.10.2011

Output ist: