MDA – Framework AndroMDA SS12 – Stephan Sauer
Inhalt Vorstellung AndroMDA Architektur / Komponenten Demo Fazit Nützliche Links
AndroMDA ? gesprochen: „Andromeda“ Ursprung: Codegenerators „UML2EJB“ von Matthias Bohlen Start 2003 Letztes Release: 3.3 aus 04/2008 !! Aktuell: 3.4-SNAPSHOT (23 Jan 2012)
AndroMDA – Umfeld Java SDK >= 1.5 Maven 3 (empfohlen) oder Ant Beliebiger Application server, z.B. JBoss7 Beliebige Datenbank MySQL, Oracle, H2, … UML-Tool (UML 1.4/XMI 1.2 oder UML2 3.x/EMF/XMI2): ArgoUML, MagicDraw 9.5, MagicDraw 11.5 bis 17, RSM 7/8, Eclipse Papyrus
AndroMDA – Schwerpunkt Unterstützung beim Aufbau einer Enterprise Application Generierung einzelner Schichten inkl. Austauschobjekten J2EE und .NET Aktivitäts- diagramm Klassendiagramm
Architektur EJB AndroMDA Maven UML-Tool (MagicDraw) spez. UML- Profile (z.B. Stereotypen EJB Cartridge (Java) XMI AndroMDA Metamodel – Repository (Netbeans MDR, EMF) Metamodel Instanz Translation Libraries (OCL) Metafacades Datatype Mappings Template Engine (Apache Velocity / Freemarker) Quellcode (vollständig) Quellcode (Rahmen) Maven
Cartridge Java Cartridge (Super-)Metafacade Template-Engine Deskriptoren (Konfiguration) VTL-Templates (plattformspezifisch) Metafacade (plattformspezifisch) (Super-)Metafacade Template-Engine
Verfügbare Cartridges BPM4Struts jBPM JSF EJB EJB3 Spring WebService Hibernate Java Meta(facade) XmlSchema … eigene …
Einordnung zur Vorlesung Tier Generator Model (komplette Anwendungsschicht inkl. abgeleiteten Klassen) AndroMDA mit Maven inkl. Deployment
DEMO
Fazit kein All-in-one-Tool keine Möglichkeit nur Teilschritte durchzuführen … Generierung DB-Schema? angeblich existiert ein Eclipse-Plugin, aber wo? bietet kein Reverse Engineering auf Code-Basis (Cartridge schema2xmi: DB-Schema XMI-Modell) viele tote Links auf andromda.org Beispiele (eigene cartridge bauen) zum Teil unvollständig erstes Sample-Projekt mit veralteten Informationen
Fazit ein Command um Rahmenprojekt aufzusetzen „Mächtig“ (EJB, JSF, …) eigene Cartridge realisieren Architektur - Schichten (inkl. abgeleiteter Impl.-Klassen) TDD Generierung Unit Test Klassen (TestNG) Kombination mit Maven und Eclipse-Konvertierung
Links und was man sonst noch braucht … Projektseite: http://www.andromda.org/docs/index.html Anleitung für Java-Beispiel: http://www.andromda.org/docs/andromda-documentation/getting-started-java/index.html AndroMDA Cartridges: http://galaxy.andromda.org/docs/andromda-cartridges/index.html Cartridge erstellen: http://www.oio.de/andromda-cartridge.htm Translation-Library für OCL: http://www.andromda.org/docs/andromda-translation-libraries/index.html Velocity: http://velocity.apache.org/engine/devel/user-guide.html Rahmenprojekt aufsetzen: 1) Maven3 installieren 2) C:\[PFAD]>mvn org.andromda.maven.plugins:andromdapp-maven-plugin:3.4-SNAPSHOT:generate 3) „Instal-Dialog“