AndroMDA - Universität Münster

Werbung
WIRTSCHAFTSINFORMATIK
Westfälische
Wilhelms-Universität
Münster
WIRTSCHAFTS
INFORMATIK
AndroMDA
Vortrag im Rahmen des Seminars
"Software Engineering"
Irina Thome
Agenda
WIRTSCHAFTS
INFORMATIK
1. AndroMDA
1. Einführung
2. Komponenten
3. Funktionsweise
2. Arbeiten mit AndroMDA
1. Entwicklungsumgebung
2. Beispiel
3. Kritische Würdigung
3. Fazit
2
Agenda
WIRTSCHAFTS
INFORMATIK
1. AndroMDA
1. Einführung
2. Komponenten
3. Funktionsweise
3. Arbeiten mit AndroMDA
3. Entwicklungsumgebung
4. Beispiel
5. Kritische Würdigung
4. Fazit
3
AndroMDA
WIRTSCHAFTS
INFORMATIK

Open Source MDA-Generator

Dokumentation und Support unter www.andromda.org

Eingesetzt u.a. bei Lufthansa Systems

Letzte stabile Version: AndroMDA 3.2

Neueste verfügbare Version: AndroMDA 4.0-M1-Snapshot
4
AndroMDA
WIRTSCHAFTS
INFORMATIK

Codegenerierungs-Framework

Hohe Anpassbarkeit durch modulare Architektur

Kernkomponente: template-basierter Generator

Ziel: Transformation von PIM in PSM und von PSM in Code
5
AndroMDA
WIRTSCHAFTS
INFORMATIK

Automatisierung von redundanten Standard-Aufgaben (bis
zu 90% des Aufwands)

Nur Geschäftslogik muss weiterhin von Hand implementiert
werden

Prototypische Implementierung einer Onlinebibliothek mit
rudimentärem UI ergibt:
Code
LOC
%
generiert
8144
99,742
manuell
21
0,258
6
Aufbau von AndroMDA
WIRTSCHAFTS
INFORMATIK
Modell (XMI)
AndroMDA
Cartridge
Translation
Libraries
Template
Engine
Datatype
Mappings
Vollständiger Code
MetaData
Repository
Templates
Metafacades
Codefragmente
Quelle: vgl. Dewanto (2006)
7
MetaData Repository
WIRTSCHAFTS
INFORMATIK

Einlesen einer XMI Datei

Abbildung als instanziiertes Metamodell im Speicher

Interne Repräsentation der Modellelemente als JavaObjekte
- z.B. Modellklasse Kunde  Java-Objekt der Klasse Class;
Name-Attribut hat den Wert Kunde

Zugriff über JMI (Java Metadata Interface) möglich

Grundlage für weitere Transformation
8
Cartridges
WIRTSCHAFTS
INFORMATIK

JAR-Archive mit Templates, Metafacades und Deskriptoren

Zentrale Komponente der Codegenerierung

Erlauben Verarbeitung von Modellelementen, die mit
Stereotypen gekennzeichnet sind oder deren Abhängigkeit
sich aus bestimmten Konditionen ergibt

Zur Verfügung stehen Cartridges für:
- BPM4Struts, jBPM, JSF, EJB, Hibernate, Java, Meta, Spring,
WebService, XmlSchema
- Erstellung von weiteren Cartridges für individuellen Bedarf möglich
9
Metafacades und Templates
WIRTSCHAFTS
INFORMATIK

Metafacades ermöglichen Zugriff auf Modell-Objekte vom
MDR

verstecken Komplexität des JMI hinter simplen
Schnittstellen-Klassen

weitere Aufgaben:
- Validierung des Metamodells
- Umsetzung der Translation Libraries und der Datatype Mappings

Templates ermöglichen Zugriff auf Methoden der
Metafacade-Klassen
10
Template Engine
WIRTSCHAFTS
INFORMATIK

Verarbeitung der Templates

Unterstützt: Velocity und FreeMarker
Quelle: Karner (2006)
11
Translation Libraries
WIRTSCHAFTS
INFORMATIK

Verarbeitung von Ausdrücken in OCL, z.B. für
Datenbankanfragen
OCL (Object Constraint Language):
context
Kunde::getKandidaten(wohnort:
String, mindestalter:
Integer): Collection(Kunde)
body
getKandidatenBody:
allInstances()->
select (Kunde|Kunde.ort =
wohnort and Kunde.alter >=
mindestalter)
Hibernate Query Language:
from seminar.Kunde as kunde
where
kunde.ort = :wohnort and
kunde.alter >= :mindestalter
EJB Query Language:
SELECT DISTINCT OBJECT(kunde)FROM
Kunde kunde
WHERE
kunde.ort = ?1 AND kunde.alter
>= ?2
12
Datatype Mappings
WIRTSCHAFTS
INFORMATIK

