1 Statecharts by David Harel, 1987 State machines ⊆ statecharts A state machine consists of Named...

31
1 Statecharts by David Harel, 1987 State machines ⊆ statecharts A state machine consists of Named states Transitions between states Events as labels on transitions State machine by itself is meaningless Must describe what states and events mean

Transcript of 1 Statecharts by David Harel, 1987 State machines ⊆ statecharts A state machine consists of Named...

1

Statecharts by David Harel, 1987

State machines statecharts⊆

A state machine consists of Named states Transitions between states Events as labels on transitions

State machine by itself is meaninglessMust describe what states and events mean

2

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events:

3

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events: “quarter” = user deposited quarter

4

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events: “quarter” = user deposited quarter“gum-button” = user pressed button for gum

5

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events: “quarter” = user deposited quarter“gum-button” = user pressed button for gum“done” = machine finished dispensing itemStates:

6

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events: “quarter” = user deposited quarter“gum-button” = user pressed button for gum“done” = machine finished dispensing itemStates:$X indicates that user has $X credit with machine

7

Statecharts by David Harel, 1987

Example: vending machine state machineInformal specification:“If user deposits two quarters and presses button for gum, a pack of gum will be dispensed.”

Formal specification by state machine”Events: “quarter” = user deposited quarter“gum-button” = user pressed button for gum“done” = machine finished dispensing itemStates:$X indicates that user has $X credit with machine“dispense-gum”: machine is dispensing gum

8

State Machine

$0.00

9

State Machine

$0.00 $0.25quarter

10

State Machine

$0.00 $0.25 $0.5quarter quarter

11

State Machine

$0.00 $0.25 $0.5

Dispense-gum

quarter quarter

Gum button

12

State Machine

$0.00 $0.25 $0.5

Dispense-gum

quarter quarter

done Gum button

13

Tracing Operation of State Machine

Given an initial state and a sequence of events,How does the state machine react to the sequence of events?What state does it end up in?

“Event history table” : useful tool for answering this

1.Each line contains:Next event in sequenceState that machine is in after event

2.First line lists the initial state

14

Tracing Operation of State Machine

Example for the vending machine

Event State--------------- -----------------(start) $0.00Quarter $0.25Quarter $0.50Gum-button dispense gumDone $0.00

15

Deterministic/non-deterministic

“… a transition to branch at a decision point. Such an FSM is known as non-deterministic.” (p269)

Comment:Not very precise …

NFA –a

a b

16

Deterministic/non-deterministic

“… a transition to branch at a decision point. Such an FSM is known as non-deterministic.” (p269)

Comment:Not very precise …

Still DFSM –

Deci-sion

a

x

y

17

State transition matrices

Example for ATM machine – withdraw

18

State transition matrices

States

Events

19

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card

2. Await pin

3. Await 2nd

pin attempt

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

20

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin

3. Await 2nd

pin attempt

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

21

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4

3. Await 2nd

pin attempt

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

22

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4

3. Await 2nd

pin attempt4

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

23

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3

3. Await 2nd

pin attempt4

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

24

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3

3. Await 2nd

pin attempt4 1

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

25

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3 1

3. Await 2nd

pin attempt4 1

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

26

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3 1

3. Await 2nd

pin attempt4 1 1

4. Await amount

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

27

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3 1

3. Await 2nd

pin attempt4 1 1

4. Await amount

1

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

28

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3 1

3. Await 2nd

pin attempt4 1 1

4. Await amount

1 5

5. Dispense money

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

29

State transition matrices

Card Good pin Bad pin Cancel Amount Done

1. Await card 2

2. Await pin 4 3 1

3. Await 2nd

pin attempt4 1 1

4. Await amount

1 5

5. Dispense money

1

States EventsAwait card insert cardAwait pin enter good pinAwait 2nd pin attempt enter bad pinAwait amount canceldispense money enter amount

done

30

State diagram = State transition matrices

31

Extending State Machines

State machines simple and visual

Disadvantages:

They don’t scale up well Machine state may have to model very complex system state May end up with confusing number of transitions Sometimes want to express more complex conditions on

transitions

=> Statecharts