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