Zur Webseite der Informatik

Model-driven Software Engineering

2V + 2Ü (Becker)

Stand: Sommersemester 2017

Vorlesung

Alle Materialien zur Vorlesung werden im Ilias-Kurs zur Verfügung gestellt. Das Passwort zum Kursbeitritt wird in der ersten Veranstaltung bekanntgegeben.

Termine:

  • Dienstag,           9:45 - 11:15 Uhr, Raum V38.02
  • Donnerstag,     11:30 - 13:00 Uhr, Raum V38.02

 

Bildungsziel

Die Vorlesung stellt modellgetriebene Softwareentwicklung (MDSD) in der Softwaremodellierung und -entwicklung vor. Im Fokus stehen dabei der OMG-Viewpoint modellgetriebener Entwicklung einschließlich OMG-Standards wie MDA, QVT oder MOF. Die Vorlesung vermittelt jedoch den Hintergrund der in diesen Standards verwendeten Konzepte und bezieht sie auf andere Bereiche der Softwareentwicklung: Welche Techniken erden in MDSD eingesetzt? Wie können wir Plattformen aus bestehenden Softwaresystemen ableiten? Wie kann Metamodellierung mit UML-Profilen oder MOF umgesetzt werden? Wie werden Modelle transformiert?
Wir beschäftigen uns intensiv mit Transformationssprachen für Modell-zu-Modell-Transformationen (wie QVT oder TGGs), aber auch für Modell-zu-Text Generatoren (wie oAW oder JET). Viele Softwareentwicklungsunternehmen sehen heute eine modellgetriebene Softwareentwicklung als eine echte Alternative zur teuren und hochproduktiven Codeentwicklung. In diesem Sinne dient MDSD als Gegenentwurf zur traditionellen Software-Entwicklung. Ziel der Vorlesung ist es, über modellgetriebene Aspekte, Technologien und Werkzeuge zu beurteilen, um Chancen und Risiken bei der Entwicklung einer modellgetriebenen Softwareentwicklung in eigenen Softwareprojekten zu beurteilen.

Inhalte von Model-Driven Software Development

Model-driven software engineering konzentriert sich auf die Entwicklung von Software-Systemen, bei denen die Modelle im Zentrum des Entwicklungsprozesses stehen. Im Gegensatz zum klassischen Software-Enigneering, bei dem Modelle traditionell für Spezifikation und Kommunikation verwendet werden, sind die MDSD primäre Entwicklungsartefakte - Es wird versucht die erstellung von Code zu vermeiden.
Der Fokus auf Modelle bietet viele Vorteile, wie die Erhöhung des Abstraktionsniveaus während des Systementwurfs, eine verbesserte Kommunikation durch den Einsatz von domänenspezifischen Sprachen (DSLs), welche möglicherweise von Endkunden genutzt werden und eine Steigerung der Produktivität durch die Verwendung von Transformationen, um den Code für das endgültige System zu generieren.
Trotzdem gibt es noch einige ungelöste Probleme, die die weitreichende Anwendung modellgetriebener Techniken in der industriellen Praxis behindern. Zu diesen Problemen gehören Modellversionierung, Weiterentwicklung von DSLs, die Wartung von Transformationen, oder die Arbeit mit Modellen in größeren Entwicklungsteams. Wir stellen die Forschungsprobleme in diesen Bereichen vor, die sich für Masterarbeiten anbieten.
Trotz dieser Probleme wird MDSD in der Praxis erfolgreich angewendet.

Die Vorlesung stellt Konzepte und techniken im Bereich des MDSD vor. Wir beginnen mit Grundlagen zu Modellen und Metamodellen um zu lernen, wie man eigene Modellierungssprachen definiert. Dies erfordert die Definition von konkreten und abstrakten Syntaxen, sowie statische und dynamische Semantiken. Basierend auf solchen Metamodellen diskutieren wir im Detail die Konzepte von Transformationssprachen und gehen in gehen anhand aktueller Standard-Transformationssprachen ins Detail. All dies währe eher nutzlos, wenn MDSD nicht in den Softwareentwicklungsprozess eingebettet ist. Daher betrachten wir modellgetriebene Softwareentwicklungsprozesse. Der verbleibende Teil der Vorlesung vermittelt detaillierte Informationen zu den Themen Modell-Versionierung, Modellkopplung, MDSD-Standards, Teamarbeit, und Test und Wartung von Modellen und Transformationen. Schließlich wenden wir die Erfahrung aus dem Bereich der Software-Architektur-Evaluation als Fallstudie an.

Die Vorlesung gehört zu einer Vorlesungreihe im Bereich Softwareengineering und Compilerbau. Viele der vorhandenen Konzepte werden aus der Sicht der MDSD-Anforderung in der Vorlesung neu betrachtet. Wir heben auch eine Reihe von formalen Grundlagen hervor, wie z. B. attributierte Graphgrammatiken, formale Logiken, relationale Algebren usw.

Für die Übung benötigen Sie einige Werkzeuge. Weitere Informationen hierzu werden folgen.

Übung

Die Übungen finden in der Regel zweiwöchentlich statt. Änderungen an den Terminen und am genauen Inhalt sind (auch kurzfristig) möglich, werden aber im Normalfall auf dieser Webseite und in der Vorlesung bekanntgegeben.

Die Übungsblätter werden spätestens in der dem Übungstermin vorausgehenden Woche im Ilias-Kurs zur Verfügung gestellt. Dort befinden sich auch die Folien zu den Übungen.

Voraussetzungen und Prüfung

Umfassende Kenntnisse im Software Engineering werden vorausgesetzt.

Die Lehrveranstaltung wird mit einer 90 Minuten Openbook-Klausur geprüft.

Wichtig: Die Informationen über den Prüfraum und Zeit, können Sie im folgenden Link finden: http://www.uni-stuttgart.de/pruefungsamt/formulare/pruefungstermine/