Unified Modeling Language Unit 4. Dynamic Modeling
Objectives • Actors & Uses Cases • Sequence Diagram • Dynamic Context Diagram • State Diagram • Activity Diagram
How to make a better dynamic model ? Phases • Identify all system actors • Draw the static context diagram • Make the uses cases diagram • Describe all the uses cases using an activity diagram and a sequence diagram • Make state machine diagram • Final : dynamic context diagram
Example : A Public Phone • Call minimal price : 0.1 RON • The user have 2 minutes to compose the destination phone number after he finished to introduce his money • The destination phone number may be available or no • The public phone consume the money for each minute in which the user speak • The user can introduce money all the times • When the user finish to speak, the public phone
1.Actors & Uses Cases
2.Sequence Diagram
3. Dynamic Context Diagram • The studied system it’s represent by an object situated on the diagram center • The central object is surrounded by all the actors • Between each actor and the system is a linking graphical represented with a line • Over each linking all in-messages and out-messages between the actor and the system are wrote,without numerotation
Example unhookReceipter introMoney(p) composeNumber(num) hookReceipter tonality Public Phone linkNumber(num) finishComunication Tonality(free) beginComunication TU
Dynamic Context Diagram Caracteristics • This diagram is used as a linking between the sequnce diagram and the state machine diagram • To make this diagram is very useful to create at first for each actor two messages categories : a category with all sends messages and other with all receives messages
4.State Machine Diagram • Generalities • How to find special classes ? • Fundamental concepts • State Machine Organisation • When to use state machine diagram ? • Dynamic Context Diagram & State Machine Diagram
4.1 Generalities • State Machine are a familiar technique to describe the behavior of a system • A state machine diagram for a class show the lifetime behavior of a single object • The static context diagram it isn’t necessary for all classes of system class diagram • First we must found the classes with a complex and dynamic behavior • Only for these classes the state machine diagram is necessary
Generalities … • Each state machine diagram only for one class • No state machine diagram if the class haven’t differents states • It is not advised to make a state machine diagram as a general view for the sistem
4.2 How to find the special classes ? • If the objects which instanced a class have different reaction at the same event • If each reaction type it’s a particullar state • If the class must organize diferent operation in a fixed order => For this class must describe the state machine diagram
4.3 Fundamental concepts • State • Action & Activity • Event • Transition
4.3.1 State (Definition) • Values ensemble which implies the same reponse for a specific event • Life object period in which the object • It satisfy certains conditions • Wait an event • Make an activity • Special states
4.3.2 Action & Activity • Start state action initialization procedures (setup,…) • State activity continuous realized (display something …) • Finish state activity cleaning, exception treatment ex ex ex State X Enter / ActionName Do / ActionName Exit / ActionName
4.3.3 Event • All extern influence it’s represented by an event • Time point • Asynchrony • Atomic • Uni-directional
Events may be : • Operation call • Signal eventName(param,param,…) • Parameter nameParam : type • Signal reception • True condition • when(boolean expresion) • Time passage • After ( 5 seconds) • After (10 seconds after exit from the first state)
Events classification • Temporal Event ex after(time) • Intern Event ex when(condition-with-obj-caractersitics) • Reception Message Event
Event description • A class description • With generalisation • With stereotypes <<signal>> Event <<signal>> User Event <<signal>> Mouse Click <<signal>> Key Pressesd
4.3.4 Transition • For connecting only 2 state machine • A transition indicates a movement from one state to another state • One event can’t activate only one transition • 1 Event 1 Transition
Example
Transition Syntax Event (args) [guard] / Action (args) • Boolean expression • It’s evaluated at event entrance • Must be true • Function • - event parameters • - object attributes values • - object method or a method of an accessible object
Example 1
Transition Syntax … • All syntax parts are optional • The event can trigger a potential change of state • The guard if it is present is a boolean condition that must be true for the transition to be taken • The activity it’s some behavior that’s executed during the transition • A missing guard indicates that you always take the transition if the event occurs • A missing activity indicates that you do anything during the transition • A missing event signature it’s rare and you indicated that you must take the transition immediately
Example 2
4.4 State machine organization Sequential Substate Concurent Substate
Superstate • If you find that several state share common transition and internal activities it’s useful a superstate
Example of sequential decomposition & Superstate Washing Machine Description
Example of concurrent decomposition
Concurrent Orthogonal State H=history pseudostate.This indicates that when the clock is switched on, the Radio/CD choice goes back to the state the clock was in whet it was turnned off.
Synchronisation
4.5 When to Use State Machine Diagram • State diagram are good to use at describing behavior of an object across several uses cases • State diagram are not very good to describe behavior that involves a number of objects collaborating • Use state diagram only for classes that exhibit an intersting behavior • User Interfaces and controllers have a kind of behavior that it’s useful to depict with a state diagram
4.6 Dynamic Context Diagram and State Machine Diagram • The received messages by an actor become event which triger a transition • The sended messages by an actor become action for transition
Our Example Review unhookReceipter introMoney(p) composeNumber(num) hookReceipter tonality Public Phone linkNumber(num) finishComunication Tonality(free) beginComunication TU
Version 1.0
Version 1.1
Version 2.0
Version 2.1
Version 2.2 introMoney(p) /CreditIcrement(p) Give money UT [insuficient founds] /taxer
Version 2.3 introMoney(p) /CreditIcrement(p) Give money UT [insuficient founds] /taxer
Version 3.0 FiNAL introMoney(p)[p OK] /CreditIcrement(p) Give money UT [insuficient founds] /taxer
5.Activity Diagram • An activity graph is a special form of state machine intended to model coputational workflow • An activity graph contains activity states • An activity state represents the execution of a statement in a procedure or the performance of an activity in a workflow • An activity diagram is a notation for an activity diagram
5.1Concepts • Action • Atomik • It can be interrupt • Activity = Actions Group • May be decomposed in more actions • May be interrupted • Transition • if an activity is finish the workflow going on the next activity => transition • transitions are also used for exceptions traitement
5.2 Notation
5.3 Example
Thank You !