Modellgetriebene Softwareentwicklung Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg
Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Daniel Strüber Kontakt: taentzer@informatik.uni-marburg.de, Raum D5434, Tel: 21532 strueber@informatik.uni-marburg.de, Raum: D5432, Tel: 21511 Termine: VL: Mi 10 12 h, Raum: HS II VL: Do 14 16 h, Raum: HS II UE: Do 16 18h Raum: SR V, Rechnerraum D5 Taentzer Modellgetriebene Softwareentwicklung 2
Organisation der LV ab 5. Semester Voraussetzung: Grundvorlesungen in Praktischer Informatik Einführung in die Softwaretechnik Scheinkriterien: Übungsaufgaben Abschlussklausur / mündliche Prüfung Homepage der LV: www.uni-marburg.de/fb12/swt Kopien der Folien, Literaturhinweise, Übungen, Software Taentzer Modellgetriebene Softwareentwicklung 3
Lehrveranstaltungsstil Konzeptvermittlung in der Vorlesung Folienkopien sind auf der Homepage verfügbar, kleinere Abweichungen (insb. Korrekturen) sind möglich Beispiele häufig an der Tafel Zwischenfragen und Kommentare während der Vorlesung sind grundsätzlich erwünscht. Literatur häufig in Englisch Praktische Übungen, häufig am Rechner Taentzer Modellgetriebene Softwareentwicklung 4
Lernziele Verständnis des Paradigmas der modellgetriebenen Softwareentwicklung Fähigkeit, mit verschiedenen Sprachen (auch Unified Modeling Language) zu modellieren Anwendung der modellgetriebenen Softwareentwicklung auf Webanwendungen Kenntnisse über zugrundeliegende Software-Plattformen Vertiefte Kenntnis eines Eclipse-basierten Ansatzes zur modellgetriebenen Entwicklung, konzeptionell und in praktischer Anwendung Verständnis für die Möglichkeiten und Grenzen der modellgetriebenen Softwareentwicklung Grundverständnis für die in der LV vorgestellten Werkzeuge, durch Übungen vertieft Taentzer Modellgetriebene Softwareentwicklung 5
Inhalt Einführung: Modellgetriebene Softwareentwicklung Grundideen Eclipse Modeling Framework Modellierung und Codegenerierung Generierung der Objektschicht von Webanwendungen Entwicklung einer Infrastruktur mit Xtext, Xtend, Xpand Entwicklung einer domänenspezifischen Modellierungssprache Entwicklung eines Codegenerators Projekt: MDD-Infrastruktur für einfache Webanwendungen Analyse von vorhandenem Code und Plattformen Entwicklung einer konkreten Infrastruktur Weitere Themen der modellgetr. SW-Entwicklung: Z.B.: Testen, Modellversionierung, große Modelle Zusammenfassung und Ausblick Taentzer Modellgetriebene Softwareentwicklung 6
Einführung in die modellgetriebene Softwareentwicklung 17. Oktober 2012
Softwareentwicklungsprozesse Wasserfallmodell Spiralmodell V-Modell Iterativer Entwicklungsprozess Unified Process Agile Softwareentwicklung Extreme Programming Scrum Anforderungsanalyse Entwurf Implementierung Inbetriebnahme Testen Taentzer Modellgetriebene Softwareentwicklung 8
Iterative Softwareentwicklung Vorbereitung Nachbereitung Analyse (Anforderungsspezifikation) Evaluierung (Tests) Design (Lösungsmodell) Implementierung (Lösung) Taentzer Modellgetriebene Softwareentwicklung 9
Modelle im SW-Entwicklungsprozess essentieller Teil des Entwicklungsprozesses zur Kommunikation mit den Kunden und anderen Entwicklern Zur Präzisierung von Anforderungen Zum Design des zu entwickelnden Systems verschiedenste Modellierungssprachen Anforderungen Modell abstrahiert konkretisiert zu realisierendes System Taentzer Modellgetriebene Softwareentwicklung 10
Prinzip der modellgetriebenen Softwareentwicklung domänenspezifisch Generator Modell Programm anwendungsspezifisch Taentzer Modellgetriebene Softwareentwicklung 11
MDD vergleichbar zu einer Autobestellung? Radio Dach Getriebe Sitze Motor Taentzer Modellgetriebene Softwareentwicklung 12
oder eher wie die Erstellung eines Fotokalenders? Drucken Fotografieren Binden fertige Kalender Taentzer Modellgetriebene Softwareentwicklung 13
Was kann modellgetriebene Softwareentwicklung leisten? verkürzte Entwicklungszeiten schnelle Erstellung von Prototypen weniger technisches Wissen leichtere Umstellung auf neue Technologien stärkere Entkoppelung von Anwendungswissen und Technologiewissen Kohärenz von Modell und Code wohldefinierte Softwarearchitektur, besserer Code aktuelle Dokumentation Taentzer Modellgetriebene Softwareentwicklung 14
Model Driven Architecture Modellieren mit UML Motto: Model once, run anywhere. Generator kann Code für verschiedene Plattformen generieren. z.b.: Java und.net Taentzer Modellgetriebene Softwareentwicklung 15
Modellgetriebene Entwicklung von visuellen Editoren z.b. basierend auf Metamodellierung visuellen Editor visuelle Sprachspezifikation Import Generator generiert benutzt z.b. auf der Basis von Eclipse GMF Taentzer Modellgetriebene Softwareentwicklung 16
Modellgetriebene Entwicklung von Webanwendungen Generator UML-Modell z.b. basierend auf Xtext,Xpand Webanwendung Modellgetriebene Softwareentwicklung 17
Generierung von Webanwendungen Präsentationsschicht: Struts / JSF Anwendungslogik: Enterprise Java Beans/ Spring Datenzugriffsschicht: Hibernate Datenbankschicht: z.b. MySQL www.andromda.org Taentzer Modellgetriebene Softwareentwicklung 18
Zusammenfassung Modellgetriebene Entwicklung: Softwareentwicklung auf einer höheren Abstraktionsebene Kern der LV: Entwicklung einer Infrastruktur für modellgetriebene Entwicklung von Webanwendungen Die Verwendung einer Infrastruktur zur modellgetriebenen Entwicklung ist mehr als die Einstellung einiger Parameter. Sie bleibt ein kreativer Akt. Taentzer Modellgetriebene Softwareentwicklung 19