Steigende Komplexität, Größe und Vernetzung technischer Softwaresysteme sowie die zunehmende Bedeutung nicht-funktionaler Anforderungen wie Sicherheit oder Prüfbarkeit bei gleichzeitig hoher Kosteneffizienz erfordern fortgeschrittene Methoden des Software Engineering. Für den Entwurf, die Konstruktion und die Verifikation von software-intensiven Systemen ist die modellbasierte Software- und Systementwicklung eine wichtige Methodik, um die genannten Anforderungen an heutige Entwicklungsprozesse, insbesondere in technisch geprägten Anwendungsbereichen wie in der Robotik und Automatisierungstechnik, dem maschinellen Lernen oder für die Entwicklung von Anwendungen für mobile Geräte zu erfüllen.
In der modellbasierten Softwareentwicklung werden (semi-)formale Sprachen für die Beschreibung von Softwaresystemen sowie ihrer Problemdomänen genutzt. Durch Modelltransformationen, Codegeneratoren oder die Verwendung von Interpretern lassen sich Artefakte erzeugen, die für das Erzeugen, Testen und die Dokumentation von lauffähigen Softwaresystemen genutzt werden können sowie die Effizienz und Qualität des Entwicklungsprozess verbessern.
Zu Beginn der Veranstaltung werden die grundlegenden Konzepte von Modellen und Metamodellen in Abgrenzung zur Universal Modeling Language (UML), sowie das Potential modellgetriebener Methoden für die Entwicklung und Verifikation von technischen Systemen erläutert. Darauf aufbauend werden im Verlauf der Veranstaltung die notwendigen Konzepte für die Entwicklung eigener domänenspezifischen Sprachen wie textuelle und graphische Editoren, Modell-zu-Modell-Transformationen sowie Interpreter und Code-Generatoren erläutert. Einzelne Inhalte werden durch Beiträge von Experten aus der Praxis der modellbasierten Entwicklung illustriert. Geplant sind dieses Semester bspw. Beiträge von Bosch Corporate Research und JetBrains.
Das Verständnis der einzelnen Themen wird dabei jeweils durch konzeptuelle und praktische Aufgaben unterstützt, die in den Übungen zur Veranstaltung mit den Teilnehmern praktisch bearbeitet und besprochen werden. Hierfür werden aktuelle Werkzeuge für die modellbasierte Entwicklung wie JetBrains MPS oder Werkzeuge aus dem Eclipse Umfeld verwendet (wie bspw. das Eclipse Modeling Framework, Sirius, ATL, QVT, OCL, Xtext & Xtend, ...).
Die Entwicklung einer eigenen domänenspezifischen Sprache auf Basis der erlernten Fähigkeiten für ein repräsentatives Beispielproblem bildet den praktischen Abschluss der Veranstaltung.
Wichtig: aufgrund der aktuellen Situation und der Maßgabe des Distance Learning wird das Seminar in Form einer Videokonferenz (voraussichtlich per Zoom) am regulären Mittwochstermin durchgeführt. Für die Übungen werden Aufzeichnungen/Materialien zur Verfügung gestellt, die eine eigenständige Bearbeitung von Einzelaufgaben erlauben. Am eigentlichen Übungstermin wird es die Möglichkeit eines Inverted Classrooms geben, an dem Sie den Veranstaltern interaktiv Fragen zur Bearbeitung der Aufgaben stellen können.
Für die eigenständige Beschäftigung mit den Inhalten sowie zur Vorbereitung auf die mündliche Prüfung wird ein Reader mit ausgewählter Literatur zur Verfügung gestellt, der sich an aktuellen Lehrbüchern und Artikeln aus der Forschung orientiert.
39-Inf-SE_a Software Engineering (V+Ü im WS) oder
39-Inf-5 Techniken der Projektentwicklung (V+Ü im WS)
Java-Kenntnisse erforderlich.
Der primäre Teil des Curriculums basiert insbesondere auf ausgewählten Kapiteln des folgenden Lehrbuchs:
Für weitere Themen wie spezifische Methoden und Anwendungen der modellgetriebenen Software- und Systementwicklung oder als Sekundärliteratur für den primären Teil des Curriculums werden Kapitel der folgenden Lehrbücher, sowie aktuelle Veröffentlichungen in Zeitschriften und aus Konferenzen genutzt:
Rhythmus | Tag | Uhrzeit | Format / Ort | Zeitraum |
---|
Verstecke vergangene Termine <<
Modul | Veranstaltung | Leistungen | |
---|---|---|---|
39-Inf-VSE Vertiefung Software Engineering | Vertiefung Software Engineering | unbenotete Prüfungsleistung
benotete Prüfungsleistung |
Studieninformation |
39-Inf-WP-SE Systems Engineering (Basis) | Einführendes Seminar | Studieninformation | |
- | benotete Prüfungsleistung | Studieninformation |
Die verbindlichen Modulbeschreibungen enthalten weitere Informationen, auch zu den "Leistungen" und ihren Anforderungen. Sind mehrere "Leistungsformen" möglich, entscheiden die jeweiligen Lehrenden darüber.