Donnerstag, 1. Januar 1970

Artikel

Model Driven Architecture (MDA)

Auszug aus einem Beitrag von Oliver Meimberg: "Möglichkeiten und Potentiale der Formalisierung in der Softwareentwicklung" in "Schriften zum Software-Qualitätsmanagement" von  Roland Petrasch und Stephan Höppner [Hrsg.], Logos Verlag Berlin, 2005

Durch die Schaffung des noch recht neuen Standards MDA  hat die OMG  (Object Management Group) der Wissenschaft der modellgetriebenen Softwareentwicklung zu neuer Aufmerksamkeit verholfen. MDA fasst die gesammelten Erkenntnisse über Modelle, Modellierung und Transformation, angereichert mit einer Reihe weiterer Standards zu einer offiziell anerkannten Spezifikation zur modellgetriebenen Softwareentwicklung zusammen.

Das Ziel der Model Driven Architecture ist es, den gesamten Prozess der Softwareentwicklung, von der Fachdomäne des späteren Anwenders, über die Anforderungsanalyse bis hin zur Implementierung des Zielsystems mit allen seinen Schichten in Modellen abzubilden, sodass das System selbst zu einem hohen Anteil generativ, also über Modelltransformation, erzeugt wird.

Sind einmal alle Transformatoren geschrieben, erreicht man auf diesem Weg eine hohe Wiederverwendbarkeit und Wartbarkeit. Darüber hinaus gilt die MDA als ein möglicher Schlüssel zur anforderungsgetriebenen Softwareentwicklung, da die technischen Aspekte weitestgehend vollständig von den inhaltlichen (semantischen) Aspekten getrennt werden.

Einige Begriffe der MDA sollen im Folgenden kurz erwähnt werden.

Platform Independent Model (PIM)

Bei der modellgetriebenen Softwareentwicklung ist es wichtig, die Modellierung der Fachdomäne (also der Zielwelt) vollständig plattformunabhängig zu gestalten. Es sind also ausschließlich die rein fachlichen Aspekte zu betrachten und zu modellieren.

Das so entstandene Modell hat also selbst dann Gültigkeit, wenn überhaupt keine Software entwickelt wird, und tatsächlich werden solche Modelle auch beispielsweise im Bereich der Unternehmensberatung, z.B. bei der Geschäftsprozessanalyse (Business Process Reengineering) erstellt. Oft bilden sie die Grundlage von später zu entwickelnden Softwaresystemen.

Platform Description Model (PDM)

PDMs sind Metamodelle, die die Zielplattform des Systems beschreiben. Über die Kombination von einem PIM, also einer formalen semantischen Beschreibung der Zusammenhänge und Abläufe mit einem PDM kann letztendlich über Modelltransformation das Zielsystem (welches im Sinne der MDA auch wieder nur ein Modell ist) generiert werden.

Das Ergebnis der Modelltransformation wird in der Terminologie der MDA als PSM (Platform Specifc Model) bezeichnet.

Der Begriff der Plattform muss hier jedoch relativ gesehen werden: in einer mehrstufigen Transformation gibt es verschiedene Plattformebenen. So kann ein PSM auf einer höheren Ebene beispielsweise die Plattform einer objektorientierten Webanwendung auf J2EE-Basis beschreiben, eine konkretere Ebene würde hingegen möglicherweise den Einsatz einer bestimmten Middleware auf einen genau festgelegten Betriebssystem darstellen.

Bei einer mehrstufigen Transformation wird also ein durch den ersten Schritt transformiertes PSM im zweiten Schritt zum PIM.

Architekturtreue als Konsequenz der Metamodellierung

Bei der Arbeit mit projektweit gültigen Metamodellen wird schnell deutlich, dass die zu erstellende Software als ein architektonisch eindeutiges und konsistentes System betrachtet werden muss. So kann gesagt werden, dass das Metamodell eines PSM nichts weiter als die Architektur des Zielsystems beschreibt. Die Formalisierung der Transformation von einem PIM in ein PSM bedeutet u.a. eine Maximierung der Architekturkonformität in der eigentlichen Implementierung.

Bei einer automatisierten Transformation ist es in der Regel kaum möglich, gegen die im Metamodell festgelegten Architekturprinzipien zu verstoßen. Das bedeutet natürlich auch, dass für eine Anforderung, die vom Architekturmodell nicht berücksichtigt wird, die Architektur entsprechend erweitert werden muss. Dies ist genau im Sinne der MDA: Die Architektur des Systems steht stets im Mittelpunkt und wird ständig konsistent gehalten. Klassische "Workarounds", die die Architektur umgehen und häufig Ursache für Softwarekrankheiten  sind, entfallen weitestgehend.

Fazit

Formalisierung ist ein wichtiger Baustein für ein erfolgreiches Qualitätsmanagement in Softwareprojekten. Speziell in den Bereichen der Anforderungs- und Systemanalyse besteht häufig noch ein hohes Optimierungspotential.

Ein möglicher Weg, um den Formalisierungsgrad von Projektinformationen zu erhöhen, ist die Verwendung von formal eindeutigen Modellen. Für den erfolgreichen Einsatz von Modellen ist es jedoch unabdingbar, die Syntax und die Semantik der Modelle über Metamodelle exakt festzulegen. Ist dies einmal geschehen, ergibt sich meist eine deutliche Steigerung der Qualität wie auch der Effizienz in der Projektarbeit.

Die MDA verfolgt genau diese Konzepte: Über den gezielten Einsatz von Metamodellen in der Softwareentwicklung können große Teile der Prozessaktivitäten automatisiert werden. Dennoch muss berücksichtigt werden, dass die Formalisierung eines Softwareentwicklungsprozesses nicht in einem Schritt erfolgen kann. Sie sollte vielmehr als ein iterativer Prozess verstanden werden, in dem die entstehenden Metamodelle von Projekt zu Projekt immer weiter verfeinert werden müssen.

comments powered by Disqus