210 likes | 498 Views
UML Activity Diagrams. Dr. Hoang Huu Hanh, OST – Hue University hanh-at-hueuni.edu.vn. Objectives. To read and write UML activity diagrams To know when and how to use activity diagrams. Topics. Processes and process descriptions Activity diagram notation Activity diagram execution model
E N D
UML Activity Diagrams Dr. Hoang Huu Hanh, OST – Hue University hanh-at-hueuni.edu.vn
Objectives • To read and write UML activity diagrams • To know when and how to use activity diagrams
Topics • Processes and process descriptions • Activity diagram notation • Activity diagram execution model • Making activity diagrams
Processes and Their Description A process is a collection of related tasks that transforms a set of inputs into a set of outputs. An activity diagram shows actions and the flow of control and data between them. Process description notations describe design processes as well as computational processes we design.
Activities and Actions An activity is a non-atomic task or procedure decomposable into actions. An action is a task or procedure that cannot be broken into parts.
Activity Graph Elements initial node action node activity symbol activity edge activity final node
Execution Model • Execution is modeled by tokens that are produced by action nodes, travel over action edges, and are consumed by action nodes. • When there is a token on every incoming edge of an action node, it consumes them and begins execution. • When an action node completes execution, it produces tokens on each of its outgoing edges. • An initial node produces a token on each outgoing edge when an activity begins. • An activity final node consumes a token available on any incoming edge and terminates the activity.
Branching Nodes merge node guards decision node
Branching Execution • If a token is made available on the incoming edge of a decision node, the token is made available on the outgoing edge whose guard is true. • If a token is available on any incoming edge of a merge node, it is made available on its outgoing edge. • Guards must be mutually exclusive.
RunDrier cannot execute: when the activity begins, there is a token on the edge from the initial node but not on the other incoming edge. Deadlock
Forking and Joining Nodes fork node join node
Forking and Joining Execution • A token available on the incoming edge of a fork node is reproduced and made available on all its outgoing edges. • When tokens are available on every incoming edge of a join node, a token is made available on its outgoing edge. • Concurrency can be modeled without these nodes.
Object Nodes object node state object node Data and objects are shown as object nodes.
Control and Data Flows • Control tokens do not contain data, object tokens do. • A control flow is an activity edge that is a conduit for control tokens. • A object flow is an activity edge that is a conduit for object tokens. • Rules for token flow through nodes apply to both control and object tokens, except that object is extracted from consumed tokens and added to produced tokens.
Control and Data Flow Example control flow data flows control flow
Activity Parameters • Activity parameters are object nodes placed on activity symbol boundaries to indicate data or object inputs or outputs. • Activity parameters contain the data or object name. • Activity parameter types are specified in the activity symbol beneath the activity name.
Activity Parameter Example activity parameter types input activity parameter output activity parameter
Activity Diagram Heuristics • Flow control and objects down the page and left to right. • Name activities and actions with verb phrases. • Name object nodes with noun phrases. • Don’t use both control and data flows when a data flow alone can do the job. • Make sure that all nodes entering an action node can provide tokens concurrently. • Use the [else] guard at every branch.
When to Use Activity Diagrams When making a dynamic model of any process. • Design processes (what designers do) • Designed processes (what designers create) • During analysis • During resolution
Summary • A process is a collection of related tasks that transforms a set of inputs to a set of outputs. • UML activity diagrams model processes by depicting actions and the flow of control and data between them. • Activity symbols contain activity graphs consisting of • action nodes • action edges • data nodes • special nodes for starting and stopping activities, branching, forking, and joining • Activity diagrams can represent any process and are useful throughout software design.