Typdefinition in Z

Werbung
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
Herunterladen