142
Ch. 5 1 Specification

Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Embed Size (px)

Citation preview

Page 1: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 1

Specification

Page 2: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 2

Outline• Discussion of the term "specification"• Types of specifications

– operational • Data Flow Diagrams• (Some) UML diagrams• Finite State Machines• Petri Nets

– descriptive• Entity Relationship Diagrams• Logic-based notations• Algebraic notations

• Languages for modular specifications – Statecharts– Z

Page 3: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 3

Specification• A broad term that means definition• Used at different stages of software

development for different purposes• Generally, a statement of agreement

(contract) between– producer and consumer of a service– implementer and user

• All desirable qualities must be specified

Page 4: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 4

Uses of specification

• Statement of user requirements– major failures occur because of

misunderstandings between the producer and the user

– "The hardest single part of building a softwarem system is deciding precisely what to build" (F. Brooks)

Page 5: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 5

Uses of specification (cont.)

• Statement of the interface between the machine and the controlled environment – serious undesirable effects can result

due to misunderstandings between software engineers and domain experts about the phenomena affecting the control function to be implemented by software

Page 6: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 6

Uses of specification (cont.)

• Statement of requirements for implementation– design process is a chain of specification

(i.e., definition)–implementation–verification steps

• requirements specification refers to definition of external behavior

– design specification must be verified against it

• design specification refers to definition of the software architecture

– code must be verified against it

Page 7: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 7

Uses of specification (cont.)

• A reference point during maintenance– corrective maintenance only changes

implementation– adaptive and perfective maintenance

occur because of requirements changes• requirements specification must change

accordingly

Page 8: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 8

Specification qualities

• Precise, clear, unambiguous• Consistent• Complete

– internal completeness– external completeness

• Incremental

Page 9: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 9

Clear, unambiguous, understandable

• Example: specification fragment for a word-processorSelecting is the process of designating areas of the document that you want to work on. Most editing and formatting actions require two steps: first you select what you want to work on, such as text or graphics; then you initiate the appropriate action.

can an area be scattered?

Page 10: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 10

Precise, unambiguous, clear

• Another example (from a real safety-critical system)

The message must be triplicated. The threecopies must be forwarded through three different physical channels. The receiver accepts the message on the basis of a two-out-of-three voting policy.

can a message be accepted as soon as we receive 2 out of 3 identical copies of message or do we need to wait for receipt of the 3rd?

Page 11: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 11

Consistent• Example: specification fragment for a

word-processor

The whole text should be kept in lines of equal length. The length is specified by the user. Unless the user gives an explicit hyphenation command, a carriage return should occur only at the end of a word.

What if the length of a word exceeds the length of the line?

Page 12: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 12

Complete

• Internal completeness– the specification must define any new

concept or terminology that it uses• glossary helpful for this purpose

– the specification must document all the needed requirements• difficulty: when should one stop?

Page 13: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 13

Incremental

• Referring to the specification process– start from a sketchy document and

progressively add details

• Referring to the specification document– document is structured and can be

understood in increments

Page 14: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 14

Classification of specification styles

• Informal, semi-formal, formal• Operational

– Behavior specification in terms of some abstract machine

• Descriptive– Behavior described in terms of

properties

Page 15: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 15

Example 1

• Specification of a geometric figure E:

E can be drawn as follows:1. Select two points P1 and P2 on a plane2. Get a string of a certain length and fix its ends

to P1 and P23. Position a pencil as shown in next figure4. Move the pen clockwise, keeping the string

tightly stretched, until you reach the point where you started drawing

this is an operational specification

Page 16: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 16

P P 1 2

Page 17: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 17

A descriptive specification

• Geometric figure E is describe by the following equation

ax2 + by2 + c = 0where a, b, and c are suitable constants

Page 18: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 18

Another example

“Let a be an array of n elements. The result of its sorting is an array b of n elements such that the first element of b is the minimum of a (if several elements of a have the same value, any one of them is acceptable); the second element of b is the minimum of the array of n-1 elements obtained from a by removing its minimum element; and so on until all n elements of a have been removed.”

“The result of sorting array a is an array b which is a permutation of a and is sorted.”

OP

DES

Page 19: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 19

How to verify a specification?

• “Observe” dynamic behavior of specified system (simulation, prototyping, “testing” specs)

• Analyze properties of the specified system

• Analogy with traditional engineering– physical model of a bridge– mathematical model of a bridge

Page 20: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 20

Data Flow Diagrams (DFDs)

• A semi-formal operational specification

• System viewed as collection of data manipulated by “functions”

• Data can be persistent– they are stored in data repositories

• Data can flow – they are represented by data flows

• DFDs have a graphical notation

Page 21: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 21

Graphical notation– bubbles represent functions– arcs represent data flows– open boxes represent persistent

store– closed boxes represent I/O

interactionThe function symbol

