+ All Categories
Home > Documents > Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki [email protected] Models and...

Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki [email protected] Models and...

Date post: 20-Jan-2016
Category:
Upload: jasper-matthews
View: 214 times
Download: 1 times
Share this document with a friend
44
Introduction to Z Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki [email protected] www.cs.put.poznan.pl/jnawrocki/mse/ models/ Models and Analysis of Models and Analysis of Software Software Lecture 5 Lecture 5
Transcript
Page 1: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

Introduction to ZIntroduction to Z

Copyright, 2002 © Jerzy R. Nawrocki

[email protected]

www.cs.put.poznan.pl/jnawrocki/mse/models/

Models and Analysis of Software Models and Analysis of Software

Lecture 5Lecture 5

Models and Analysis of Software Models and Analysis of Software

Lecture 5Lecture 5

Page 2: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

UML and formal modelsUML and formal modelsUML and formal modelsUML and formal models

Reader

Admin

Look-up

Change

Add

Remove

Use-case diagram

Page 3: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

UML and formal modelsUML and formal modelsUML and formal modelsUML and formal models

PhoneDir

Init()

Add(name,no)

Lookup(name): Num

Delete(name)

Class diagram

1

Page 4: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

IntroductionIntroductionIntroductionIntroduction

• Model-based: basic types (integer, real, ..) and compound types (sets, sequences, ..)

• Implicit specification (what?). • No explicit specification (how?).

Z resembles VDM

Page 5: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

-- A prime number, n, is-- divisible only by 1 and n.

IsPrime (n: N1) res: B

post res k N1 (1 < k k < n)

n mod k 0

-- A prime number, n, is-- divisible only by 1 and n.

IsPrime (n: N1) res: B

post res k N1 (1 < k k < n)

n mod k 0

Quantifiers

From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..

That’s reallydifferent from Pascal!

Page 6: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Pre-conditions

From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..

Quotient (-6, 2) = 3

Quotient (a, b: Z) res: Npre b 0post res = (abs a) div (abs b)

Quotient (a, b: Z) res: Npre b 0post res = (abs a) div (abs b)

Page 7: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Sequences (I)

From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..

-- CDs = sequence of Common Divisors

CDs (a, b: N1) res: N1+

post res = [k | k N1 a mod k = 0 b mod k = 0]

-- CDs = sequence of Common Divisors

CDs (a, b: N1) res: N1+

post res = [k | k N1 a mod k = 0 b mod k = 0]

Page 8: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture

From the previous lecture..

SetsCharacters and stringsType invariantsRecordsMiscellaneous

Page 9: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

B - Boolean (true, false)

N1 - positive integers (1, 2, 3, ..)

N - natural numbers (including 0)

Z - integers

Q - rationals

R - reals

B - Boolean (true, false)

N1 - positive integers (1, 2, 3, ..)

N - natural numbers (including 0)

Z - integers

Q - rationals

R - reals

SetsSetsSetsSets

Basic sets

x BasicSet x BasicSet

Basic setsor

basic types?

Page 10: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

T-set a finite set of values of type TT-set a finite set of values of type T

SetsSetsSetsSets

Finite sets

N-set a finite set of natural numbers

R-set a finite set of reals

R-set-set a finite set of finite sets of reals

N-set a finite set of natural numbers

R-set a finite set of reals

R-set-set a finite set of finite sets of reals

Page 11: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

{E | B1, B2, ..., Bn Boolean_condition }{E | B1, B2, ..., Bn Boolean_condition }

SetsSetsSetsSets

Set values

{ } empty set

{0, 2, 4} explicit set value

{2, ..., 5} = {2, 3, 4, 5}

{2n | nN n<3} = {0, 2, 4}

{ } empty set

{0, 2, 4} explicit set value

{2, ..., 5} = {2, 3, 4, 5}

{2n | nN n<3} = {0, 2, 4}

{[a, b] | aN, bN b = aa a 3}{[a, b] | aN, bN b = aa a 3}

Onlyfinitesets!

Page 12: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

SetsSetsSetsSets

Finite set operators (I)

x S belongs to

x S does not belong to

card S cardinality of S

S1 = S2 equals

S1 S2 does not equal

S1 S2 S1 is a subset of S2

S1 S2 S1 is a proper subset of S2

x S belongs to

x S does not belong to

