Allgemeine Informationen
Lernziele
Generell wird ein Projekt im Team durchgeführt, welches eng mit der Forschung des Fachgebiets verknüpft ist. Es bietet besondere Herausforderungen in der Methodik der Bearbeitung, der eigenständigen Projektorganisation und der verwendeten Technologien. Studierende erwerben in dieser Veranstaltung die Fähigkeit, derartige Herausforderungen zu meistern.
In diesem Projekt beschäftigen wir uns mit der modellbasierten Entwicklung von Software für cyber-physische Systeme. Teilnehmer erlangen Kenntnisse über:
- Das Vorgehen bei der modellbasierten Entwicklung vernetzter cyber-physischer Systeme.
- Modellbasierte Sprachen für den Entwurf solcher Systeme, insbesondere der szenariobasierte Entwurf.
- Werkzeuge und Algorithmen für die Simulation und (formale) Analyse von Verhaltensmodellen.
- Modelltransformationen und Codegenerierung.
- Fortgeschrittene Java-Entwicklung: Verwendung verschiedener Frameworks und Entwurfsmuster (u.a. Eclipse, Eclipse Modeling Framework, Programmierung verteilter und eingebetteter Systeme)
Stoffplan
cyber-physische Systeme: In immer mehr Lebens- und Arbeitsbereichen finden wir softwaregesteuerte Systeme, die oft aus vielen kommunizierenden Komponenten bestehen und auf vielfältige Weise mit Benutzern interagieren. Systeme mobiler Roboter in der Industrie oder (teil-)autonome vernetzte Fahrzeugsysteme sind einige Beispiele. Die Funktionen dieser Systeme werden maßgeblich durch Software realisiert, welche die Kommunikation zwischen Systemkomponenten und Benutzern ermöglicht und Abläufe in der physikalischen Welt steuert. Diese Systeme erfüllen immer öfter zentrale und kritische Aufgaben und ihre Funktionen werden zunehmend komplexer.
Um diese Komplexität zu beherrschen, benötigen (Software-)Ingenieure für die Entwicklung geeignete Entwurfssprachen und Analysemethoden, um die komplexen Anforderungen an diese System geeignet zu beschreiben, diese bis hin zum Programmcode systematisch zu verfeinern und dabei Fehler möglichst schnell zu finden oder zu vermeiden.
In diesem Projekt entwickeln und verfeinern wir neuartige Methoden und Werkzeuge für die modellbasierte Entwicklung von cyber-physischen Systemen, bei der wir bereits in den frühen Entwurfsphasen die Anforderungen in Form von Use Cases und Szenarien präzise modellieren. Die resultierenden Spezifikationen können bereits früh ausgeführt und somit simuliert werden und es können sogar ausführbare Modelle bzw. lauffähiger Programmcode daraus automatisch abgeleitet werden. Diese Methode wollen wir an Beispielen umsetzen und untersuchen.
Vorkenntnisse
Java-Programmierung, SWT und SWQ muss bestanden sein. Wünschenswert ist eine Teilnahme an der Vorlesung "Formal Methods in Software Engineering" (FMSE).
Zur Durchführung
Sie bearbeiten eine fortgeschrittene und forschungsnahe Softwareentwicklungsaufgabe im Team. Dabei organisieren Sie selbständig das Projekt. Dazu definiert die Gruppe zunächst ihre Organisation, Arbeitsweise und Pflichten der einzelnen Teilnehmer. Basierend auf einer groben Aufgabenstellung konkretisieren Sie zunächst die Vision des Projekts, definieren Teilaufgaben und ordnen diese in einen Projektplan ein. Dabei ist das Ziel, Ihre individuellen Stärken und Interessen bestmöglich zu berücksichtigen. Dann bearbeiten Sie, ggf. in kleineren Untergruppen, verschiedene Teile der Softwareentwicklungsaufgabe. Abschließend dokumentieren und präsentieren Sie die Ergebnisse des Projekts.