|
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).
|