Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2<br />
Der Aufbau der Arbeit ist in fünf Gesichtspunkte untergliedert. Die ersten Kapitel<br />
beschreiben die Kernideen des bounded model checking. In diesen Kapiteln<br />
werden auch die notwendigen semantische Änderungen am Beispiel der Temporallogik<br />
LTL erläutert. Diese Erklärungen sind jedoch für das wesentliche<br />
Verständnis von bounded model checking nicht notwendig. Die Ergänzungen<br />
hierzu lassen sich in der Überschrift des Kapitels als LTL spezifische erkennen.<br />
Ein ausführliches Beispiel zur Eigenschaftsprüfung mit LTL befindet sich im Anhang<br />
A. Neben der Vorstellung der Technik wird auch die industrielle Umsetzung<br />
in Kapitel 4 vorgestellt. Die Syntax der in diesem Kapitel verwendete Temporallogik<br />
ITL wird im Anhang B erläutert. Mit der Bewertung von bounded model<br />
checking endet die Ausarbeitung.<br />
2 Grundlagen<br />
2.1 Symbolische Modellprüfung<br />
Zur formalen <strong>Verifikation</strong> benötigt man ein mathematisches Modell des Systems,<br />
sowie eine Sprache zur Spezifizierung der gewünschten Eigenschaft. Darauf aufbauend<br />
eine Beweismethode um sicherzustellen, dass die gewünschte Eigenschaft<br />
spezifiziert wird [7]. Die dabei wirtschaftlich interessantesten sind die maschinell<br />
ausführbaren Algorithmen, die automatische <strong>Verifikation</strong> erlauben.<br />
Die eigentliche Modellprüfung (model checking) wird realisiert durch Algorithmen,<br />
die den Zustandsraum des Transitionssystems dahingehen untersuchen, ob<br />
Spezifikationen und Verhalten übereinstimmen [3].<br />
Die ersten Schritte der Symbolischen Modellprüfung wurden 1990 von Burch,<br />
Clarke, McMillan und Dill unternommen und unterlagen seit dem einer ständig<br />
fortschreitenden Entwicklung.<br />
Die bis dato übliche Methode der formalen <strong>Verifikation</strong> beruhte auf den Erkenntnissen<br />
der Automatentheorie. Systemmodell und Spezifikation wurden mit Hilfe<br />
einer passenden Logik beschrieben. Mit Hilfe dieser Beschreibung wurde aufbauend<br />
ein logischer Beweis geführt, der die Spezifikation bestätigte. Trotz seiner<br />
Mächtigkeit und Flexibilität bleibt das Verständnis und die Anwendbarkeit nur<br />
wenigen Anwendern vorbehalten, auf Grund der verwendeten mathematischen<br />
Formalismen.<br />
Das Systemmodell wird in den folgenden Betrachtungen als endlicher Automat<br />
verstanden. Die notwendige Spezifikation wird in aussagenlogischer Form mittels<br />
Temporallogik beschrieben. Ihr Vorteil ist die leichte Verständlichkeit und<br />
Kompaktheit. Zudem können die wichtigen Eigenschaften wie Sicherheit, Lebendigkeit,<br />
Fairness, ... damit ausgedrückt werden.<br />
Um das Problem der Zustandsexplosion bei großen <strong>Systeme</strong>n in den Griff zu bekommen<br />
entstand die symbolische Modellprüfung. Die Ersetzung der expliziten<br />
Zustandsrepräsentation durch Zustände mit booleschen Kodierungen erlauben<br />
der symbolischen Modellprüfung größere Designs zu bewältigen, als mittels statischer<br />
Modellprüfung. Meist liegt dabei die zugrundeliegende Implementation<br />
auf Basis von binären Entscheidungsdiagrammen (BDD). Diese erlaubten es erst<br />
die Breitensuche auf den Datenstrukturen effizient zu gestalten.