Software Reliability
Die Veranstaltung „Software Reliability“ wird im Sommersemester 2022 in hybrider Form (Mischung aus Veranstaltungen vor Ort und Online-Veranstaltungen via zoom) stattfinden. Die Zugangsdaten für die Online-Veranstaltungen finden Sie auf der Info-Seite des Kurses auf StudOn. Der Raum für die Präsenztermine ist LG 0.144.
Organisatorisches
„Software Reliability“ ist ein interdisziplinärer Kurs, der sich an Studierende mit Interesse an Statistik und/oder Wirtschaftsinformatik wendet.
Bachelor-Studierende können das (VWL-)Modul RUW-83410 (Software Reliability) als Modul des Vertiefungsbereichs wählen. Das Modul kann auch im Rahmen des Studienbereichs „Quantitative Methoden der Wirtschafts- und Sozialwissenschaften“ belegt werden.
Für das Sommersemester 2022 ist der vorgesehene Termin freitags von 16:30 bis 18 Uhr. Während des ersten Termins (Freitag, 29.04.2022, 16:30 bis 18 Uhr, Online-Termin via zoom – für die Zugangsdaten siehe die Info-Seite des Kurses auf StudOn) kann ggf. über eine Verschiebung des Zeitslots entschieden werden. Auch eine geblockte Abhaltung der Veranstaltung (bzw. der Termine vor Ort) ist denkbar.
Während die Folien und die meisten der zur Lektüre empfohlenen Artikel und Buchkapitel in englischer Sprache sind, ist die Unterrichtssprache Deutsch.
Normalerweise findet nach dem Ende des Semesters findet zum Erwerb der 5 ECTS eine 30-minütige mündliche Prüfung über die Kursinhalte statt; bei dieser kann jeder Studierende wählen, ob er oder sie die Prüfung auf Deutsch oder Englisch abhalten möchte. Aufgrund der Corana-Epidemie müssen die Prüfungen diesmal u.U. anders als sonst ausgestaltet werden (z.B. als Online-Prüfungen). Sobald Informationen hierzu vorliegen, werden sie Ihnen auf der StudOn-Webseite des Kurses mitgeteilt werden.
Einführung
20. November 2018: Über einen Zeitraum von über 6 Stunden waren Facebook und Instagram für Nutzer in Europa, in den USA und in Südamerika nicht erreichbar. Die Ursache: ein Softwarefehler.
Derartige Ereignisse beleuchten das Ausmaß, in dem wir vom richtigen Verhalten Software-gesteuerter Systeme abhängen. In diesem Kurs diskutieren wir berühmte Versagensfälle und ihre Ursachen und lernen Techniken zur Erreichung einer höheren Softwarequalität kennen. Wie kann man während der Entwicklung Fehler im Softwarecode vermeiden? Wie sollten wir Software testen, um diejenigen Fehler zu finden, die sich doch eingeschlichen haben? Welche statistischen Techniken können wir nutzen, um die Zuverlässigkeit der Software abzuschätzen oder zu prognostizieren? Und wie kann man Versagensfälle verhindern, selbst wenn die Software noch Fehler enthält?
Lernziele
Nach Absolvierung des Kurses
- kennen Sie Ursachen von unzuverlässiger Software, sowie Methoden zur Erreichung einer höheren Zuverlässigkeit;
- können Sie mittels verschiedener White-Box- und Black-Box-Verfahren Testfälle für Software erstellen;
- sind Sie in der Lage, die Annahmen, Stärken und Schwächen verschiedener Ansätze zur Evaluierung und Prognose der Softwarezuverlässigkeit zu vergleichen und zu diskutieren;
- können Sie statistische Verfahren zur Evaluierung und Prognose der Softwarezuverlässigkeit anwenden.
Themen
Zu den im Kurs besprochenen Themengebieten gehören die Folgenden:
- Berühmte Softwareversagensfälle – und was wir von ihnen lernen können
- Auftritt der Schurken: Fehler, interne Fehlzustände und Versagensfälle
- Wissen was man tut: Softwareentwicklungsprozessmodelle
- „Traveling without moving“: statische Softwaretests
- „If it works, break it“: dynamische Softwaretests
- Wie ein Fisch im Wasser: Schätzung der Fehleranzahl mit „Capture-Recapture“-Ansätzen
- „It’s getting better all the time“: Softwarezuverlässigkeitswachstumsmodelle
- „A bug’s life“: Fehlermanagement
- Mit Unzulänglichkeiten leben: Softwarefehlertoleranz
Literatur
Neben Forschungsartikeln umfasst die zur Lektüre empfohlene Literatur einzelne Abschnitte oder Kapitel der folgenden Bücher:
- C. Ghezzi, M. Jazayeri und D. Mandrioli, Fundamentals of Software Engineering. Prentice-Hall, 2. Auflage, 2003.
- M. R. Lyu, Hrsg., Handbook of Software Reliability Engineering. IEEE Computer Society, 1995.
- P. Mertens und S. Rässler, Hrsg., Prognoserechnung. Springer/Physica, 7. Auflage, 2012.
- J. D. Musa, Software Reliability Engineering. McGraw-Hill, 1999.
- M. Roper, Software Testing. McGraw-Hill, 1994.
- D. P. Siewiorek und R. S. Swarz, Reliable Computer Systems: Design and Evaluation. AK Peters, 3. Auflage, 1998.
- A. Spillner und T. Linz, Basiswissen Softwaretest. dpunkt.verlag, 5. Auflage, 2012.
- E. Wallmüller, Software Quality Engineering. Hanser, 3. Auflage, 2011.
StudOn
Hier gelangen Sie zur StudOn-Webseite des Kurses.
Kontaktperson
Bei Fragen zum Kurs wenden Sie sich bitte an Prof. Dr. Michael Grottke.