Uni-Logo

Vorlesung Model Driven Architecture, SS 2006

Allgemeines

Vorlesung
Durchführung Prof. Dr. Peter Thiemann
Zeitmittwochs 14-16 Uhr
OrtSR 00-010/14, Geb. 101

Zeitplan und Folien

Aktuelles

  • Die Abschlussprüfung findet mündlich am 28./29.09.2006 statt, bitte vereinbaren Sie bis zum 31.07.2006 einen Termin mit dem Dozenten.
  • Die Vorlesungen am 19.7. und am 26.7. müssen leider ausfallen. Die letzte Vorlesung findet am 12.7. statt
  • Vorlesungsevaluation
  • Die erste Vorlesung findet am Mittwoch, den 03.05.2006, statt.
  • Die Vorlesung wird aufgezeichnet.

    Electures Seite

    Achtung: Die Vorlesungen können nur aus dem Uni-Netz herunter geladen werden.

Beschreibung

Die Vorlesung gibt eine allgemeine Einführung in das Thema MDA (Model Driven Architecture). MDA ist eine Initiative der OMG (Object Management Group), die unter anderem auch die Entwicklung von UML und CORBA (ein Middlewarestandard für plattformübergreifende, verteilte Anwendungen) fortführt.

Die Grundidee von MDA lässt sich mit Slogan Power to the Model umschreiben. Bei Analyse, Definition und Entwurf von Software werden viele Aspekte durch Modelle wie zum Beispiel Klassendiagramme, Kollaborationsdiagramme, Message Sequence Charts, State Chart Diagramme und viele andere mehr beschrieben. Während der Implementierung verwenden die Programmierer diese Diagramme als Richtschnur und bringen zusätzliches Wissen über Plattformen, das heißt, Schnittstellen zu Benutzeroberflächen, Datenbanken, Anwendungsserver usw, ein.

Ein Problem bei dieser Vorgehensweise liegt darin, dass das entstehende Programm nur noch lose mit dem Modell zusammenhängt. Tritt zum Beispiel eine Änderung an der Spezifikation auf, so wird zumeist nur noch das Programm geändert, nicht aber die Modelle, so dass ihr Nutzen als Spezifikation und Dokumentation im Laufe der Zeit verloren geht.

Ein weiteres Problem ist die Vermischung von problembezogenem Code und Schnittstellen-Code. Wenn sich einer der beiden Aspekte (in der Realität sind es nicht nur zwei), Problem oder Plattform, ändert, so muss der gesamte Code inspiziert und geändert werden. Dies wird erforderlich, wenn eine alte Technologie auf den neusten Stand gebracht bzw. durch eine andere ersetzt werden soll.

MDA ist ein Ansatz, diesen Problemkreis in den Griff zu bekommen, indem der Großteil der Programmierung durch Codegenerierung aus Modellen ersetzt wird. Ausgehend von High-level Modellen sollen durch Transformationsschritte vollständige Modelle auf dem gewünschten Abstraktionsgrad erzeugt werden. So soll zum Beispiel das Know-how über eine bestimmte Benutzerschnittstelle in einem Transformationsschritt verborgen werden, so dass ein Austausch der Schnittstelle allein durch Änderung der Transformation bewirkt werden kann.

Wenn der Großteil des Codes aus den Modellen erzeugt wird, dann können Änderungen an der Spezifikation an den Modellen vollzogen werden, die dadurch mit dem eigentlichen Code synchronisiert bleiben. So bleibt der Wert der Modelle während der Fertigstellung und Pflege der Software erhalten.

Letztlich ermöglicht die Verwendung von verschiedenen Modellen auch den Einsatz von Anwendungsspezialisten mit geringen Programmierkenntnissen. Ihr Wissen über die Anwendungslogik fließt über Transformationen in das System ein, ohne dass die Anwendungsspezialisten sich mit Dingen wie Datenbankentwurf oder Windowsystemen beschäftigen müssten.

Inhaltsübersicht in Schlagworten

  • Einführung in das Gebiet
  • UML Modelle in der MDA
  • OCL
  • Techniken zur Erstellung und Beschreibung von benutzerdefinierten Modellen (Metamodellierung) mit konkreten Beispielen
  • Ansätze zur Modelltransformation
  • Ansätze zur Programmgenerierung

Prüfungsleistung

  • Mündliche Prüfung

Material

  • OMG Model Driven Architecture
  • Mellor, Scott, Uhl, Weise. MDA Distilled. Addison-Wesley, 2004.
  • Kleppe, Warmer, Bast. MDA Explained. Addison-Wesley, 2003
  • Stahl, Völter. Modellgetriebene Softwareentwicklung. dpunkt.verlag, 2005.

Peter Thiemann
, Apr 15, 2006