Zum Hauptinhalt springen
Model-Driven Software Development

Das Modell ist die Quelle der Wahrheit.

Ein formales Modell beschreibt Struktur, Verhalten und Logik des Systems. Daraus entsteht reproduzierbar, deterministisch und plattformunabhängig produktionsreifer Code. Das Domänenwissen bleibt im Modell erhalten, unabhängig davon, ob sich Zielsprache, Plattform oder Toolchain im Produktlebenszyklus ändern. Gerade für eingebettete, sicherheitskritische und langlebige Systeme ist das ein strategischer Vorteil.

Grundlagen

Was ist Model-Driven Software Development?

MDSD beschreibt einen Entwicklungsansatz, bei dem formale Modelle den zentralen Ausgangspunkt der Entwicklung bilden: nicht als Dokumentation, sondern als ausführbare, generierbare Spezifikation. Das Modell definiert die Kernabstraktionen eines Systems: seine Struktur, sein Verhalten, seine fachliche Logik. Aus einem Modell entstehen automatisiert Quellcode, Konfigurationen, Schnittstellen und Dokumentation. Das Modell ist die Single Source of Truth für alle modellierten fachlichen Aspekte. Erzeugte Artefakte sind abgeleitete Größen, kein eigenständig gepflegter Stand.

Zwei Ausprägungen ergänzen sich in der Praxis:

  • Architekturzentrierte MDSD: Struktur, Komponenten, Schnittstellen und Datenmodelle stehen im Vordergrund. Ein System wird durch sein architekturelles Gerüst beschrieben; die Verhaltenslogik einzelner Komponenten kann separat spezifiziert werden.
  • Verhaltenszentrierte MDSD: das dynamische Verhalten eines Systems wird modelliert, typischerweise über Zustandsautomaten, Sequenzen oder Regeln. Das Modell beschreibt, wie das System auf Ereignisse reagiert, unabhängig von der späteren Implementierungssprache.

Formale Modelle ermöglichen Validierung und Simulation noch vor der ersten Codezeile. Zudem entsteht automatisch Traceability zwischen Modellelementen und generierten Artefakten, ein wesentlicher Vorteil überall dort, wo Nachvollziehbarkeit gefordert ist, etwa in sicherheitskritischen Entwicklungsprozessen nach ASPICE oder ISO 26262.

Modelle

Was ist mit Modell gemeint?

Ein Modell ist in der MDSD eine formale, präzise Beschreibung eines Systems oder einer Domäne, formal genug, um daraus automatisiert Code, Tests oder Dokumentation zu erzeugen. Die Eindeutigkeit wird durch Metamodelle sichergestellt: Sie legen fest, welche Konzepte existieren, welche Beziehungen zwischen ihnen erlaubt sind und welche Regeln gelten, vergleichbar einer Grammatik für natürliche Sprachen.

Die Notation ist davon unabhängig wählbar: grafisch, textuell oder tabellarisch, je nachdem, was für die Domäne und das Team am besten passt. Zwei Sprachfamilien dominieren:

  • Allgemeine Modellierungssprachen wie UML oder SysML sind branchenübergreifend standardisiert und decken ein breites Spektrum ab. Für einen konkreten Einsatzzweck wird ihr generischer Rahmen per Profilierung auf die jeweilige Domäne zugeschnitten.
  • Domänenspezifische Sprachen (DSLs) werden gezielt für eine konkrete Domäne entworfen. Sie bilden genau deren Begriffe und Regeln ab, nicht mehr und nicht weniger. Eine gut geschnittene DSL schließt ganze Fehlerklassen von vornherein aus.

Ob UML/SysML oder DSL ist eine pragmatische Entscheidung nach Domäne, Team und Ziel; beide Ansätze lassen sich in derselben Toolchain kombinieren.

Zwei Beispiele machen das Spektrum greifbar:

Textuelle DSL (Versicherung): Eine fachliche Sprache, in der Tarif- und Beitragsregeln direkt in Versicherungsbegriffen formuliert werden. Fachexperten lesen und prüfen die Regeln im Klartext; daraus wird reproduzierbar die Berechnungslogik generiert: versionierbar, diff-bar und nah an der fachlichen Realität.

Grafisches Modell (Steuerung): Das Verhalten einer Ampelsteuerung als Zustandsautomat, mit Zuständen, zeitgesteuerten Übergängen und Sicherheitsbedingungen. Das Verhalten ist auf einen Blick verständlich, simulierbar und direkt in Code überführbar.

Der Entwurf eigener textueller und grafischer Sprachen ist zentrales Thema des Bereichs Custom Tools.

