Stiftungsprofessur für zuverlässige Softwaresysteme in der Automobilindustrie

Proseminar Werkzeuge und Methoden der Software-Analyse

  • Typ: Proseminar (PS)
  • Semester: WS 18/19
  • Ort:

    Seminarraum 131 (Geb. 50.34)

  • Zeit:

    Freitag 14:00 - 15:30 wöchentlich

  • Beginn: 19.10.2018
  • Dozent: Prof. Dr. Carsten Sinz
  • SWS: 2
  • LVNr.: 2400088

Das Proseminar gibt eine Einführung in verschiedene Werkzeuge und Methoden der Software-Analyse. Software-Analysen haben zum Ziel, Fehler automatisiert zu finden (Bug Finding) oder deren Abwesenheit zu beweisen (Verifikation). Anhand einzelner Vorträge sollen verschiedene Werkzeuge und Methoden zur automatisierten Fehlersuche für eine Reihe von Programmiersprachen vorgestellt werden. Vorträge bestehen entweder aus der Präsentation einer Methode zur Programm-Analyse oder der Vorstellung eines Werkzeugs, wobei in letzterem Fall auch eine Beschreibung der dahinterstehenden theoretischen Methode sowie einfache Anwendungsbeispiele im Vortrag enthalten sein sollen.

 

Themen

  • M1: Abstrakte Interpretation: Grundlagen  Holger Klein
  • M2: Abstrakte Interpretation: Domains  Paul Reichert
  • M3: Predicate Abstraction  Tobias Telge
  • M4: Counterexample-Guided Abstraction Refinement  Thomas Caspers
  • M5: Fuzzing  Philipp Krüger
  • M6: Delta-Debugging  Moritz Laupichler
  • M7: Explicit-State Model Checking  Marc Jepsen
  • M8: Combinatorial Testing  Etienne Brunner
  • M9: Advanced Coverage Criteria  Stephan Bohr
  • M10: Softwarequalitäts-Standards  Nicole Gerhardt
  • M11: Symbolic Model Checking  Pierre Bonert
  • M12: Bounded Model Checking  ---
  • W1: Valgrind  Jonathan Schenkenberger
  • W2: Clang Static Analyzers  Le Yang
  • W3: SonarQube  Dennis Loran
  • W4: PMD  Sajjad Ahmad
  • W5: Frama-C  Dimitri Kuklev
  • W6: KeY  Martin Wittlinger
  • W7: Polyspace  Houraalsadat Mortazavi Moshkenan
  • W8: SMACK  Patrick Deubel
  • W9: SPIN  ---

 

Literatur

Liste der Einstiegspaper kann hier heruntergeladen werden.

Die Folien der Auftaktveranstaltung finden Sie hier.

 

Termine

  • 15.10.2018: Vorbesprechung / Auftaktveranstaltung
  • 19.10.2018: Allgemeine Fragestunde
  • 26.10.2018: Literaturbesprechung Gruppe "Methoden" (Abgabe der erweiterten Literaturliste am 24.10.)
  • 02.11.2018: Literaturbesprechung Gruppe "Werkzeuge" (Abgabe der erweiterten Literaturliste am 31.10.)
  • 09.11.2018: Besprechung Gliederung und Kernthemen Gruppe "Methoden" (Abgabe der Gliederung am 05.11.)
  • 16.11.2018: Besprechung Gliederung und Kernthemen Gruppe "Werkzeuge" (Abgabe der Gliederung am 12.11.)
  • 23.11.2018: Allgemeine Fragestunde
  • 30.11.2018: Besprechung erste Version Vortragsfolien Gruppe "Methoden" (Abgabe der Folien 26.11.)
  • 07.12.2018: Besprechung erste Version Vortragsfolien Gruppe "Werkzeuge" (Abgabe der Folien  03.12.) [Termin ausnahmsweise 15:30-17:00 in Seminarraum -120]
  • 14.12.2018: Besprechung überarbeitete Version Vortragsfolien Gruppe "Methoden" (Abgabe der Folien am 10.12.2018)
  • 21.12.2018: Besprechung überarbeitete Version Vortragsfolien Gruppe "Werkzeuge" (Abgabe der Folien am 17.12.2018)
  • 11.01.2019: Allgemeine Fragestunde
  • 18.01.2019: Besprechung Ausarbeitung Gruppe "Methoden" (Abgabe vorläufige Version am 14.01.2019)
  • 25.01.2019: Besprechung Ausarbeitung Gruppe "Werkzeuge" (Abgabe der vorläufigen Version am 21.01.2019)
  • Fr. 01.02.2019: Industrievortrag: Dr. Hendrik Post, Robert Bosch GmbH, Stuttgart, Centre of Competence for Software Verification and Validation (14 Uhr, Seminarraum 131)
  • Fr. 01.02.2019: Vorträge Gruppe "Methoden" (15-18 Uhr, Seminarraum 131)
  • Fr. 08.02.2019: Vorträge Gruppe "Methoden" (13-18 Uhr, Seminarraum 131)
  • Mo. 11.02.2019: Vorträge Gruppe "Werkzeuge" (9-15 Uhr, Seminarraum 236)

