Vorlesung Modellgetriebene Software-Entwicklung SS08

Aus SDQ-Wiki

Vorlage:Student Volunteers CompArch2008

In dieser Vorlesung beschäftigen Sie sich mit der modellgetriebenen Entwicklung (Model-Driven Software Engineering, MDSE) von Software-Systemen. Neben klangvollen Standards wie die MDA der OMG, beleuchtet diese Vorlesung auch die Konzepte hinter der modellgetriebenen Software-Entwicklung:

  • Welche Techniken lassen sich für modellgetriebene Software-Entwicklung nutzen?
  • Wie lassen sich Plattformen aus bestehenden Software-Produkten ableiten?
  • Sie beleuchten das große Feld der Meta-Modellierung, die Entwicklung von Meta-Modellen auf Basis von UML mit Profilen sowie die Erstellung eigener bedarfsgerechter Meta-Modelle
  • Transformationen werden einen besonders großen Platz in der Vorlesung einnehmen. Neben Quasi-Standards für Modell-2-Text-Transformationen wie dem oAW-Framework oder JET werden Ihnen auch Model-2-Model-Transformationen wie QVT näher gebracht.

Angesichts eines starken Zwangs zu gesteigerter Produktivität in der Software-Entwicklung erscheint MDSE vielen Software-Häusern als eine Antwort auf Offshoring von Software-Entwicklung. Am Ende dieser Vorlesungsreihe können Sie modellgetriebene Software-Entwicklung mit Anforderungen, Chancen und Risiken detailliert beleuchten.

Zusammenfassung

Modellgetriebene Software-Entwicklung verfolgt die Entwicklung von Software-Systemen auf Basis von Modellen. Dabei werden die Modell nicht nur, wie bei der herkömmlichen Software-Entwicklung üblich, zur Dokumentation, Entwurf und Analyse eines initialen Systems verwendet, sondern dienen vielmehr als primäre Entwicklungsartefakte, aus denen das finale System nach Möglichkeit vollständig generiert werden kann. Diese Zentrierung auf Modelle bietet eine Reihe von Vorteilen, wie z.B. eine Anhebung der Abstraktionsebene auf der das System spezifiziert wird, verbesserte Kommunikationsmöglichkeiten, die durch domänenspezifische Sprachen (DSL) bis zum Endkunden reichen können, und eine Steigerung der Effizienz der Software-Erstellung durch automatisierte Transformationen der erstellten Modelle hin zum Quellcode des Systems. Allerdings gibt es auch noch einige, zum Teil ungelöste Herausforderungen beim Einsatz von modellgeriebener Software-Entwicklung wie beispielsweise Modellversionierung, Evolution der DSLs, Wartung von Transformationen oder die Kombination von Teamwork und MDSD. Obwohl aufgrund der genannten Vorteile MDSD in der Praxis bereits im Einsatz ist, bieten doch die genannten Herausforderungen auch noch Anschlußmöglichkeiten für aktuelle Forschung.

Die Vorlesung wird Konzepte und Techniken, die zu MDSD gehören, einführen. Als Grundlage wird dazu die systematische Erstellung von Meta-Modellen und DSLs einschließlich aller nötigen Bestandteile (konkrete und abstrakte Syntax, statische und dynamische Semantik) eingeführt. Anschließend erfolgt eine allgemeine Diskussion der Konzepte von Transformationsprachen sowie eine Einführung in einige ausgewählte Transformationssprachen. Die Einbettung von MDSD in den Software-Entwicklungsprozess bietet die nötigen Grundlagen für deren praktische Verwendung. Die verbleibenden Vorlesungen beschäftigen sich mit weiterführenden Fragestellungen, wie der Modellversionierung, Modellkopplung, MDSD-Standards, Teamarbeit auf Basis von Modellen, Testen von modellgetrieben erstellter Software, sowie der Wartung und Weiterentwicklung von Modellen, Meta-Modellen und Transformationen. Abschließend werden modellgetriebene Verfahren zur Analyse von Software-Architekturmodellen als weiterführende Einheit behandelt.

Die Vorlesung vertieft Konzepte aus existierenden Veranstaltungen wie Software-Technik oder Übersetzerbau bzw. überträgt und erweitert diese auf modellgetriebene Ansätze. Weiterhin werden in Transformationsprachen formale Techniken angewendet, wie Graphgrammatiken, logische Kalküle oder Relationenalgebren.

Vorlesungsmaterialien

Nr. Termin Thema Emblem-readonly small.png Folien
1. 17.04. Einführung und Begriffsdefinitionen PDF
2. 24.04 UML2 incl. Einblicke ins UML2 Meta-Modell PDF
- 01.05. Feiertag: 1. Mai und Christi Himmelfahrt
- 08.05 Vorlesungsausfall
3. 15.05. Meta-Modellierung PDF
- 22.05. Feiertag: Fronleichnam
4. 29.05. Transformationssprachen I PDF
5. 05.06. Transformationssprachen II PDF
6. 12.06. Transformationssprachen III PDF
7. 19.06. MDSD-Prozess, Platformen, AC-MDSD, GP, SF PDF
8. 26.06. Textuelle und Graphische Syntaxen (in Vertretung) PDF
9. 03.07. Palladio Component Model (PCM) als Fallbeispiel (in Vertretung) PDF
10. 10.07. Coupled Transforms, Code Generation, Interpretieren von Modellen, Modellieren im Team PDF
11. 17.07. Testen von Modellen, Transformationen und des Generats, Abschließende Übersicht und Ausblick PDF

Die Materialien werden auf Emblem-readonly small.png http://sdqweb.ipd.uka.de/lehre/SS08-MDSE für Sie bereit gestellt. Der Zugang ist passwortgeschützt; Benutzername: stud. Das Passwort wird Ihnen in der Vorlesung mitgeteilt.

Formalia

Die Vorlesung Modellgetriebene Software-Entwicklung richtet sich an Studierende des Hauptstudiums ab dem 7. Semester. Der Vorlesungstermin liegt wöchentlich am Donnerstag von 11:30 - 13:00 Uhr, Raum: HS -101 (50.34 UG). Der erstmalige Termin für die Vorlesung ist Donnerstag, 17.04.2007. Diese Vorlesung kann für das Vertiefungsfach "Softwaretechnik und Übersetzerbau" angerechnet werden.