1 Statecharts by David Harel, 1987 State machines ⊆ statecharts A state machine consists of Named...
-
Upload
tyler-jennings -
Category
Documents
-
view
231 -
download
0
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
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
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