Die symbolische Modellprüfung ist die Modellprüfung, die für symbolische Zustände funktioniert. Das heißt, sie codieren die Zustände in symbolische Darstellungen, typischerweise geordnete binäre Entscheidungsdiagramme (OBDDs).
Die Frage ist, was sie tun und wie sie arbeiten.
Sie haben zuerst Ihren Quellcode für eine Anwendung. Anschließend wandeln Sie Ihren Quellcode in ein Zustandsübergangsdiagramm wie eine Kripke-Struktur um. Die Zustände sind mit atomaren Sätzen gefüllt, die beschreiben, was in diesem bestimmten Zustand wahr ist. Bei der Überprüfung symbolischer Modelle werden die atomaren Sätze als OBDDs codiert, um Platz zu sparen und die Leistung zu verbessern.
Die Modellprüfung beginnt dann bei einem Anfangszustand und untersucht die Zustände, um nach Fehlern im Zustandsübergangsdiagramm zu suchen. Wenn ein Fehler gefunden wird, wird häufig ein Testfall generiert, der den Fehler demonstriert. Es verwendet die symbolischen OBDDs, um den Zustandsraum etwas optimal zu navigieren. Ich wünschte, ich könnte dort mehr erklären, aber immer noch lernen.
Aber das ist es im Grunde. Sie haben ein Programm in ein formales Modell konvertiert (Zustandsübergangsdiagramm) und verwenden dann symbolische Optimierungen, um im Zustandsraum nach Fehlern zu suchen (indem Sie es mit einer LTL / CTL-Spezifikation vergleichen). Und wenn ein Fehler gefunden wird, bietet Ihnen der Model Checker einige Hilfsmittel, um ihn zu dokumentieren und zu beheben.