Elemente einer Z-Spezifikation Spezifikation und Verifikation PR WS 03/04 Auer Angelika Harrich Michaela Schönhart Sabrina Gruppe 4
Struktur einer Z-Spezifikation Given Sets Globale Variablen Constraints Zustandsraum Initialisierung Operationen auf den Zustandsraum
Basic Types, Globale Constants, User defined sets [ARZT, PATIENT] maxAerzte: maxAerzte = 5 RESULT::= OK | NOK
State Space doktoren: ARZT patienten: PATIENT Bezeichnung Arztpraxis doktoren: ARZT patienten: PATIENT behandelt: ARZT PATIENT #doktoren ≤ maxAerzte ran behandelt patienten dom behandelt doktoren Deklarationen Prädikate
Operationsschemata (1) Spezifieren die über dem Zustandsraum definierten Operationen Eine Operation wird durch ein gewöhnliches Schemata beschrieben Die Operation wird nicht explizit deklariert
Operationsschemata (2) Operationsname = Schemaname Parameter: - x?: Eingabeparameter - y!: Ausgabeparameter Zustände: s: Zustand vor der Operation s´: Zustand nach der Operation
Operationsschemata (3) Operationsschemata gliedern sich in Preconditions müssen vor der Operationsausführung erfüllt sein Aktion (Transformation) Spezifizierung der Zustandsraumänderung, die durch diese Operation bewirkt werden soll Postconditons müssen nach der Operationsausführung erfüllt sein
Operationsschemata zustandsverändernd AufnahmeArztOK Arztpraxis doktor?: ARZT antwort!: RESULT doktor? doktoren #doktoren < maxAerzte doktoren‘ = doktoren {doktor?} antwort! = OK
Operationsschemata zustandserhaltend AufnahmeArztNOK Arztpraxis doktor?: ARZT antwort!: RESULT doktor? doktoren #doktoren maxAerzte antwort! = NOK
Initialzustand beschreiben gültige initiale Zustände des Systems beinhalten Wertzuweisungen, die die Constraints des Zustandraumes erfüllen müssen InitArztpraxis Arztpraxis doktoren = patienten =
Typen, Konstanten und Funktionen
Typen Basieren auf Mengenbegriff Menge: Zusammenfassung von beliebigen Elementen unter einem gemeinsamen Namen. Unendliche und endliche Mengen. Mengendefinition Extensional: durch Auflistung AMPELFARBE == rot, gelb, grün Intensional: mit Hilfe von Prädikaten FERIALMONAT = {x: MONAT | x Jul, Aug, Sept}
Typen (1) Zusammenfassung jener Elemente, die durch einen Satz von Operationen nach gemeinsamen Regeln manipuliert werden können. Besteht aus Grundmenge gleichartiger Elemente. Ein Typ ist eine maximale Menge.
Typdefinitionen in Z Sehr eingeschränkter Satz von vordefinieren Typen: Weitere Typen werden aus given sets aufgebaut: [X,Y]; [Namen]; [Banken]; [Tiere];...
Typdefinition in Z (1) Wir können „Vertreter“ in Mengendefinitionen auflisten. Für generische Typen definieren wir jedoch Variablen, die Werte des jeweiligen generischen Typs annehmen. Bsp.: Tiere == Pferd, Tieger, Strauß | Pferd, Tieger, Strauß : [Tiere]
Aufzählungstypen Antwort ::= JA|NEIN Dient als Abkürzung für: JA,NEIN : Antwort JA NEIN antw: Antwort antw = JA antw = NEIN [Antwort]
Variablen Variable sind vom Typ der Menge, aus der sie Werte annehmen können. Syntax: <variable> “:“ <type> <varliste> “:“ <type> <varliste> “:“ <Wertebereich bzw. Menge>
Konstanten Konstante sind Variablen, deren Ausprägung auf einen Wert beschränkt sind. kreditlimit : kreditlimit = 1000
Funktionen Spezialform der Relation Lösungsmenge ist eindeutig Abbildung Wertebereich (domain) auf Bildbereich (range) i.Z.: dom f, ran f
Funktionen (1) Funktionsdefinition someEven: y: | y > 0 someEven = 2*y
Funktionen (2) Totale Funktion Partielle Funktion X Y X Y
Funktionen (3)
Funktionen (4) X Y Injektiv: Surjektiv: Bijektiv: Y X Y X
Generische Funktionen Eine Funktion die für verschiedene Typen deklariert wird Generischer Parameter [X] _ _ : (X x X) S,T: X S T (x:X x S x T)
Vielen Dank für die Aufmerksamkeit!!! Folien unter: www.edu.uni-klu.ac.at/~sschoenh/Spezi_Praesentation.ppt