21.01.2013 Aufrufe

Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Modellgetriebene</strong><br />

<strong>Softwareentwicklung</strong><br />

Gabriele Taentzer<br />

WS 2012/2013<br />

<strong>Philipps</strong>-<strong>Universität</strong> <strong>Marburg</strong>


Organisation der LV<br />

� Umfang: 6 SWS, 9 ECTS Punkte<br />

� Veranstalter: Gabriele Taentzer, Daniel Strüber<br />

� Kontakt:<br />

� taentzer@informatik.uni-marburg.de,<br />

Raum D5434, Tel: 21532<br />

� strueber@informatik.uni-marburg.de,<br />

Raum: D5432, Tel: 21511<br />

� Termine:<br />

� VL: Mi 10 – 12 h, Raum: HS II<br />

� VL: Do 14 – 16 h, Raum: HS II<br />

� UE: Do 16 – 18h Raum: SR V, Rechnerraum D5<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 2


� ab 5. Semester<br />

� Voraussetzung:<br />

Organisation der LV<br />

� Grundvorlesungen in Praktischer Informatik<br />

� Einführung in die Softwaretechnik<br />

� Scheinkriterien:<br />

� Übungsaufgaben<br />

� Abschlussklausur / mündliche Prüfung<br />

� Homepage der LV:<br />

� www.uni-marburg.de/fb12/swt<br />

� Kopien der Folien, Literaturhinweise, Übungen, Software<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 3


Lehrveranstaltungsstil<br />

� Konzeptvermittlung in der Vorlesung<br />

� Folienkopien sind auf der Homepage verfügbar, kleinere<br />

Abweichungen (insb. Korrekturen) sind möglich<br />

� Beispiele häufig an der Tafel<br />

� Zwischenfragen und Kommentare während der Vorlesung<br />

sind grundsätzlich erwünscht.<br />

� Literatur häufig in Englisch<br />

� Praktische Übungen, häufig am Rechner<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 4


Lernziele<br />

� Verständnis des Paradigmas der modellgetriebenen<br />

<strong>Softwareentwicklung</strong><br />

� Fähigkeit, mit verschiedenen Sprachen (auch Unified Modeling<br />

Language) zu modellieren<br />

� Anwendung der modellgetriebenen <strong>Softwareentwicklung</strong> auf<br />

Webanwendungen<br />

� Kenntnisse über zugrundeliegende Software-Plattformen<br />

� Vertiefte Kenntnis eines Eclipse-basierten Ansatzes zur<br />

modellgetriebenen Entwicklung, konzeptionell und in praktischer<br />

Anwendung<br />

� Verständnis für die Möglichkeiten und Grenzen der<br />

modellgetriebenen <strong>Softwareentwicklung</strong><br />

� Grundverständnis für die in der LV vorgestellten Werkzeuge,<br />

durch Übungen vertieft<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 5


Inhalt<br />

� Einführung: <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong><br />

� Grundideen<br />

� Eclipse Modeling Framework<br />

� Modellierung und Codegenerierung<br />

� Generierung der Objektschicht von Webanwendungen<br />

� Entwicklung einer Infrastruktur mit Xtext, Xtend, Xpand<br />

� Entwicklung einer domänenspezifischen Modellierungssprache<br />

� Entwicklung eines Codegenerators<br />

� Projekt: MDD-Infrastruktur für einfache Webanwendungen<br />

� Analyse von vorhandenem Code und Plattformen<br />

� Entwicklung einer konkreten Infrastruktur<br />

� Weitere Themen der modellgetr. SW-Entwicklung:<br />

� Z.B.: Testen, Modellversionierung, große Modelle<br />

� Zusammenfassung und Ausblick<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 6


Einführung in die modellgetriebene<br />

<strong>Softwareentwicklung</strong><br />

17. Oktober 2012


<strong>Softwareentwicklung</strong>sprozesse<br />

� Wasserfallmodell<br />

� Spiralmodell<br />

� V-Modell<br />

� Iterativer Entwicklungsprozess<br />

� Unified Process<br />

� Agile <strong>Softwareentwicklung</strong><br />

