- 56 Views
- Uploaded on
- Presentation posted in: General

Z - Notation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Z - Notation

Presented By:Adam Attinello

CMSC 445

- 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

- 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.

- The mathematical notation of Z consists of a small core
- 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.

- 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

- Schemas are divided into 3 parts:
- 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

- 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 =

[NAME; DATE]:

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 }

Add Birthday

Birthday Book

name?: NAME

date?: DATE

name? known

birthday’ = birthday U { name? date}

Find Birthday

Birthday book

name?: NAME

Date! : DATE

name? Known

date != birthday(name?)

- 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