Code-Generierung

Reproduzierbare Code-Generierung: der Kern von MDSD

Der entscheidende Unterschied zu handgeschriebenem oder KI-generiertem Code ist die Reproduzierbarkeit: Aus demselben Modell entsteht mit demselben Generator immer derselbe Code. Das Ergebnis ist deterministisch, nachvollziehbar und versionierbar. Genau das macht den Unterschied in Projekten, in denen Qualität nicht nur behauptet, sondern belegt werden muss.

Code-Generatoren stellen dabei nicht nur Korrektheit sicher, sondern auch die Einhaltung von Industrie- und Unternehmensstandards. Coding-Richtlinien wie MISRA C/C++ oder projektspezifische Architekturvorgaben werden automatisch eingehalten. Wer den Generator einmal konfiguriert und qualifiziert hat, bekommt diese Konformität bei jeder Generierung automatisch mit.

Für regulierte und sicherheitskritische Domänen ist das Voraussetzung. Entwicklung unter ISO 26262 und IEC 61508 oder DO-178C verlangt nachvollziehbare, wiederholbare Entwicklungsschritte. Deterministische Generierung erlaubt es, den Generator selbst zu qualifizieren oder den generierten Code definierten, verifizierten Mustern zuzuordnen, beides zentrale Bausteine für die Nachweisführung in der funktionalen Sicherheit.

Gegenüber generativer KI ist der Unterschied grundsätzlicher Natur: KI-generierter Code ist statistisch, dasselbe Prompt liefert unterschiedliche Ergebnisse, ohne Garantie auf Konformität oder Nachvollziehbarkeit. MDSD und KI sind komplementäre Werkzeuge. Mehr dazu im Abschnitt KI & MDSD.

Qualitätssicherung

Früh Fehler finden: vier Methoden

Modelle sind bereits lange vor der Integration ausführbar und prüfbar. Fehler werden im Modell sichtbar, nicht erst im Zielsystem. Klassisches Shift-Left. Was formale Methoden dabei konkret leisten — und wo sie an Grenzen stoßen — zeigt dieser Beitrag aus unserer Forschungsarbeit.

Validierung

Strukturelle und semantische Konsistenz wird durch statische Prüfung von Konsistenzregeln abgesichert. Ein großer Teil dieser Prüfungen läuft live während der Eingabe. Fehler werden sofort angezeigt, nicht erst beim nächsten Build-Lauf.

Simulation

Verhalten lässt sich direkt am Modell durchspielen, Zustände und Übergänge werden interaktiv nachvollziehbar, ohne Zielhardware. Fachliche Reviews finden am ausführbaren Modell statt, verständlich auch für Stakeholder, die keinen Code lesen.

Tests

Modelle lassen sich automatisiert testen, etwa in Form von Unit-Tests, die das Modell per Simulation ausführen. Die Tests sind dabei auf derselben Abstraktionsebene wie das Modell formuliert, näher an der fachlichen Spezifikation als klassische Code-Tests.

Formale Verifikation

Modelle können mit formalen Methoden exhaustiv gegen Eigenschaften geprüft werden: mathematischer Nachweis, dass unerwünschte Zustände nicht erreichbar sind. Zentral für Nachweisführung unter ISO 26262 und IEC 61508.
Gemeinsame Sprache

Eine gemeinsame Fachsprache und Unabhängigkeit von der Zielplattform

Formale Modelle (und insbesondere DSLs) schaffen mehr als eine präzise Spezifikation: Sie werden zur gemeinsamen Arbeitsgrundlage heterogener Teams. Domänenexperten, Architekten und Entwickler arbeiten am selben Artefakt statt an separaten, inkonsistenten Interpretationen. An genau diesen Übergängen entstehen in komplexen Projekten typischerweise die teuersten Fehler. Eine formal definierte Fachsprache macht sie sichtbar, bevor sie sich in Code verfestigen.

Gleichzeitig entkoppelt MDSD das Modell von der Zielplattform. Ein und dasselbe Modell kann über austauschbare Generatoren in unterschiedliche Zielsprachen und Plattformen überführt werden. Ein Wechsel der Zielsprache erfordert dann keine erneute fachliche Implementierung. Das schützt das fachliche Investment über Technologiezyklen hinweg: Plattformen, Compiler und Sprachen ändern sich; das Domänenmodell bleibt bestehen.

Für Produkte mit langen Lebenszyklen (typisch in Automotive, MedTech oder Industrieautomation) ist das ein strategischer Vorteil, der weit über die initiale Entwicklungseffizienz hinausgeht.

