MDSD (model driven software development)

Modellgetriebene Software-Entwicklung (Model Driven Software Development, MDSD) beschäftigt sich mit der Entwicklung von Software-Systemen auf Basis von Modellen. Dabei ist die Automatisierung des Software-Entwicklungsprozesses das primäre Ziel von MDSD. Die Abstrahierung der Anforderungen an die Software in Form von Modellen, soll die automatische Transformation von Modellen zu Modellen und von Modellen zum ausführbaren Code realisieren. Damit dienen die Modelle nicht nur - wie bei der traditionellen Software-Entwicklung üblich - zur Dokumentation, zum Entwurf oder zur Analyse, sondern sind primäre Entwicklungsartefakte für die Generierung des finalen Systems.


Die Vorteile dieser modellbehafteten Betrachtungsweise von Software sind beispielsweise die Detaillierung der Abstraktionsebene für das zu spezifizierende System, eine Verbesserung der Möglichkeiten zur durchgängigen Kommunikation mit Hilfe von domänenspezifischen Sprachen (DSL) oder auch die Steigerung in der Effizienz bei der Erstellung von Software durch automatisierte Transformationen der erstellten Modelle bis hin zum generierten Code.

Das Modell des Model Driven Development

Obwohl die grundlegenden Ideen der MDSD nicht neu sind, gibt es noch einige - teilweise auch noch ungelöste - Herausforderungen beim Einsatz von MDSD wie beispielsweise die Versionierung von Modellen, die Entwicklung von geeigneten DSLs, die Wartung von Transformationen oder das Zusammenwirken von Teamwork und MDSD. Ein populäres Beispiel für die Umsetzung von MDSD ist die Model Driven Architecture (MDA) der Object Management Group (OMG).

MDSD zur Verbesserugn der Software-Qualität

Die Motivation für die Verwendung von MDSD sind die Verbesserung der Software-Qualität, die Wiederverwendbarkeit sowie die Steigerung der Effizienz von Software-Entwicklungen. Der dazu passende zentrale Kerngedanke der MDSD basiert auf der Definition von Modellen als wesentlicher Aspekt der MDSD, die dann letztendlich in die Software als Endprodukt einfließen. In der Literatur wird MDSD nicht einheitlich umschrieben jedoch häufig als ein Oberbegriff für Techniken bezeichnet, die aus formalen Modellen automatisiert lauffähige Software erzeugen. Dabei ist die vollständige Beschreibung eines abgegrenzten Teils der Software - in grafischer oder textueller Notation - das formale Modell. Damit ist auch festgelegt, dass ein formales Modell, das lediglich der Dokumentation dient, kein Modell im Zusammenhang mit der MDSD ist. Weiterhin soll der Prozess der Software-Erstellung analog der o.g. Definition automatisiert d.h. ohne manuelle Eingriffe erfolgen. Bei der MDSD stehen die Modelle somit gleichberechtigt auf einer Ebene mit dem Quellcode und fließen direkt mit in die Implementierung der Software mit ein. Die Zuordnung, ob ein Vorgehen bei der Software-Erstellung modellgetrieben ist oder nicht, kann nicht immer eindeutig vorgenommen werden. Hierbei ist zu beachten, dass MDSD einen allgemeinen Ansatz darstellt, und somit nicht auf einzelne Sprachen oder Werkzeuge beschränkt ist.

Die im Kontext mit MDSD verwendete Terminologie soll im Folgenden kurz erläutert werden.

Domäne. Damit wird ein abgegrenzter fachlicher oder technischer Wissens- oder Interessenbereich bezeichnet, der durch das Modell beschrieben werden soll.

Metamodell. Kennzeichnet die formale Beschreibung der Struktur einer Domäne. Damit wird indirekt auch die Struktur der Modelle einer Domäne beschrieben.

Metametamodell. Sofern ein Modell in seiner Struktur wiederum durch ein Modell beschrieben wird, spricht man von einem Metametamodell. In der MDSD wird üblicherweise eine aus drei Stufen bestehende Modellhierarchie verwendet: Modell, Metamodell und Metametamodell.

Formales Modell. Kennzeichnet die Beschreibung einer Domäne. Dabei wird die Struktur eines formalen Modells wiederum durch ein Metamodell beschrieben.

Abstrakte Syntax. Beschreibt die Regeln zur korrekten Konstruktion von Modellen auf Basis der Elemente des Metamodells.

Konkrete Syntax. Legt die Regeln für die konkrete Repräsentation der abstrakten Syntax fest. Das können textuelle oder grafische Notationen sein, mit denen die Modelle letztendlich realisiert werden.

Informationen zum Artikel
Deutsch: Modellgetriebene Software-Entwicklung
Englisch: model driven software development - MDSD
Veröffentlicht: 29.10.2013
Wörter: 588
Tags: #Software
Links: Abstrakte Syntax, Analog, Aspekt, Automation, Code