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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!