Universität Bremen
FB 3 CXL

Verifikation von C-Programmen

Willkommen auf der Heimatseite der Lehrveranstaltung „Verifikation von C-Programmen 3“ im Wintersemester 2014/2015.

Inhalt

Verifikation bedeutet, dass wir beweisen wollen, dass ein Programm bestimmte Anforderungen erfüllt. Diese können funktional sein (Aussagen über die Funktionalität, bspw. dieses Programm berechnet die Länge einer Liste oder die konvexe Hülle einer Punktmenge), oder nicht-funktional (Aussagen über andere Eigenschaften, bspw. dieses Programm terminiert, wirft keine Aussagen, oder greift nicht auf undefinierte Adressen im Speicher zu).

In dieser Veranstaltung wollen wir am Beispiel einer realen Programmiersprache, nämlich C, Methodik und Grundlagen der Verifikation von Programmen darstellen.

Struktur

  1. Einführung in die Sprache:
    • Wir lesen den Standard
  2. Einführung in Verifikation
    • Was ist das?
    • Standards, V-Modell, IEC 61508, DO178-B &c;
    • V&V, Verifkationsaktivitäten
  3. Codierrichtlinien: eg. MISRA-C
    • Umgang mit MISRA-C, Compliance Matrix etc.
  4. Statische Programmanalyse
    • Grundlagen
    • Werkzeuge
      • Valgrind
      • llvm -> scan-build
      • gcc -> propolice
  5. Funktionale Verifkation
    • Grundlagen
    • Werkzeuge:
      • Frama-C
      • VCC