Model Driven Architecture

Im Rahmen eines Referats im Fach Informationsmanagement durfte ich mich (wie schon oft erwähnt) mit dem Thema MDA auseinandersetzen. Obwohl ich zwar schon mit UML gearbeitet hatte, war mir dieses Vorgehensmodell, das hauptsächlich mit Hilfe von UML-Diagrammen umgesetzt wird, bislang nicht bekannt. Von daher durfte ich mich erstmal einlesen, was aber dank der folgenden Quellen recht flott ging. Besonders der Java-Magazin-Artikel war echt hilfreich, gerade was die Praxisaspekte angeht.

Kurz und knapp kann man die Vorgehensweise wohl wie folgt beschreiben. Man fängt (wie eigentlich bei allen Vorgehensmodellen) mit dem fachlichen Entwurf an, sozusagen dem Lastenheft oder Fachkonzept, das die rein fachlichen Anforderungen an das System beschreibt. Das Modell, das im Rahmen der MDA hierzu eingesetzt wird nennt sich CIM: Computation Independent Model. Aus diesem Modell wird dann das eigentliche Kernmodell der MDA erstellt, das PIM: Platform Independent Model. Dieses Modell, das mit Hilfe von UML-Profilen komplett in UML umgesetzt wird, dient später zur automatisierten Transformation in das PSM: Platform Specific Model, das auf eine konkrete Plattform angepasst ist (z.B. .NET oder CORBA). Aus diesem kann dann letztlich der Quelltext generiert werden. Diesen Vorgang habe ich einmal in der folgenden Grafik illustriert.

Transformation der Modelle bei der MDA

Mein Thema lautete UML im IS-Management – Die Model Driven Architecture, daher musste ich im Speziellen auf die Einsetzbarkeit der MDA im Rahmen des Managements der Informationssysteme eingehen. Dazu habe ich leider nicht wirklich viele Quellen gefunden. Von daher war dieser Teil eher eigene Denkarbeit 😉

Aber zum praktischen Einsatz der MDA habe ich wieder mehrere Quellen gefunden. Hauptsächlich Vorlesungsunterlagen von verschiedenen Unis etc. Dort fand ich vor allem die praktischen Umsetzungen und Modell- und Code-Beispiele sehr interessant.

Als Fazit der Arbeit kann ich die MDA durchaus für komplexe Softwareentwicklungs-Projekte empfehlen, aber für kleinere Anwendungen ist sie denkbar ungeeignet. Durch ihre Konzentration auf den Modellentwurf wird im Rahmen kleinerer Projekte meines Erachtens ein zu großer Overhead produziert, wo die Software vielleicht in wenigen Tagen umgesetzt werden könnte. Außerdem ist das grundlegende Konzept der MDA, die Langlebigkeit der abstrakten Modelle, bei kleinen Applikationen nicht gegeben, sodass die Vorteile dieser Vorgehensweise dort nicht greifen.

In eigenen größeren Projekten würde ich die Vorgehensweise der MDA durchaus einsetzen, gerade auch, weil ein schöner Nebeneffekt die standardisierte Dokumentation in UML ist. Und zumindest das Grundgerüst des Codes ist auch heute schon durch verschiedene Tools aus dem Platform Independent Model generierbar und erspart somit die eher lästige Programmierung der Klassen- und Methodenrümpfe etc.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax