59
Software Design Software Design (Behavioral) (Behavioral) © SERG Behavioral Design Topics in Behavioral Design on Material in [Rosenblum94][Budgen94] [Ghezzi91] [

Behavioral Design

  • Upload
    lester

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Behavioral Design. Topics in Behavioral Design. Based on Material in [Rosenblum94][Budgen94] [Ghezzi91] [Harel88]. Behavioral Design Topics. State Transition Diagrams Petri Nets Higraphs and Statecharts. State Transition Diagrams. State Transition Diagrams (STD). - PowerPoint PPT Presentation

Citation preview

Page 1: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Behavioral Design

Topics in Behavioral Design

Based on Material in [Rosenblum94][Budgen94] [Ghezzi91] [Harel88]

Page 2: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Behavioral Design Topics

• State Transition Diagrams

• Petri Nets

• Higraphs and Statecharts

Page 3: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

State Transition Diagrams

Page 4: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

State Transition Diagrams (STD)

• Systems exist in a finite set of possible states. External events are triggers that lead to transitions between the states.

• Since most systems have many states, a partial model of the system may be a good compromise.

• STDs are the cornerstone of more powerful diagrams for specifying system behavior, such as Petri Nets and State Charts.

Page 5: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Partial Unix vi STDo

LineCommand

ZZ

TextInsertion

Mode

CommandMode

/:

returnESC

il

Page 6: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Formal Definition of an STD

states final ofset theis

:

functionn transitioa is

statestart theis

alphabetinput an is

states ofset a is

: where), , , , ,( =

0

0

QF

QQ

Q q

Q

FqQSTD

Page 7: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Combination Safe STD

Safe Locked 1/3 UnlockedSafe

Unlocked2/3 Unlocked

1L 2L3R

Sound Alarm

any other dialmovement

any other dialmovement any other dial

movement

Page 8: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

IDE STDCompiling

events

eventseventsno events hiccup

Running

Start

resume

pause

stop

stopfinishedsuccess

Compilederror

stop

run

Executing

Pausing

Page 9: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Petri Nets

Page 10: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Simple Petri Net

P1 P2t1 t2

t3 P3 P4

Page 11: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Marked Petri NetP1 P2t1 t2

t3 P3 P4

Page 12: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Marked Petri Net After Firing t1

P1 P2t1 t2

t3 P3 P4

Page 13: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Definition of a Petri Net

• PNet = (P, T, A, M0)– P is a finite set of places (labeled circles), where a

place holds tokens .

– T is a finite set of transitions (bars), where a transition represents an activity.

– A is a finite set of directed arcs, where an arc connects a place and a transition.

– M0 is the initial marking of PNet, where a marking is an arrangement of tokens in places representing state.

Page 14: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Petri Net Execution Model

• Input Place: Place P is an input place for transition T if there is an arc from P to T.

• Output Place: Place P is an output place for transition T if there is an arc from T to P.

• Enabled Transition: A transition is enabled if there is at least one token at each of its input places.

Page 15: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Petri Net Execution Model (Cont’d)

• Firing a Transition: An enabled transition is non deterministically selected and fired by removing one token from each of its input places and depositing one token at each of its output places.

• Firing Sequence: A firing sequence <t0,t1, …, tn> such that t0 is enabled and fired in M0, t1 is enabled and fired in M1, ...

Page 16: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Petri Net Firing

Page 17: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Petri Net Describing an ATM

MachineReady

Valid Card

CorrectPin

CardAccepted

ValidRequest

SufficientFunds

SufficientATM Cash

Card in Slot

Notes inDispenser

Page 18: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Marked Petri Net SemaphoreIN1 IN2

CR1 CR2SEM

OUT1 OUT2

IN = Input of ProcessOUT = Output of

ProcessCR = Critical RegionSEM = Semaphore

Page 19: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Enabled Transitions

IN1 IN2

CR1 CR2SEM

OUT1 OUT2

Page 20: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Non-Deterministic FiringIN1 IN2

CR1 CR2SEM

OUT1 OUT2

Page 21: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Enabled Transition

IN1 IN2

CR1 CR2SEM

OUT1 OUT2

Page 22: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing

IN1 IN2

CR1 CR2SEM

OUT1 OUT2

Page 23: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Petri Net Static Analysis

• Invariants are properties of a Petri net that hold (are true) in all markings.

• For example, the sum of all tokens in CR1, CR2, and SEM are equal to 1 in all reachable markings. That is, |CR1| + |CR2| + |SEM| = 1

Page 24: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Deadlock and Starvation• A Petri Net with a given marking is in

deadlock iff no transition is enabled in that marking.

• A Petri Net with a given marking is in starvation iff one or more transitions have been permanently disabled.

• A Petri Net is live if every transition can eventually be fired.

Page 25: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Deadlocked Petri Net

Page 26: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Petri Net that can Enter a Deadlocked State

Page 27: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Deadlocked Petri Net

Page 28: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Modification into a Live Petri Net

Page 29: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Petri Net that can go into Starvation

t1 t2

t3 t4

Page 30: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Starving Transitions t2 and t4

t1 t2

t3 t4

Page 31: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Shortcoming of Basic Petri Nets

• The Simplicity of building blocks leads to complexity in nets.

• For example, a semaphore of N processes requires 2N transitions and 3N+1 places.

• Would like:– Enable and fire as computations.– Tokens as data, not just control.– Ability to reduce high-level Petri nets to basic

Petri nets for analysis.

Page 32: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Higher-Level Net Semaphore19

71

transitionpredicate

true

3

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 33: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Enabled Transition19

71

transitionpredicate

true

3

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 34: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing19

71

transitionpredicate

true

2

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 35: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Enabled Transitions19

71

transitionpredicate

true

2

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 36: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing

19

71

transitionpredicate

true

1

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 37: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Enabled Transition

19

71

transitionpredicate

true

1

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 38: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing

19

71

transitionpredicate

true

2

tokenvalue

s > 0

arcexpressions+1

p

p

p

s-1

s

s

p

Page 39: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

A Software Change Process

19

7

33

811

New MRs

(MR)

true

true

true

TomMaria

TonyOlga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

Page 40: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing (New Assigned MR)

19 33

811

New MRs

(MR)

true

true

true

7,Tom

Maria

TonyOlga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

Page 41: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing (New Assigned MR)

19 33

11

New MRs

(MR)

true

true

true

7,Tom

Maria

Tony

8,Olga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

Page 42: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing (New Completed MR)

19 33

11

New MRs

(MR)

true

true

true

7,Tom

Maria

Tony

8,Olga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

Page 43: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing (New Assigned MR)

19 33

New MRs

(MR)

true

true

true

7,Tom

Maria

11,Tony 8,Olga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

Page 44: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

After Firing (New Approved MR)

19 33

New MRs

(MR)

true

true

true

7,Tom

Maria

11,Tony

Olga

Approved MRs

Assigned MRs Completed MRs

(MR)

(MR, Developer)

(MR, Developer)

(MR, Developer)

(Developer)

(Developer)

(MR, Developer)

8

Page 45: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Higraphs and Statecharts

Page 46: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Higraphs

• Higraphs are based on:– Euler graphs

– hypergraphs

– Venn diagramsGraph Hypergraph

Q R

P

Q^R

P^Q^R

P^Q P^R

Page 47: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

E

Higraphs Supports Cartesian Products.

B A

O

P

T

S

R

D

J H

I

G

F

L

MN

K Q

C

Page 48: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Formal Definition of a Higraph

B B E E

... =

B

B

B

E),H = (B,

BB BB

BB

B

edges ofset theis

)222(

2 :

function ngpartitioni theis

2 : function blob-sub theis

(blobs) elements ofset finite a is

where,,

Page 49: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Specialized Higraphs: State Charts

• State Charts are a higraph-based extension of standard state-transition diagrams, where blobs represent states and arrows represent transitions.

• State Charts = state diagrams + depth + orthogonality + broadcast communication

Page 50: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Depth of State Charts

• e, f, g, h: events that trigger the transitions•g(c): is the transition by event g when condition c is true.•Being in state D means being in one of states A or C.•The f arrow leaving D applies to both A and C.•A is the default state.•C is the default state when in D.

g(c)

A

B

C

f

f

e

h

A

C

fB

e

h

D

g(c)

Page 51: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

F

Orthogonality of State Charts

Y

B

C

H

E

G

I

A D

e f[in{G}]

ne

g h

k

e m

p

C,G

B,E

C,F

C,E

B,G

B,F

H I

k h

e

n

k

p

m or p

e f

ep

g

g

eh

em o

r p

Page 52: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Broadcasting of State Charts

YA

H

D

B

C

E

G

F

k

e nf/g g

e

I Jn/f

m/e

Page 53: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

in flight

State Chart Describing ATC

cruising

stacked

landingapproach

on ground

touch down

take off

taxiing

parked

Page 54: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

CPU Main Memory

State Chart Describing a Computer

Computer

FetchingInstruction

ExecutionInstruction

Waitingfor Request

MemoryWrite Cycle

MemoryRead Cycle

getAddrputAddr

instr.cmpl.

instr.avail. Put

Addr. GetAddr.

DataWritten

DataRead

Page 55: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Display State of Digital Watch

displays update

hour min

datesec

c

cc

ctime

date

alarmstopwatch

c

bd

d

a

a

a

up-alarm c

c c

hour sec

min

b c

2-min[not in(stopwatch)]

Page 56: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

Stopwatch State of Digital Watch

time

a

disp run

zero

reg

lap off

on

d[in(off)]

b b

d[in(on

)]d bb

stopwatch

Page 57: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

High-Level Description of Digital Watch

dead

alivemain power

displays

beepbeep-rt t-hits-tm

[in(enable)]

weak strong

bt-weak

on off

b

b-up

enable disable

alarm-stated[in(alarm)]

d[in(alarm)]

light

Page 58: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

State Chart of Digital Watch

alarm-state

dead

alive

hour min

date

sec

c

cc

ctime

date

alarm

c

bd

d

a

a

up-alarm c

c chour sec

min

b cdisp run

zero

reg

lap off

on

d b b

d d bb

stopwatch

beepbeep-rtt-hits-tm[in(enable)]

update

displays

main2-min

[not in(stopwatch)]

bat-inbat-rn

weak strong

power

bt-weak

on off

b

b-up

light

disableenable

d[in(alarm)]

d[in(alarm)]

Page 59: Behavioral Design

Software Design Software Design (Behavioral)(Behavioral) © SERG

References

• [Rosenblum94] D. Rosenblum, A. L. Wolf, Formal Software Engineering, Tutorial SIGSOFT’94 FSE, New Orleans, Dec., 1994.

• [Budgen94] D. Budgen, Software Design, Addison-Wesley, 1994.

• [Ghezzi91] C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of Software Engineering, Prentice-Hall, 1991.

• [Harel88] D. Harel, On Visual Formalisms, CACM, Vol. 31, No. 5, 1988.