Model Driven Architecture

Werbung
Stunde5-Archi.ink
Model Driven Architecture
MDA verspricht
Verkürzung der Entwicklungszeit
1
Stunde5-Archi.ink
MDA unterscheidet vier verschieden Abstraktionsebenen, M0 bis M3
M0 Die konkrete Instanzen des UML Modells
also ein konkreter Patient "Maier"
Maier: Patient
Beispiel Auto
Auf der Ebene M0 würden wir ein konkretes Auto,
z.B. einen Maybach 57 mit Fahrgestellnummer 12dkd finden
2
Stunde5-Archi.ink
M1 Konkretes UML-Klassendiagramm
Konkretes UML Modell
mit anwendungsspezifischen
Klassen, Assoziationen,
Methoden usw.
Diese Ebene ist eine
konkrete Instanz des UML
Meta-Modells
Beispiel Maybach:
auf dieser Ebene befindet sich der Bauplan
(die Baupläne z.B. für Außenmaße, Elektrik usw.)
3
Stunde5-Archi.ink
M2 UML Metamodell
UML Metamodell beschreibt die Sprachelemente von UML.
Hier sieht man, dass eine Klasse mehrere Operationen (Methoden) haben kann
Diese Ebene ist eine konkrete
Instanz des Meta-Meta-Modells
Beispiel Auto:
Auf dieser Ebene ist beschrieben, welche Zeichnungselemente in einem
Bauplan erscheinen können (z.B. durch ISO Normen festgelegt)
4
Stunde5-Archi.ink
M3 Meta-Meta-Modell (MOF Meta object Facility)
Diese Ebene definiert die Sprache,
um Metamodelle (z.B. UML Klassendiagramme,
UML UseCase-Diagramme) zu beschreiben.
Beispiel Auto:
Meta-Norm, die beschreibt, wie man (neue) Normen für Baupläne erstellt
5
Stunde5-Archi.ink
PIM ums PSM
Man unterscheidet
- Plattformunabhängiges Modell (platform independent model PIM) und
- Plattformabhängiges Modell (platform specific model PSM)
Modell to Modell
PIM
Transformation
PSM
Codegenerator
Code
public interface
MedikamentLocal {
}
6
Stunde5-Archi.ink
"The MDA is a new way of writing specifications and devleoping
applications bases on a platform independent model (PIM)
plus one or more platform specific models (PSM)"
Zeitliche Entwicklung
7
Stunde5-Archi.ink
Erfahrungen mit MDA
- Viele Werkzeuge sind keine MDA-Werkzeuge, sondern Codegeneratoren, da sie den Schritt
PIM -> PSM überspringen
- MDA empfiehlt sich für Standardarchitekturen (z.B. J2EE), da eine hohe
Wiederverwendbarkeit erreicht werden kann
- MDA empfiehlt sich nicht zur Modellierung dynamischen Verhaltens
- Es bedarf spezifischer Erweiterungen: DSL Domain Specific Languages
- Austausch von Modellinformationen über XMI (XML-Sprache zur Beschreibung von UML
Diagrammen) oft problematisch
Tools
- Interactive Objects, ArcStyler
- AndroMDA www.andromda.org: Generierung z.B. von EJBs aus UML Klassendiagrammen
(OpenSource)
- Middlegen: Generierung von Code aus Annotationen (XDoclet) im "fachlichen" Java Code
8
Herunterladen