Hasso-Plattner-Institut Potsdam Operating Systems and Middleware Group at HPI University of Potsdam, Germany
Operating Systems and Middleware Group at HPI

Software Reliability Engineering

Summer Semester 2018

Prof. Dr. Andreas Polze

Daniel Richter
Lukas Pirl
Lena Feinbube

Ein Softwaresystem ist zuverlässig, wenn es seinen Dienst auf eine vertrauenswürdige Weise erbringt. Softwarezuverlässigkeit gewinnt mehr und mehr an Bedeutung, da Software in unserem Leben allgegenwärtig und gleichzeitig immer komplexer wird. Moderne Softwaresysteme gewinnen nicht nur an Größe, sondern auch an Komplexität durch zusätzliche Abstraktionsschichten, Interaktion mit verschiedenen Komponenten, Nebenläufigkeit und andere Quellen von Nicht-Determinismus.

Diese Vorlesung stellt den Stand der Technik im Bereich der Softwarezuverlässigkeit vor, mit einem starken praktischen Fokus auf Fallstudien und realitätsnahen, großtechnischen Softwaresystemen. Zu den behandelten Themen gehören:

  • Grundlagen
    • Dependability Threats, Dependability Attributes, Dependability Means
    • Software Fault, Timing, and Consistency Models
  • Fault Prevention
    • Processes for dependable software design
    • Development practices
  • Fault Tolerance
    • Patterns for fault tolerance and detection
    • Distributed systems: theory and applications
    • Fault tolerance in operating systems
  • Fault Removal and Forecasting
    • Formal methods
    • Testing and Debugging
  • Fault Forecasting
    • Fault injection
    • Dependability modelling and analysis
  • Discussion of Case Studies and Postmortems from Practice

Große Teile der Zeit verbringen wir mit praktischer Projektarbeit in kleinen Teams. Im Rahmen eines Programmierprojektes wird eine Anwendung fehlertolerant gemacht und anschließend durch Fehlerinjektion ausgewertet. Die praktische Projektarbeit wird als Wettbewerb konzipiert und erstreckt sich über das gesamte Semester.

Organisation

Umfang: 4 Semesterwochenstunden (6 benotete ECTS-Punkte)

Vorlesung/Projekt: Mittwochs, 11.00–12.30 Uhr in A-2.2, Donnerstags 13.30–15.00 Uhr in H-2.58

Module (SO2010): OSIS, SAMT, ISAE

Leistungserfassung: Die Vorlesung wird von einer Übung/einem Projekt begleitet, deren erfolgreiche Teilnahme Voraussetzung für die Prüfungszulassung ist. Die Leistungserfassung erfolgt Rahmen einer mündlichen Prüfung. Prüfungstermine können unter https://www.dcl.hpi.uni-potsdam.de/sretermin/ reserviert werden. Die mündlichen Prüfungen finden im Raum C-1.8 statt.

Übungen

Gruppe A: Oliver, Leonard, Alexander, Pawelhttps://sre18.pages.rechenknecht.net/smtp-server/pack/Dockerfile, https://hub.docker.com/r/sre18groupa/smtp-server-group-a/
Gruppe B: Johannes, Tobias, Tobias, Nilshttps://owncloud.hpi.de/index.php/s/9uitNpBSCxaOLCt/download, https://hub.docker.com/r/sregroupb/smtp-server/
Gruppe C: Lawrence, Jan, Martin, Fabianhttps://github.com/lawben/sre-smtp https://github.com/lawben/sre-smtp/blob/master/Dockerfile, https://hub.docker.com/r/sregroupc/smtp-server/
Gruppe D: Theresia, Patrick, Jonashttps://gitlab.hpi.de/patrick.jattke/sw-reliability-eng/raw/master/docker/dockerfile, https://hub.docker.com/r/sregroupd/sre-smtp-group-d/
Gruppe E: Johannes, Julian, Tobias SMTP-Service: https://github.com/julianweise/simpleSMTP
Storage-Service: https://github.com/julianweise/mailStorageService
Fault-Injection-Test-Suite: https://github.com/Johannes-Schneider/sre-smtp-test

Termine & Materialien

Mi, 11. April 2018 Einführungsveranstaltung (11.00 Uhr, Raum A-2.2)»Folien
Do, 12. April 2018 frei
Mi, 18. April 2018 Symposium on Future Trends in Service-Oriented Computing
Do, 19. April 2018 Symposium on Future Trends in Service-Oriented Computing
Mi, 25. April 2018 Dependability Fundamentals, Einteilung Projektgruppen»Folien
Do, 26. April 2018 Projektarbeit
Mi, 02. Mai 2018 Vorstellung Übung 1 »Gruppe A, »Gruppe B, »Gruppe C, »Gruppe D, »Gruppe E
Do, 03. Mai 2018 Projektarbeit
Mi, 09. Mai 2018 Fault Prevention, Fault Injection»Folien, »Folien
Do, 10. Mai 2018 Himmelfahrt
Mi, 16. Mai 2018 Vorstellung Übung 2 + 3»Gruppe A, »Gruppe B, »Gruppe C, »Gruppe D, »Gruppe E
Do, 17. Mai 2018 Projektarbeit
Mi, 23. Mai 2018 Fehlerinjektion (Tools)»Folien
Do, 24. Mai 2018 Projektarbeit
Mi, 30. Mai 2018 Fault Tolerance»Folien
Do, 31. Mai 2018 Projektarbeit
Mi, 06. Juni 2018 Vorstellung Übung 4+5 »Gruppe A, »Gruppe B, »Gruppe C, »Gruppe D, »Gruppe E
Do, 07. Juni 2018 Projektarbeit
Mi, 13. Juni 2018 Fault Tolerance»Folien, »Folien, »Folien
Do, 14. Juni 2018 Projektarbeit
Mi, 20. Juni 2018 Vorstellung Übung 7»Gruppe A, »Gruppe B, »Gruppe C, »Gruppe D, »Gruppe E
Do, 21. Juni 2018 Projektarbeit
Mi, 27. Juni 2018 Fault Tolerance in Distributed Systems»Folien
Do, 28. Juni 2018 Projektarbeit
Mi, 04. Juli 2018 Fault Removal, Human Factors, Site Reliability Engineering»Folien, »Folien, »Folien
Do, 05. Juli 2018 Fault Forecasting, Software Fault Injection Case Study on OpenStack»Folien, »Folien kurz lang
Mi, 11. Juli 2018 Endpräsentation/Vorstellung Übung 8+9»Gruppe A, »Gruppe B, »Gruppe C, »Gruppe D, »Gruppe E
Do, 12. Juli 2018 Fragestunde
Mi, 18. Juli 2018 QRS
Do, 19. Juli 2018 QRS

Literature