SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Software and Services research group (S2)
Department of Computer Science, Faculty of Sciences
Vrije Universiteit Amsterdam
VRIJE
UNIVERSITEIT
AMSTERDAM
Modeling behaviour via
UML state machines
Software modeling (400170) – 2017/2018
Ivano Malavolta
i.malavolta@vu.nl
VRIJE
UNIVERSITEIT
AMSTERDAM
Roadmap
• Introduction
• States
• Transitions
• Types of events
• Types of states
• Entry and exit points
2
VRIJE
UNIVERSITEIT
AMSTERDAM
Introduction
§ Every object takes a finite set of different states during its life
§ State machine diagram is used as follows:
§ to model the possible states of a system or object
§ to show how state transitions occur as a consequence of events
§ to show what behavior the system or object exhibits in each state
§ Example
§ high-level description of the behavior of a lecture hall
Transition State
3
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: Lecture Hall with Details
class LectureHall {
private boolean free;
public void occupy() {
free=false;
}
public void release() {
free=true;
}
}
4
VRIJE
UNIVERSITEIT
AMSTERDAM
State
§States = nodes of the state machine
§When a state is active
§ The object is in that state
§ All internal activities specified in this state can
be executed
§entry / Activity(...)
§ Executed when the object enters the state
§exit / Activity(...)
§ Executed when the object exits the state
§do / Activity(...)
§ Executed while the object remains in this
state
5
VRIJE
UNIVERSITEIT
AMSTERDAM
Transition
Change from one state to another
Source state Target stateTransition
Event Guard Sequence of actions (effect)
6
VRIJE
UNIVERSITEIT
AMSTERDAM
Transition – Syntax
§ Event (trigger)
§ Can trigger a state transition
§ Guard (condition)
§ Boolean expression
§ If the event occurs, the guard is checked
§ If the guard is true
1. All activities in the current state are terminated
2. Any relevant exit activity is executed
3. The transition takes place
§ If the guard is false
§ No state transition takes place, the event is discarded
§ Activity (effect)
§ Sequence of actions executed during the state transition
7
VRIJE
UNIVERSITEIT
AMSTERDAM
Transition – Types (1/2)
Internal transition External transition
§ If event1 occurs
§ Object remains in state1
§ Activity3 is executed
§ If event1 occurs
§ Object leaves state1 and
Activity2 is executed
§ Activity3 is executed
§ Object enters state1 and
Activity1 is executed
8
VRIJE
UNIVERSITEIT
AMSTERDAM
Transition – Types (2/2)
§ When do the following transitions take place?
If e1 occurs, A1 is aborted and the object
changes to S2
If e1 occurs and g1 evaluates to true, A1 is
aborted and the object changes to S2
As soon as the execution of A1 is finished, a
completion event is generated that initiates the
transition to S2
As soon as the execution of A1 is finished, a
completion event is generated; if g1 evaluates to
true, the transition takes place; if not, this
transition can never happen
9
Typical error
VRIJE
UNIVERSITEIT
AMSTERDAM
Transition – Sequence of Activity Executions
Assume S1 is active … what is the value of x after e occurred?
S1 becomes active, x is set to the value 4
S1 is left, x is set to 5
e occurs, the guard is checked and evaluates to true
The transition takes place, x is set to 10
S2 is entered, x is set to 11
10
VRIJE
UNIVERSITEIT
AMSTERDAM
Event – Types (1/2)
§ Signal event
Receipt of a signal
§ E.g., rightmousedown, sendSMS(message)
§ Call event
Operation call
§ E.g., occupy(user,lectureHall), register(exam)
§ Time event
Time-based state transition
§ Relative: based on the time of the occurrence of the event
§ E.g., after(5 seconds)
§ Absolute
§ E.g., when(time==16:00), when(date==20150101)
11
VRIJE
UNIVERSITEIT
AMSTERDAM
Event – Types (2/2)
§ Any receive event
§ Occurs when any event occurs that does not trigger another
transition from the active state
§ Keyword all
§ Completion event
§ Generated automatically when everything to be done in the
current state is completed
§ Change event
§ Permanently checking whether a condition becomes true
§ E.g., when(x > y), after(90min)
VRIJE
UNIVERSITEIT
AMSTERDAM
Change Event vs. Guard
Checked permanently
Only checked when event occurs
Question: What if the lecture is shorter than 90min? 13
VRIJE
UNIVERSITEIT
AMSTERDAM
Initial State
§ “Start” of a state machine diagram
§ Pseudostate
§ Transient, i.e., system cannot remain in that state
§ Rather a control structure than a real state
§ No incoming edges
§ If >1 outgoing edges
§ Guards must be mutually exclusive and cover all possible cases
to ensure that exactly one target state is reached
§ If initial state becomes active, the object immediately switches
to the next state
§ No events allowed on the outgoing edges (exception: new())
14
VRIJE
UNIVERSITEIT
AMSTERDAM
Final State and Terminate Node
Final State
§ Real state
§ Marks the end of the sequence of states
§ Object can remain in a final state forever
Terminate Node
§ Pseudostate
§ Terminates the state machine
§ The modeled object ceases to exist (= is deleted)
15
VRIJE
UNIVERSITEIT
AMSTERDAM
Decision Node
§ Pseudostate
§ Used to model alternative transitions
equivalent?
=
≠
equivalent?
16
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: Decision Node
17
VRIJE
UNIVERSITEIT
AMSTERDAM
Parallelization and Synchronization Node
Parallelization node
§ Pseudostate
§ Splits the control flow into multiple concurrent flows
§ 1 incoming edge
§ >1 outgoing edges
Synchronization node
§ Pseudostate
§ Merges multiple concurrent flows
§ >1 incoming edges
§ 1 outgoing edge
18
VRIJE
UNIVERSITEIT
AMSTERDAM
Composite State
§Contains other states – “substates“
§ Only one of its substates is active at any point in time
§ Arbitrary nesting depth of substates
Composite state
Substates
19
VRIJE
UNIVERSITEIT
AMSTERDAM
Entering a Composite State (1/2)
§ Transition to the boundary
§ Initial node of composite
state is activated
Event State Executed
Activities
„Beginning“ S3
e2 S1/S1.1 a0-a2-a3-a4
20
VRIJE
UNIVERSITEIT
AMSTERDAM
Entering a Composite State (2/2)
§Transition to a substate
§ Substate is activated
Event State Executed
Activities
„Beginning“ S3
e1 S1/S1.2 a0-a1-a3-a7
2321
VRIJE
UNIVERSITEIT
AMSTERDAM
Exiting from a Composite State (1/3)
§Transition from a substate Event State Executed
Activities
„Beginning“ S1/S1.1 a3-a4
e3 S2 a6-a5-a2-a1
22
VRIJE
UNIVERSITEIT
AMSTERDAM
Event State Executed
Activities
„Beginning“ S1/S1.1 a3-a4
e5 S2 a6-a5-a3-a1
Exiting from a Composite State (2/3)
§Transition from the composite state
No matter which substate of S1
is active, as soon as e5 occurs,
the system changes to S2
23
VRIJE
UNIVERSITEIT
AMSTERDAM
Event State Executed
Activities
„Beginning“ S1/S1.1 a3-a4
e4 S1/S1.2 a6-a7
e4 S2 a8-a5-a1
Exiting from a Composite State (3/3)
§ Completion transition from
the composite state
24
VRIJE
UNIVERSITEIT
AMSTERDAM
Orthogonal State
§ Composite state is divided into two or more regions separated
by a dashed line
§ One state of each region is always active at any point in time,
i.e., concurrent substates
§ Entry: transition to the boundary of the orthogonal state
activates the initial states of all regions
§ Exit: final state must be reached in all regions to trigger
completion event
You can use parallelization and
synchronization node to enter
different substates
25
VRIJE
UNIVERSITEIT
AMSTERDAM
Submachine State (SMS)
§ To reuse parts of state machine diagrams in other state
machine diagrams
§ Notation: state:submachineState
§ As soon as the submachine state is activated, the behavior of
the submachine is executed
§ Corresponds to calling a subroutine in programming languages
26
Refinement symbol
(optional)
VRIJE
UNIVERSITEIT
AMSTERDAM
History State
§ Remembers which substate of a composite state was the last
active one
§ Activates the “old” substate and all entry activities are
conducted sequentially from the outside to the inside of the
composite state
§ Exactly one outgoing edge of the history state points to a
substate. It is used if:
§ the composite state was never active before
§ the composite state was exited via the final state
§ Shallow history state restores the state that is on the same
level of the composite state
§ Deep history state restores the last active substate over the
entire nesting depth
27
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: History State (1/4)
Event State
„Beginning“ S5
e1 S4/S1/S1.1
e2 S1.2
e10 S5
e9 (H→) S1/S1.1
28
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: History State (2/4)
Event State
„Beginning“ S5
e1 S4/S1/S1.1
e2 S1.2
e10 S5
e8 (H*→) S1.2
29
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: History State (3/4)
Event State
„Beginning“ S5
e9 (H→) S1/S1.1
30
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: History State (4/4)
Event State
„Beginning“ S5
e8 (H*→) S3/S3.1
31
VRIJE
UNIVERSITEIT
AMSTERDAM
Entry and Exit Points
§ Encapsulation mechanism
§ A composite state shall be entered or exited via a state other
than the initial and final states
§ The external transition must/need not know the structure of the
composite state
External view
32
Internal view
VRIJE
UNIVERSITEIT
AMSTERDAM
Notation Elements (1/2)
Name Notation Description
State
Description of a specific “time span” in
which an object finds itself during its
“life cycle”. Within a state, activities
can be executed by the object.
Transition
State transition e from a source state S
to a target state T
Initial state Start of a state machine diagram
Final state End of a state machine diagram
Terminate node
Termination of an object’s state
machine diagram
33
VRIJE
UNIVERSITEIT
AMSTERDAM
Notation Elements (2/2)
Name Syntax Beschreibung
Decision node
Node from which multiple alternative
transitions can origin
Parallelization node
Splitting of a transition into multiple
parallel transitions
Synchronization
node
Merging of multiple parallel transitions
into one transition
Shallow / deep
history state
“Return address” to a substate or a
nested substate of a composite state
34
VRIJE
UNIVERSITEIT
AMSTERDAM
Exercise
Event sequence: e1, e2, e4, e4, e3, e1
Value of x?
35
VRIJE
UNIVERSITEIT
AMSTERDAM
What this lecture means to you?
• Your models are starting to move now!
• State machine used for modelling the internal states of each
object in your system
• In principles, you will have a state machine for each class in
your class diagrams
• do not take it literally
• you may need less
• the operator is human à you may not need to program it!
• Data structures like geographical coordinates are usually passive
entities within the system à no state machines for them
• you model only the key states of the objects, not everything
36
VRIJE
UNIVERSITEIT
AMSTERDAM
Readings
• UML@Classroom: An Introduction to Object-Oriented
Modeling” – chapter 5
• Learning UML 2.0 – chapter 14
37

