Z - Notation by RRAk6e


									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
    – 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
   Z is also a natural fit to object-oriented
    – You can also use Z in a functional style, among
    – There are some object oriented languages that
      extend Z
Z – Notation Formulas
   Z operators are
    defined by
   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
   My example will allow you too do 3
    – Add a person’s name and birthday
    – Store that information
    – Then find it again
Notation Example
Some variables are declared. As
well as state transitions.

Relationship between the values of the variables


     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?)

   http://spivey.oriel.ox.ac.uk/mike/zrm/z
   http://staff.washington.edu/jon/z-
   Software Engineering Theory and
    Practice, 3rd Edition

To top