Upload
kadin-fulwood
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
StateChart Diagrams
State Machines
• Overview
• Change summary– core constructs– notation
• Examples
• Backward compatibility
• User benefits
• Issues
Overview
• State machines specify discrete behavior by mapping received events into sets of states. They may specify detailed behaviors of classes or constrain operational sequences of ports or interfaces.
• The core constructs in statemachines include:– States, Regions, Transitions, Events
• Notated using state machine diagrams• Typical applications of statemachines include:
– object lifecycle• states an “order” object might be in
– event-driven behaviors of embedded controllers – UI controllers– valid Sequences of calls via interfaces or ports
Change Summaryfor UML 2.0
• New core constructs added:– entry/exit points on submachines– state machine specialization/redefinition– state machine Termination– protocol state machines
• transitions pre/post conditions• protocol conformance
• UML 1.4 core constructs updated:– metamodel refactoring
• Notational enhancements– action blocks– state lists
Entry/Exit Points: Usage
VerifyCard
OutOfService
acceptCard
ReleaseCardVerifyTransaction
outOfService
releaseCard
ATM
ReadAmount :ReadAmountSM
aborted
usage of exit point
usage of entry point
rejectTransaction
again
invoked submachine
Entry/Exit Points: Definition
ReadAmountSM
selectAmount
EnterAmount
ok
abort
aborted
amount
otherAmount
abort
again
definition of exit point
definition of entry point
Specialization
• Redefinition as part of class specialization
ATM
acceptCard()outOfService()amount()
BehaviourStatemachine
FlexibleATM
otherAmount()rejectTransaction()
Behaviour
Statemachine
<<Redefine>>
State Machine Redefinition
• State machine of ATM to be redefined
VerifyCard
ReadAmount
selectAmount
acceptCard
ReleaseCardVerifyTransaction
selectAmount
amount
outOfService
releaseCard
OutOfService
ATM
{final}
{final}
{final}
{final}
State Machine Redefinition
• FlexibleATM redefines ATM
VerifyCard
ReadAmount
selectAmount
acceptCard
ReleaseCardVerifyTransaction
selectAmount
amount
outOfService
releaseCard
OutOfService
FlexibleATM
{final}
{final}
{final}
{final}
ATM {extended}
EnterAmountok
otherAmount
rejectTransaction
{extended}
State Machine Redefinition
• FlexibleATM Statemachine• States and transitions can be
added
• States and state machines can be extended
• Regions can be added, and regions can be extended
• Transitions can be replaced or extended– Actions can be replaced
– Guards can be replaced
• Submachines can be replaced
ReadAmount
SelectAmount
VerifyTransaction
EnterAmountEnterAmount
ok
otherAmount
rejectTransaction
FlexibleATM ATM
{extended}
{extended}
State Machine Specialization
• Independent state machine specialization– not as part of class specialization
– facilitates reuse of behaviours
<<statemachine>>ATMsm
<<statemachine>>FlexibleATMsm
ATMmachines
Protocol State Machines
onGround checked
flying
check()
[cleared for take off] takeOff()/[landing rear is retracted]
land()
postcondition instead of action
Equivalent to pre and post conditions added to the related operations:
takeOff()Pre
-in state "checked"-cleared for take off
Post-landing rear is retracted-in state "flying"
Example: Notation Enhancements
• Transition notation • State lists
Idle
Req(Id)
MinorReq=Id; MajorReq=Id;
[ID<=10] [ID>10]
Minor(Id) Major(Id)
Busy
alternativechoice
sequence ofactions
VerifyCard,ReleaseCard
Is a notational shorthand for
logCardLogged
VerifyCard
ReleaseCard
logCardLogged
Statesexample Library Title
Backward Compatibility
• In general all UML 1.4 state machine concepts are preserved in the 2.0 proposal
• Submachines: stub-states replaced by connection points
• Specialization (only a note in UML 1.4) now specified
• Protocol state machines now specified as a separate compliance point
User Benefits
• Entry/Exit Points – reuse via encapsulation of statemachine control
interfaces– scalability
• Specialization– reuse, refinement
• Protocol State Machines– usage of stat emachines at higher level of
abstraction
What Does a Statechart Depict?
Classifier of a State Machine
• The modeling element which is described by the state machine
• Usually a class
State MachinesTerms and Concepts
• State machine is a behavior that specifies the sequences of states an object goes through during its lifetime
• State
• Event
• Transition
State Transition Diagrams
• Show a state machine. • Emphasize the event-ordered behavior of an
object.• Model the changes in an object in response to the
environment.• Document the following:
– Causes of change– Alterations in behavior based on the object’s current
condition
StateCharts vs. Sequence & Collaboration Diagrams
• Sequence&Collaboration diagrams show how information passes through the objects of a system over time.
• State Transition diagrams show how one object changes over time,– given that methods are invoked on it by
other objects.
• Changing the statechart states doesn’t influence the Class structure, i.e. Internal affair
States
• All objects have a “state.” The current state of any object is dictated by the values stored in its attributes.
• Initial
• final
States
• A period of time in the life of an object during which it– Satisfies some condition,
and/or– Performs some activity, and/or– Waits for some events
• Some special states– Start state
• At most one
– Final state• Can appear many times; all
have the same meaning - namely, the classifier ceases to exist
States
Transitions
• Event Trigger
• Guard Condition
• Action– entry, exit, activity
Transitions and Events
• Example: statechart for Patient class
• A transition without an explicit event label is called trigerless
• When source state is complete, transition occurs
Events
• An “event” is the stimulus
that prompts an object to make the transition from one state to another.
• Events take the form of a method call.
Events
• Trigger transitions• May represent the receipt of a message:
– Between system and actors– Among objects– From an object to itself
• Several kinds of events– Signals– Calls– Passage of time, for example:
• after(2 sec)
– Change in state, for example:• when(quantity < 10)• when(date = Y2K)
Deferring Events EDo:
UG-ban utananezni
EDo:
UG-ban utananezni
Internal Actions/Activities
Transition Details
• Guard Condition• Action
Self- & Internal- Transitions
Actions
• Triggered by an event
• An executable, atomic computation
• Noninterruptible, runs to completion
• Usually the invocation of an operation (a call)– to the state machine classifier– to objects linked to the classifier
Actions vs. Events
Composite StatesEDo:
We don’t go deeper now
EDo:
We don’t go deeper now
Sending Messages:Textual Notation
Sending Messages:Graphical Notation
• Syntax: a <<send>> dependency drawn from a transition to a class box: the dependency is labeled with the message
SuperStates
• when you have many states that respond to some of the same events in the same way
Overriding superstate transitions
Hierarchical invocation of Entry and Exit actions
Simple Login State Machine
Real world example
That’s it for today