The data flow symbol

The data store symbol

The input device symbol

The output device symbol

Page 22: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 22

Example

+ * +

*

a d c

b

specifies evaluation of(a + b) * (c + a * d)

Page 23: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 23

A construction “method” (1)

... ...

Input 1

Input2

Input n

Output1

Output2

Outputm

information

system

1. Start from the “context” diagram

Page 24: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 24

A construction “method” (2)

A

A1

A3

A2

A4

A5

A6

A7

B1

B2

B3B4

Ag

IO

I

O

H

K

J

M

N

P Q

R

S

K

T

K1

K2

K3

K4

M

N

2. Proceed by refinements until you reach “elementary” functions (preserve balancing)

Page 25: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 25

A library exampleShelves

List of Authors

List of titles

List of topics

Title and author of requested book; name of the user

Get a book

Book

List of books borrowed

Book title; user name

Topic request by the user

Search by topics

Book request by the user

Book reception

TopicList of titles referring to the topic

Book

Author

Title

Display of the list of titles

Topic

Title

Page 26: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 26

Refinement of“Get a book”

Shelves

List of Authors

List of titles

Title and author of requested book; name of the user

Book

List of books borrowed

Book title; user name

Book request by the user

Book reception

Book

Author

TitleFind book position

<shelf#, book#>

Get the book

Page 27: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 27

Patient monitoring systems

The purpose is to monitor the patients’ vital factors--blood,pressure, temperature, …--reading them at specified frequenciesfrom analog devices and storing readings in a DB. If readings fall outside the range specified for patient or device fails an alarm must be sent to a nurse. The system also provides reports.

Patient

Nurse

PatientMonitoring

Nurse

Persistent data

Report

AlarmDataClinical

ReportRequest

Recent data

Data for report

Page 28: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 28

A refinementNurse

Nurse

Patient archive

ReportRequest

Limits for patient

MonitoringCentral

Limits

Updatearchive

GenerateReport

Data forReport

RecentData

Formatted data

Alarm

PatientClinicalDataMonitoring

Local

Patient data

Report

Page 29: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 29

More refinement

Limits

Formatted data alarm

dataPatient

decode

Check

violations limit

Temperature

Pulse

Pressure

Result

Pressure, pulse…

Format

data clockDate Time

producemessage

Page 30: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 30

An evaluation of DFDs (1)• Easy to read, but …• Informal semantics

– How to define leaf functions?– Inherent ambiguities

A

C

E

B

F

D

• Outputs from A, B, C are all needed?

• Outputs for E and F areproduced at the same time?

Page 31: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 31

An evaluation of DFDs (2)

• Control information is absent

BA

Possible interpretations:(a) A produces datum, waits until B consumes it(b)B can read the datum many times without

consuming it(c) a pipe is inserted between A and B

Page 32: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 32

Formalization/extensions

• There have been attempts to formalize DFDs

• There have been attempts to extend DFDs (e.g., for real-time systems)

.

.

.

Trigger

d1

d2

dn

Page 33: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 33

UML use-case diagrams

• Define functions on basis of actors and actions

borrow book

return book

library update

librarian

customer

Page 34: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 34

UML sequence diagrams• Describe how objects interact by

exchanging messages• Provide a dynamic view

Librarian Catalogue

member card + book request membership

OK

book request

book available

book borrowed

time

Customer

Page 35: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 35

UML collaboration diagrams

• Give object interactions and their order• Equivalent to sequence diagrams

Customer Librarian Catalogue

1: member card + book request

2: membership OK

3: book request

4: book available 5: book borrowed

Page 36: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 36

Finite state machines (FSMs)

• Can specify control flow aspects• Defined as

a finite set of states, Q;a finite set of inputs, I;a transition function d : Q x I Q(d can be a partial function) a a

b

bc

q

q

q

q

1

20

3

Page 37: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 37

Example: a lamp

On Off

Push switch

Push switch

Page 38: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 38

Another example:a plant control system

On Off

High-pressure alarm

High-temperature alarm

Restart

Page 39: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 39

A refinementPressure signal Temperature signal

Successful recovery

Unsuccessful recovery

OffNormal

Pressure action

OffNormal

Pressure action

Temperature signalTemperature action

Successful recovery

Unsuccessful recovery

Pressure signal

Page 40: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 40

Classes of FSMs

• Deterministic/nondeterministic• FSMs as recognizers

– introduce final states

• FSMs as transducers– introduce set of outputs

• . . .

Page 41: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 41

FSMs as recognizers

q

q q q q

q q

q

b

e g i

n

e

n

d

0

1 2 3 4

5 6

f

qf is a final state

Page 42: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 42

FSMs as recognizers

q <letter>

<letter>

_

<digit>

q q

<letter> Legend: is an abbreviation for a set of arrows

labeled a, b,..., z, A,..., Z, respectively

