Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
21<br />
zifiziert und überprüft werden. Dem gegenüber stehen die Transaktionseigenschaften.<br />
Hier treten Fehler, insbesondere Deadlocks, erst nach gewissen zeitlichen<br />
Abläufen auf. Die Deadlockwahrscheinlichkeit ist in Fällen von überfüllten<br />
Queues besonders wahrscheinlich. Diese sind auch mit bounded model checking<br />
zu finden, allerdings müsste der Benutzer - in erster Betrachtung - hierfür viel<br />
Zeit und Geduld investieren, bis die Berechnung beendet ist. Würde man hingegen<br />
einen Spezialisten damit beauftragen mit sehr genaue Kenntnisse über<br />
das zu untersuchende System, so hätte dies einige Vorteile. Ihm ist es möglich,<br />
mit einem geringeren Risiko von false negative, den Startzustand des bounded<br />
model checking Problem zu variieren. Der Fehler der Autoren bezüglich der Verwendung<br />
von gateprop lag genau in diesem Punkt. Sie änderten den Zustand<br />
niemals und passten ihn damit nicht an die zu untersuchende Eigenschaft an.<br />
Jeder Erstbenutzer würde genau so handeln und sich den einfachsten Zustand als<br />
Initialzustand der Untersuchung aussuchen, in diesem Fall war es der Zustand<br />
nach dem RESET der Brücke.<br />
Denkbar wäre hier eine Kombination aus den Vorteilen von Testsuiten und den<br />
formalen Methoden. Testfälle könnte potentielle Deadlockfälle ausloten, die dann<br />
mittels gateprop untersucht würden. Der Vorteil wäre, dass man leichter den Initialzustand<br />
bestimmen könnte und zudem auch mit Sicherheit Aussagen über<br />
weitere Deadlocks in der Abfolge der Verarbeitung machen könnte.<br />
5.1 Vergleich mit etablierten Techniken<br />
An dem Tool gateprop konnte man erkennen, dass bounded model checking Probleme<br />
sich sehr gut mit SAT-Prozeduren kombinieren lassen. Eine weitere Technik,<br />
die in diesem Zusammenhang einer Erwähnung würdig wäre sind BDDs.<br />
BDDs eignen sich weniger gut in Kombination mit bounded model checking Problemen,<br />
da sie eine Repräsentation der zugrundeliegenden Datenstruktur darstellen.<br />
Ihr Problem ist nicht das Handling der Datenstruktur, sondern ihr Aufbau.<br />
Die guten Eigenschaften von BDDs kommen erst zur Geltung nach Aufbau der<br />
Struktur und erlauben dann die Anwendung von booleschen Operationen auf den<br />
Datenstrukturen. Diese Operationen sind ohne jeden Zweifel sehr effizient und<br />
können mit heutigen Implementierung sehr schnell ausgeführt werden. Da die<br />
Konstruktion von bounded model checking Problemen, in Abhängigkeit von der<br />
Grenze k und der Anzahl der booleschen Variablen des Systems, zu sehr komplexen<br />
Formeln führen kann, ist die Konstruktion dieser Entscheidungsdiagramme<br />
sehr kompliziert. Die notwendige kanonische Darstellung führt bei ungünstiger<br />
Variablenkonstruktion beziehungsweise ungünstigen Funktionen zu einer exponentiellen<br />
Speicherexplosion, die die Vorteile des Ansatzes mehr als aufhebt.<br />
SAT Prozeduren kommen ohne aufwendige Datenstruktur aus. Da sie eine kanonische<br />
Darstellung des Systems vermeiden, vermeiden sie auch mögliche exponentielle<br />
Speicherexplosionen. So müssen sie auch nicht den Zustandsraum<br />
durchsuchen, um ein mögliches Gegenbeispiel für das zu untersuchende Problem