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.
- Wikipedia-Eintrag zur MDA
- Der MDA-Guide der OMG
- Java-Magazin-Artikel zum Thema MDA
- Online-Artikel der software-kompetenz.de zum Thema MDA
- Informatik-Lexikon-Eintrag zur MDA der GI
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.
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.
- MDA mit der UML2
- MDA – Einführung und Beispiel an einer praktischen Anwendung
- Model Driven Architecture und Referenzarchitekturen
- Proseminar MDA
- MDA – Praktisch
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.