42
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3,Activity Diagrams

Chapter 3, Activity Diagrams

  • Upload
    pavel

  • View
    78

  • Download
    1

Embed Size (px)

DESCRIPTION

Chapter 3, Activity Diagrams. What is UML?. UML (Unified Modeling Language) Nonproprietary standard for modeling software systems, OMG Convergence of notations used in object-oriented methods OMT (James Rumbaugh and collegues) Booch (Grady Booch) OOSE (Ivar Jacobson) - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 3, Activity  Diagrams

Usi

ng U

ML,

Pat

tern

s, an

d Ja

vaO

bjec

t-O

rien

ted

Soft

war

e E

ngin

eeri

ngChapter 3,Activity

Diagrams

Page 2: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

What is UML?• UML (Unified Modeling Language)

• Nonproprietary standard for modeling software systems, OMG• Convergence of notations used in object-oriented methods

• OMT (James Rumbaugh and collegues)• Booch (Grady Booch) • OOSE (Ivar Jacobson)

• Current Version: UML 2.2• Information at the OMG portal http://www.uml.org/

• Commercial tools: Rational (IBM),Together (Borland), Visual Architect (business processes, BCD)

• Open Source tools: ArgoUML, StarUML, Umbrello, LucidChart• Commercial and Opensource: PoseidonUML (Gentleware)

Page 3: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

What is UML? Unified Modeling Language

• Convergence of different notations used in object-oriented methods, mainly

• OMT (James Rumbaugh and collegues), OOSE (Ivar Jacobson), Booch (Grady Booch)

• They also developed the Rational Unified Process, which became the Unified Process in 1999

25 year at GE Research, where he developed OMT, joined (IBM) Rational in

1994, CASE tool OMTool

At Ericsson until 1994, developed use cases and the

CASE tool Objectory, at IBM Rational since 1995,

http://www.ivarjacobson.com

Developed the Booch method

(“clouds”), ACM Fellow 1995, and IBM Fellow 2003

http://www.booch.com/

Page 4: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

UML: First Pass

• You can model 80% of most problems by using about 20% UML

• We teach you those 20%

• 80-20 rule: Pareto principle: For many events, roughly 80% of the effects come from 20% of the causes.

Vilfredo Pareto, 1848-1923Introduced the concept of Pareto

Efficiency, Founder of the field of microeconomics.

Page 5: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

UML Core Conventions

• All UML Diagrams denote graphs of nodes and edges

• Nodes are entities and drawn as rectangles or ovals• Rectangles denote classes or instances • Ovals denote functions

• Names of Classes are not underlined• SimpleWatch• Firefighter

• Names of Instances are underlined• myWatch:SimpleWatch

• Joe:Firefighter• An edge between two nodes denotes a

relationship between the corresponding entities

Page 6: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Outline of this Class

• Activity diagrams• Describe the dynamic behavior of a system, in

particular the workflow.• Class diagrams

• Describe the static structure of the system: Objects, attributes, associations

• Use case diagrams• Describe the functional behavior of the system as seen

by the user• Sequence diagrams

• Describe the dynamic behavior between objects of the system

• Statechart diagrams• Describe the dynamic behavior of an individual object

Page 7: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

UML Activity Diagrams: 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.

Actions and activities can be anything that humans, machines, organizations, or other entitites do.

Page 8: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Activity Graph Elements

Sort Clothes

Wash Whites

Wash Darks

Dry Clothes

Fold Clothes

Do Laundry

activity symbol

action node

activity edge

initial node

activity final node

Page 9: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

UML Activity Diagrams• An activity diagram is a special case of a state

chart diagram • The states are activities (“functions”) • An activity diagram is useful to depict the

workflow in a system.

Page 10: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Branching Nodes

guards

merge node

decision node

Run Drier

Fold Clothes

Dry Clothes

[else]

[still wet]

Page 11: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

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.

Page 12: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Branching Execution

Decision and merge node behavior:

• 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.

Page 13: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Deadlock

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.

Run Drier

Fold Clothes

Try to DryClothes

[else]

[still wet]

Page 14: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

Forking and Joining Nodes

fork node

join node

SortClothes

WashWhites

WashDarks

DryClothes

FoldClothes

Do Laundry

Page 15: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

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.

Page 16: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Concurrent Problem Solution (An example)

Page 17: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Object Nodes

Data and objects are shown as object nodes.

Destroyer[captured]

