10012
epp_logo.png

Die modellgetriebene Software-Entwicklung (Model-Driven-Software-Development) ist eine Vorgehensweise zur effizienten Entwicklung von Software-Architekturen. Sie unterstützt die Arbeitsteilung in Fachdisziplinen, integriert deren Ergebnisse kontrolliert und automatisiert zu einem Gesamt-Produkt.

Modellieren & Spezifizieren
Auf der Abstraktionshöhe und in der Sprache der Fachabteilung werden Anforderungen, Spezifikationen, Ablauf-Darstellungen, Bildschirm-Masken, Datenbank-Felder, Automatisierungs-Vorschriften, Testfälle etc. editiert und formuliert. Dies kann mit den Modellierungstechniken der UML, oder einer domänenspezifischen Sprache, textuell oder mit einer graphischen Notation, erfolgen.

Verifizieren & Validieren
Die Modelle können direkt nach dem Erstellen formal geprüft werden. Liegt ein multivariantes Modell für eine Produkt-Familie zugrunde, können sämtliche Varianten auf Integrität und Regelerfüllung getestet werden. Mit den Mitteln des Rapid-Prototyping werden die Modelle (z.B. durch Visualisierung) erlebbar gemacht, um ein schnelles Feedback zu erzeugen. Beide Vorgehensweisen dienen der frühren Eliminierung von Fehlern und der Minimierung von Change-Requests im Entwicklungs-Prozess.

Generieren & Integrieren
Aus den Modellen werden für das Endprodukt Code und/oder Daten erzeugt und in dieses integriert. Die Generierung muss dabei nicht zu 100% erfolgen, auch Enhancements, Injections und Mergings sind technisch realisierbar.

Einsatzgebiete
Modellgetriebene Software-Entwicklung eignet sich besonders zur Umsetzung in Fachgebieten, die ein hohes Maß an Formalisierung bereits entwickelt haben, die dann fast direkt umgesetzt werden kann. Auch bei Produkten mit hoher Variabilität (Produkt-Varianten, Multilingualität, verschiedene Editionen, individuelle Ausstattungen, unterschiedliche Ablaufumgebungen, Change-Request-Modalitäten) kann die Produktkomplexität durch die Verwendung von multivarianten Modellen effizient beherrscht werden. Als MUST-HAVE gilt MDSD dort, wo erwartbare, aber kaum vermeidbare Technologie-Brüche effizient überwunden werden müssen: Datenbank-OO Mappings, Interfaces auf Netzwerk-Protokolle, UI-Beschreibung auf UI-Bibliothek, Hochsprachen zu maschinenspezifischen Code, UML zu Formatdefinitionen (XSD, SQL).


gelberStrichUnten.jpg