Contenu connexe

Plus de Ivano Malavolta

Plus de Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perception
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Modeling behaviour via UML state machines [Software Design] [Computer Science] [Vrije Universiteit Amsterdam] [2017/2018]

  • 1. Software and Services research group (S2) Department of Computer Science, Faculty of Sciences Vrije Universiteit Amsterdam VRIJE UNIVERSITEIT AMSTERDAM Modeling behaviour via UML state machines Software modeling (400170) – 2017/2018 Ivano Malavolta i.malavolta@vu.nl
  • 2. VRIJE UNIVERSITEIT AMSTERDAM Roadmap • Introduction • States • Transitions • Types of events • Types of states • Entry and exit points 2
  • 3. VRIJE UNIVERSITEIT AMSTERDAM Introduction § Every object takes a finite set of different states during its life § State machine diagram is used as follows: § to model the possible states of a system or object § to show how state transitions occur as a consequence of events § to show what behavior the system or object exhibits in each state § Example § high-level description of the behavior of a lecture hall Transition State 3
  • 4. VRIJE UNIVERSITEIT AMSTERDAM Example: Lecture Hall with Details class LectureHall { private boolean free; public void occupy() { free=false; } public void release() { free=true; } } 4
  • 5. VRIJE UNIVERSITEIT AMSTERDAM State §States = nodes of the state machine §When a state is active § The object is in that state § All internal activities specified in this state can be executed §entry / Activity(...) § Executed when the object enters the state §exit / Activity(...) § Executed when the object exits the state §do / Activity(...) § Executed while the object remains in this state 5
  • 6. VRIJE UNIVERSITEIT AMSTERDAM Transition Change from one state to another Source state Target stateTransition Event Guard Sequence of actions (effect) 6
  • 7. VRIJE UNIVERSITEIT AMSTERDAM Transition – Syntax § Event (trigger) § Can trigger a state transition § Guard (condition) § Boolean expression § If the event occurs, the guard is checked § If the guard is true 1. All activities in the current state are terminated 2. Any relevant exit activity is executed 3. The transition takes place § If the guard is false § No state transition takes place, the event is discarded § Activity (effect) § Sequence of actions executed during the state transition 7
  • 8. VRIJE UNIVERSITEIT AMSTERDAM Transition – Types (1/2) Internal transition External transition § If event1 occurs § Object remains in state1 § Activity3 is executed § If event1 occurs § Object leaves state1 and Activity2 is executed § Activity3 is executed § Object enters state1 and Activity1 is executed 8
  • 9. VRIJE UNIVERSITEIT AMSTERDAM Transition – Types (2/2) § When do the following transitions take place? If e1 occurs, A1 is aborted and the object changes to S2 If e1 occurs and g1 evaluates to true, A1 is aborted and the object changes to S2 As soon as the execution of A1 is finished, a completion event is generated that initiates the transition to S2 As soon as the execution of A1 is finished, a completion event is generated; if g1 evaluates to true, the transition takes place; if not, this transition can never happen 9 Typical error
  • 10. VRIJE UNIVERSITEIT AMSTERDAM Transition – Sequence of Activity Executions Assume S1 is active … what is the value of x after e occurred? S1 becomes active, x is set to the value 4 S1 is left, x is set to 5 e occurs, the guard is checked and evaluates to true The transition takes place, x is set to 10 S2 is entered, x is set to 11 10
  • 11. VRIJE UNIVERSITEIT AMSTERDAM Event – Types (1/2) § Signal event Receipt of a signal § E.g., rightmousedown, sendSMS(message) § Call event Operation call § E.g., occupy(user,lectureHall), register(exam) § Time event Time-based state transition § Relative: based on the time of the occurrence of the event § E.g., after(5 seconds) § Absolute § E.g., when(time==16:00), when(date==20150101) 11
  • 12. VRIJE UNIVERSITEIT AMSTERDAM Event – Types (2/2) § Any receive event § Occurs when any event occurs that does not trigger another transition from the active state § Keyword all § Completion event § Generated automatically when everything to be done in the current state is completed § Change event § Permanently checking whether a condition becomes true § E.g., when(x > y), after(90min)
  • 13. VRIJE UNIVERSITEIT AMSTERDAM Change Event vs. Guard Checked permanently Only checked when event occurs Question: What if the lecture is shorter than 90min? 13
  • 14. VRIJE UNIVERSITEIT AMSTERDAM Initial State § “Start” of a state machine diagram § Pseudostate § Transient, i.e., system cannot remain in that state § Rather a control structure than a real state § No incoming edges § If >1 outgoing edges § Guards must be mutually exclusive and cover all possible cases to ensure that exactly one target state is reached § If initial state becomes active, the object immediately switches to the next state § No events allowed on the outgoing edges (exception: new()) 14
  • 15. VRIJE UNIVERSITEIT AMSTERDAM Final State and Terminate Node Final State § Real state § Marks the end of the sequence of states § Object can remain in a final state forever Terminate Node § Pseudostate § Terminates the state machine § The modeled object ceases to exist (= is deleted) 15
  • 16. VRIJE UNIVERSITEIT AMSTERDAM Decision Node § Pseudostate § Used to model alternative transitions equivalent? = ≠ equivalent? 16
  • 18. VRIJE UNIVERSITEIT AMSTERDAM Parallelization and Synchronization Node Parallelization node § Pseudostate § Splits the control flow into multiple concurrent flows § 1 incoming edge § >1 outgoing edges Synchronization node § Pseudostate § Merges multiple concurrent flows § >1 incoming edges § 1 outgoing edge 18
  • 19. VRIJE UNIVERSITEIT AMSTERDAM Composite State §Contains other states – “substates“ § Only one of its substates is active at any point in time § Arbitrary nesting depth of substates Composite state Substates 19
  • 20. VRIJE UNIVERSITEIT AMSTERDAM Entering a Composite State (1/2) § Transition to the boundary § Initial node of composite state is activated Event State Executed Activities „Beginning“ S3 e2 S1/S1.1 a0-a2-a3-a4 20
  • 21. VRIJE UNIVERSITEIT AMSTERDAM Entering a Composite State (2/2) §Transition to a substate § Substate is activated Event State Executed Activities „Beginning“ S3 e1 S1/S1.2 a0-a1-a3-a7 2321
  • 22. VRIJE UNIVERSITEIT AMSTERDAM Exiting from a Composite State (1/3) §Transition from a substate Event State Executed Activities „Beginning“ S1/S1.1 a3-a4 e3 S2 a6-a5-a2-a1 22
  • 23. VRIJE UNIVERSITEIT AMSTERDAM Event State Executed Activities „Beginning“ S1/S1.1 a3-a4 e5 S2 a6-a5-a3-a1 Exiting from a Composite State (2/3) §Transition from the composite state No matter which substate of S1 is active, as soon as e5 occurs, the system changes to S2 23
  • 24. VRIJE UNIVERSITEIT AMSTERDAM Event State Executed Activities „Beginning“ S1/S1.1 a3-a4 e4 S1/S1.2 a6-a7 e4 S2 a8-a5-a1 Exiting from a Composite State (3/3) § Completion transition from the composite state 24
  • 25. VRIJE UNIVERSITEIT AMSTERDAM Orthogonal State § Composite state is divided into two or more regions separated by a dashed line § One state of each region is always active at any point in time, i.e., concurrent substates § Entry: transition to the boundary of the orthogonal state activates the initial states of all regions § Exit: final state must be reached in all regions to trigger completion event You can use parallelization and synchronization node to enter different substates 25
  • 26. VRIJE UNIVERSITEIT AMSTERDAM Submachine State (SMS) § To reuse parts of state machine diagrams in other state machine diagrams § Notation: state:submachineState § As soon as the submachine state is activated, the behavior of the submachine is executed § Corresponds to calling a subroutine in programming languages 26 Refinement symbol (optional)
  • 27. VRIJE UNIVERSITEIT AMSTERDAM History State § Remembers which substate of a composite state was the last active one § Activates the “old” substate and all entry activities are conducted sequentially from the outside to the inside of the composite state § Exactly one outgoing edge of the history state points to a substate. It is used if: § the composite state was never active before § the composite state was exited via the final state § Shallow history state restores the state that is on the same level of the composite state § Deep history state restores the last active substate over the entire nesting depth 27
  • 28. VRIJE UNIVERSITEIT AMSTERDAM Example: History State (1/4) Event State „Beginning“ S5 e1 S4/S1/S1.1 e2 S1.2 e10 S5 e9 (H→) S1/S1.1 28
  • 29. VRIJE UNIVERSITEIT AMSTERDAM Example: History State (2/4) Event State „Beginning“ S5 e1 S4/S1/S1.1 e2 S1.2 e10 S5 e8 (H*→) S1.2 29
  • 30. VRIJE UNIVERSITEIT AMSTERDAM Example: History State (3/4) Event State „Beginning“ S5 e9 (H→) S1/S1.1 30
  • 31. VRIJE UNIVERSITEIT AMSTERDAM Example: History State (4/4) Event State „Beginning“ S5 e8 (H*→) S3/S3.1 31
  • 32. VRIJE UNIVERSITEIT AMSTERDAM Entry and Exit Points § Encapsulation mechanism § A composite state shall be entered or exited via a state other than the initial and final states § The external transition must/need not know the structure of the composite state External view 32 Internal view
  • 33. VRIJE UNIVERSITEIT AMSTERDAM Notation Elements (1/2) Name Notation Description State Description of a specific “time span” in which an object finds itself during its “life cycle”. Within a state, activities can be executed by the object. Transition State transition e from a source state S to a target state T Initial state Start of a state machine diagram Final state End of a state machine diagram Terminate node Termination of an object’s state machine diagram 33
  • 34. VRIJE UNIVERSITEIT AMSTERDAM Notation Elements (2/2) Name Syntax Beschreibung Decision node Node from which multiple alternative transitions can origin Parallelization node Splitting of a transition into multiple parallel transitions Synchronization node Merging of multiple parallel transitions into one transition Shallow / deep history state “Return address” to a substate or a nested substate of a composite state 34
  • 36. VRIJE UNIVERSITEIT AMSTERDAM What this lecture means to you? • Your models are starting to move now! • State machine used for modelling the internal states of each object in your system • In principles, you will have a state machine for each class in your class diagrams • do not take it literally • you may need less • the operator is human à you may not need to program it! • Data structures like geographical coordinates are usually passive entities within the system à no state machines for them • you model only the key states of the objects, not everything 36
  • 37. VRIJE UNIVERSITEIT AMSTERDAM Readings • UML@Classroom: An Introduction to Object-Oriented Modeling” – chapter 5 • Learning UML 2.0 – chapter 14 37