28.12.2013 Aufrufe

Zum modellbasierten funktionalen Test reaktiver Systeme

Zum modellbasierten funktionalen Test reaktiver Systeme

Zum modellbasierten funktionalen Test reaktiver Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5. Effizienzsteigerung und Anwendung<br />

können Repräsentationen von Zustandsmengen als Terme aufgefaßt werden,<br />

die Variablen beinhalten, etwa c(X) oder c(X) mit X ∈ IN, X ≥ 2 für einen<br />

Konstruktor c und eine Variable X. Wird danach ein Zustand c(X) mit X ≥ 3<br />

besucht, so stellt er eine Spezialisierung des ersten Falls dar und kann ignoriert<br />

werden.<br />

Intuitiv ”<br />

verliert“ man dadurch keine erreichbaren Zustände, die zu testen<br />

wären, weil allgemeinere Zustände immer in beliebige speziellere instantiiert<br />

werden können. Ein auf den erreichbaren Zuständen basierendes Vollständigkeitskonzept<br />

wird am Ende dieses Abschnitts definiert und in Abschnitt B.4<br />

nachgewiesen. Eine Erweiterung der Ideen zur Zustandsspeicherung besteht<br />

darin, nicht nur solche Zustandsmengen zu verbieten, die Spezialisierung einer<br />

bereits besuchten sind, sondern zusätzlich vom aktuell besuchten Zustand<br />

alle bereits besuchten zu subtrahieren. Es wird sich herausstellen, daß für beide<br />

Fälle – Zustandsinklusion und -differenz – elegante syntaktische Charakterisierungen<br />

existieren, die die explizite Komplementbildung von Termen nicht<br />

erfordern, sondern nur die Negation von Constraints auf solchen Termen.<br />

Syntaktische Charakterisierung der Inklusion Eine Repräsentation einer Zustandsmenge<br />

σ ist ein Paar < ˜σ, C σ >. Die erste Komponente ˜σ repräsentiert<br />

die syntaktische Komponente von σ. Die zweite Komponente ist eine Menge<br />

von Constraints über den Variablen von ˜σ, eine Menge von Gleichungen, Ungleichungen<br />

und anderen Relationen. Die Repräsentation einer Zustandsmenge<br />

ist also ein Term mit Constraints. Im folgenden wird die Typinformation<br />

über Variablen, die ebenfalls als Constraint gespeichert wird, ignoriert. Insbesondere<br />

ist sie nicht Teil von C σ . Ein Beispiel mit einer Variablen X ist<br />

< verify(pinGRef , X ), X ≠ pinG >, das eine Komponente des Zustandsvektors<br />

der WIM darstellt, die eingehenden Kommandos nämlich. Es bezeichnet<br />

alle diejenigen Kommandos zur Verifikation der PIN-G, die mit falscher PIN<br />

aufgerufen werden.<br />

Für den Moment bezeichne [[σ]] alle typkorrekten Grundinstanzen von ˜σ, die<br />

C σ erfüllen (d.h. typkorrekte, C σ erfüllende Instantiierungen aller Variablen in<br />

C σ ), also<br />

s ∈ [[< ˜σ, C σ >]] ⇔ V(s) = ∅ ∧ unif (s, ˜σ) ∧ mgu (s,˜σ) (C σ ), (5.2)<br />

wobei erneut unif die Unifizierbarkeit der zwei Argumente entscheidet und<br />

mgu (s,t) (x) den allgemeinsten Unifikator zweier Terme s und t auf ein x anwendet.<br />

[[C]] bezeichne analog die Menge aller typkorrekten Grundinstanzen der<br />

Variablen des Constraints C. Im obigen Beispiel ist<br />

[[< verify(pinGRef , X ), X ≠ pinG >]]<br />

die Menge aller der Terme, in denen X durch die im Modell auftretenden PIN-<br />

Codes ersetzt wird, d.h. etwa pinA, pinB, pukG, .... Es bezeichne darüberhinaus<br />

Φ die Menge der Repräsentationen aller bereits besuchten Zustandsmengen<br />

zu einem gegebenen Zeitpunkt. Die genaue Form der Repräsentation wird<br />

auf den Seiten 164 ff. angegeben.<br />

158

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!