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 Bezeichnung Arztpraxis doktoren: ARZT Deklarationen patienten: PATIENT behandelt: ARZT PATIENT #doktoren ≤ maxAerzte ran behandelt patienten dom behandelt doktoren 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: [Antwort] JA,NEIN : Antwort JA NEIN antw: Antwort antw = JA antw = NEIN 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 X Partielle Funktion Y X Y Funktionen (3) Funktionen (4) Injektiv: X Surjektiv: X Bijektiv: X Y Y Y Generische Funktionen • Eine Funktion die für verschiedene Typen deklariert wird [X] Generischer Parameter _ _ : (X x X) S,T: X S T (x:X x S x T) Vielen Dank für die Aufmerksamkeit!!! Folien unter: www.edu.uniklu.ac.at/~sschoenh/Spezi_Praese ntation.ppt