Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im...

22
Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung Tobias Tischler

Transcript of Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im...

Page 1: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

Seminar Modellgetriebene Softwareentwicklung

MDSD – Model Driven Software Development

Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung

Tobias Tischler

Page 2: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

Model Driven Software DevelopmentTobias Tischler 2

Seminar Modellgetriebene Softwareentwicklung

Inhalt

Motivation Was ist MDSD? Aufbau der MDSD Ablauf Unterschiede zu MDA Zusammenfassung Ausblick

Page 3: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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.

Page 4: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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); } } }

Page 5: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 6: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 7: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 8: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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)

Page 9: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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)

Page 10: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 11: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 12: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 13: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 14: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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)

Page 15: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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)

Page 16: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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}

Page 17: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 18: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 19: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 20: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 21: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

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

Page 22: Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung.

Model Driven Software DevelopmentTobias Tischler 22

Seminar Modellgetriebene Softwareentwicklung

Vielen Dank