MDA ist nicht nur ein Smartphone-Modell von T-Mobile, sondern hat auch in der Softwareentwicklung eine wachsende Bedeutung. MDA steht für Model Driven Architecture und beschreibt einen modellgetriebenen Ansatz in der Softwareentwicklung. Diese Vorgehensweise hat den Anspruch einen Großteil des Quellcodes automatisch zu generieren. Hierzu werden Modelle formal beschrieben und der Quelltext automatisch aus diesen Modellen generiert.
Im Gegensatz zu einem codezentrierten Vorgehen, stellt bei MDA die Modellierung den zentralen Aspekt des Vorgehens dar. In der Entwicklung werden seit Jahrzehnten visuelle Methoden zur Beschreibung von Modellen eingesetzt. Bekannte Beispiele sind ER-Diagramme und UML. Die größten Vorteile dieser visuellen Darstellungsformen liegen in der leichten Lesbarkeit für den Menschen. Eine höhere Abstraktion und dadurch eine erhöhte Flexibilität gehören zu den Kernzielen der MDA.
Der MDA-Ansatz wurde bereits 2003 von der OMG standartisiert. Die OMG spezifiziert zur Vorgehensweise drei unterschiedliche Abstraktionsebenen.
- CIM: Das Computation Independent Model bezeichnet ein Domänen- bzw. Geschäftsmodell und ist dabei eine unabhängige Beschreibung des Systems. Es beinhaltet keinerlei technische und implementierungsabhängige Aspekte.
- PIM: Das Platform Independent Model geht einen Schritt weiter als das CIM und beschreibt das Vorgehen und die Architektur aus technischer Sicht. Allerdings immer noch aufeiner plattformunabhängigen Ebene.
- PSM: Das PIM wird dann in ein oder mehrere Platform Specific Models überführt. Das PSM bezieht sich immer auf eine spezielle Plattform (z.B. J2EE oder .NET) beinhaltet dazu plattformspezifische Informationen. Auf Grundlage des PSM findet dann eine Codegenerierung statt.
Das Vorgehen nach einem modellgetriebenen Ansatz erfordert schon in einer frühen Projektphase eine hohe Formalität. Dadurch wird Entscheidern eine optimale Diskussionsgrundlage geliefert. Zusätzlich bietet der Ansatz die Möglichkeit ein PIM in mehrere PSMs zu transformieren und damit die Möglichkeit neue Technologien schnell zu adaptieren. Die Generierung den Codes ermöglicht ausserdem schnellere Entwicklungszyklen.
Nachteilig ist sicherlich anzumerken, dass es bisher nur für einfache Applikationen möglich ist 100% des Programmcodes zu generieren. Für komplexere Anwendungen müssen immer noch manuelle Anpassungen durchgeführt werden. Und manuelle Änderungen an einem nicht selbstgeschrieben Code durchzuführen stellt ein großes Risiko dar. Des Weiteren werden Änderungen
Code nicht automatisch in die Modelle übernommen.
Nichtsdestotrotz sind auf dem Markt kommerzielle und Open Source Werkzeuge vorhanden, die einen modellgetriebenen Entwicklungsansatz verfolgen.
Die wesentlichen Tools sind hier aufgeführt:
Kommerzielle Werkzeuge:
http://www.bitplan.com
http://www.bluage.com
http://www.compuware.com
http://www.inferdata.com
http://www.innoq.com
http://www.mdworkbench.com
http://www.metacase.com
http://www.mia-software.com
http://www.pathfindermda.com
http://www.sosyinc.com
Open Source Werkzeuge:
http://www.andromda.org
http://jamda.sourceforge.net
http://www.kermeta.org
http://www.oomega.net
http://www.openarchitectureware.org
http://www.openmdx.org
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.