Vorlesung Modellgetriebene Software-Entwicklung SS08
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 | Folien |
---|---|---|---|
1. | 17.04. | Einführung und Begriffsdefinitionen | |
2. | 24.04 | UML2 incl. Einblicke ins UML2 Meta-Modell | |
- | 01.05. | Feiertag: 1. Mai und Christi Himmelfahrt | |
- | 08.05 | Vorlesungsausfall | |
3. | 15.05. | Meta-Modellierung | |
- | 22.05. | Feiertag: Fronleichnam | |
4. | 29.05. | Transformationssprachen I | |
5. | 05.06. | Transformationssprachen II | |
6. | 12.06. | Transformationssprachen III | |
7. | 19.06. | MDSD-Prozess, Platformen, AC-MDSD, GP, SF | |
8. | 26.06. | Textuelle und Graphische Syntaxen (in Vertretung) | |
9. | 03.07. | Palladio Component Model (PCM) als Fallbeispiel (in Vertretung) | |
10. | 10.07. | Coupled Transforms, Code Generation, Interpretieren von Modellen, Modellieren im Team | |
11. | 17.07. | Testen von Modellen, Transformationen und des Generats, Abschließende Übersicht und Ausblick |
Die Materialien werden auf 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.