110 likes | 810 Views
Z - Notation. Presented By: Adam Attinello CMSC 445. Z – Notation? HUH?!?. First off – its pronounced Zed After the Zermelo-Fränkel set theory It is a set of conventions for presenting mathematical text, chosen to make it convenient to use simple mathematics to describe computing systems.
E N D
Z - Notation Presented By:Adam Attinello CMSC 445
Z – Notation? HUH?!? • First off – its pronounced Zed • After the Zermelo-Fränkel set theory • It is a set of conventions for presenting mathematical text, chosen to make it convenient to use simple mathematics to describe computing systems. • It is targeted to clarify and streamline the specification and requirement process
Boring Facts About Z – Notation • Based on the standard mathematical notation • The mathematical notation of Z consists of a small core • Supplemented by a larger collection of useful objects and operators called the Z mathematical tool-kit. • Some Problems with Z notation • Z notation uses many non-ASCII symbols • The specification includes suggestions for rendering the Z notation symbols in ASCII as well as LaTeX.
How To Model A System • Z decomposes specifications into manageably sized module’s, called schemas: • Schemas are divided into 3 parts: • A State • A collection of state variables and their values • There are also some operations that can change its state • Z is also a natural fit to object-oriented programming. • You can also use Z in a functional style, among others • There are some object oriented languages that extend Z
Z operators are defined by formulas. These are done through symbols These symbols hold most of the same meanings as they do in an of our math classes Z – Notation Formulas
The Birthday Book Example • This is the “Hello World of Z Notation” • This is a shorter version of the true example • My example will allow you too do 3 things: • Add a person’s name and birthday • Store that information • Then find it again
Name Some variables are declared. As well as state transitions. Relationship between the values of the variables Init Birthday Book Birthday Book Known = Notation Example [NAME; DATE]:
Birthday book known: NAME birthday: NAME DATE Known : dom birthday Notation Example II • One possible state of the system has three people in the set known, with their birthdays recorded by the function birthday: known = { John; Mike; Susan } birthday = { John 25-Mar, Mike 20-Dec, Susan 20-Dec }
Add Birthday Birthday Book name?: NAME date?: DATE How the system might look name? known birthday’ = birthday U { name? date}
Notation Example III Find Birthday Birthday book name?: NAME Date! : DATE name? Known date != birthday(name?)
REFERENCES • http://spivey.oriel.ox.ac.uk/mike/zrm/zrm.pdf • http://staff.washington.edu/jon/z-lectures/z-lectures.html • Software Engineering Theory and Practice, 3rd Edition