is an abbreviation for a set of arrows labeled 0, 1,..., 9, respectively <digit>

0 1 2

<letter>

<digit>

Page 43: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 43

Limitations

• Finite memory• State explosion

– Given a number of FSMs with k1, k2, … kn states, their composition is a FSM with k1 * k2 *… * kn. This growth is exponential with the number of FSMs, not linear (we would like it to be k1 + k2 +… + kn )

Page 44: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 44

State explosion: an example

Producer

p1

c2

Storage

1

produce

deposit

get

consume

deposit

get get

deposit

p2

Consumer

c1

20

Page 45: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 45

The resulting FSM

<0, p ,c >

<0, p ,c >

consume

produce

consume

produce

consume

produce

consume

produce

produce produce

consume consume

write

read

write

read

read

write read

write

1

1 2

<0, p , c >

1

2 2

<1, p ,c >

<0, p ,c >

1 1

<1, p ,c>

<1, p ,c >

<1, p ,c >

2 1

1 2

1

2

2 2 <2, p ,c > 2 2

<2, p ,c > 1 2

<2, p ,c > 2 1

<2, p ,c > 1 1

Page 46: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 46

Petri netsA quadruple (P,T,F,W)

P: places T: transitions (P, T are finite) F: flow relation (F {PT} {TP} ) W: weight function (W: F N – {0} )Properties:(1) P T = Ø(2) P T Ø(3)F (P T) (T P)(4) W: F N-{0}

Default value of W is 1State defined by marking: M: P N

Page 47: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 47

places

transitions flows

marking

3 weight

P

P

P

t

t

P

t

1

3

1

3

4

6

5

P

P

P

2

5

7

t

t

t

2

4

6

Graphical representation

Page 48: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 48

Semantics: dynamic evolution

• Transition t is enabled iff pt's input places, M(p) W(<p,t>)

• t fires: produces a new marking M’ in places that are either t's input or output places or both– if p is an input place: M'(p) = M(p) - W(<p,t>)– if p is an output place: M'(p) = M(p) +

W(<t,p>)– if p is both an input and an output place:

M'(p) = M(p) - W(<p,t>) + W(<t,p>)

Page 49: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 49

Nondeterminism

• Any of the enabled transitions may fire

• Model does not specify which fires, nor when it fires

Page 50: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 50

Modeling with Petri nets

• Places represent distributed states• Transitions represent actions or

events that may occur when system is in a certain state

• They can occur as certain conditions hold on the states

Page 51: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 51

P

P

P

t

tP

t

1

3

1

3

4

6

5

P

P

P

2

5

7

t

t

t

2

4

6

P

P

P

t

tP

t

1

3

1

3

4

6

5

P

P

P

2

5

7

t

t

t

2

4

6

P

P

P

t

tP

t

1

3

1

3

4

6

5

P

P

P

2

5

7

t

t

t

2

4

6

P

P

P

t

tP

t

1

3

1

3

4

6

5

P

P

2

5

7

t

t

t

2

4

6

P

(a) (b)

(c) (d)

after (a) either (b) or (c) may occur, and then (d)

Page 52: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 52

Common cases• Concurrency

– two transitions are enabled to fire in a given state, and the firing of one does nor prevent the other from firing

• see t1 and t2 in case (a)

• Conflict– two transitions are enabled to fire in a given state,

but the firing of one prevents the other from firing• see t3 and t4 in case (d)• place P3 models a shared resource between two processes

– no policy exists to resolve conflicts (known as unfair scheduling)

– a process may never get a resource (starvation)

Page 53: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 53

How to avoid starvation

P P

P

P P

t t

t t

P P

t t

1

1 2

3

4

5

6

7

4

2

3

6

5

imposes alternation

Page 54: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 54

A conflict-free net

R

P P

t t

t'

t"

t

t'

t"

t

1

1

3

3

2

2

4

4

56

2 2

this net candeadlock!consider

'42

'31 t,t , t,t

Page 55: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 55

A deadlock-free net

R

P P

t t

t'

t"

t

t'

t"

t

1

1

3

3

2

2

4

4

56

2 2

2 2

Page 56: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 56

A case of partial starvation

t

t

1

3

t

t

2

4

Page 57: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 57

Producer-consumer example (1)

P P

write

produce

C

C

consume

0 1 2

read read

write write

read

1

1

2

2

separate netsfor the subsystems

Page 58: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 58

Producer-consumer example (2)

C1C2

consume

0 1 2

read

writewrite

read

P1 P2produce

one net for theentire system

Page 59: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 59

Limitations and extensions

P

channel1 channel2

Token represents a message.You wish to say that the delivery channel dependson contents.How?Petri nets cannot specify selection policies.

Page 60: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 60

Extension 1assigning values to tokens• Transitions have associated

predicates and functions• Predicate refers to values of tokens

