Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg
Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg
Modellgetriebene Softwareentwicklung - Philipps-Universität Marburg
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