Dieser Aspekt verzahnt MDSD eng mit dem Bereich Systems Engineering, wo Modelle als gemeinsame Sprache über Disziplinen und Entwicklungsphasen hinweg wirken.

Zustandsautomaten

Verhalten modellieren mit Zustandsautomaten

Der Zustandsautomat (bzw. das Statechart) ist das verbreitetste Modell für verhaltenszentrierte MDSD und das natürliche Modell für reaktive Systeme: Software, die auf externe Ereignisse reagiert, Zustände verwaltet und unter definierten Bedingungen Aktionen auslöst.

Interaktiver Demo: Fahrradlicht als Statechart

Fahrradlicht aus

Das Fahrradlicht ist ein klassisches Einsteiger-Statechart: ein reales Gerät, das auf einen einzigen Input (den Tastendruck) reagiert und dabei zwischen mehreren Betriebsmodi wechselt (Aus, Dauerlicht, Blinken). Einfach genug, um sofort verständlich zu sein; komplex genug, um das Wesentliche reaktiver Systeme greifbar zu machen. Zustandsübergänge, Events und Guards sind direkt erlebbar, ohne Installation, ohne eine Zeile Code:

Zum Interagieren hier klicken

Genau das ist, was itemis CREATE leistet: Statecharts modellieren, interaktiv simulieren und daraus Code in C, C++, C#, Java, Python und weiteren Zielsprachen generieren. Deterministisch, auditierbar, plattformunabhängig. Im Serieneinsatz bei BSH Hausgeräte, MAN und Dräger, von Hausgeräte-Steuerungen bis zu sicherheitsrelevanter Funktionalität nach ISO 26262.

Embedded Systems

MDSD für Embedded Systems

Eingebettete Software entsteht unter einer Kombination von Anforderungen, die in dieser Dichte kaum ein anderes Feld kennt: ressourcenbeschränkte Hardware, Echtzeitanforderungen, steigende Komplexität, Variantenvielfalt und Nachweispflichten. MDSD ist das natürliche Werkzeug dafür.

Plattformunabhängigkeit

Embedded-Projekte wechseln Zielhardware, Compiler und Laufzeitumgebungen, oft mehrfach. Ein Modell, das die fachliche Logik plattformunabhängig beschreibt, schützt das Domänenwissen. Wenn eine neue Zielarchitektur kommt, wird der Generator angepasst, nicht die Spezifikation.

Deterministische Qualität

Sicherheitsnormen verlangen wiederholbare Entwicklungsschritte. Deterministisch generierter Code hält MISRA C automatisch ein, der Generator selbst kann qualifiziert werden. Grundlage für Nachweisführung nach ISO 26262, IEC 61508 und DO-178C.

Frühe Absicherung

Hardware ist oft erst spät verfügbar. Simulation am Modell ermöglicht frühes Testen von Verhalten und fachliche Reviews ohne Hardwarezugang. Traceability zwischen Modellelementen und generiertem Code ist dabei automatisch vorhanden.

Variantenmanagement

Automotive- und Industrieprojekte verwalten oft Dutzende Steuergeräte-Varianten. Ein gemeinsames Modell mit variantenspezifischen Generierungskonfigurationen hält die fachliche Logik konsistent, statt sie in parallelen Codeständen zu duplizieren.

Reaktives Verhalten

Eingebettete Systeme reagieren auf Sensoren, Schalter, Timer und Kommunikationsnachrichten. Zustandsautomaten sind das präziseste Beschreibungsmittel für genau dieses Verhalten: präziser als Prosa, verständlicher als Code, direkt ausführbar.

Gemeinsame Fachsprache

Domänenexperten, Architekten und Entwickler arbeiten am selben Artefakt. An den Übergängen zwischen Disziplinen entstehen die teuersten Fehler. Eine formal definierte Sprache macht sie sichtbar, bevor sie sich im Code verfestigen.
KI & MDSD

Ist MDSD im Zeitalter von KI noch relevant?

Kurz: Ja, und die Kombination ist stärker als jeder Ansatz allein.

Generative KI ist mächtig, aber statistisch. Dasselbe Prompt erzeugt unterschiedliche Ausgaben, ohne Garantie auf Konformität, Nachvollziehbarkeit oder Korrektheit. Genau die Eigenschaften, die KI strukturell fehlen (Determinismus, Auditierbarkeit, reproduzierbare Generierung) sind in eingebetteter und regulierter Entwicklung nicht verhandelbar. Hier liefert MDSD, was KI nicht kann.

