EMF & Texo: Model-Driven Software Development Lecture
120 likes | 210 Vues
Explore Eclipse Modeling Framework (EMF), Texo, benefits, challenges, implementation, and practical applications. Discover how Texo streamlines code generation, enhances Java frameworks, and leverages models effectively in software development.
EMF & Texo: Model-Driven Software Development Lecture
E N D
Presentation Transcript
Benjamin Meyer EMF TexoVorlesung – ModellgetriebeneSoftwareentwicklungHochschule Karlsruhe – Technik und Wirtschaft
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
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
EMF Metamodelle • Zwei Metamodelle • EMF basiert auf zwei Metamodelle: • das Ecore (Informationen über die def. Klassen) und • Genmodel Modell (zusätzliche Infos, Pfad usw.)
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ötigt
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ünden
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!)
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
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)
Den POJOs ein Model-Gesicht „geben“ Output ist: