Z modeling and specification issues
How do we handle aggregates in Z?
In C++, we have STL containers
In the elevator model, we would like to have multiple elevators
In Z . . .
Sets
Sequences (what are they?)
Functions/relations
What about aggregates of schema types?
Like a container of objects in C++
What is a schema type, anyway? [text, page 138]
An integer type is a set of possible integer values
A schema type is a set of possible schema values?
Instances of a schema type are called bindings
A binding is an instance of a schema's state
It consists of values bound to state variables (by name)
Note: textbook's symbol for binding is not part of Z standard
Theta notation
Binding formation operator
Applied to a schema instance . . .
Returns a binding for the schema instance state
Used in the definition of the Xi schema inclusion
Promotion [text, page 225]
We have defined operation schemas
Typically operate on one "object" (schema instance)
What if we want to apply these operations to instances in an aggregate?
Two issues
Applying the operation to an instance
Specifying the instance to be the operation target
Use theta notation to "promote" an operation
Applying all this to the elevator system
How do we model multiple elevators?
How do we apply operations?