430 likes | 629 Views
StateChart Diagrams. State Machines. Overview Change summary core constructs notation Examples Backward compatibility User benefits Issues. Overview.
E N D
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
ReleaseCard Entry/Exit Points: Usage ATM invoked submachine VerifyCard usage of exit point acceptCard outOfService ReadAmount: ReadAmountSM aborted OutOfService again rejectTransaction usage of entry point releaseCard VerifyTransaction
Entry/Exit Points: Definition ReadAmountSM definition of exit point abort otherAmount selectAmount amount abort EnterAmount aborted definition of entry point ok again
ATM Behaviour Statemachine acceptCard() outOfService() amount() <<Redefine>> Behaviour FlexibleATM Statemachine otherAmount() rejectTransaction() Specialization • Redefinition as part of class specialization
State machine of ATM to be redefined State Machine Redefinition ATM VerifyCard {final} acceptCard ReadAmount selectAmount selectAmount outOfService OutOfService {final} amount releaseCard VerifyTransaction ReleaseCard {final} {final}
State Machine Redefinition • FlexibleATM redefines ATM FlexibleATM ATM {extended} VerifyCard {final} acceptCard ReadAmount {extended} otherAmount selectAmount selectAmount outOfService OutOfService {final} amount EnterAmount ok rejectTransaction releaseCard VerifyTransaction ReleaseCard {final} {final}
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 otherAmount EnterAmount EnterAmount ok rejectTransaction State Machine Redefinition {extended} FlexibleATM ATM ReadAmount {extended} SelectAmount VerifyTransaction
State Machine Specialization • Independent state machine specialization • not as part of class specialization • facilitates reuse of behaviours ATMmachines <<statemachine>> ATMsm <<statemachine>> FlexibleATMsm
Protocol State Machines • 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" check() onGround checked [cleared for take off] takeOff() /[landing rear is retracted] flying land() postcondition instead of action
Transition notation State lists logCard logCard alternative choice Idle Req(Id) sequence of actions [ID>10] [ID<=10] MinorReq=Id; MajorReq=Id; Major(Id) Minor(Id) Busy VerifyCard Logged ReleaseCard Example: Notation Enhancements VerifyCard, ReleaseCard Logged Is a notational shorthand for
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
Classifier of a State Machine • The modeling element which is described by the statemachine • 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 bythe values stored in its attributes. • Initial • final
States • A period of time in the life of an objectduring 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 thesame meaning - namely, the classifierceases to exist
Transitions • Event Trigger • Guard Condition • Action • entry, exit, activity
Transitions and Events • Example: statechart forPatient class • A transition without anexplicit event label iscalled trigerless • When source state iscomplete, transitionoccurs
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 thereceipt of a message: • Between system andactors • Among objects • From an object to itself • Several kinds of events • Signals • Calls • Passage of time, forexample: • after(2 sec) • Change in state, forexample: • when(quantity < 10) • when(date = Y2K)
Deferring Events EDo: UG-ban utananezni
Transition Details • Guard Condition • Action
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
Composite States EDo: We don’t go deeper now
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