in input places selected for firing• Functions define values of tokens

produced in output places

Page 61: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 61

Example

PP

P

PP

34

71 4

t t1 2

45

12

3

Predicate P2 > P1 and function P4 := P2 + P1 associated with t1

Predicate P3 = P2 and functions P4 := P3 P2 and P5 := P2 + P3 are associated with t2

The firing of t1 by using <3,7> would produce the value 10 in P4. t2 can then fire using <4, 4>

Page 62: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 62

Extension 2specifying priorities

• A priority function pri from transitions to natural numbers:

• pri: T N• When several transitions are

enabled, only the ones with maximum priority are allowed to fire

• Among them, the one to fire is chosen nondeterministically

Page 63: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 63

Extension 3Timed Petri nets

• A pair of constants <tmin, tmax> is associated with each transition

• Once a transition is enabled, it must wait for at least tmin to elapse before it can fire

• If enabled, it must fire before tmax has elapsed, unless it is disabled by the firing of another transition before tmax

Page 64: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 64

Examplecombining priorities and

time

P P P

t t t

tmin = 1 tmax = 4

tmin = 2 tmax = 3

tmin = 0 tmax = 5

priority = priority = priority = 1 3 2

P

1

1 2

2

3

3

4

Page 65: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 65

Original message

Message triplication

Message copies

Message copies transmission

tmin = tmax =

tmin = tmax =

tmin = tmax = 0

0

for all three transitions

PC1

PC2

PC3

c1 k1

c2k2

Forwarded message

tvoting1 tvoting2 tvoting3

