Seminar Modellgetriebene Softwareentwicklung
MDSD – Model Driven Software Development
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
Tobias Tischler
Model Driven Software DevelopmentTobias Tischler 2
Seminar Modellgetriebene Softwareentwicklung
Inhalt
Motivation Was ist MDSD? Aufbau der MDSD Ablauf Unterschiede zu MDA Zusammenfassung Ausblick
Model Driven Software DevelopmentTobias Tischler 3
Seminar Modellgetriebene Softwareentwicklung
Motivation am Beispiel „Hello World“ I
In BASIC Print “Hello World!“
In PASCAL program HelloWorld(output); begin writeln('Hello World!'); end.
Model Driven Software DevelopmentTobias Tischler 4
Seminar Modellgetriebene Softwareentwicklung
Motivation am Beispiel „Hello World“ II
In JAVA import java.awt.*; import java.awt.event.*; public class HelloWorldApp extends Frame { public static void main(String args[ ]) { HelloWorldApp app = new HelloWorldApp(); } public HelloWorldApp() { super("HelloWorld!"); setSize(200,200); addWindowListener(new HelloWorldApp.WindowEventHandler()); show(); } public void paint(Graphics g) { g.drawString("Hello World!",60,90); } classWindowEventHandler extendsWindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }
Model Driven Software DevelopmentTobias Tischler 5
Seminar Modellgetriebene Softwareentwicklung
Motivation am Beispiel „Hello World“ III
Als J2EE/EJB-Anwendung
Web-Client
Anwen-dungs-Client
JSP
Servlet
EJB
EJB
Daten-bank
Daten-bank
Web-Container EJB-Container
Client-Schicht
Web-Schicht
Anwendungs-Schicht
Daten-Schicht
Präsentationsschicht
Hello World
Model Driven Software DevelopmentTobias Tischler 6
Seminar Modellgetriebene Softwareentwicklung
Motivation am Beispiel „Hello World“ IV
Als J2EE/EJB-Anwendung • Installation der EJB-Infrastruktur • Erzeugung der Bean Klasse • Erzeugung der EJB-Schnittstellen • Erzeugung der Meta-Informationen • Kompilierung der EJB • Packen der EJB • Installation der EJB • Erzeugung der Client-Applikation • Kompilierung der Client-Applikation • Starten der Anwendung
Anwendungsschicht
Client-Schicht
Model Driven Software DevelopmentTobias Tischler 7
Seminar Modellgetriebene Softwareentwicklung
Motivation am Beispiel „Hello World“ V
Assembler Höhere Programmiersprachen Modellierungssprachen
Intel 4004Intel 8080Zilog Z80etc.
BASICPASCALCetc.
JAVAC++C#etc.
J2EE/EJBCORBA.NETetc.
UMLCWMDSLetc.
nichtobjektorientiert
objektorientiert/fensterbasiert
komponenten-orientiert
MDSD/MDA-basiert
einige Hundert 1-5 15-20 einige Hundert einige wenige
Programmzeilen Modellierungselemente
Model Driven Software DevelopmentTobias Tischler 8
Seminar Modellgetriebene Softwareentwicklung
Motivation VI
Software ist kritischer Bestandteil vieler technologie- und servicebasierter Unternehmen
Software muss produktiver entwickelt werden Anwendungsarchitektur: konsistent und offen Abhängigkeiten: besseres Management nötig Zeitmanagement ändern (Dokus, Systemfamilien)
„Modellbasiert“ gibt nur mittelbaren Nutzen (sehr sorgfältige Dokumentation und Interpretation nötig)
Model Driven Software DevelopmentTobias Tischler 9
Seminar Modellgetriebene Softwareentwicklung
Was ist MDSD? I
Software wird teilweise oder vollständig aus Modellen generiert Modell = Code
wiederholte Generierung möglich kein Code-Wizard bzw. Pattern-Expander
iterative Entwicklung durch Trennung von Infrastruktur und Anwendungslogik
Entwicklungsteam legt Sprache und Übersetzer fest: es werden auch „Software-Fabriken“ entwickelt (Infrastrukturen, um SW zu entwickeln)
Model Driven Software DevelopmentTobias Tischler 10
Seminar Modellgetriebene Softwareentwicklung
Was ist MDSD? II
Ziele: Verringerung der Entwicklungszeit durch Automation Wiederverwendbarkeit erhöhen durch Bereitstellung
praktisch einsetzbarer Bausteine für Softwareentwicklungs-prozess
Wartbarkeit und Softwarequalität steigern Separation of Concerns Handhabbarkeit von Komplexität durch Abstraktion
gewährleisten
Model Driven Software DevelopmentTobias Tischler 11
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD I
für modellgetriebene Softwareentwicklung werden benötigt:
formale, abstrakte Modelle und Domänen
Plattform(en)
Transformationen
manuelle Ergänzungen
Model Driven Software DevelopmentTobias Tischler 12
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD II
Domäne und Modell beschreibt den Problemraum (begrenztes Interessen- /
Wissensgebiet) kann technisch und fachlich motiviert sein unterteilbar in Subdomänen (z.B.: GUI-Layout, Persistenz)
und Partitionen (z.B.: Nutzerverwaltung, Wissens-DB) beschrieben durch Domain-Specific Language (DSL)
Abstrakte Syntax: Metamodell Konkrete Syntax: textuell, grafisch, tabellarisch, … Semantik: transformationell definiert (Abbildung auf 3GL)
Erstellung durch UML-Profile Neuaufbau anhand des Metamodells
Model Driven Software DevelopmentTobias Tischler 13
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD III
Plattform stützt den Lösungsraum erleichtert die Transformationen stellt Dienste und Bausteine zur Verfügung DSL ermöglicht deren richtige und effiziente Verwendung
Middleware Bibliothek Framework Komponente Aspekt
<<abstract>>
Baustein
PlattformDomäne
0..*basiert auf
unterstützt
Model Driven Software DevelopmentTobias Tischler 14
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD IV
Transformationen müssen oft alle Aspekte des Systems berücksichtigen
bei mehreren DSLs ein gemeinsames Metamodell nötig können in mehreren Schritten erfolgen es gibt 2 Arten
Modell-zu-Modell-Transformation beschreibt Abbildung der Konstrukte eines Quell-
Metamodells auf ein Ziel-Metamodell Modell-zu-Plattform(bzw. Code)-Transformation
generiert Artefakte, die sich auf Plattform stützen (z.B.: Quellcode)
Ziel-Metamodell nicht nötig, da meist Makroexpansionen (z.B. durch Templates)
Model Driven Software DevelopmentTobias Tischler 15
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD V
manuelle Ergänzungen wenn Modellierung zu aufwendig bzw. nicht durch DSL
ausdrückbar um performanceoptimierten Code zu erzeugen
manuell erzeugter Code ist von generiertem zu trennen geschützte Bereiche generiertes Interfaces wird manuell implementiert generierte abstrakte Klassen werden manuell erweitert am besten auch technische Trennung (speichern in anderen
Dateien oder Verzeichnisbäumen)
Lesbarkeit gewährleisten (Pretty Printer / Beautifier)
Model Driven Software DevelopmentTobias Tischler 16
Seminar Modellgetriebene Softwareentwicklung
Aufbau der MDSD V Abstrakte Klassen
public abstract class Account {int balance;public final void increase( int amount ) {
int balance_atPre = balance; // postcondition
increase_internal( amount );assert( balance >= balance_atPre + amount ); //
postcond.}protected abstract void increase_internal( int amount );
} geschützte Bereiche
public void increase( int amount) {int balance_atPre = balance; // postcondition// --- protected area begin 001 ---
// insert your code here
// --- protected area end 001 ---assert( balance >= balance_atPre + amount ); //
postcondition}
Model Driven Software DevelopmentTobias Tischler 17
Seminar Modellgetriebene Softwareentwicklung
Ablauf
Domäne festlegen / bestimmen und evtl. aufteilen DSL entwickeln Modell entwickeln (Applikationsfunktionalität und nicht
programmiersprachliche Abstraktionen) Templates schreiben für die Code-Generierung Modell in maschinenlesbares Format transformieren (XMI) Quellcode erzeugen Anwendungslogik ergänzen
Iteration der Schritte
Model Driven Software DevelopmentTobias Tischler 18
Seminar Modellgetriebene Softwareentwicklung
Unterschiede zu MDA
MDA ist „eine Standardisierungsinitiative der OMG zum Thema MDSD“
Metamodell ist MOF DSL muss mit MOF definiert werden Präzisierung von Modellen mittels OCL (Object Constraint
Language) bzw. Action Semantics (seit UML 2.0) Transformationssprachen werden durch QVT-RFP (Query
/ Views / Transformations) festgelegt MDA: Interoperabilität und Portabilität MDSD: praktisch einsetzbare Bausteine
Model Driven Software DevelopmentTobias Tischler 19
Seminar Modellgetriebene Softwareentwicklung
Zusammenfassung
Einführung ist zeit- und kostenintensiv Erstellung eines neuen Projektes ist aufwändiger erzeugter Code ist gleichmäßig strukturiert Wiederverwendbarkeit von Komponenten amortisiert dies
(System-Familien) Trennung der Aufgabenbereiche fördert Expertenwissen schnelle Validation durch Kunden möglich Technologiewechsel werden vereinfacht
Model Driven Software DevelopmentTobias Tischler 20
Seminar Modellgetriebene Softwareentwicklung
Ausblick
Werkzeuge zur Modell-Verwaltung entwickeln Erstellung der DSLs noch nicht praktikabel Modelltransformations- und Templatesprachen müssen
ihre Toolbindung aufheben Ob QVT-RFP befriedigende Resultate liefert, weiß niemand
Debugger auf Modellebene wünschenswert Mentalität der Entwickler und Programmierer muss sich
noch ändern
Model Driven Software DevelopmentTobias Tischler 21
Seminar Modellgetriebene Softwareentwicklung
Quellen
Stahl, T., Völter, M.: Modellgetriebene Software-entwicklung. dpunkt.verlag, 1. Auflage 2005
http://www.voelter.de/services/mdsd.html http://www.bptrends.com/publicationfiles/04-04 COL
MDSD Frankel - Bettin - Cook.pdf http://www.sigs.de/publications/os/2004/MDD/
bettin_MDD_2004.pdf www.voelter.de/data/articles/MDSD.pdf http://www.microtool.de/mt/pdf/company/49/
mdd_objektspektrum_2005.pdf http://www.irf.uni-karlsruhe.de/esys-sw/seiten/skript/esys-
sw_v9.pdf
Model Driven Software DevelopmentTobias Tischler 22
Seminar Modellgetriebene Softwareentwicklung
Vielen Dank