31.08.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!