Gleichzeitig ist KI ein wirkungsvoller Beschleuniger für MDSD. Konkret im Workflow: Anforderungstexte werden durch KI in erste Modellentwürfe überführt, bestehende Modelle werden erklärt oder auf Konsistenz geprüft, Refactorings werden vorgeschlagen. Der Modellraum (mit seiner definierten Semantik, seinen Regeln und Constraints) liefert KI dabei einen präzisen Kontext, den freie Textgenerierung nicht bieten kann. KI-Vorschläge bleiben auf valide Modellkonstrukte beschränkt; ganze Fehlerklassen sind im Modellraum strukturell ausgeschlossen, bevor ein Mensch reviewt.

Der entscheidende Schritt bleibt beim Menschen: Kein KI-Vorschlag wird ohne fachliche Freigabe zur Generierungsgrundlage. KI beschleunigt die Modellbildung; das Modell bleibt die deterministische Quelle der Wahrheit; die Code-Generierung bleibt reproduzierbar. Die drei Ebenen ergänzen sich, keine ersetzt die andere.

Abgrenzung

MDSD vs. Low-Code-Plattformen

Auf den ersten Blick haben MDSD und Low-Code eine Gemeinsamkeit: Beide reduzieren handgeschriebenen Code. Der Unterschied liegt darin, wie und für wen, und ist für eingebettete, sicherheitskritische Systeme grundlegend.

Echter Quellcode, keine Plattformbindung

MDSD erzeugt Quellcode, der dem Unternehmen gehört: lesbar, prüfbar, versionierbar. Kein proprietäres Laufzeitformat, keine Abhängigkeit von einem einzelnen Anbieter über den Produktlebenszyklus.

Keine Runtime-Plattform nötig

Der generierte Code läuft eigenständig, auch auf ressourcenbeschränkter Embedded-Zielhardware ohne Betriebssystem oder Cloud-Anbindung. Low-Code-Plattformen setzen strukturell eine verwaltete Laufzeitumgebung voraus.

Transparente Generierung

Der Generator ist einsehbar, anpassbar und, wo nötig, qualifizierbar. Das ist die Grundlage für Nachweisführung in regulierten Entwicklungsprozessen. Eine Black-Box-Plattform kann das nicht leisten.

Integration statt Ersatz

MDSD fügt sich in bestehende Build-, Test- und Sicherheitsprozesse ein. Der generierte Code ist erste Klasse im vorhandenen Werkzeug- und Prozessumfeld, kein Sonderweg, kein Bruch mit etablierten Engineering-Standards.
Einführung

MDSD einführen: wie itemis vorgeht

1. MDSD Readiness Assessment & Zieldefinition

Wir reviewen Entwicklungsprozesse, Domänenstruktur, Zielhardware und Werkzeuglandschaft und definieren ein gemeinsames Zielbild mit messbaren KPIs. Dabei klären wir, welche Systembereiche den größten Nutzen durch Modellierung und Generierung bieten und welche Qualitäts- und Nachweisanforderungen die Generierungsstrategie bestimmen.

2. Methodisches Tailoring & Sprachdesign

Auswahl oder Entwurf der geeigneten Modellierungssprache (UML-Profil oder DSL), Definition der Kernabstraktionen und Generator-Strategie für die relevanten Zielplattformen. Dazu gehören Simulationsumgebung für frühe Verhaltensvalidierung sowie die Integration modellbasierter Tests in bestehende Build- und CI-Prozesse.

3. Begleitung im Pilotprojekt

Wir begleiten Sie bei einem passenden Pilotprojekt direkt im Alltag: fachlich bei der Modellierung, bei der Kalibrierung der Code-Generatoren sowie beim Aufbau einer durchgängigen Absicherungskette: von der Simulation über automatisierte Tests bis zur formalen Verifikation. Ziel ist ein produktiv eingesetzter Generator-Stack, den Ihr Team eigenständig betreiben kann.

4. Skalierung & Roll-out

Ausweitung auf weitere Projekte, Produktlinien, Zielplattformen und Abteilungen. Generator-Konfigurationen, Simulationsumgebungen und Testframeworks werden systematisch übertragen und angepasst.

5. Langfristige Begleitung & Maintenance

Weiterentwicklung von Generatoren und Modellierungssprachen, Anpassung an neue Zielplattformen, Compiler oder Normanforderungen sowie Pflege von Simulations- und Testinfrastruktur über Versionszyklen hinweg. Auf Wunsch übernehmen wir auch die Modernisierung gewachsener Generator-Stacks und Legacy-DSLs.

Häufige Fragen

Häufige Fragen zu Model-Driven Software Development

