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.
State<br />
Formula<strong>CTL</strong>pos<br />
<strong>Model</strong><strong>Checking</strong><strong>CTL</strong>pos<br />
SettingsFrame<br />
-formulaFile: File<br />
-kripkeFile: File<br />
+loadProperties()<br />
+saveProperties()<br />
Kripke-Struktur<br />
Formula<strong>CTL</strong><br />
<strong>Model</strong>Checker<strong>CTL</strong><br />
-formula<strong>CTL</strong>: Formula<strong>CTL</strong><br />
-formula<strong>CTL</strong>pos: Formula<strong>CTL</strong>pos<br />
-kripke: Kripke<br />
-result: boolean<br />
-selectedStates: ArrayList<br />
+labelTrueStatesInGraph()<br />
-getStatesList(): ArrayList<br />
-setClickedStatesInGraph(ArrayList)<br />
Kripke<br />
Formula<br />
<strong>Model</strong>Checker<br />
<strong>Model</strong>Check<br />
4 Design und Implementierung<br />
<strong>Model</strong><strong>Checking</strong><strong>CTL</strong><br />
Abbildung 4.3: Klassendiagramm der Benutzerschnittstelle<br />
GraphVisualization<br />
+draw(Kripke)<br />
+saveImage(Kripke)<br />
Die Klasse Kripke stellt eine Kripke-Struktur als eine Liste von Zuständen dar, die<br />
mittels der Klasse State realisiert werden. Jeder Zustand hat eine eindeutige Identifikationsnummer,<br />
einen Namen und eine Liste der atomaren Aussagen, die in diesem<br />
Zustand gelten. Das Attribut initial gibt an, ob ein Zustand der Startzustand in der<br />
Kripke-Struktur ist. Übergänge zwischen den Zuständen in der Kripke-Struktur werden<br />
mittels der Klasse Transition gespeichert. Neben den übernommenen Funktionalitäten,<br />
die Kripke-Struktur zu erstellen/speichern/laden, kann sie jetzt auch geändert werden<br />
(edit()). Außerdem wird ermöglicht, eine zufällige Kripke-Struktur generieren zu lassen<br />
(createRandomKripke(int, int, int)). Als Argumente werden die Anzahl von Zuständen<br />
S, die Anzahl von Übergängen T , die aus jedem Zustand ausgehen, sowie die maximale<br />
Anzahl von atomaren Aussagen P , die jedem Zustand zugeordnet werden. Die Generierung<br />
geschieht folgendermaßen.<br />
1. Es wird eine Menge der Größe S von Zuständen erzeugt. Als Namen werden die<br />
natürliche Zahlen vergeben.<br />
2. Jedem Zustand werden Übergänge hinzugefügt. Die Anzahl der Übergänge T ist<br />
<strong>für</strong> jeden Zustand fest. Die Endzustände von Übergängen werden mittels einer<br />
Zufallsfunktion ermittelt.<br />
24