Resilience Engineering von Software Landschaften

Note: This course is a software development lab offered for bachelor computer science students only. Participation is only admitted for students who get a seat assigned via the computer science group’s allocation system for seminars and labs. Course language is German.

Kursbeschreibung

 

Bei Resilient Engineering oder Resilience Software Design geht es darum, die Verfügbarkeit von Systemen und Systemlandschaften zu maximieren. Im Gegensatz zu traditionellen Stabilitätsansätzen versucht Resilience nicht, die Eintrittswahrscheinlichkeit von Fehlern zu reduzieren, sondern nimmt Fehler als unvermeidbar und unvorhersehbar hin und versucht stattdessen, möglichst schnell und teils automatisch auf auftretende Fehler zu reagieren. Um die Resilienz zu verbessern können Methoden des Chaos Engineering eingesetzt werden. Hierbei wird durch Experimente in kontrollierter Weise Chaos im System erzeugt. Darauf aufbauend können im nächsten Schritt, falls erforderlich, Bekämpfungsmaßnahmen entworfen und eingesetzt werden.

Die KistersAG bietet Softwarelösungen für sehr unterschiedliche Domänen an, z.B. für den Bereich Energie- und Wassermanagment. Diese Systeme müssen hochverfügbar sein, sie werden sowohl beim Kunden als auch in der Cloud betrieben.

Das Ziel des Praktikums ist die Entwicklung eines Testing-Tools, welches die Resilienz von Systemen prüft und analysiert. Ein System soll dabei aufgrund unterschiedlicher Kriterien kontrolliert attackiert und die konkreten Auswirkungen sichtbar gemacht werden.

Die Kisters AG übernimmt dabei die Rolle des Auftraggebers, für den ein Team von jeweils fünf Studenten eine entsprechende Lösung entwickeln soll. Da der Auftraggeber während des Praktikums immer wieder seine Vorstellungen einbringen wird, ergeben sich neben technischen auch kommunikativen Herausforderungen.

Lernziele

Im Rahmen des Praktikums sollen die Studenten verschiedene Fähigkeiten im Bereich des Software-Engineering erlernen und üben. Die organisatorischen und zwischenmenschlichen Kompetenzen sollen einerseits durch die selbstständige Durchführung eines Softwareprojekts im Team über mehrere Monate hinweg sowie andererseits bei der Kommunikation mit einem Auftraggeber trainiert werden. Hierbei werden Methoden der agilen Softwareentwicklung eingesetzt. Die fachlichen Kompetenzen sollen durch die technische Umsetzung der erhobenen Anforderungen mit aktuellen Themen und Technologien, wie Git, Container- und Cloud-Technologien und Microservice-Architekturen erlernt und vertieft werden. Darüber hinaus steht es dem Team frei, welche Technologien in ihrer Lösung zum Einsatz kommen sollen.

 

Termine

Das Praktikum findet in der Vorlesungszeit im Wintersemester2020/21 statt. Bei allen Terminen besteht Pflicht zur Anwesenheit. Begründete Ausnahmen für einzelne Termine sind ggf. bei vorheriger Absprache möglich. Die Veranstaltung erfolgt virtuell.

 

Regelmäßige Termine

  • wird noch angekündigt

Einzelne Termine

  • Kick-Off Besprechung: 02.11.2020, 10:00 Uhr
  • Erstes Kundengespräch, findet voraussichtlich an einem der regelmäßigen Termine statt
  • Präsentation des Alpha-Meilensteins, findet voraussichtlich an einem der regelmäßigen Termine statt
  • Präsentation des Beta-Meilensteins, findet voraussichtlich an einem der regelmäßigen Termine statt
  • Abschlusspräsentation, Termin wird noch angekündigt

Partner

Supervisors