� Extreme Programming<br />

� Scrum<br />

Anforderungsanalyse<br />

Entwurf<br />

Implementierung<br />

Testen<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 8<br />

Inbetriebnahme


Iterative <strong>Softwareentwicklung</strong><br />

Vorbereitung Nachbereitung<br />

Analyse<br />

(Anforderungsspezifikation)<br />

Design<br />

(Lösungsmodell)<br />

Evaluierung<br />

(Tests)<br />

Implementierung<br />

(Lösung)<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 9


Modelle im SW-Entwicklungsprozess<br />

� essentieller Teil des<br />

Entwicklungsprozesses<br />

� zur Kommunikation mit den<br />

Kunden und anderen<br />

Entwicklern<br />

� Zur Präzisierung von<br />

Anforderungen<br />

� Zum Design des zu<br />

entwickelnden Systems<br />

� verschiedenste<br />

Modellierungssprachen<br />

Anforderungen<br />

Modell<br />

abstrahiert<br />

konkretisiert<br />

zu realisierendes<br />

System<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 10


Prinzip der modellgetriebenen<br />

<strong>Softwareentwicklung</strong><br />

domänenspezifisch<br />

Generator<br />

Modell Programm<br />

anwendungsspezifisch<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 11


MDD vergleichbar zu einer Autobestellung?<br />

Getriebe<br />

Radio<br />

Sitze<br />

Dach<br />

Motor<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 12


…oder eher wie die Erstellung eines<br />

Fotokalenders?<br />

Drucken<br />

Fotografieren Binden<br />

fertige Kalender<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 13


Was kann modellgetriebene<br />

<strong>Softwareentwicklung</strong> leisten?<br />

� verkürzte Entwicklungszeiten<br />

� schnelle Erstellung von Prototypen<br />

� weniger technisches Wissen<br />

� leichtere Umstellung auf neue Technologien<br />

� stärkere Entkoppelung von Anwendungswissen und<br />

Technologiewissen<br />

� Kohärenz von Modell und Code<br />

� wohldefinierte Softwarearchitektur, besserer Code<br />

� aktuelle Dokumentation<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 14


Model Driven Architecture<br />

� Modellieren mit UML<br />

� Motto: „Model once, run<br />

anywhere.“<br />

� Generator kann Code für<br />

verschiedene Plattformen<br />

generieren.<br />

� z.B.: Java und .Net<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 15


<strong>Modellgetriebene</strong> Entwicklung<br />

z.B. basierend auf<br />

Metamodellierung<br />

visuelle<br />

Sprachspezifikation<br />

von visuellen Editoren<br />

Import<br />

Generator<br />

generiert<br />

z.B. auf der<br />

Basis von<br />

Eclipse GMF<br />

visuellen<br />

Editor<br />

benutzt<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 16


<strong>Modellgetriebene</strong> Entwicklung von<br />

UML-Modell<br />

<strong>Modellgetriebene</strong><br />

<strong>Softwareentwicklung</strong><br />

Webanwendungen<br />

Generator<br />

z.B.<br />

basierend auf<br />

Xtext,Xpand<br />

Webanwendung<br />

17


Generierung von Webanwendungen<br />

� Präsentationsschicht: Struts /<br />

JSF<br />

� Anwendungslogik: Enterprise<br />

Java Beans/ Spring<br />

� Datenzugriffsschicht: Hibernate<br />

� Datenbankschicht:<br />

z.B. MySQL<br />

www.andromda.org<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 18


Zusammenfassung<br />

� <strong>Modellgetriebene</strong> Entwicklung: <strong>Softwareentwicklung</strong> auf einer<br />

höheren Abstraktionsebene<br />

� Kern der LV: Entwicklung einer Infrastruktur für<br />

modellgetriebene Entwicklung von Webanwendungen<br />

� Die Verwendung einer Infrastruktur zur modellgetriebenen<br />

Entwicklung ist mehr als die Einstellung einiger Parameter. Sie<br />

bleibt ein kreativer Akt.<br />

Taentzer <strong>Modellgetriebene</strong> <strong>Softwareentwicklung</strong> 19

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!