card S cardinality of S

S1 = S2 equals

S1 S2 does not equal

S1 S2 S1 is a subset of S2

S1 S2 S1 is a proper subset of S2

Onlyfinitesets!

Page 13: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

SetsSetsSetsSets

Finite set operators (II)

S1 S2 union

S1 S2 intersection

S1\ S2difference

F S power set of S

S1 S2 union

S1 S2 intersection

S1\ S2difference

F S power set of S

Onlyfinitesets!

Page 14: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

SetsSetsSetsSets

A set of decimal digits of a number k

digit = {0, ..., 9}

digits1(k: N) res: digit-setpost res = {k mod 10} digits1(k div 10)

digit = {0, ..., 9}

digits1(k: N) res: digit-setpost res = {k mod 10} digits1(k div 10)

Doesnot

work!

Page 15: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

SetsSetsSetsSets

A set of decimal digits of a number k

digits2(k: N) res: digit-setpost (k=0 res { }) (k>0 res = {k mod 10} digits2(k div 10))

digits2(k: N) res: digit-setpost (k=0 res { }) (k>0 res = {k mod 10} digits2(k div 10))

Whatif

k=0?

digits3(k: N) res: digit-setpost (k=0 res = { 0 }) (k>0 res = digits2(k))

digits3(k: N) res: digit-setpost (k=0 res = { 0 }) (k>0 res = digits2(k))

Page 16: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture

From the previous lecture..Sets

Characters and stringsType invariantsRecordsMiscellaneous

Page 17: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Characters and stringsCharacters and stringsCharacters and stringsCharacters and strings

char - alfanumeric characters

char* - possibly empty sequence of char

char+ - nonempty sequence of char

'a' - a character literal

"ABBA" - a string of chars (text)

char - alfanumeric characters

char* - possibly empty sequence of char

char+ - nonempty sequence of char

'a' - a character literal

"ABBA" - a string of chars (text)

"S. Covey" = ['S', '.', ' ', 'C', 'o', 'v', 'e', 'y']

"S. Covey"(1)= 'S'

"S. Covey" = ['S', '.', ' ', 'C', 'o', 'v', 'e', 'y']

"S. Covey"(1)= 'S'

Page 18: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Characters and stringsCharacters and stringsCharacters and stringsCharacters and strings

-- Reversing a string of characters

reverse(t: char*) res: char*

post (t = [ ] res = [ ])