{

{

{

Precise specificationof message triplication problemCase (1)

Page 66: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 66

Original message

Message triplication

Message copies

Message copies transmission

tmin = tmax =

tmin = tmax =

tmin = 0 tmax = 0

PC1

PC2

PC3

c1 k1

c2k2

tvoting

Forwarded message

Precise specificationof message triplication problemCase (2)

Page 67: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 67

Case study

• An n elevator system to be installed in a building with m floors

• Natural language specs contain several ambiguities

• Formal specification using PNs removes ambiguities

• Specification will be provided in a stepwise fashion

• Will use modules, each encapsulating fragments of PNs which describe certain system components

Page 68: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 68

From informal specs…“The illumination is cancelled when the

elevator visits the floor and is either moving in the desired direction, or ...”

2 different interpretations (case of up call)– switch off as the elevator arrives at the floor

from below (obvious restrictions for 1st and last floor)

– switch off after the elevators starts moving up• in practice you may observe the two cases!

Page 69: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 69

…more analysis of informal specs

“The algorithm to decide which to service first should minimize the waiting time for both requests.”what does this mean?

• in no other way can you satisfy either request in a shorter time

– but minimizing for one may require longer for the other

• the sum of both is minimal– why the sum?

Page 70: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 70

Initial sketch of movement

Elevator at floor j

Elevator at floor j + 1

Pushing internal button for floor j + 1

Button illumination

Transfer from floor j to j+1

Page 71: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 71

Button moduleC P P u s h

S e t

O f f

R e s e t

O n

0 . 1 . . 0 . 0 5 . . 0 . 0 5

0 . . 0

Page 72: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 72

Elevator position (sketch)F

F DFUF

UF F DF

UF FDF

F

m

m-1

3

2

1

m-1 m-1

3 3

2 2

Page 73: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 73

Assume j+1hm

Fj+1 UFj+1

Fj"

t Fj'

UPh

On

On

DOWNh

ILBh

DOWNj+1

On

On

On

On

ILBj+1

Fj

t1 t2 t3 t4 t5 t6

t7

t8

t9 t10

t11 t12

UPj+1

More precise description of elevator position

Page 74: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 74

Switch internal button off

I L B j

F j

S e t

R e s e t

O f fO n0 . . 0

Page 75: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 75

Switch external button off

Set

x..x Reset

ti'

Fj

Fj'

On Off

UPj

x time needed bya person to enter + pushing button

Page 76: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 76

Specifying policy

U

U _ D

D

D _ U

D KU K

A “fair” solution:Keep the direction unchanged as long as there are calls that require elevator to go in that direction

[0,0][0,0]

[x,x]

[x,x]

t7, t8, t9 have higher priority than t10, t11, t12

Page 77: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 77

A general schedulerSCHEDULER

...all transitions

• Each transition has predicate OK(Scheduler)• Token in SCHEDULER stores information about

the state of the system that is useful for scheduling transitions to fire

• The token is “permanent” (it is always reproduced after the firing of any transition)

Page 78: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 78

Declarative specifications

ER diagrams: semiformal specs

Logic specificationsAlgebraic specifications

Page 79: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 79

ER diagrams

• Often used as a complement to DFD to describe conceptual data models

• Based on entities, relationships, attributes

• They are the ancestors of class diagrams in UML

Page 80: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 80

Example

STUDENT

CLASS

ENROLLED_IN

NAME

SEX

AGE

SUBJECT

COURSE_ID

MAX_ENROLLMENT

Page 81: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 81

Relations

• Relations can be partial• They can be annotated to define

– one to one

– one to many

– many to one

– many to many

A R B

A R B

A R B

A R B

Page 82: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 82

Non binary relations

D i r e c t o r

P r o j e c t

E m p l o y e e

D e p a r t m e n t

A s s i g n e dP a r t i c i p a t e

H e a d O f

D a t a D u r a t i o n

Page 83: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 83

Logic specifications

Examples of first-order theory (FOT) formulas:• x > y and y > z implies x > z• x = y y = x• for all x, y, z (x > y and y > z implies x >

z)• x + 1 < x – 1• for all x (exists y (y = x + z))• x > 3 or x < -6

Page 84: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 84

Specifying complete programs

A property, or requirement, for P is specified as a formula of the type

{Pre (i1, i2,..., in) }P{Post (o1, o2,..., om, i1, i2,..., in)}

Pre: preconditionPost: postcondition

Page 85: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 85

Example

• Program to compute greatest common divisor{i1 > 0 and i2 > 0}P{(exists z1, z2 (i1 = o * z1 and i2 = o * z2)and not (exists h (exists z1, z2 (i1 = h * z1 and i2 = h * z2) and h > o))} 

Page 86: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 86

Specifying procedures

{n > 0} -- n is a constant valueprocedure search (table: in integer_array; n: in integer;

element: in integer; found: out Boolean);{found (exists i (1 i n and table (i) = element))}

{n > 0 } procedure reverse (a: in out integer_array; n: in integer);{for all i (1 i n) implies (a (i) = old–a (n - i +1))}

Page 87: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 87

Specifying classes

• Invariant predicates and pre/post conditions for each method

• Example of invariant specifying an array implementing ADT set

for all i, j (1 i length and 1 j length and ij) implies IMPL[i]IMPL[j](no duplicates are stored)

Page 88: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 88

Specifying non-terminating behaviors

• Example: producer+consumer+buffer• Invariant specifies that whatever has

been produced is the concatenation of what has been taken from the buffer and what is kept in the buffer

input_sequence = append (output_sequence,contents(CHAR_BUFFER))

Page 89: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 89

A case-study using logic specifications

• We outline the elevator example• Elementary predicates

– at (E, F, T) • E is at floor F at time T

– start (E, F, T, up) • E left floor F at time T moving up

• Rules– (at (E, F, T) and on (EB, F1, T) and F1 > F)

implies start (E, F, T, up)

Page 90: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 90

States and events

• Elementary predicates are partitioned into– states, having non-null duration

– standing(E, F, T1, T2)» assumption: closed at left, open at right

– events• instantaneous (caused state change occurs at same time)• represented by predicates that hold only at a particular

time instant– arrived (E, F, T)

• For simplicity, we assume• zero decision time• no simultaneous events

Page 91: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 91

Events (1)

• arrival (E, F, T) – E in [1..n], F in [1..m], T t0, (t0 initial time)

• does not say if it will stop or will proceed, nor where it comes from

• departure(E, F, D, T) – E in [1..n], F in [1..m], D in {up, down}, T t0

• stop (E, F, T) – E in [1..n], F in [1.. m], T t0

• specifies stop to serve an internal or external request

Page 92: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 92

Events (2)

• new_list (E, L, T) – E in [1..n], L in [1.. m]*, T t0

• L is the list of floors to visit associated with elevator (scheduling is performed by the control component of the system)

• call(F, D, T) – external call (with restriction for 1, N)

• request(E, F, T) – internal reservation

Page 93: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 93

States

• moving (E, F, D, T1, T2)• standing (E, F, T1, T2)• list (E, L, T1, T2)

– We implicitly assume that state predicates hold for any sub- interval (i.e., the rules that describe this are assumed to be automatically added)• Nothing prevents that it holds for larger

interval

Page 94: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 94

Rules relating events and states

R1:When E arrives at floor F, it continues to move if there isno request for service from F and the list is empty.If the floor to serve is higher, it moves upward; otherwise it moves downward.

arrival (E, F, Ta) andlist (E, L, T, Ta) and first (L) > F

impliesdeparture (E, F, up, Ta)

A similar rule describes downward movement.

Page 95: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 95

R2: Upon arrival at F, E stops if F must be serviced (Fappears as first of the list)

arrival (E, F, Ta) andlist (E, L, T, Ta) andfirst (L) = F

impliesstop (E, F,Ta)

R3: E stops at F if it gets there with an empty list

arrival (E, F, Ta) andlist (E, empty, T, Ta)

impliesstop (E, F, Ta)

Page 96: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 96

R4: Assume that elevators have a fixed time to service a floor. If the list is not empty at the end of such interval, the elevator leaves the floor immediately.

stop (E, F, Ta) andlist (E, L, T, Ta + Dts) andfirst (L) > F,

impliesdeparture (E, F, up, Ta + Dts

R5: If the elevator has no floors to service, it stops until its list becomes nonempty.

stop (E, F, Ta) and list (E, L, Tp, T) andTp > Ta + Dts and list (E, empty, Ta + Dts, Tp) andfirst (L) > F

impliesdeparture (E, F, up, Tp)

Page 97: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 97

R6: Assume that the time to move from on floor to the next is known and fixed. The rule describes movement.

departure (E, F, up, T)implies

arrival (E, F + 1, T + Dt)

R7: The event of stopping initiates standing for at least Dts.

stop (E, F, T)implies

standing (E, F, T, T + Dts)

Page 98: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 98

R8: At the end of the minimum stop interval Dts, E remainsstanding if there are no floors to service.

stop (E, F, Ts) andlist (E, empty, Ts + Dts, T)

impliesstanding (E, F, Ts, T)

R9: Departure causes moving.

departure (E, F, D, T)implies

moving (E, F, D, T, T + Dt)

Page 99: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 99

Control rulesExpress the scheduling strategy (by describing “new_list” events and “list” states)

Internal requests are inserted in the list from current floor to top if the elevator is moving up

External calls are inserted in the list of the closest elevatorthat is moving in the correct direction, or in a standing elevator

Page 100: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 100

R10: Reserving F from inside E, which is not standing at F,causes immediate update of L according to previous policy

request (E, F, TR) and not (standing (E, F, Ta, TR)) andlist (E, L, Ta, TR) and LF = insert_in_order(L, F, E)

impliesnew_list (E, LF, TR)

Page 101: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 101

R11: Effect of arrival of E at floor F

arrival (E, F, Ta) and list (E, L, T, Ta) andF = first (L) and Lt = tail (L)

impliesnew_list (E, Lt, Ta)

R12: How list changes

new_list (E, L, T1) and not (new_list (E, L, T2) and T1 < T2 < T3)

implieslist (E, L, T1, T3)

Page 102: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 102

Verifying specifications

• The system can be simulated by providing a state (set of facts) and using rules to make deductions

standing (2, 3, 5, 7) elevator 2 at floor 3 at least from instant 5 to 7

list(2, empty, 5, 7)

request(2, 8, 7)

new_list(2, {8}, 7)

(excluding other events) departure (2, up, 7 + Dts) arrival (2, 8, 7 + Dts + Dta *(8-3))

Page 103: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 103

Verifying specifications

• Properties can be stated and proved via deductionsnew_list (E, L, T) and F L

impliesnew_list (E, L1, T1) and F L1 and T1 > T2

(all requests are served eventually)

Page 104: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 104

Descriptive specs

• The system and its properties are described in the same language

• Proving properties, however, cannot be fully mechanized for most languages

Page 105: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 105

Algebraic specifications

• Define a heterogeneous algebra • Heterogeneous = more than 1 set• Especially useful to specify ADTs

Page 106: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 106

Example

• A system for strings, with operations for– creating new, empty strings (operation new)– concatenating strings (operation append)– adding a new character at the end of a

string (operation add)– checking the length of a given string

(operation length)– checking whether a string is empty

(operation isEmpty)– checking whether two strings are equal

(operation equal)

Page 107: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 107

Specification: syntax algebra StringSpec;introduces

sorts String, Char, Nat, Bool;operations

new: () String;append: String, String String;add: String, Char String;length: String Nat;isEmpty: String Bool;equal: String, String Bool

 

Page 108: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 108

Specification: propertiesconstrains new, append, add, length, isEmpty, equal so thatfor all [s, s1, s2: String; c: Char]

isEmpty (new ()) = true;isEmpty (add (s, c)) = false;length (new ()) = 0;length (add (s, c)) = length (s) + 1;append (s, new ()) = s;append (s1, add (s2,c)) = add (append (s1,s2),c);equal (new (),new ()) = true;equal (new (), add (s, c)) = false;equal (add (s, c), new ()) = false; equal (add (s1, c), add (s2, c) = equal (s1,s2);

end StringSpec. 

Page 109: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 109

Example: editor• newF

– creates a new, empty file

• isEmptyF– states whether a file is empty

• addF– adds a string of characters to the end of a file

• insertF– inserts a string at a given position of a file (the rest of

the file will be rewritten just after the inserted string)

• appendF– concatenates two files

Page 110: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 110

algebra TextEditor;introduces

sorts Text, String, Char, Bool, Nat;operations

newF: () Text;isEmptyF: Text Bool;addF: Text, String Text;insertF: Text, Nat, String Text;appendF: Text, Text Text;deleteF: Text Text;lengthF : Text Nat;equalF : Text, Text Bool;addFC: Text, Char Text;

{This is an auxiliary operation that will be needed to define addF and other operations on files.}

Page 111: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 111

constrains newF, isEmptyF, addF, appendF, insertF, deleteF so that TextEditor generated by [newF, addFC]for all [f, f1,f2: Text; s: String; c: Char; cursor: Nat]

isEmptyF (newF ()) = true;isEmptyF (addFC (f, c)) = false;addF (f, newS ()) = f;addF (f, addS (s, c)) = addFC (addF (f, s), c);lengthF (newF ()) = 0;lengthF (addFC (f, c)) = lengthF (f) + 1;appendF (f, newF ()) = f;appendF (f1, addFC (f2, c)) =

addFC (appendF (f1, f2), c);equalF (newF (),newF ()) = true;equalF (newF (), addFC (f, c)) = false;equalF (addFC (f, c), new ()) = false; equalF (addFC (f1, c1), addFC (f2, c2) = equalF (f1, f2) and equalC (c1, c2);insertF (f, cursor, newS ()) = f;((equalF (f, appendF (f1, f2)) and (lengthF (f1) = cursor - 1))

implies equalF (insertF (f, cursor, s), appendF (addF (f1, s), f2))) = true;

end TextEditor.

Page 112: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 112

Requirements for a notation

• Ability to support separation of concerns– e.g., separate functional specs from

• performance specs • user-interface specs• …

• Support different views

Page 113: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 113

Example of viewsdocument production

User

Formatting options

Predefined Text skeletons

Customers

Customer data (name, type of document)

Print Document

Predefined Formats

Document production

data flow view (1)

Page 114: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 114

Control flow view (2)

Search in Customers

Get user name

Get other data from the data base

Get other relevant data from user interaction

Get appropriate text skeletons from predefined text library

Print document

Compose the document by choosing formatting options (this involves interaction with the user and access to the Formats data base)

(b)

Page 115: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 115

UML notations

• Class diagrams– describe static architecture in terms

of classes and associations– dynamic evolution can be described

via Statecharts (see later)• Activity diagrams

– describe sequential and parallel composition of method executions, and synchronization

Page 116: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 116

An activity diagram

G

C

D

F

B

[c1] [c3]

[c2] [c4]

(2)

(1)

end

E A

Page 117: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 117

Building modular specifications

• The case of algebraic specifications– How to combine algebras taken from

a library– How to organize them in a hierarchy

Page 118: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 118

Algebras used by StringSpecalgebra BoolAlg;

introducessorts Bool;operations

true () Bool;false () Bool;not : Bool Bool;and: Bool, Bool Bool;or: Bool, Bool Bool;implies: Bool, Bool Bool; : Bool, Bool Bool;

constrains true, false, not, and, or, implies, so thatBool generated by [true, false] for all [a, b: Bool]

not (true) = false;not (false) = true;a and b = not (not (a) or not (b));a implies b = not (a) or b;

…end BoolAlg.

Page 119: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 119

Algebras used by StringSpec (cont.)

algebra NatNumb;introduces

sorts Nat, Bool;operations

0: () Nat;Succ: Nat Nat;+ : Nat, Nat Nat;- : Nat, Nat Nat;= : Nat, Nat Bool;

…constrains 0, Succ, +, -, =,..., so thatNatNumb generated by [0, Succ] …end NatNumb.

algebra CharAlg;introduces

sorts Char, Bool;operations

‘a’: ()® Char;‘b’ : ()® Char;…

end CharAlg.

Page 120: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 120

StringSpec revisited

algebra StringSpec;imports BoolAlg, NatNumb, CharAlg;introduces

sorts String, Char, Nat, Bool;operations

new: () String;…

end StringSpec.

Page 121: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 121

Incremental specification of an ADT

• We want to target stacks, queues, sets

• We start from "container" and then progressively specialize it

• We introduce another structuring clause– assumes

• defines inheritance relation among algebras

Page 122: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 122

Container algebraalgebra Container;imports DataType, BoolAlg, NatNumb;introduces

sorts Cont;operations

new: () Cont;insert: Cont, Data Cont;

{Data is the sort of algebra DataType, to which elements to be stored in Cont belong}

isEmpty: Cont Bool;size: Cont Nat;

constrains new, insert, isEmpty, size so thatCont generated by [new, insert]for all [d: Data; c: Cont]

isEmpty (new ()) = true;isEmpty (insert (c, d)) = false;size (new ()) = 0;

end Container.

Page 123: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 123

Table specializes Containeralgebra TableAlg;

assumes Container;introduces

sorts Table;operations

last: Table Data;rest: Table Table;equalT : Table, Table Bool;delete: Table, Data Table;

constrains last, rest, equalT, delete, isEmpty, new, insert so thatfor all [d, d1, d2: Data; t, t1, t2: Table]

last (insert (t, d)) = d;rest (new ()) = new ();rest (insert (t, d)) = t;equalT (new (), new ()) = true;equalT (insert (t, d), new ()) = false;equalT (new (), insert (t,d)) = false;equalT (t1,t2) = equalD(last (t1), last (t2)) and equalT (rest (t1),rest (t2));delete (new (), d) = new ();delete (insert (t,d),d) = delete (t, d);if not equalD(d1, d2) thendelete (insert (t, d1), d2) = insert (delete (t, d2), d1);

end TableAlg.

Page 124: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 124

Queue specializes Containeralgebra QueueAlg;

assumes Container;introduces

sort Queue;operations

last: Queue Data;first: Queue Data;equalQ : Queue , Queue Bool;delete:Queue Queue;

constrains last, first, equalQ, delete, isEmpty, new, insert so thatfor all [d: Data; q, q1, q2: Queue]

last (insert (q, d)) = d;first (insert (new(), d) = dfirst (insert (q, d)) = if not isEmpty (q) then first (q);equalQ (new (), new ()) = true;equalQ (insert (q, d), new ()) = false;equalQ (new (), insert (q, d)) = false;equalQ (insert (q1, d1), insert (q2, d2)) = equalD (d1, d2) and equalQ (q1,q2);delete (new ()) = new ();delete (insert (new (), d)) = new ();if not equalQ (q, new ()) thendelete (insert (q,d)) = insert (delete (q), d);

end QueueAlg.

Page 125: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 125

A graphical view

Table Algebra

Queue Algebra

Bool Algebra

Container Algebra

Nat Algebra DataType

Algebra

Legend: imports relation assumes relation

Page 126: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 126

A richer hierarchy

Table Algebra

Queue Algebra

Bool Algebra

Container Algebra

Nat Algebra

DataType Algebra

Sorted DataTypeArray

Algebra

Sorted TableTreeMultiset

Set

Page 127: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 127

From specs to an implementation

• Algebraic spec language described so far is based on the "Larch shared language"

• Several "interface languages" are available to help transitioning to an implementation– Larch/C++, Larch/Pascal

Page 128: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 128

Using Larch/Pascal for StringSpec

type String exports isEmpty, add, append,...based on Boolean, integer, character

function isEmpty (s: String) : Booleanmodifies at most [ ] {i.e., it has no side effects};

procedure add (var s : String; c : char)modifies at most [s]{modifies only the string parameter s};

function length (s: String) : integermodifies at most [ ] ;

procedure append (var s1, s2, s3: string)modifies at most [s3]{only s3, the result of the operation, is modified};

end StringSpec.

Page 129: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 129

Modularizing finite state machines

• Statecharts do that• They have been incorporated in

UML• They provide the notions of

– superstate– state decomposition

Page 130: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 130

Sequential decomposition--chemical plant control

example--

RecoveryFailure

Normal

Recovery

Pressure Action

Temperature Action

Recovery Identification

AnomalyDetection RecoverySuccess

Press

Done Done Temp

Page 131: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 131

Parallel decomposition

Idle

ConcurrentWork

P1

P2

produce

write

C1

C2

read

consume

1

2

0

write write

read

read

start stop

Consumer Producer Buffer

Page 132: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 132

Object state diagram using Statecharts

Empty NotEmptyy

Top

Push(item)

Pop[stack contains more than 1 item]

Push(item)

Pop[stack contains 1 item]

Page 133: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 133

Modularizing logic specifications: Z

• System specified by describing state space, using Z shemas

• Properties of state space described by invariant predicates– predicates written in first-order logic

• Operations define state transformations

Page 134: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 134

The elevator example in Z

Page 135: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 135

Complete state spaceattempt #1

Page 136: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 136

Complete state spaceattempt #2

Page 137: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 137

Complete state spacefinal

Page 138: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 138

Operations(1)

Page 139: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 139

Operations(2)

Page 140: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 140

Specifications for the end-user

• Specs should be used as common reference for producer and user

• They help removing ambiguity, incompleteness, …

• Can they be understood by end-user?– They can be the starting point for a

prototype– They can support some form of

animation (e.g., see Petri nets)

Page 141: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 141

Conclusions (1)• Specifications describe

– what the users need from a system (requirements specification)

– the design of a software system (design and architecture specification)

– the features offered by a system (functional specification)

– the performance characteristics of a system (performance specification)

– the external behavior of a module (module interface specification)

– the internal structure of a module (internal structural specification)

Page 142: Ch. 51 Specification. Ch. 52 Outline Discussion of the term "specification" Types of specifications –operational Data Flow Diagrams (Some) UML diagrams

Ch. 5 142

Conclusions (2)

• Descriptions are given via suitable notations– There is no “ideal” notation

• They must be modular• They support communication and

interaction between designers and users