Modellbasierte Softwareentwicklung: Status Quo und Ausblick Mittlerweile konnte Modellbasierte Softwareentwicklung ihre Praxistauglichkeit beweisen, dabei hat sie aber auch ihre Grenzen offenbart. Künftig wird die Benutzerfreundlichkeit der Werkzeuge, aber auch ihre Integration untereinander zunehmen.
In den letzten Jahren hat in der Softwareentwicklung der Anteil der mittels Modellbasierter Softwareentwicklung (MDSD) erstellten Anwendungen stark zugenommen. MDSD ist jedoch keine revolutionäre Entwicklung, sondern baut auf vielen bekannten Ideen und Methoden auf. Modelle zur Beschreibung von Softwaresystemen werden schon sehr lange verwendet. Auch wurden aus solchen Modellen schon seit mehreren Jahrzehnten Teile der zu erstellenden Anwendung generiert. Eine weitere Wurzel liegt im Compilerbau. Worin liegt nun der Grund, dass MDSD heute eine stärkere Rolle spielt? Viele frühere Ansätze, wie etwa klassische 4GL Case-Werkzeuge, konnten für eine bestimmte Klasse von Aufgabenstellungen Teile der benötigten Anwendung generieren – dabei gaben Toolhersteller die Modellstruktur, die Anwendungsarchitektur und die Struktur des generierten Codes vor. Problematisch erwiesen sich daher oftmals notwendige Anpassungen. Durch mangelnde Flexibilität und Erweiterbarkeit wurden die Vorteile stark abgeschwächt oder sogar aufgehoben. Dies führte oftmals zu einer Ablehnung dieser Ansätze. Andererseits hat die Größe und Komplexität der zu erstellenden Softwaresysteme weiter zugenommen und MDSD verspricht bei der Beherrschung der damit einhergehenden Probleme zu helfen. Zu den Zielen von MDSD zählen auch die Trennung von technischen und fachlichen Aspekten, kürzere Entwicklungszeiten sowie generell gesteigerte Qualität der erstellten Software. Um diese Erwartungen besser zu verstehen ist es wichtig, das Grundprinzip von MDSD zu verstehen. Modelle abstrahieren und fokussieren bestimmte Aspekte eines Systems wie zum Beispiel die Struktur eines Softwaresystems oder den Ablauf eines Geschäftsprozesses. Kern des Vorgehens ist, zunächst eine domänenspezifische Sprache (DSL) für die Anwendungsdomäne zu erstellen, deren Abstraktionen und Notationen für die entsprechende Domäne genau passend sind. Dabei wird in einem sogenannten Metamodell formal festgelegt, welche Modellelemente in einem konkreten Modell erlaubt sind. Mittels eines Generators, der die Abbildung von Modellelementen zu Elementen der Zielartefakte festlegt, können große Teile des zu erstellenden Softwaresystems gebaut werden. Im Gegensatz zu Case Tools werden die Sprache und die Generatoren genau an die Domäne und die Zielplattform angepasst. Das generierte System kann manuell erweitert werden. Eine vollständige Generierung ist oftmals nicht sinnvoll, da dazu alle Spezialfälle berücksichtigt werden müssten. Wird dieser Spezialfall nur einmal verwendet, übersteigen die Kosten oftmals den Nutzen durch MDSD. Dabei ist zu beachten, dass diese Änderungen nicht eventuell durch die Transformationen festgelegte Architektur- und Designvorgaben verletzten. Einige MDSD-Plattformen bieten hierfür Unterstützung oder Erweiterungsmöglichkeiten an. Die Verwendung spezialisierter Modellierungssprachen ermöglicht eine starke Orientierung an von den Fachabteilungen bekannten Begriffen und Prozessen. Dadurch können Fachabteilungen früher und direkter involviert werden. Dabei werden neben grafischen auch textuelle Notationen verwendet. Beide Notationsformen haben Vor- und Nachteile. Grafische Notationen eignen sich sehr gut um Beziehungen darzustellen und für Übersichten. Sie werden jedoch bei zunehmenden Details häufig unübersichtlich. Bei textuellen Notationen ist es im Allgemeinen genau andersherum. Großes Potenzial bietet die Kombination der beiden Notationsformen. Dies ist bei einigen Werkzeugen/Technologien teilweise schon möglich.