Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung."—  Präsentation transkript:

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

2 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler2 Inhalt Motivation Was ist MDSD? Aufbau der MDSD Ablauf Unterschiede zu MDA Zusammenfassung Ausblick

3 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler3 Motivation am Beispiel Hello World I In BASIC Print Hello World! In PASCAL program HelloWorld(output); begin writeln('Hello World!'); end.

4 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler4 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); }

5 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler5 Motivation am Beispiel Hello World III Als J2EE/EJB-Anwendung Web- Client Anwen- dungs- Client JSP Servlet EJB Daten- bank Daten- bank Web-ContainerEJB-Container Client- Schicht Web- Schicht Anwendungs- Schicht Daten- Schicht Präsentationsschicht Hello World

6 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler6 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

7 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler7 Motivation am Beispiel Hello World V AssemblerHöhere ProgrammiersprachenModellierungssprachen Intel 4004 Intel 8080 Zilog Z80 etc. BASIC PASCAL C etc. JAVA C++ C# etc. J2EE/EJB CORBA.NET etc. UML CWM DSL etc. nicht objektorientiert objektorientiert/ fensterbasiert komponenten- orientiert MDSD/MDA- basiert einige Hundert einige Hundert einige wenige Programmzeilen Modellierungselemente

8 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler8 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)

9 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler9 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)

10 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler10 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

11 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler11 Aufbau der MDSD I für modellgetriebene Softwareentwicklung werden benötigt: formale, abstrakte Modelle und Domänen Plattform(en) Transformationen manuelle Ergänzungen

12 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler12 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

13 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler13 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 MiddlewareBibliothekFrameworkKomponenteAspekt > Baustein Plattform Domäne 0..* basiert auf unterstützt

14 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler14 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)

15 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler15 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)

16 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler16 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 // insert your code here // --- protected area end assert( balance >= balance_atPre + amount ); // postcondition }

17 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler17 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

18 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler18 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

19 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler19 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

20 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler20 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

21 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler21 Quellen Stahl, T., Völter, M.: Modellgetriebene Software- entwicklung. dpunkt.verlag, 1. Auflage COL MDSD Frankel - Bettin - Cook.pdf _2004.pdf ektrum_2005.pdf sw_v9.pdf

22 Seminar Modellgetriebene Softwareentwicklung Model Driven Software DevelopmentTobias Tischler22 Vielen Dank


Herunterladen ppt "Seminar Modellgetriebene Softwareentwicklung MDSD – Model Driven Software Development Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung."

Ähnliche Präsentationen


Google-Anzeigen