Modellgetriebene Softwareentwicklung

aus Wikipedia, der freien Enzyklopädie

(Weitergeleitet von MDSD)
Wechseln zu: Navigation, Suche

Die Modellgetriebene Softwareentwicklung bezeichnet ein Vorgehensmodell für die Entwicklung von Software, bei dem nicht direkt der ausführbare Programmcode erstellt wird, sondern zunächst auf die Problemstellung angepasste meist grafische Modelle erstellt werden.

Der häufig auch im Deutschen benutzte englische Begriff Model Driven Development (MDD) wurde von der OMG markenrechtlich geschützt, weshalb auch der nicht markenrechtlich geschützte Begriff, das Model Driven (Software) Engineering (MD(S)E) als MDD Äquivalent genutzt wird.

Der von der OMG eingeführte Ansatz der Model Driven Architecture (MDA) ist eine Umsetzung dieses Prinzips. Eine andere Umsetzung ist das Domain Specific Modelling (DSM).

Inhaltsverzeichnis

Definition

Die Modellgetriebene Softwareentwicklung ermöglicht es Softwaresysteme durchgängig mit Hilfe von Modellen zu beschreiben und gegebenenfalls aus ihnen Code zu erzeugen.

Das Modell dient dabei als Ausgangspunkt für den Softwareentwicklungsprozess. Treten Änderungen auf, wird zuerst das Modell geändert. Durch automatische Transformationen werden Modell und Code synchron gehalten. Informationen bezüglich der Anwendung oder der Systemumgebung werden im Modell statt im Code gepflegt.

Da Modelle auch für Nicht-Entwickler, wie beispielsweise Fachabteilungen, verständlich sind, können alle Interessensgruppen (Stakeholder) am Entwicklungsprozess beteiligt werden.

Model-Driven Software Development (MDSD)

Beim MDSD nach Stahl et al.[1], das starke Ähnlichkeit zum DSM Ansatz hat, geht es darum sich bei der Entwicklung von Softwaresystemen möglichst nicht zu wiederholen (DRY-Prinzip). Weil allein mit den Mitteln der jeweiligen Programmiersprache nicht immer passende Abstraktionen zur Beschreibung verschiedener Sachverhalte (Domain) eines Softwaresystems gefunden werden können, werden zielsprachunabhängig entsprechende Abstraktionen in Form von Domain-Specific Languages erschaffen. Diese werden dann entweder generativ oder auch interpretativ auf die Zielplattform abgebildet.

Natürlich hat der Einsatz dieser Variante eine Auswirkung auf allen Ebenen eines Projektes (sowohl technisch, fachlich als auch im Management Bereich). Deshalb beschreibt die MDSD nicht nur, wie man DSLs, Generatoren usw. entwickelt, sondern auch wie man diese in (hauptsächlich agilen) Entwicklungsprozessen sinnvoll integriert.

Vorteile von MDD

MDD erhöht die Entwicklungsgeschwindigkeit. Durch geeignete Werkzeuge findet eine automatische Transformation der Modelle in den Code statt. Dadurch wird die manuelle Codierung für Softwareentwicklungsartefakte (z. B. Quellcode, Dokumentation, Tests) im Idealfall völlig vermieden.

Durch den höheren Abstraktionsgrad von Modellen wird der Aufwand für Systemänderungen und -wartung in Modellen reduziert.

Modelle können einfach verwaltet und gesichert werden. Denkbar ist sogar die Einführung von Modell-Bibliotheken, die Wiederverwendung auf Ebene der fachlichen Modellierung ermöglichen.

Werkzeuge für MDD

  1. reine Modellierungswerkzeuge: Diese dienen lediglich zur grafischen Darstellung und unterstützen keine automatischen Transformationen. Das Modell wird hier in ein Austauschformat (XMI) exportiert und mit gesonderten Transformatoren weiterbearbeitet.
  2. reine Transformatoren: Diese dienen ausschließlich der Transformation von Modellen und beinhalten keine grafischen Modellierungsfunktionalitäten. Modelle werden in einem Austauschformat wie XMI in ein internes Modellformat importiert, transformiert und danach wieder exportiert.
  3. integrierte MDD Werkzeuge: Diese bieten Modellierung, Modelltransformationen und Codegenerierung in einem Werkzeug. Überflüssige Export- und Importvorgänge, Kompatibilitätsprobleme beim Datenaustausch und Rüstaufwand bezüglich Integration werden vermieden. Die Navigierbarkeit und Synchronisation zwischen fachlichem und technischem Modell und Implementierungscode wird optimal unterstützt.

Beispiele für integrierte MDD-Werkzeuge

Literatur

  • Thomas Stahl, Markus Völter, Sven Efftinge: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. Auflage. Dpunkt Verlag, Mai 2007, ISBN 978-3898644488.
  • Georg Pietrek, Jens Trompeter (Hrsg.), Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis, Entwickler-Press, gebundene Ausgabe, ISBN 978-3939084112

Siehe auch

Das Gegenstück zur Modellgetriebenen Softwareentwicklung im Test stellt Modellbasiertes Testen bzw. die Modellgetriebene Testentwicklung (Model Driven Test Development, MDTD) dar.

Quellen

  1. ISBN 978-3898644488
Persönliche Werkzeuge
Andere Sprachen