Cruiser

Battlegroup

Battleship[damaged]

object node

object node state

Page 18: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

Control and Data Flows

• Control tokens do not contain data, data tokens do.

• A control flow is an activity edge that is a conduit for control tokens.

• A data flow is an activity edge that is a conduit for data tokens.

• Rules for token flow through nodes apply to both control and data tokens, except that data is extracted from consumed tokens and added to produced tokens.

Page 19: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Control and Data Flow Example

Run Drier

Fold Clothes

Wash and DryClothes

[else]

[still wet]

Clothes[wet]

Clothes

Wash Clothes

control flow

control flow

data flows

Page 20: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

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.

Page 21: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

Activity Parameter Example: Maximum Finding Algorithm

max = a[i]

FindMaxa : int[1..*]max : int

[else][i < a.length]

i++

[max < a.[i]]

[else]

max = a[0]i = 1a

max

output activity parameter

input activity

parameter

activity parameter types

Page 22: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

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 (to prevent deadlocks).

• Use the [else] guard at every branch.

Page 23: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

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

Page 24: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Activity Diagrams allow to model Decisions

Decision

Page 25: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Activity Diagrams can model Concurrency• Synchronization of multiple activities • Splitting the flow of control into multiple threads

SynchronizationSplitting

Page 26: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Activity Diagrams: Grouping of Activities• Activities may be grouped into swimlanes to denote the

object or subsystem that implements the activities.

OpenIncident

AllocateResources

CoordinateResources

DocumentIncident

ArchiveIncident

Dispatcher

FieldOfficer

Page 27: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Activity Diagram vs. Statechart Diagram

HandleIncident

DocumentIncident

ArchiveIncident

Active Inactive Closed ArchivedIncident-Handled

Incident-Documented

Incident-Archived

Statechart Diagram for IncidentFocus on the set of attributes of a single abstraction (object, system)

Activity Diagram for Incident (Focus on dataflow in a system)

TriggerlesstransitionCompletion of activity

causes state transition

Event causesstate transition

Page 28: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Example of an Activity Diagram with a Frame

Page 29: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

The Activity Diagram without Frame

Page 30: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Activity Diagram Example

ActionObject node

Page 31: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

Activity Diagram: Activity Nodes & Edges• An activity diagram consists of nodes and edges• There are three types of activity nodes

Control nodesExecutable nodes

• Most prominent: ActionObject nodes

• E.g. a document• An edge is a directed connection between

nodes• There are two types of edges

• Control flow edges• Object flow edges

Page 32: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Activity Diagram Example

Object flow

Control flow

Page 33: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Summary: Activity Diagram Example

Initial node

Merge node

Final node

ActionObject node

Fork node

Join node

Object flow

Control flow

Page 34: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Example 1: What the diagram represents?

a. A documentb. A printerc. A word-

processord. A user of a

word-processor

e. A page being printed

f. The diagram is invalid

Page 35: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Example 2: What is the max number of concurrent threads that is possible?

a. 1b. 2c. 3d. 4e. 5

Page 36: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3636

Example 3: In this diagram...a. Fill Order is executed

before Receive Payment

b. Overnight Delivery is executed in parallel with Regulary Delivery

c. Close Order is executed after Receive Payment

d. Fill Order is executed in parallel with Send Invoice

e. Send Invoice is possibly executed

f. Regular Delivery is always executed

Page 37: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

Example 4:

Page 38: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

Example 5: Cash Withdrawal Process from a Bank

Page 39: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

Example 6: Passenger to Airplane

There should be only one final node, not two!!!

Page 40: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

Alıştırma (10 dakika)

Müşteri restorana girer. Eğer oturacak yer varsa oturur, yoksa çıkar. Oturduktan sonra menüye bakar. İki seçeneği vardır: Çin yemeği, Japon

yemeği. İkisini de yemek istemiyorsa çıkar gider. İstediği yemeği seçer, garsona söyler. Garson

mutfağa siparişi geçer. Yemekler hazır olduğunda garson yemeği müşteriye götürür. Müşteri

yemeği yedikten sonra hesap ister. Eğer memnun kaldıysa hesabı ödeyip bahşiş bırakır. Eğer memnun kalmadıysa hesabı öder, bahşiş

bırakmadan restorandan çıkar.

Page 41: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

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.

Page 42: Chapter 3, Activity  Diagrams

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

Another view on UML Diagrams