Zurück zur Übersicht

Begriff

Formal Verification

Computer Science Safety S4
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Testen kann nur zeigen, dass Fehler da sind. Nicht, dass keine da sind. (Dijkstra). Wenn du eine Brücke baust, testest du nicht, indem du LKWs drüberfahren lässt, bis sie einstürzt. Du berechnest die Statik. Formal Verification ist die Statik für Software. Du beweist mathematisch, dass dein Programm für alle möglichen Eingaben korrekt ist. Es ist extrem teuer (10x mehr Aufwand als Programmieren), aber die einzige Garantie für fehlerfreie Software.

Merksatz: Der Einsatz mathematischer Methoden (Logik, Beweise), um zu beweisen, dass ein System (Hard- oder Software) seine Spezifikation unter allen möglichen Umständen erfüllt.


Quick-Check

  1. Der Heilige Gral?
    Ja. Eine Welt ohne Bugs. Leider sind Spezifikationen oft falsch ("Ich habe bewiesen, dass das Programm tut, was ich gesagt habe. Aber ich habe das Falsche gesagt.").
  2. Warum so selten?
    Weil Zeit Geld ist. "Move fast and break things" (Facebook) ist das Gegenteil von Formal Verification.
  3. Zukunft?
    Tools wie Dafny oder Rust (Borrow Checker) bringen formale Konzepte in den Mainstream. Wir verifizieren heute mehr als wir denken (Typsysteme!).