(t [ ] res = (tl t) [hd t]

-- Reversing a string of characters

reverse(t: char*) res: char*

post (t = [ ] res = [ ])

(t [ ] res = (tl t) [hd t]

Reversing a string

reverse("top") = "pot"

Page 19: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Characters and stringsCharacters and stringsCharacters and stringsCharacters and strings

-- Reversing a string of characters

reverse(t: char*) res: char*

post (t = [ ] res = [ ])

(t [ ] res = reverse(tl t) [hd t]

-- Reversing a string of characters

reverse(t: char*) res: char*

post (t = [ ] res = [ ])

(t [ ] res = reverse(tl t) [hd t]

Reversing a string

reverse("top") = "pot" Important modification

Page 20: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Characters and stringsCharacters and stringsCharacters and stringsCharacters and strings

Integer to text conversion

d_seq= ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

-- Integer to text conversion

i2t(i: N) t: char+ post (i=0 t="0") (i>0 t=i2t1(i))

i2t1(i: N) t: char* post (i=0 t= [ ]) (i>0 t=i2t1(i div 10) [d_seq(i mod 10 + 1)])

d_seq= ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

-- Integer to text conversion

i2t(i: N) t: char+ post (i=0 t="0") (i>0 t=i2t1(i))

i2t1(i: N) t: char* post (i=0 t= [ ]) (i>0 t=i2t1(i div 10) [d_seq(i mod 10 + 1)])

Can’tbe

simpler?

Page 21: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture

From the previous lecture..SetsCharacters and strings

Type invariantsRecordsMiscellaneous

Page 22: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Type invariantsType invariantsType invariantsType invariants

Declaration of invariants

Id = T

inv Pattern Boolean_condition

Id = T

inv Pattern Boolean_condition

Bit = N

inv Bit 0 b b 1

Bit = N

inv Bit 0 b b 1

Bit = {b | b N 0 b b 1}Bit = {b | b N 0 b b 1}

0 b b 1resembles0 b 1

Page 23: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Type invariantsType invariantsType invariantsType invariants

Defining prime numbers

Prime = N1

inv Prime i N1

(1<i i<a) a mod i 0

Prime = N1

inv Prime i N1

(1<i i<a) a mod i 0

is_prime(a: N1) res: Bpost res = i N1

(1<i i<a) a mod i 0

Prime = N1

inv Prime is_prime(a)

is_prime(a: N1) res: Bpost res = i N1

(1<i i<a) a mod i 0

Prime = N1

inv Prime is_prime(a)

Morereusable and

readable!

Page 24: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Type invariantsType invariantsType invariantsType invariants

Using prime numbers

-- Checking if every even number between a and b-- can be represented as a sum of 2 prime numbers

goldbach(a,b: N1) res: Bpre a bpost res = i N1 (a i i b i mod 2 = 0) x,y: Prime i= x+y

-- Checking if every even number between a and b-- can be represented as a sum of 2 prime numbers

goldbach(a,b: N1) res: Bpre a bpost res = i N1 (a i i b i mod 2 = 0) x,y: Prime i= x+y

Here the defined type is used.

Page 25: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture

From the previous lecture..SetsCharacters and stringsType invariants

RecordsMiscellaneous

Page 26: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

RecordsRecordsRecordsRecords

Rec:: Field1 : T1

Field2 : T2

. . .

Fieldn : Tn

Rec:: Field1 : T1

Field2 : T2

. . .

Fieldn : Tn

Record definition

Worker:: FamilyN: char+

FirstN: char+

Hours: N

Worker:: FamilyN: char+

FirstN: char+

Hours: N

‘FamilyN’stands for

‘Family Name’

Page 27: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

RecordsRecordsRecordsRecords

Rec.FieldRec.Field

Field selection

WorkersFile = Worker*

total_hours(w: WorkersFile) res: Npost (w=[ ] res = 0) (w [ ] res = (hd w).Hours + total_hours(tl w)

WorkersFile = Worker*

total_hours(w: WorkersFile) res: Npost (w=[ ] res = 0) (w [ ] res = (hd w).Hours + total_hours(tl w)

Selecting the field ‘Hours’.

Page 28: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture

From the previous lecture..SetsCharacters and stringsType invariantsRecords

Miscellaneous

Page 29: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

UnionsUnionsUnionsUnions

T1 | T2

Enumerated types:Enumerated types:

Signal = RED | AMBER | GREEN

T1 | T2

Enumerated types:Enumerated types:

Signal = RED | AMBER | GREEN

Page 30: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Optional typesOptional typesOptional typesOptional types

nil - absence of a value

Optional typeOptional type:

[ ] = | nil

Optional type operatorOptional type operator:

Expression = nil

nil - absence of a value

Optional typeOptional type:

[ ] = | nil

Optional type operatorOptional type operator:

Expression = nilif next(P) = nil ..if next(P) = nil ..

| nil

or

[ ]

| nil

or

[ ]

Page 31: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Explicit functionsExplicit functionsExplicit functionsExplicit functions

func_name: T1 x T2 x .. x Tn T

func_name(Id1, Id2, .., Idn)

E

pre B

func_name: T1 x T2 x .. x Tn T

func_name(Id1, Id2, .., Idn)

E

pre B

max: x x max (x, y, z) if (y x) (z x) then x elseif (x y) (z y) then y else z

max: x x max (x, y, z) if (y x) (z x) then x elseif (x y) (z y) then y else z

Page 32: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Polymorphic functionsPolymorphic functionsPolymorphic functionsPolymorphic functions

max [ @num ]: @num x @num x @num @num

max (x, y, z) if (y x) (z x) then x

elseif (x y) (z y) then y

else z

max [ @num ]: @num x @num x @num @num

max (x, y, z) if (y x) (z x) then x

elseif (x y) (z y) then y

else z

result = max [ ] (1, 2, 3)result = max [ ] (1, 2, 3)

result = max [ ] (1.1, 2.2, 3.3)result = max [ ] (1.1, 2.2, 3.3)

Page 33: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

StateStateStateState

state Id of

field_list

inv invariant_definition

init initialisation

end

state Id of

field_list

inv invariant_definition

init initialisation

end

state maximum of

max:

init mk_maximum(m) m=0

end

state maximum of

max:

init mk_maximum(m) m=0

end

Page 34: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

StateStateStateState

state Id of

field_list

inv invariant_definition

init initialisation

end

state Id of

field_list

inv invariant_definition

init initialisation

end state aircraft of

speed:

height:

inv mk_aircraft(-,h) (h 0.0)

init mk_aircraft(s,h) (s=0.0) (h= 0.0)

end

state aircraft of

speed:

height:

inv mk_aircraft(-,h) (h 0.0)

init mk_aircraft(s,h) (s=0.0) (h= 0.0)

end

Another exampleAnother example

Page 35: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Implicit operationsImplicit operationsImplicit operationsImplicit operations

Op_name (Id1: T1, .., Idk:Tk) Idr: Tr

ext Access_vars

pre B

post B’

Op_name (Id1: T1, .., Idk:Tk) Idr: Tr

ext Access_vars

pre B

post B’

Access_vars:Access_vars:

rdrd or or wrwr prefix prefix

MAX3()ext rd x, y, z: wr max: post (x max) (y max) (z max) (max {x, y, z})

MAX3()ext rd x, y, z: wr max: post (x max) (y max) (z max) (max {x, y, z})

Page 36: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Implicit operationsImplicit operationsImplicit operationsImplicit operations

Old state:Old state:

variable

Old state:Old state:

variable

MAX_NUM(n: ) ext wr max: post (n max) (max = max max = n)

MAX_NUM(n: ) ext wr max: post (n max) (max = max max = n)

Page 37: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Error definitionsError definitionsError definitionsError definitions

PUT_YEAR(year: ) ext wr yr: pre year 1994 post yr = year errs yr2dXIX: 94 year year 99 yr= year+1900 yr2dXX: year < 94 yr = year+2000

PUT_YEAR(year: ) ext wr yr: pre year 1994 post yr = year errs yr2dXIX: 94 year year 99 yr= year+1900 yr2dXX: year < 94 yr = year+2000

Page 38: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Explicit operationsExplicit operationsExplicit operationsExplicit operations

OPER_NAME: T1 x .. x Tn T

OPER_NAME (Id1, Id2, .., Idn)

Expression

pre B

OPER_NAME: T1 x .. x Tn T

OPER_NAME (Id1, Id2, .., Idn)

Expression

pre B

o

MAX_NUM: ()

MAX_NUM (n) if max < n then max:= n

else skip

MAX_NUM: ()

MAX_NUM (n) if max < n then max:= n

else skip

o

Page 39: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

ConditionalsConditionalsConditionalsConditionals

if B1 then ES1

elseif B2 then ES2

. . .

elseif Bn then ESn

else ES

if B1 then ES1

elseif B2 then ES2

. . .

elseif Bn then ESn

else ES

cases Es:

P1 ES1

. . .

Pn ESn

others ES

end

cases Es:

P1 ES1

. . .

Pn ESn

others ES

end

Page 40: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Iteration statementsIteration statementsIteration statementsIteration statements

for Id= E1 to E2 by Inc do St for Id= E1 to E2 by Inc do St

for Id in Sq do St for Id in Sq do St

for Id in reverse Sq do St for Id in reverse Sq do St

for all Id E do St for all Id E do St

while B do St while B do St

Page 41: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

SummarySummarySummarySummary

Finite sets.

Character string = sequence.

Type invariants allow to define quite complicated types (e.g. prime numbers).

Records allow do specify database-like computations.

Page 42: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

HomeworkHomeworkHomeworkHomework

• Specify a function digit 5 that returns a sequence of decimal digits of a number k (see functions digits3 and digits2).

• Specify an example of a function that would be an implementation of a JOIN operation in a relational database.

• Specify a polymorphic projection and selection operation.

Page 43: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Further readingsFurther readingsFurther readingsFurther readings

• A. Harry, Formal Methods Fact File, John Wiley & Sons, Chichester, 1996.

Page 44: Introduction to Z Copyright, 2002 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl  Models and Analysis of Software.

J. Nawrocki, Models & ...

Quality assessmentQuality assessmentQuality assessmentQuality assessment

1. What is your general impression? (1 - 6)

2. Was it too slow or too fast?

3. What important did you learn during the lecture?

4. What to improve and how?


Recommended