Abgaben haben zum angegebenen Stichtag per E-Mail zu erfolgen.

Die Teilnahme an den Terminen der eigenen Gruppe sind verpflichtend, die der anderen Gruppe sind freiwillig.

 

Vorträge

Vorträge sollen maximal 25 Minuten lang sein. Bitte achten Sie dringend darauf, diese Zeit einzuhalten! Vorträge der Gruppe "Werkzeuge" dürfen optional eine Tool-Präsentation enthalten. Dann ändert sich die Vortragszeit auf maximal 20 Minuten plus 10 Minuten für die Tool-Präsentation. Nach jedem Vortrag ist eine Diskussion von 5-10 Minuten vorgesehen.

Fr. 01.02.2019 (Seminarraum 131):

  • 14:00-15:00: Industrie-Vortrag: Dr. Hendrik Post, Robert Bosch GmbH
  • Pause
  • 15:25-16:00: M1  Abstrakte Interpretation: Grundlagen (HK)
  • 16:00-16:35: M2  Abstrakte Interpretation: Domains (PR)
  • Pause
  • 16:50-17:25: M4  Counterexample-Guided Abstraction Refinement (TC)
  • 17:25-18:00: M9  Advanced Coverage Criteria (SB)

Fr. 08.02.2019 (Seminarraum 131):

  • 13:00-13:35: M3  Predicate Abstraction (TT)
  • 13:35-14:10: M11  Symbolic Model Checking (PB)
  • Kaffeepause
  • 14:25-15:00: M6  Delta-Debugging (ML)
  • 15:00-15:35: M7  Explicit-State Model Checking (MJ)
  • 15:35-16:10: M8  Combinatorial Testing (EB)
  • Kaffeepause
  • 16:25-17:00: M10  Software-Qualitätsstandards (NG)
  • 17:00-17:35: M5  Fuzzing (PK)

Mo. 11.02.2019 (Seminarraum 236):

  • 09:00-09:40: W1  Valgrind (JS)
  • 09:40-10:20: W2  Clang Sanitizers (LY)
  • 10:20-11:00: W3  SonarQube (DL)
  • Kaffeepause
  • 11:15-11:55: W4  PMD (SA)
  • 11:55-12:35: W5  Frama-C (DK)
  • Mittagspause
  • 13:00-13:40: W6  KeY (MW)
  • 13:40-14:20: W7  Polyspace (HMM)
  • 14:20-15:00: W8  SMACK (PD)

 

Abgabe der Ausarbeitung

Die Abgabe der Ausarbeitung erfolgt als PDF-Datei per E-Mail. Abgabgeschluss ist Freitag, der 22.03.2019.

 

Vorlagen

Ihre Ausarbeitung sollte einen Umfang von 10-15 Seiten haben und in LaTeX erstellt sein. Verwenden Sie dazu den LaTeX-Style des Leibniz-Zentrums für Informatik. Die Vorlage sowie ein Beispieldokument können Sie auf der Webseite https://www.dagstuhl.de/en/publications/lipics/instructions-for-authors/ herunterladen. Verwenden Sie das Format lipics-v2018/19-authors mit den Einstellungen \nolinenumbers und \hideLIPIcs (siehe dazu auch das Beispieldokument der Vorlage). \ArticleNo setzen Sie bitte auf das Kürzel Ihres Themas.