# Z - Notation by RRAk6e

VIEWS: 47 PAGES: 11

• pg 1
```									Z - Notation
Presented By:
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
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 – Notation Formulas
   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
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
Notation Example
Name
Some variables are declared. As
well as state transitions.

Relationship between the values of the variables

[NAME; DATE]:

Init Birthday Book

Birthday Book

Known = 
Notation Example II
Birthday book
known: NAME
birthday: NAME       DATE
Known : dom birthday

   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 }
How the system might look

Birthday Book
name?: NAME
date?: DATE
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/z
rm.pdf
   http://staff.washington.edu/jon/z-
lectures/z-lectures.html
   Software Engineering Theory and
Practice, 3rd Edition

```
To top