Modellgetriebene Softwareentwicklung mit UML und Java
Seite 4: Exkurs
MDSD versus MDA
Zur Verallgemeinerung von MDA (Model Driven Architecture) entstand das MDSD-Konzept (Model-Driven Software Development). Es verwendet Modelle als zentrale Idee. Dabei wird die Anwendungslogik nicht in einer traditionellen Programmiersprache ausformuliert, sondern in einer domänenspezifischen Sprache (Domain Specific Language) umgesetzt. Zudem umfasst MDSD die Produktlinien-Softwaretechnik, die die Definition und Erstellung von Produktfamilien einer speziellen Domäne zum Ziel hat. Ein wichtiger Bestandteil des MDSD-Konzepts sind Transformationsregeln. Mit ihnen lassen sich aus Quell- neue Zielmodelle generieren. In der Praxis werden sie in Generatoren umgesetzt und als Cartridges verpackt. Als Quellmodelle dienen oft UML-Modelle, und als Zielmodelle stellen meistens textuelle Artefakte wie Java-Code XML dar.
MDSD sieht MDA als Spezialisierung dieses Konzepts, da MDA das MDSD-Konzept ausschlieĂźlich mit konkreten offenen Standards (UML, MOF und QVT) implementiert. Vereinfacht gelten folgende Definitionen:
- MDSD: allgemeine modellgetriebene Softwareentwicklung
- MDA: MDSD mit UML
Beim Einsatz der modellgetriebenen Softwareentwicklung mit UML ist auf zwei unterschiedliche Rollen zu achten:
- Anwendungsentwickler: Sie verwenden Cartridges, um aus einem oder mehreren UML-Modellen etwa Java-Code und XML zu generieren. Anwendungsentwickler sind im Prinzip analog zu allgemeinen Framework-Nutzern.
- Cartridge-Entwickler: Sie sind analog zu Framework-Entwicklern. Sie stellen den Anwendungsentwicklern Generatoren beziehungsweise Cartridges beispielsweise von UML zu Java-Code und XML zur VerfĂĽgung.
(ane)