Zurück zur Übersicht

Begriff

Model Checking

Computer Science Verification S3
2 Quellen 0 Lernpfade 1 Backlink 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.

Hoare Logic ist wie ein mathematischer Beweis (manuell, mit Kopf). Model Checking ist Brute Force (automatisch, mit PC). Du modellierst dein System als riesigen Graphen (Zustandsautomat). Jeder mögliche Zustand ist ein Knoten. Dann sagst du dem Computer: "Prüfe, ob es irgendeinen Pfad gibt, wo zwei Züge gleichzeitig auf dem Gleis stehen (Crash)." Der Model Checker probiert Milliarden von Pfaden aus. Findet er einen Fehler, spuckt er das "Gegenbeispiel" aus: "Wenn Zug A fährt, und Zug B wartet, und dann Signal C grün wird... CRASH."

Merksatz: Eine automatische Methode zur Verifikation von Systemen, bei der ein Algorithmus systematisch alle möglichen Zustände eines Modells durchsucht, um zu prüfen, ob es eine gegebene Spezifikation erfüllt.


Quick-Check

  1. Prüft es meinen C++ Code?
    Meistens nicht direkt. Es prüft das Design (das Modell). Wenn das Design Fehler hat, hilft perfekter Code nicht. Es gibt aber Tools (Java Pathfinder), die direkt Code prüfen.
  2. Unterschied zu Testing?
    Testing zeigt Anwesenheit von Bugs. Model Checking beweist Abwesenheit (im Modell).
  3. Turing Award?
    Ja, 2007 für Clarke, Emerson und Sifakis für Model Checking.