MDA (model driven architecture)

Model Driven Architecture (MDA) ist ein Ansatz zur modellgetriebenen, generativen Software-Entwicklung. Die MDA-Architektur wurde als Standard von der Object Management Group (OMG) bereits im Jahre 2001 mit dem Ziel veröffentlicht, alle bis dato bekannten Ergebnisse über Modelle, Modellierung und Transformation - ergänzt um weitere Standards - zu einer offiziellen Spezifikation für MDA zusammenzufassen. Modelle stehen im Mittelpunkt des MDA-Paradigmas.


So ist es das Ziel der MDA-Architektur, den gesamten Prozess der Erstellung von Software und mit all seinen Schichten in Modellen abzubilden, so dass die Software selbst zu einem hohen Anteil generativ - d.h. über die Transformation von Modellen - erzeugt werden kann. Ein bedeutender Nebeneffekt sind die dabei entstehenden Transformatoren, die - wenn sie dann vollständig vorhanden sind - eine hohe Wiederverwendbarkeit und Wartbarkeit des so generierten Programmcodes gewährleisten. Dabei werden von der MDA im Gegensatz zu früheren Ansätzen der Modellierung alle Entwicklungsebenen - von der Anforderungsanalyse bis hin zur Implementierung des Zielsystems - einbezogen. So soll der Prozess der Software-Entwicklung insgesamt effizienter, günstiger hinsichtlich der Kosten und in einer höheren Qualität darstellbar sein.

Das Konzept der Model Driven Architecture

Das zentrale Konzept der MDA besteht in der Trennung von fachlichen sowie technischen Aspekten in Form von plattformunabhängigen Modellen (PIM) und spezifischen, auf die jeweilige Plattform ausgerichteten Modellen (PSM), die damit auch beide unabhängig voneinander wiederverwendet werden können. Die Unabhängigkeit der Modelle von einer spezifischen Plattform ist ein wichtiges Argument für deren Wiederverwendbarkeit. Daher ist die zukünftige Spezifizierung von Standards im Zusammenhang mit der MDA durch die OMG darauf ausgerichtet, Vorgaben für eine allgemeingültige Definition von Plattformen zu entwickeln. Für die automatisierte Bearbeitung von Modellen kommen auch häufig Frameworks wie OpenArchitectureWare zum Einsatz. Darüber hinaus gilt die MDA als weiterer Schritt in Richtung sogenannter anforderungsgetriebener Software-Entwicklung, da die technischen Aspekte bereits bei Anwendung der MDA weitestgehend von den inhaltlichen (auch semantischen) Aspekten getrennt werden.

Basis der modellgetriebenen Software-Entwicklung ist die Erkenntnis, dass Modelle wichtige Artefakte im Software-Entwicklungsprozess sind. Dabei sind Modelle immer kontextbezogene Abstraktionen. Das MDA-Konzept besteht nun darin, aus einem sehr allgemeinen, plattformunabhängigen Modell (PIM) ein Modell für die letztendliche Zielplattform (PSM) zu generieren. Ein grundlegender Mechanismus der MDA ist dabei die sogenannte Modell-Transformation. Zunächst erfolgt dabei die Modell-zu-Modell-Transformation, die allgemein formuliert von der fachlichen Spezifikation ein plattformspezifisches Modell ableitet. Erst danach wird die beabsichtigte Code-Generierung für die jeweilige Plattform realisiert. Demnach gestaltet sich das MDA-Prinzip anhand aufeinander abgestufter Modelle, die nachfolgend kurz erläutert werden:

Computation Independent Model (CIM). Hier werden die Anforderungen einer Applikation in einer formalen Spezifikation zusammengefasst, die unabhängig von der Realisierung des Systems ist. Das Ziel dabei ist, die Aufgaben eines Systems in dessen Umfeld zu beschreiben, so dass CIM auch häufig als Domänen- oder Geschäftsmodell bezeichnet wird. Üblicherweise verbindet sich damit auch ein Glossar des Vokabulars für die entsprechende Domäne. Hier können zur Notation bereits Diagramme der UML 2 (Unified Modelling Language) wie Aktivitäts-, Klassen- oder Anwendungsfalls-Diagramme verwendet werden.

Platform Independent Model (PIM). Dies bezeichnet ein abstraktes und von der Technologie der Implementierung oder Plattform unabhängiges Modell. PIM baut auf dem CIM auf und beschreibt die Struktur und das Verhalten des geplanten Software-Systems. Zur Notation können wiederum die Diagramme der UML 2 verwendet werden.

PM (Platform Model). Laut Definition der OMG ist eine Plattform als eine Menge von Technologien zu beschreiben, die Funktionalitäten durch Schnittstellen und Verwendungsmuster festlegt. Häufig wird eine Plattform auch als ein Setup aus bestimmten Architekturen, Technologien und Funktionalitäten beschrieben. Basiert eine Applikation auf einer Plattform, so kann die Applikation auf die gesamte Funktionalität der Plattform zurückgreifen, ohne auf die Details der Realisierung der Funktionalität durch die Plattform eingehen zu müssen. Generische Plattformen bieten dabei Konzepte wie Objekte, Vererbung oder Interfaces. Technologische Plattformen sind beispielsweise CORBA für verteilte und heterogene Software-Systeme oder Java 2 Enterprise Edition (J2EE) als Komponenten-orientierte Plattform. Herstellerspezifische Plattformen sind durch eine hohe Nutzung etabliert wie zum Beispiel der BEA WebLogic Server oder Microsoft .NET. Ein Platform Model (PM) definiert also immer die technischen Konzepte und Elemente einer bestimmten Plattform und stellt dabei Elemente, die für die Modellierung eines Plattform-spezifischen Software-Systems notwendig sind, zur Verfügung.

PSM (Platform Specific Model). Das PSM erweitert das allgemeine PIM um Aspekte, die rein plattformspezifisch sind. Durch eine Modell-Transformation kann aus diesem PIM ein plattformspezifisches PSM abgeleitet werden, wobei dessen Eigenschaften durch das Platform Model (PM) vorgegeben wurden. Damit ist dann die Implementierung an die Eigenschaften der jeweiligen Zielplattform angepasst. Das PSM kann durch eine Modell-zu-Code-Transformation in Programmcode übersetzt werden, da im plattformspezifischen Modell nun alle Informationen zur automatisierten Generierung von Code zusammengeführt worden sind.

Informationen zum Artikel
Deutsch:
Englisch: model driven architecture - MDA
Veröffentlicht: 27.10.2013
Wörter: 790
Tags: #Entwicklung, Codierung
Links: .NET, Abstraktion, Architektur, Artefakt, Aspekt