Effizientes Model-Checking für CTL - Institut für Theoretische ...
Effizientes Model-Checking für CTL - Institut für Theoretische ...
Effizientes Model-Checking für CTL - Institut für Theoretische ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 <strong>Theoretische</strong> Grundlagen<br />
In der Spezifikationsphase werden geforderte Eigenschaften des Systems S formal erfasst.<br />
Somit entsteht eine Spezifikation als eine Menge von Regeln, die das System erfüllen<br />
muss. Bei der Erstellung der Spezifikation spielt ihre Vollständigkeit eine zentrale Rolle,<br />
da nur diejenigen Eigenschaften mit dem <strong>Model</strong>l verifiziert werden, die in der Spezifikation<br />
vorkommen. Wenn nicht alle relevanten Systemanforderungen in der Spezifikation<br />
abgebildet sind, werden sie bei der Verifikation nicht beachtet. Dies kann allerdings zu<br />
einer falschen Entscheidung führen, dass das <strong>Model</strong>l die Systemanforderungen erfüllt,<br />
obwohl das nicht vollständig geprüft wurde.<br />
Meistens wird temporale Logik als Spezifikationssprache von den Software- und Hardware-Systemen<br />
benutzt. Temporale Logik ermöglicht es, zeitliche Abläufe des Systems zu<br />
beschreiben. In diesem Fall wird die Spezifikation als eine Menge von temporal-logischen<br />
Formeln ϕ formuliert. Jede Formel drückt das nachzuweisende Verhalten des Systems<br />
über die Zeit aus. In Abschnitt 2.3 wird auf die temporale Logik genauer eingegangen.<br />
Im letzten Schritt werden spezielle <strong>Model</strong>-<strong>Checking</strong>-Algorithmen angewendet, um<br />
nachzuweisen oder zu widerlegen, dass das <strong>Model</strong>l M die Spezifikation ϕ erfüllt. Dieser<br />
Schritt erfolgt größtenteils automatisch, menschliche Teilnahme wird in der Praxis nur<br />
bei der Analyse der Verifikationsergebnisse gefordert.<br />
Das <strong>Model</strong>-<strong>Checking</strong>-Problem kann folgendermaßen formuliert werden. Sei S ein zu<br />
analysierendes System.<br />
Eingabe: ein <strong>Model</strong>l M des Systems S<br />
Frage:<br />
eine nachzuweisende Eigenschaft ϕ, die das System S haben muss<br />
” Erfüllt das <strong>Model</strong>l M die Spezifikation ϕ?“<br />
(M ⊧ ϕ?)<br />
Eine genauere Definition <strong>für</strong> das <strong>für</strong> die vorliegende Arbeit auszuarbeitende <strong>Model</strong>-<br />
<strong>Checking</strong>-Problem <strong>für</strong> <strong>CTL</strong> wird in Abschnitt 3.1 gegeben, nachdem die Begriffe ” Kripke-<br />
Struktur“ und ” <strong>CTL</strong>“ in den nächsten Abschnitten eingeführt werden.<br />
2.2 Kripke-Struktur<br />
Zum <strong>Model</strong>lieren von endlichen zustandsbasierten Systemen werden beim <strong>Model</strong>-<strong>Checking</strong><br />
Kripke-Strukturen verwendet. Diese ermöglichen, Eigenschaften eines Systems in<br />
verschiedenen Zuständen zu beschreiben, indem bestimmte Aussagen über das System<br />
den Zuständen zugeordnet werden. Beispielsweise ist eine Ampel (ein System) in einem<br />
Zustand ” rot“, und dabei wird ein ” Tonsignal“ abgegeben. In diesem Fall wird dieser<br />
Zustand beim <strong>Model</strong>lieren der Ampel mit den beiden Aussagen ” rot“ und ” Tonsignal“<br />
markiert.<br />
Eine Kripke-Struktur ist wie folgt definiert (vgl. [CGP99], [BMT + ]).<br />
4