Übersetzung von Datentypen des Modells in Zielsprache
<mappings name="Java">
</mapping>
...
<mapping>
<from>guarded</from>
<to>synchronized</to>
</mapping>
<mapping>
<from>sequential</from>
<to/>
</mapping>
<mapping>
<from>datatype::File</from>
<to>java.io.File</to>
</mapping>
<mapping>
<from>datatype::String</from>
<to>java.lang.String</to>
</mapping>
...
<mapping>
<from>datatype::void</from>
<to>void</to>
</mapping>
<mapping>
<from>datatype::ContentHandle
r</from>
<to>org.xml.sax.ContentHandle
r</to>
</mapping>
…
</mappings>
13
AndroMDA Framework
WIRTSCHAFTS
INFORMATIK
Quelle: Karner (2006)
14
Funktionsweise von AndroMDA
WIRTSCHAFTS
INFORMATIK

Überführen eines UML-Modells im XMI-Format

Einlesen der XMI-Datei von Repository-Komponente

Abbildung im Speicher als instanziiertes UML-Metamodell
in Form von Java-Objekten

Zugriff über Metafacades und Templates einer Cartridge

Steuerung der Codegenerierung durch Template Engine
15
Agenda
WIRTSCHAFTS
INFORMATIK
1. AndroMDA
1. Einführung
2. Komponenten
3. Funktionsweise
2. Arbeiten mit AndroMDA
1. Entwicklungsumgebung
2. Beispiel
3. Kritische Würdigung
3. Fazit
16
Entwicklungsumgebung
WIRTSCHAFTS
INFORMATIK






Steuerung über Maven-Plugin
- Maven: auf Java basierendes Build Management Tool
- Lädt sämtliche benötigten Plugin's automatisch übers Internet
UML-Modellierungswerkzeug: MagicDraw 9.5 Community
Edition
Datenbank: MySQL Server 5.0
Java Development Kit 1.0.5
JBoss Application Server 5.0.5
Eclipse
17
Beispielanwendung
WIRTSCHAFTS
INFORMATIK

Anlegen eines AndroMDA-Projektes

Entstehende Ordnerstruktur:
- mda: UML-Modell der Anwendung
- common: Klassen und Ressourcen, auf die von mehreren
Teilprojekten zugegriffen wird
- core: Klassen und Ressourcen, die Spring (und optional Hibernate
und/oder EJB) verwenden
- web: Klassen und Ressourcen der Präsentationsschicht
- app: Klassen und Ressourcen, die zum Bilden der .ear Files
benötigt werden
18
Beispielanwendung
WIRTSCHAFTS
INFORMATIK

Codegenerierung

Für eine Klasse User mit Stereotyp <<Entity>> werden
erzeugt:
- User.java: abstrakte Klasse; implementiert die User-Entität
- UserImpl.java: konkrete Erweiterung von User.java (vom
Entwickler zu ergänzen)
- UserDao.java: Interface; definiert Methoden für das Data Access
Object
- UserDaoBase.java: implementiert die Methoden von UserDao.java
- UserDaoImpl.java: konkrete Erweiterung für UserDao (vom
Entwickler zu ergänzen)
19
Bewertung des Entwicklungsprozesses
WIRTSCHAFTS
INFORMATIK
Positiv




Die meisten Werkzeuge sind Open Source
Code-Generierung funktioniert gut
AndroMDA übernimmt die lästigen, zeitraubenden
Aufgaben
Entwickler kann sich auf das Wesentliche konzentrieren
20
Bewertung des Entwicklungsprozesses
WIRTSCHAFTS
INFORMATIK
Negativ



Kompatibilitätsprobleme beim Einrichten der Entwicklungsumgebung
Teils fehlende oder lückenhafte Dokumentation, tote Links
auf der Support-Webseite
Für unerfahrene Benutzer schwierige Bedienung über
Kommandozeile
21
Agenda
WIRTSCHAFTS
INFORMATIK
1. AndroMDA
1. Einführung
2. Komponenten
3. Funktionsweise
2. Arbeiten mit AndroMDA
1. Entwicklungsumgebung
2. Beispiel
3. Kritische Würdigung
3. Fazit
22
Fazit
WIRTSCHAFTS
INFORMATIK

MDA soll Vorteile bei Software-Entwicklung bringen

AndroMDA setzt MDA-Idee um

Fast 100% automatische Codegenerierung im Back-End
möglich

Unterstützung der Transformation von Modellen zu Code

Nicht triviale Installation und Bedienung, mangelnde
Dokumentation

Daher eher für erfahrene Anwender empfehlenswert
23
Herunterladen