Modellgetriebene Softwareentwicklung
aus Wikipedia, der freien Enzyklopädie
Modellgetriebene Softwareentwicklung, engl. Model Driven (Software) Development, MD(S)D, ist ein Vorgehensmodell für die Entwicklung von Software.
Vgl. auch Model Driven Architecture (MDA).
Inhaltsverzeichnis |
[Bearbeiten] Definition
Model Driven Development ermöglicht, Softwaresysteme durchgängig mit Hilfe von Modellen zu beschreiben. Im Jargon der MDA, einem speziellen Ansatz des MDD, unterscheidet man dabei zwischen:
1. fachlichen Modellen Platform Independent Model (PIM), die plattform-unabhängig Abläufe und Beziehungen der realen Welt bzw. realer Systeme beschreiben.
2. technischen Modellen Platform Specific Model (PSM), welche die fachlichen Modelle mittels der plattform-spezifischen Möglichkeiten je nach Art der gewünschten Ziel-Laufzeitumgebung abbilden, also zB. als Objekte, Klassen, Funktionen udgl.
Die Modelle bilden eine aufeinander aufbauende Abstraktionshierarchie. Das Abstraktionsniveau ist in der Programmiersprachen-Ebene am niedrigsten und steigt dann über das technische und fachliche Modell an. Eine weitere Abstraktionsebene ist das Business Process Modeling (siehe auch BPMN, BPEL).
Das Modell dient als Ausgangspunkt für den Softwareentwicklungsprozess. Treten Änderungen auf, wird zuerst das Modell geändert. Durch automatische Transformationen werden technisches Modell und Code zum geänderten Modell synchron gehalten. Informationen bezüglich der Anwendung oder der Systemumgebung werden im Modell statt im Code gepflegt.
Da Modelle auch für Nicht-Entwickler, wie beispielsweise Fachabteilungen, verständlich sind, können alle Interessensgruppen (Stakeholder) am Entwicklungsprozess beteiligt werden.
[Bearbeiten] Vorteile von MDD
Die fachlichen Modelle von MDD (PIM) sind per Definition plattformunabhängig. Modelle können auf verschiedener Technologie eingesetzt werden. Aus dem unabhängigen Modell wird im Nachgang ein plattformspezifisches Modell (PSM) generiert.
MDD erhöht die Entwicklungsgeschwindigkeit. Durch geeignete Werkzeuge findet eine automatische Transformation von PIM zu PSM und PSM zu Code statt. Dadurch wird die manuelle Modellierung und Codierung von stereotyp zu erzeugenden Artefakten wie beispielsweise Modellelementen oder Code-Fragmenten erheblich reduziert, im Idealfall völlig vermieden.
Durch den höheren Abstraktionsgrad von Modellen wird der Aufwand für Systemänderungen und -wartung in Modellen reduziert.
Modelle können einfach verwaltet und gesichert werden. Denkbar ist sogar die Einführung von Modell-Bibliotheken, die Wiederverwendung auf Ebene der fachlichen Modellierung ermöglichen.
[Bearbeiten] Werkzeuge für MDD
Man unterscheidet:
1. reine Modellierungswerkzeuge: Diese dienen lediglich zur grafischen Darstellung und unterstützen keine automatischen Transformationen. Das Modell wird hier in ein Austauschformat (XMI) exportiert und mit gesonderten Transformatoren weiterbearbeitet.
2. reine Transformatoren: Diese dienen ausschließlich der Transformation von Modellen und beinhalten keine grafischen Modellierungsfunktionalitäten. Modelle werden in einem Austauschformat wie XMI in ein internes Modellformat importiert, transformiert und danach wieder exportiert.
3. integrierte MDD Werkzeuge: Diese bieten Modellierung, Modelltransformationen und Codegenerierung in einem Werkzeug. Überflüssige Export- und Importvorgänge, Kompatibilitätsprobleme beim Datenaustausch und Rüstaufwand bezüglich Integration werden vermieden. Die Navigierbarkeit und Synchronisation zwischen fachlichem und technischem Modell und Implementierungscode wird optimal unterstützt.
[Bearbeiten] Beispiele für integrierte MDD-Werkzeuge
- OOMEGA Werkzeug für modellgetriebene Softwareentwicklung
- Sympedia GenFw EMF Basiertes Generator Framework
- ArcStyler (Interactive Objects Software GmbH)
- Eclipse + openArchitectureWare + EMF (Eclipse Foundation)
- Eclipse + openArchitectureWare + Enterprise Architect (Eclipse UML2)
- Innovator (MID GmbH)
- ObjectiF (microTOOL)
- Together Architect (Borland)
- Rational Application Developer (IBM)
- ASCET (ETAS)
- TOPCASED - Weblink (Open Source)
[Bearbeiten] Modellbasiertes bzw. Modellgetriebenes Testen (MDTD)
Das Gegenstück zur Modellgetriebenen Softwareentwicklung im Test stellt Modellbasiertes Testen bzw. die Modellgetriebene Testentwicklung (Model Driven Test Development, MDTD) dar.