Definition „Modellgetriebene Softwareentwicklung“ Was ist Model-driven Development?

Von Egoloizos

Das Model Driven Development bezeichnet die modellgetriebene Anwendungsentwicklung auf Basis einer Abstraktion der Software-Anforderungen. Vorrangiges Ziel ist die Automatisierung der Development-Prozesse..

Für die Eclipse IDE gibt es einige MDD-Erweiterungen, darunter das Plug-in Actifsource.
Für die Eclipse IDE gibt es einige MDD-Erweiterungen, darunter das Plug-in Actifsource.
(Bild: Actifsource / https://marketplace.eclipse.org)

Mit dem Einsatz modellgesteuerter Methoden zielen Softwareentwickler auf Automatisierung und damit einhergehende Produktivitätssteigerung ab. Weiterhin soll Model-driven Development (MDD) – auch Model-driven Software Development (MDSD) oder Model-driven Engineering (MDE) – Kosten senken, Komplexität reduzieren und letztlich die Software-Qualität verbessern.

Im Model Driven Development nehmen die Modelle eine Schlüsselrolle ein: sie dienen, anders als in der herkömmlichen Software-Entwicklung, nicht lediglich der Dokumentation oder der Analyse. Vielmehr handelt es sich bei den Modellen hier um primäre Entwicklungs-Ansätze, die das fertige Endprodukt oder System erst generieren.

Im Prozess der Modellierung werden Entwicklungs-Details mittels Modellen abstrahiert. Die Abstraktion bezieht sich auf solche Details, die für die technischen und fachlichen Domänen (Inhaltsbereiche) eines Projekts von geringerer Relevanz sind. Sie können auch im Nachgang von Generatoren noch automatisiert hinzugefügt werden. Damit reduziert sich im Gegensatz zu manueller Realisation der Erstellungsaufwand der Software erheblich.

Modell-verarbeitende Workflows und Generatoren ermöglichen eine Automatisierung, die sich positiv auf die Software-Qualität auswirkt. Beispielsweise lassen sich bestimmte Muster wiederholt durch Generatoren verwirklichen. Mögliche Fehler lassen sich in Generatoren beheben.

Komponenten und Begriffe im Model-driven Development

Im Rahmen der modellgetriebenen Softwareentwicklung spielen eine Reihe von Fachbegriffen und Termini eine wesentliche Rolle. Der Begriff der Domäne bezeichnet im MDD einen konkreten Aufgaben- oder Interessenbereich. Die Abgrenzung erfolgt beispielsweise fachlich oder technisch. Die Domäne ist derjenige Bereich, der durch das jeweilige Modell zu beschreiben ist.

Die formale Beschreibung der konkreten Struktur einer bestimmten Domäne erfolgt durch ein so genanntes Metamodell. Das Metamodell beschreibt somit indirekt gleichermaßen die Struktur der Modelle der Domäne. Das formale Modell stellt die Beschreibung der Domäne selbst dar. Die Struktur des formalen Modells wiederum ist durch ein Metamodell zu beschreiben.

Handelt es sich um eine formale Beschreibung des Modells einer Domäne, so ist von einem Meta-Metamodell die Rede. Im Model Driven Development liegt typischerweise eine Modellhierarchie vor, die sich aus drei Stufen zusammensetzt: dem Modell, dem Metamodell sowie dem Meta-Metamodell.

Hinsichtlich der MDD-Syntax ist zwischen abstrakter und konkreter Syntax zu unterscheiden. Die Beschreibung der Regeln zur präzisen und korrekten Modellkonstruktion auf Grundlage des Metamodells ist Aufgabe der abstrakten Syntax. Die konkrete Syntax dient der Festlegung konkreter Regeln der Repräsentation der zuvor beschriebenen abstrakten Syntax. Zu den Umsetzungsmöglichkeiten dieser Repräsentation gehören beispielsweise graphische oder textuelle Notationen. Auf deren Basis werden die Modelle letztlich realisiert.

Werkzeuge und Tools im Model Driven Development

Das MDD ist vom Einsatz zahlreicher Tools geprägt die bei der Modellierung und Automatisierung helfen. Dazu gehören beispielsweise graphische und textuelle Modellierungs-Werkzeuge. Rein graphische Modellierungs-Tools kommen zur rein graphischen Darstellung zum Einsatz. Sie unterstützen keine automatischen Transformationen.

Geht es um die Weiterverarbeitung eines Modells, muss dieses zunächst in ein Format wie XMI oder ein anderes textuelles Austausch-Format transformiert beziehungsweise exportiert werden. Anschließend lässt es sich mit gesonderten Transformatoren weiterverarbeiten.

Rein textuelle Modellierungs-Tools hingegen basieren auf Domain Specific Languages (domänenspezifische Sprachen). Damit unterstützen sie stets auch Transformationen (so etwa die Umwandlung in Dokumente oder in Quellcode).

Für die Modellierung in verschiedenen Domänen beziehungsweise Bereichen haben sich bestimmte Modellsprachen durchgesetzt. Durch die Nutzung einer Domain Specific Language (DSL) wird die Kommunikation zwischen den verschiedenen Fachbereichen sowie zwischen IT und Fachbereich verbessert. Die frei definierbaren und damit individuellen Sprachen lassen sich in DSL-Entwicklungs-Tools effizient umsetzen. Die einfache Meta-Modell-Struktur macht sie geeignet als Grundlage für Code-Generatoren (in Abgrenzung zu komplexeren Sprachen wie der Unified Modeling Language UML).

Zu unterscheiden sind textuelle und graphische Domain Specific Languages. Textuelle DSLs haben die Stärke, dass die Entwicklung und Versionierung mit den gleichen Standard-Tools wie der Quellcode vonstatten gehen. Damit entfällt der zusätzliche Zeitaufwand für die graphische Modellierung. Auf Basis der textuellen Modelle lassen sich zudem jederzeit graphische bedarfsgerechte und passgenaue Visualisierungen ableiten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Modelltransformation

Eine weitere Gruppe von Werkzeugen im Model Driven Development sind die reinen Transformatoren. Deren einzige Aufgabe ist die Transformation der Modelle. Reine Transformatoren verfügen typischerweise nicht über graphische Modellierungs-Funktionen. Der Import der Modelle erfolgt in einem textuellen Austauschformat (meist XMI), bevor sie in ein internes Modell-Format transformiert werden. Im Anschluss lassen sie sich wieder exportieren.

Darüber hinaus gibt es auch integrierte Tools für das Model Driven Development. Diese bieten Funktionalitäten wie die Modellierung selbst, die Transformation und die Codegenerieung in nur einem Werkzeug. Dies vermeidet zusätzliche Arbeitsschritte wie etwa Export- und Import-Prozesse.

Ebenso entfallen bei integrierten MDD-Tools etwaige Probleme mit der Kompatibilität beim Datenaustausch. Weiterhin profitieren die Synchronisation zwischen dem technischen und fachlichen Modell sowie die Navigierbarkeit zwischen diesen Modellen von integrierten Tools.

(ID:47498107)