Home

Modellgetriebene

Modellgetriebene Entwicklung (englisch Model-Driven Development, MDD) bezeichnet einen Ansatz der Softwareentwicklung, bei dem Modelle als dominierende Artefakte des Entwicklungsprozesses dienen. Modelle dienen als Quelle für Entwurf, Implementierung, Tests und Dokumentation und werden durch Transformationen oder Generatoren in lauffähigen Code oder andere Ausgabemedien überführt. Typische Modellierungssprachen sind UML, SysML und domänenspezifische Sprachen (DSLs). Meta-Modelle und Modelltransformationen treiben den automatisierten Wandel von einer Abstraktionsebene zur nächsten.

Der Begriff ist eng verbunden mit Model-Driven Architecture (MDA) der Object Management Group, das zwischen plattformunabhängigen

Zu den Kernkonzepten gehören Meta-Modelle, Modelltransformationen, Code-Generatoren, Repository-basiertes Modellmanagement und die Idee des Round-Trip-Engineerings, bei dem

Anwendungsfelder reichen von der Unternehmens- und Softwarearchitektur über eingebettete Systeme bis hin zu Fahrzeug- und Systemengineering.

Modellen
(PIM)
und
plattformabhängigen
Modellen
(PSM)
unterscheidet
und
Transformationen
sowie
Code-Generierung
vorsieht.
In
der
Praxis
werden
MDD/MDE-Ansätze
auch
außerhalb
von
OMG-Standards
verwendet
und
bilden
einen
Kernbestandteil
von
Modellierungsumgebungen
wie
dem
Eclipse
Modeling
Framework.
Änderungen
am
Code
zurück
in
Modelle
gespiegelt
werden
können.
Vorteile
sind
erhöhter
Abstraktionsgrad,
bessere
Konsistenz
zwischen
Artefakten,
Automatisierung
von
Generierung
und
Tests
sowie
bessere
Kommunikationsgrundlagen
mit
Stakeholdern.
Nachteile
umfassen
Lernkurve,
Tool-
und
Ökosystem-Fragmentierung,
möglichen
Modelloverhead,
Gefahr
des
Modellbruchs
bei
unvollständigen
Transformationen.
In
der
Praxis
wird
Modellgetrieben
oft
mit
Standards
und
Tools
wie
UML/SysML,
MOF,
XMI
und
EMF
umgesetzt;
spezifische
Branchenstandards
wie
AUTOSAR
beeinflussen
die
Ausgestaltung
von
MDD
in
der
Praxis.