Modellgetriebene Softwareentwicklung Vom Modell automatisiert zum Code - so geht‘s

Autor / Redakteur: Darius Jockel* / Martina Hafner

Die Modellgetriebene Softwareentwicklung soll helfen, mit Abstraktion und Automatisierung gegen die zunehmende Komplexität von Softwaresystemen anzugehen. Welches Potenzial sie bietet, wie man vorgeht sowie Tipps zu Open-Source-Werkzeugen für den kostengünstigen Einstieg fasst dieser Beitrag zusammen.

Anbieter zum Thema

Die Modellgetriebene Softwareentwicklung, zu englisch Model Driven Software Development (MDSD), ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert Software erzeugen (1). Modelle sind demnach zentrale Artefakte der MDSD. Das zu entwickelnde System wird durch ein Modell beschrieben.

Im folgenden Beitrag bezeichnet der Begriff System die Komposition aus Hardware und Software, welche das fertige Produkt bildet. Das Modell muss demnach sowohl die Hardware, als auch die zu entwickelnde Software beschreiben und abbilden können. Ist das Produkt von andere Komponenten abhängig, dann sind auch diese Teil des Systems.

Das Modell bildet die Funktion oder das Verhalten des Systems ab. Eines seiner wesentlichen Merkmale ist, dass es die technische Komplexität des Systems abstrahiert. Die Beschreibung der Modelle muss formalen Kriterien genügen und wird in einer Domänenspezifischen Sprache (Domain Specific Language, DSL) formuliert. Eine Domäne entspricht einer Anwendungsdomäne, also einem abgegrenzten Problemfeld, häufig geprägt durch eine eigene fachliche oder technische Sprache. Regelungstechnik oder Signalverarbeitung sind Beispiele für Domänen.

Bei Ausdrücken in DSLs handelt es sich nach (2) um: „Abstraktionen, die von Mensch und Maschine verstanden werden können. Menschliche Domänenexperten können Sachverhalte aus der Domäne in einer DSL effizient abbilden und kommunizieren, Compiler oder Generatoren können die Modelle auswerten und etwa in Quelltext transformieren.“

9354350

Grafische und textuelle Möglichkeiten für die Modellierung

(Archiv: Vogel Business Media)

UML-Editoren sind besonders flexibel und haben sich in der Praxis als sehr leistungsfähig erwiesen. Die Modellierung ist allerdings nicht ausschließlich auf UML (7) beschränkt. Auch andere Werkzeuge wie beispielsweise Editoren für Blockschaltsysteme können für die Modellgetriebene Entwicklung nutzbar gemacht werden. So bietet beispielsweise openArchitectureWare die Möglichkeit beliebige Eingabeformate verarbeiten zu können. Bild 1 zeigt exemplarisch einen mit UML modellierten LichtDimmer-Automaten. Dieses Beispiel stellt einen dimmbaren Lichtschalter dar.

Listing 1 beschreibt den gleichen LichtDimmer Automaten wie Bild 1, diesmal als textuelle Beschreibung (Archiv: Vogel Business Media)

Oftmals vernachlässigt wird die Möglichkeit, ein Modell textuell zu beschreiben. Listing 1 zeigt ein Beispiel für eine textuelle Beschreibung einer Zustandsmaschine. Ansatzweise wird dieses Vorgehen bereits in vielen Projekten angewendet. Wenn Skripte Quelltext erstellen oder manipulieren kann man diese Skripte als Generatoren und die Konfigurations-Dateien als Modell auffassen.

Grafische Repräsentationen bieten sich an, wenn Beziehungen zwischen Objekten beschrieben werden. Komplexe Beziehungsgeflechte können kognitiv gut erfasst werden. Der Vorteil textueller Beschreibungen ist, dass sie sehr kompakt ausfallen. Wenn Komponenten detailliert beschrieben werden müssen, ist eine textuelle Beschreibung vollkommen ausreichend.

(ID:263552)