Mastering the Unified Modeling Language -- State Transition Diagrams -- © Josef Schiefer, IBM Watson.

Slides:



Advertisements
Similar presentations
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Advertisements

State Diagram 1. State diagram: Shows the behavior of one object. They describe all of the possible states that a particular object can get into and how.
Nested state diagrams:Problems with flat state diagram
Concepts & Notations. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
UML State chart/machine diagram State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
Introduction to Software Engineering 7. Modeling Behaviour.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
1 Chapter 4 Dynamic Modeling and Analysis (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
1 Chapter 4 Dynamic Modeling and Analysis (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
1 CS/CPE 426 Senior Projects Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 24, 2009.
Activity Diagrams Derived from several techniques: Event diagrams of Jim Odell SDL state modeling techniques Workflow modeling Petri nets Especially useful.
UML Notations Activity diagrams State diagrams Class diagrams Use-case diagrams.
Advanced Behavioral Modeling
SE-565 Software System Requirements More UML Diagrams.
Unified Modeling Language(UML) BY
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Lecture 4 Finite State Machine CS6133 Software Specification and Verification.
Chapter 10 State Machine Diagrams
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
מידול התנהגותי 1. Today’s Session Sequence Diagrams State Machines 2.
Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,
Unified Modeling Language, Version 2.0
1 Modeling interactions and behavior Lecturer Dr. Mai Fadel.
1 Devon M. Simmonds University of North Carolina, Wilmington CSC450 Software Engineering WorkFlow Modeling with Activity Diagrams.
UML -Part 3. Dynamic Diagram Types Interaction Diagrams - Set of objects or roles and the messages that can be passed among them. – Sequence Diagrams.
Activity diagrams. Introduction ● Activity diagrams are a behavioural model that represent the dynamics of the system. ● An activity diagram is essentially.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
Information System Design IT60105
By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
1 Kyung Hee University Statecharts Spring Kyung Hee University Specifying Objects’ Behaviour  Interaction diagrams show message-passing behaviour.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
Object Oriented Analysis & Design & UML (Unified Modeling Language)1 Part VI: Design Continuous Activity Diagams State Diagrams.
CS212: Object Oriented Analysis and Design Lecture 34: UML Activity and Collaboration diagram.
Systems Analysis and Design in a Changing World, Fourth Edition
States.
CS3773 Software Engineering Lecture 06 UML State Machines.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 26. Review UML behavioral Diagrams – Sequence diagram.
1 Unified Modeling Language, Version 2.0 Chapter 2.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 10: Statecharts.
Chapter 3: Introducing the UML
Modeling Object Lifecycles and State-Dependent Behavior ©SoftMoore ConsultingSlide 1.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
® IBM Software Group © 2009 IBM Corporation Module 11: Creating State Machine Diagrams Essentials of Modeling with IBM Rational Software Architect V7.5.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Advanced UML State Diagrams.
Appendix 3 Object-Oriented Analysis and Design
State Machine Diagram.
State Machine Diagrams
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Systems Analysis and Design With UML 2
Unified Modeling Language
State Machine Diagrams
Business System Development
UML Activity Diagrams & State Charts
States.
CS/CPE 426 Senior Projects
CIS 375 Bruce R. Maxim UM-Dearborn
CS/CPE 426 Senior Projects
Dynamic Modeling Lecture # 37.
States.
CS 791Z State Machines & Advanced State Machines
CIS 375 Bruce R. Maxim UM-Dearborn
Appendix 3 Object-Oriented Analysis and Design
Presentation transcript:

Mastering the Unified Modeling Language -- State Transition Diagrams -- © Josef Schiefer, IBM Watson

 UML State Machines Outline

 UML State Machines Introduction to State Diagrams  Interaction diagrams are very good for communication –between clients and designers –between designers and other designers –between designers and implementors  But they are not part of the constructive core –Constructive core means that part from which an actual implementation could be generated  The constructive core of the UML is –class diagrams (for the static part) –state diagrams (for the dynamic part)  State diagrams can bescribe very complex dynamic behavior

 UML State Machines Elements of State Diagrams  The basic elements of state diagrams are –states – the state in which the object finds itself at any moment –transitions – take the object from one state to another –events – cause the transition from one state to another –actions – take place as a result of a transition  In the UML, many other extensions have been added, such as: –generalization/Inheritance among events (i.e. a mouse click and keyboard input as subclasses of user interface events) –hierarchical diagrams for managing complexity (from StateCharts) –guards – conditions on transitions  State Diagrams should only be used for objects with significant dynamic behavior

 UML State Machines Types of Events  ChangeEvent (i.e.: when(x>y)) –A change event models an event that occurs when an explicit boolean expression becomes true as a result of a change in value of one or more attributes or associations. –A change event is raised implicitly and is not the result of some explicit change event action.  CallEvent (i.e.: conflictsWith(Appointment)) –A call event represents the reception of a request to synchronously invoke a specific operation. –Note that a call event instance is distinct from the call action that caused it.  SignalEvent (i.e.: leftButtonDown) –A signal event represents the reception of a particular (asynchronous) signal.  TimeEvent (i.e.: after(1 second)) –A TimeEvent models the expiration of a specific deadline. Note that the time of occurrence of a time event instance (i.e., the expiration of the deadline) is the same as the time of its reception.

 UML State Machines States and Transitions

 UML State Machines Basic UML State Diagram Syntax  A state is drawn with a round box, with three compartments for –name –state variables (if any) –actions to be performed  A transition is drawn with an arrow, possibly labeled with –event causing the transaction –guard condition –Action to perform

 UML State Machines State Diagram for Seminar Registration

 UML State Machines Predefined Action Labels  “entry/” –identifies an action, specified by the corresponding action expression, which is performed upon entry to the state (entry action)  “exit/” –identifies an action, specified by the corresponding action expression, that is performed upon exit from the state (exit action)  “do/” –identifies an ongoing activity (“do activity”) that is performed as long as the modeled element is in the state or until the computation specified by the action expression is completed (the latter may result in a completion event being generated).  “include/” –is used to identify a submachine invocation. The action expression contains the name of the submachine that is to be invoked.

 UML State Machines Simple Diagram for Heart Monitor Applications

 UML State Machines Full Diagram for Heart Monitor Applications

 UML State Machines Independent State Components  We can e xplore the phenomenon of rapid state diagram growth by examining a typical class with three attributes  Each combination of values of the attributes of this class constitute a different state for the class  Note that the attributes are effectively independent of each other –any combination is valid

 UML State Machines Combinatorial Explosion  The number of states and the number of transitions grows very quickly as you model complex state machines (  combinatorial explosion)  This is the Achilles Heel of finite state machines –It has prevented the widespread use of state machines in the past

 UML State Machines Some State Diagram History  Traditional state diagrams are called Mealy-Moore diagrams after their “inventors”  They have small differences –Mealy FSMs allow actions only when a transition is taken –Moore FSMs allow actions only upon state entry  But they did not solve the problem of combinatorial explosion –Something new was needed if state diagrams were to survive State Diagrams - Mealy - Moore - ?

 UML State Machines Statecharts  1983: A new visual formalism extending the language of state diagrams – Statecharts  Developed by David Harel –Professor at Weizmann Institute, Israel –Complexity theory, logic, reactive systems engineering, … –Popular educator, author, wrote Algorithmics, the Spirit of Computing –Founded company I-Logix ( to create tool support for Statecharts (Statemate, Rhapsody)

 UML State Machines Features of Statecharts  Harel statecharts directly address the problems of traditional state diagrams  Two major features are introduced for controlling complexity and combinatorial explosion –nested state diagrams –concurrent state diagrams  Many other features are also added –propagated transitions –broadcast messages –actions on state entry, exit –… Nested State Diagrams Concurrent State Diagrams

 UML State Machines UML Statechart Diagrams  Harel statecharts are the basis for the UML state diagram notation –formally “UML statechart diagrams” in the UML documentation –informally usually just referred to as “state diagrams”  Original statechart notation was not object-oriented –based on traditional function-oriented, structured analysis paradigm  UML added features to support object orientation –Support of inheritance (of events, transitions, etc.) –Delegation of messages within composite objects –Etc.

 UML State Machines Nested State Diagrams  Hierarchical organization is a classic way to control complexity –of programs –of documentation –of objects –…  Even diagrams can be hierarchical –Traditional data flow diagrams are hierarchical  Why not state diagrams? –superstates –substates

 UML State Machines Superstates and Substates

 UML State Machines Stubbed Transitions  Nested states may be suppressed  Subsumed transitions that do not come from an unlabeled final state or go to an unlabeled initial pseudostate may (but need not) be shown as coming from or going to stubs  A stub is shown as a small vertical line (bar) drawn inside the boundary of the enclosing state may be abstracted as

 UML State Machines Some More UML State Diagram Notation  Nested states are show by an enclosing rectangle –The name of the superstate is indicated in the upper left-hand corner  A middle compartment can contain state variables (if any)  Entry, exit, do actions may be defined –‘entry’, ‘exit’, ‘do’ are reserved words  Self-transitions may occur –from the state back to itself –the entry and exit conditions are performed in that case

 UML State Machines Eliminating Duplicated Transitions  Transitions are often duplicated when there is some transition that can happen from every state –“error” –“quit” –“abort”  These duplicates can be combined into a single transition –a transition from a superstate is valid for all of its substates!

 UML State Machines The Heart Monitor Revisited

 UML State Machines Transitions to and from Nested States  Transitions can be specific –A transition can be from a specific substate (T1) –A transition can be to a specific substate inside the nested state (T2)  Transitions can be general –We saw that a transition from the superstate is valid for all substates (T3) –A transition into the superstate (T4) normally goes to the default initial state (start state leading to F)

 UML State Machines Handling Interrupted States  Sometimes it is necessary to interrupt a complicated procedure and then resume where you stopped  Consider an “install” program on your computer –“Out of memory: please delete some files and hit continue”  Any situation in which a normal course of events is interrupted and then resumed –How can this be handled in a nested state diagram?

 UML State Machines The State History Indicator  Suppose an interrupt transition occurs from any one of the substates (A1, A2, A3) out of the Install superstate  The rescue transition takes it back into the Install superstate  The history indicator is show with an “H” inside a circle –it means “return to the last state you were in before leaving”  ‘H*’ indicates deep history. This indicates that the object resumes the state it last had at any depth within the composite region, rather than being restricted to the state at the same level as the history indicator.

 UML State Machines Concurrent State Machines  Complex systems usually have concurrency –“subsystems” that operate (mostly) independently  Back to the heart monitor device –The power supply and the heart monitoring application are really concurrent subsystems –They should be modeled that way!! –They are mostly independent: the monitoring application doesn’t care where it gets its power

 UML State Machines Heart Monitor as Concurrent State Machine

 UML State Machines Complex Transitions  Concurrent state machines sometimes need to be synchronized with each other –start together –run through independently until their terminal state –re-sychronize at the end  Complex transitions allow this kind of synchronization –Petri net notation

 UML State Machines Cooperating Independent State Machines  Concurrent and independent state machines will normally have to communicate with each other if they are cooperating  Example: remote control of television and VCR –three independent systems –three independent state machines –but clearly they cooperate with each other  How to model this in UML?

 UML State Machines Sending Messages Between State Diagrams

 UML State Machines Orthogonal Components  The concurrent state machine notation can control combinatorial of states  The three components of our widget class (color, mode, status) are orthogonal –they change states independently  Their orthogonality can be modeled explicitly with statechart notation

 UML State Machines Concurrency and Orthogonality  The heart monitor is an example of two concurrent subobjects –the internal battery and the heart monitoring application are two (almost) independent FSMs –they exhibit true concurrency  The widget is an example of an object with orthogonal components –it is a single object with a complex specification logic –there are not concurrent threads of execution  The are NOT the same thing –but the UML notation is useful for handling the complexity introduced by each of them

 UML State Machines Compound Transitions  A compound transition is an acyclical unbroken chain of transitions joined via join, junction, choice, or fork pseudostates that define path from a set of source states to a set of destination states

 UML State Machines Dynamic Choice Points  The outgoing transition whose guard is true at the time the choice point is reached, will be taken  If multiple transitions have guards that are true, one transition from this set is chosen  If no guards are true after the choice point has been reached, the model is ill formed

 UML State Machines Sync State  Vertex used for synchronizing the concurrent regions of a state machine  It is different from a state in the sense that it is not mapped to a boolean value (active, not active), but an integer  Is used in conjunction with forks and joins to insure that one region leaves a particular state or states before another region can enter a particular state or states

 UML State Machines When to Use State Diagrams  Interaction diagrams (collaboration & sequence) are most appropriate for describing inter-object behavior  State diagrams are particularly intended for describing intra-object behavior –precise description of behavior inside a single class with complex behavior  But there are sometimes exceptions –the remote control example showed that state diagrams are sometimes useful to model interaction among objects –they are sometimes useful to describe complicated behavior inside a use case

 UML State Machines UML Literature (for State Diagrams)  Rational Software Corp. - UML Documentation:  OMG – UML Documentation:  James Rumbaugh, Ivar Jacobson, Grady Booch: The Unified Modeling Language Reference Manual  D. Harel: Statecharts: A Visual Formalism for Complex Szstems  D. Harel: On Modeling and Analyzing System Behavior: Myths, Facts and Challenges