Was ist der Unterschied zwischen MDSD und Low-Code-Plattformen?
Low-Code-Plattformen erzeugen kein eigenständig lauffähiges Artefakt und binden das Ergebnis an eine proprietäre Laufzeitumgebung. MDSD erzeugt echten Quellcode, der dem Unternehmen gehört: lesbar, prüfbar, versionierbar, ohne Plattformabhängigkeit über den Produktlebenszyklus. Für eingebettete, sicherheitskritische und langlebige Systeme ist MDSD deshalb der einzig tragfähige Ansatz.
Welche Zielsprachen unterstützt itemis CREATE?
itemis CREATE generiert Code in C, C++, C#, Java und Python. Weitere Zielsprachen sind über anpassbare Generatoren realisierbar. Die Zielsprache ist vom Modell entkoppelt: Ein Modell kann durch Austausch des Generators auf eine andere Plattform portiert werden, ohne die Spezifikation neu schreiben zu müssen.
Ist MDSD für eingebettete Systeme geeignet?
Ja. MDSD ist besonders wertvoll für eingebettete Systeme. Deterministisch generierter Code erfüllt automatisch Coding-Richtlinien wie MISRA C, der Generator kann qualifiziert werden (ISO 26262, IEC 61508), und das Modell bleibt plattformunabhängig, auch wenn sich Zielhardware oder Compiler im Produktlebenszyklus ändern.
Was ist der Unterschied zwischen einer DSL und UML?
UML ist eine branchenübergreifende Standardnotation, die durch Profile auf eine Domäne zugeschnitten werden kann. Eine domänenspezifische Sprache (DSL) wird von Grund auf für eine konkrete Domäne entworfen: sie macht nur das Mögliche ausdrückbar und schließt ganze Fehlerklassen strukturell aus. DSLs sind präziser und direkter generierbar; UML bietet breiteren Werkzeugsupport und Standardisierung.
Wie verhält sich MDSD zu KI-gestützter Codegenerierung?
KI-generierter Code ist statistisch und nicht reproduzierbar: dasselbe Prompt liefert unterschiedliche Ergebnisse, ohne Garantie auf Konformität oder Nachvollziehbarkeit. Modellbasierte Generierung liefert ein deterministisches, auditierbares Ergebnis. KI ist als Beschleuniger für die Modellbildung wertvoll (Anforderungen → Modellentwurf, Review, Refactoring), ersetzt aber nicht die deterministische Quelle der Wahrheit. Beide Ansätze ergänzen sich.
Unsere Experten
Axel Terfloth

Principal Engineer · itemis AG

Axel Terfloth ist Principal Engineer bei itemis mit Schwerpunkt auf modellbasierter und modellgetriebener Entwicklung technischer und eingebetteter Systeme sowie Product Owner von itemis CREATE. Seit 2001 beschäftigt er sich mit modellgetriebener Softwareentwicklung – seit 2006 bei itemis, wo er Kunden bei der Einführung und Erweiterung modellbasierter Entwicklungsmethoden begleitet und die dafür notwendigen Werkzeuge und Werkzeugintegrationen aufbaut. Zu diesen Themen spricht er auf Fachkonferenzen und veröffentlicht Fachartikel.
Andreas Mülder

Principal Software Engineer · itemis AG

Andreas Mülder ist Principal Software Engineer bei itemis und als technischer Projektleiter für itemis CREATE verantwortlich. Seit 2007 entwickelt er Werkzeuge für Plattformen wie Eclipse, Visual Studio Code, Cloud und Web – mit Schwerpunkt auf Language Engineering, domänenspezifischen Sprachen, Simulatoren und Codegeneratoren sowie der Integration generativer KI in produktreife Tools. Sein Wissen gibt er in Blog-Beiträgen zu Language Engineering und KI-gestützter Werkzeugentwicklung weiter.
Jetzt starten

MDSD-Workshop anfragen

Jetzt Termin mit Axel Terfloth und Andreas Mülder vereinbaren.

Fachwissen

Insights zu Model-Driven Software Development

Formale Methoden zur Fehlererkennung: Was geht, was nicht
Blog Model driven software development

Formale Methoden zur Fehlererkennung: Was geht, was nicht

Eine unerreichbare Transition, ein Guard, der nie erfüllbar ist: Solche Fehler stecken im Modell, lange bevor ein Test sie zeigt. Ein Ergebnisbericht aus zwei Masterarbeiten über formale Fehlererkennung auf Zustandsautomaten mit Symbolic Execution und SMT-Solver.

Zum Blog
Andreas Mülder Andreas Mülder 9 Min. Lesezeit
Referenzen

Aus der Praxis