Download Z - Notation

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Object-oriented programming wikipedia , lookup

Transcript
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 – 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
Add Birthday
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/zlectures/z-lectures.html
Software Engineering Theory and
Practice, 3rd Edition