Sunteți pe pagina 1din 29

STATE MACHINE

MODEL

State Machine View


describes the dynamic behavior of
objects over time
each object is treated in isolation
the view describes the events and
operations that manipulate the object
the state view of the entire system is
described by a collection of state
diagrams, one corresponding to each
class in the system

About State Diagram


one state diagram per class in the
class diagram
one logical state diagram may be
spread out into one or more physical
diagrams for space considerations
enrichment of the finite state
machine model
based on David Harels State charts,
tailored towards object-orientation

Main components of a state diagram

a collection of states of the object under


consideration
a collection of actions while entering a
state, existing a state or within a state
a collection of transitions between the
states of the object
a collection of events that trigger
transitions
a collection of conditions (optional) that
might constrain the triggering of events,
or implementations of transitions

State diagram basic


syntax
event (params) [guard] /

initial

State name

action (params)

actions

entry/
exit/
s)
m
a
par
(
t
n
eve

do/

event (params)

actions

Unnamed states

final

State diagram - semantics


there must be exactly one initial state and
one or more final states
a transition between states is represented
by the event that triggers the transition (a
more concrete definition given later)
transitions may have guards or conditions
under which the transitions fire
the actions associated with a transition
will be executed as soon as the transition
fires

State diagram semantics


(continued)

a state may optionally have a label


every state may have
an entry action executed as soon
as the state is entered
an exit action executed just
before leaving the state
a do action executed while the
object is in this state; may be
ongoing until the object leaves the

State a formal definition


is a condition during the life of an object
during which the object performs an
action or waits for some event
is represented by the collection of
attributes and their corresponding
values
an object after being created must be at
one particular state at any instant
unless otherwise mentioned, an object
remains in a state for a finite time
UML allows modeling of transient states
(states that exist only for a very short

State a formal definition (continued)

(directly or indirectly) includes links


(instances of associations) connected
with the object at that instant
may be decomposed into concurrent
substates (AND relationship)
may be composed using mutually
exclusive disjoint substates (OR
relationship)

Event a formal definition

a noteworthy occurrence
something that happens within the system or
interacting with the system at an instant
something that has a significant impact on the
system
examples
sending a signal or data
receiving a signal or data
making a request for execution
a Boolean condition becoming true
a timeout condition becoming true

Four types of events in UML


signal event
occurs when an object sends a signal to
another object
call event
occurs when a method or operation in
an object is invoked
change event
occurs when a Boolean condition is
changed
time event

Representation of events
events are represented by
unique labels in the diagram
sometimes the transitions that
are fired by the occurrence of
the event is also represented by
the same label
change event labels are
preceded by the keyword
when

Generating an Event

an event is generated by the


runtime system
asking for inputs
producing outputs
execution of a method
transfer control of execution from
one object to another (sending
messages or receiving messages)
abnormal termination

Transition
represents the change of states
of an object
switch from Joined University
to Registered for Fall
is an abstraction of an operation
registering for a course
has finite and significant duration
time taken to complete

Transition (continued)
may have parameters
a transition corresponding to the
registration process may have
course name and prerequisites
as parameters.
is triggered/invoked/fired by the
occurrence of an event
change of semester from
Summer to Fall may initiate the
registration process

Transition (continued)

may have a guard/condition


transition for registration may require that the
student must have his/her ID validated
transition for graduation may require previous
library dues to be paid of
transition to admit new students may require
that the students can register only after
officially admitted into the program
an event may cause several transitions to fire
completion of registration process may cause
the course object to update its enrolment and
at the same time, the account object to update
the tuition fees to be paid

Transition (continued)
is normally identified by the same label
as the event that fires the transition
register, withdraw,
may be associated with an action
diferent from actions associated with
the states
register may have an action to check
the validity of parameters, to check
that no previous registration has been
done for the same set of parameters
etc.

Example 2 State diagram for


Account class in ATM
deposit/
deposit()

initial

clo
clo se/
se(
)

open/
open()
withdrawInitial /
withdraw()

deposit / deposit()

withdraw [amt = balance] /


withdraw()
depositOP
[amt=-balance]/
deposit()

Overdraft
closeAC [amt=-balance] / deposit()

withdrawNormal [amt
< balance] /
withdraw()

Normal

depositOP [amt <


-balance] / deposit()

withdrawOP /
withdraw()

Communications between objects

Objects communicate by sending


messages to each other.
A message is realized as an
event/transition in a state diagram.
The object that sends the message is
said to generate an event.
Modeled by the action associated
with the transition
The object that receives the message

Simple and composite


states
A state is composite, in contrast
to a simple state, if it has a
graphical decomposition
A diagram for a composite state
has two or more sub-diagrams
connected by simple and/or
concurrent transitions
Example: concurrent states
The word superstate is used

Composite State basic


syntax
Simple State

Simple State

Composite State Transparent Transitions


Simple State

Simple State

Composite State - Example


No CD Loaded
Eject

CD drawer
closed
Power ON [no
CD]

CD drawer
open
Eject [no
CD]
Eject [CD in]

CD loaded
Power ON
[CD in]

Power OFF

Pause

CD
playing

CD
paused

Pause or Play
Stop

Play

CD
stopped

Eject

Stop

Power
OFF

Observations
The state diagram for the CD player
example indicates a composite state that
includes two MUTUALLY EXCLUSIVE states
The player will be in only one of these two
substates at any time, but not in both at
the same time
The guard condition on the initial state
chooses the appropriate substate upon
Power ON
There is only one terminal state that is
common to both the substates

Abstract view of the CD player

No CD loaded

Eject

Power ON
[no CD]
Eject [CD in]
Power ON
[CD in]

CD loaded

Power
OFF

Composite State with Concurrent


Transitions
Concurrent
transition

Concurrent
transition

Composite State

Concurrent States - example


Student attending a course
Incomplete
Lab 1

Project
Final exam

Lab
done

Lab 2

Lab
done

passed

Project
done

pass

fail

failed

Observations

If a composite state has concurrent


substates,
an entry point to the composite state
represents a concurrent transition, even if it
is not represented
an exit point from the composite state
represents a concurrent transition, even if it
is not represented
all concurrent substates start at the same
time
the composite state terminates only when
all the concurrent substates terminate

Observations (continued)
if

there is a transition from any


one of the substates that lead to
a state outside the composite
state, then all the other
concurrent substates terminate
prematurely
the transition fail in the third
substate illustrates this situation

S-ar putea să vă placă și