46
Slide 1 Use Case Sequence Diagram

Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 1

Use Case

Sequence Diagram

Page 2: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 2

Interaction Diagrams

l Interaction diagrams model the behavior of use cases by describing the way groups of objects interact to complete the task of the use case. They portray the interaction among the objects of a system and describe the dynamic behavior of the system.

l There are two types of interaction diagrams

l Sequence Diagrams and Communication Diagrams (formally known as collaboration diagrams)

Page 3: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 3

Interaction Diagrams

l Sequence diagrams • generally show the sequence of events that occur.

l Collaboration diagrams demonstrate how objects are statically connected.

l Both diagrams are relatively simple to draw and contain similar elements.

Page 4: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 4

Interaction Diagrams

l Purpose of interaction diagrams

• Model interactions between objects

• Assist in understanding how a system

(i.e., a use case) actually works

• Verify that a use case description can

be supported by the existing classes

• Identify responsibilities/operations and

assign them to classes

Page 5: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 5

Sequence Diagram

l Illustrates the objects that participate

in a use case and the messages that

pass between them over time for one

use case

l In design, used to distribute use case

behavior to classes

Page 6: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 6

Sequence Diagram

member:

LibraryMemberbook:Book

:Book

Copy

borrow(book)

ok = mayBorrow()

[ok] borrow(member)setTaken(member)

X-Axis (objects)

Y-A

xis (tim

e)

ObjectLife

LineMessage

Focus of

control

Condition

Page 7: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 7

Sequence Diagram Syntax

AN ACTOR

AN OBJECT

A LIFELINE

A FOCUS OF CONTROL

A MESSAGE

OBJECT DESTRUCTION

anObject:aClass

aMessage()

x

Page 8: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 8

Sequence Diagram

Two major components

• Active objects

• Communications between these active

objects

• Messages sent between the active objects

Page 9: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 9

Sequence Diagram

Active objects

• Any objects that play a role in the

system

• Participate by sending and/or receiving

messages

• Placed across the top of the diagram

• Can be:

• An actor (from the use case diagram)

• Object/class (from the class diagram) within the

system

Page 10: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 10

Active Objects

Object

• Can be any object or class that is valid within the system

• Object naming• Syntax

[instanceName][:className]

1. Class name only :Classname

2. Instance name only objectName

3. Instance name and class name together object:Class

myBirthdy

:Date

Page 11: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 11

Active Objects

Actor

• A person or system that derives

benefit from and is external to the

system

• Participates in a sequence by sending

and/or receiving messages

Page 12: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 12

Sequence Diagram

Page 13: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 13

Communications

between Active Objects

Messages

• Used to illustrate communication

between different active objects of a

sequence diagram

• Used when an object needs

• to activate a process of a different object

• to give information to another object

Page 14: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 14

Messages

A message is represented by an arrow

between the life lines of two objects.

• Self calls are allowed

A message is labeled at minimum with

the message name.

• Arguments and control information

(conditions, iteration) may be included.

Page 15: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 15

Types of Messages

Synchronous (flow interrupt until the message

has completed)

Asynchronous (don’t wait for response)

Flat (no distinction between sysn/async)

Return (control flow has returned to the caller)

Page 16: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 16

Synchronous Messages

l The routine that handles the

message is completed before the

calling routine resumes execution.

:A :B

doYouUnderstand()

Caller

Blocked

return

(optional)yes

Page 17: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 17

Asynchronous Messages

Calling routine does not wait for the

message to be handled before it

continues to execute.

As if the call returns immediately

Examples

Notification of somebody or something

Messages that post progress

information

Page 18: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 18

Return Values

Optionally indicated using a dashed arrow with a label indicating the return value.

Don’t model a return value when it is obvious what is being returned, e.g. getTotal()

Model a return value only when you need to refer to it elsewhere (e.g. as a parameter passed in another message)

Prefer modeling return values as part of a method invocation, e.g. ok = isValid()

Page 19: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 19

Sequence Diagram

member:

LibraryMemberbook:Book

:Book

Copy

borrow(book)

ok = mayBorrow()

[ok] borrow(member)setTaken(member)

X-Axis (objects)

Y-A

xis (tim

e)

ObjectLife

LineMessage

Focus of

control

Condition

Page 20: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 20

Other Elements

of Sequence Diagram

Lifeline

Focus of control (activation box or

execution occurrence)

Control information

Condition, repetition

Page 21: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 21

Sequence Diagram

Lifeline

Denotes the life of actors/objects over

time during a sequence

Represented by a vertical line below

each actor and object (normally dashed

line)

For temporary object

place X at the end of the lifeline at the

point where the object is destroyed

Page 22: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 22

Sequence Diagram

Focus of control (activation box)

Means the object is active and using

resources during that time period

Denotes when an object is sending or

receiving messages

Represented by a thin, long

rectangular box overlaid onto a lifeline

Page 23: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 23

Sequence Diagram

member:

LibraryMemberbook:Book

:Book

Copy

borrow(book)

ok = mayBorrow()

[ok] borrow(member)setTaken(member)

X-Axis (objects)

Y-A

xis (tim

e)

ObjectLife

LineMessage

Focus of

control

Condition

Page 24: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 24

Control Information

Condition

syntax: ‘[‘ expression ’]’ message-label

The message is sent only if the

condition is true

[ok] borrow(member)

Page 25: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 25

Elements of Sequence Diagram

obj1:Class

[x < 15] calculate()

obj2: Classmessage()

Page 26: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 26

Sequence Diagrams

obj1:Class

[x < 15] calculate()

obj2: Class

message()

obj3: Class

[x > 20] calculate()

Page 27: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 27

Sequence Diagrams

l Concurrency

obj1:Class

calculate()

obj2: Class

message()

obj3: Class

calculate()

Page 28: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 28

Elements of Sequence Diagram

Control information

Iterationmay have square brackets containing a

continuation condition (until) specifying the condition that must be satisfied in order to exit the iteration and continue with the sequence

may have an asterisk followed by square brackets containing an iteration (while or for) expression specifying the number of iterations

Page 29: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 29

Control Information

Iteration

syntax: * [ ‘[‘ expression ‘]’ ]

message-label

The message is sent many times to

possibly multiple receiver objects.

*draw()

Page 30: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 30

Control Information

Iteration example

:Driver

*[until full] insert()

:Bus:CompoundShape :Shape

*draw()draw()

Page 31: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 31

Control Information

The control mechanisms of sequence diagrams suffice only for modeling simple alternatives.

Consider drawing several diagrams for modeling complex scenarios.

Don’t use sequence diagrams for detailed modeling of algorithms (this is better done using activity diagrams,pseudo-code or state-charts).

Page 32: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 32

Sequence Diagrams

Creation and destruction of an object in

sequence diagrams are denoted by the

stereotypes <<create>> and <<destroy>>

:Creator

<<create>>: Created Object

message()

<<destroy>> X

Page 33: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 33

Creating Objects

Notation for creating an object on-the-fly

Send the <<create>> message to the body of the object instance

Once the object is created, it is given a lifeline.Now you can send and receive

messages with this object as you can any other object in the sequence diagram.

Page 34: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 34

Object Creation

An object may create another object via a <<create>> message.

:A :B

<<create>>

Constructor

:A

<<create>>:B

Preferred

Page 35: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 35

Object Destruction

An object may destroy another object via a <<destroy>> message.

An object may destroy itself.

Avoid modeling object destruction unless

memory management is critical.

:A :B

<<destroy>>

Page 36: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 36

getViolation(id)

Sequence Diagram

Clerk

:Violations

Dialog

:Violations

Controller

:Violations

DBProxy

lookupviewButton()

id=getID()

v:Traffic

Violation

display(v)

<<create>>

v

Lookup

Traffic

Violation

DB is queried

and the result

is returned as

an object

Page 37: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 37

Steps for Building

a Sequence Diagram

1) Set the context

2) Identify which objects and actors will participate

3) Set the lifeline for each object/actor

4) Lay out the messages from the top to the

bottom of the diagram based on the order in

which they are sent

5) Add the focus of control for each object’s or

actor’s lifeline

6) Validate the sequence diagram

Page 38: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 38

1) Set the context.

a) Select a use case.

b) Decide the initiating actor.

Steps for Building a Sequence Diagram

Page 39: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 39

2) Identify the objects that may participate in the implementation of this use case by completing the supplied message table.

a) List candidate objects.

1) Use case controller class

2) Domain classes

3) Database table classes

4) Display screens or reports

Steps for Building a Sequence Diagram

Page 40: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 40

Steps for Building a Sequence Diagram

2) Identify the objects (cont.)

b) List candidate messages. (in message analysis table)

1) Examine each step in the normal scenario of the

use case description to determine the messages

needed to implement that step.

2) For each step:

1) Identify step number.

2) Determine messages needed to complete this

step.

3) For each message, decide which class holds the

data for this action or performs this action

3) Make sure that the messages within the table are in the

same order as the normal scenario

Page 41: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 41

Steps for Building a Sequence Diagram

2) Identify the objects (cont.)

c) Begin sequence diagram construction.1) Draw and label each of the identified actors and

objects across the top of the sequence diagram.

2) The typical order from left to right across the top is the actor, primary display screen class, primary use case controller class, domain classes (in order of access), and other display screen classes (in order of access)

3) Set the lifeline for each object/actor

Page 42: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 42

4) Lay out the messages from the top to the

bottom of the diagram based on the order

in which they are sent.

a) Working in sequential order of the message

table, make a message arrow with the

message name pointing to the owner class.

b) Decide which object or actor initiates the

message and complete the arrow to its lifeline.

c) Add needed return messages.

d) Add needed parameters and control

information.

Steps for Building a Sequence Diagram

Page 43: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 43

5) Add the focus of control (activation

box) for each object’s or actor’s

lifeline.

6) Validate the sequence diagram.

Steps for Building a Sequence Diagram

Page 44: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 44

Sequence Diagrams

:Cashier

makenewSale()

: System

enterItem(itemID, quantity)

description, total

endSale()

total

makePayment(amount)

change due, receipt

Page 45: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 45

Sequence Diagram

Page 46: Use Case Sequence Diagram - WordPress.com · Steps for Building a Sequence Diagram 2) Identify the objects (cont.) c) Begin sequence diagram construction. 1) Draw and label each of

Slide 46

Sequence Diagram

:Compiler Linker

ActorCompile

FileSystem

Load Files

Save OBJ Files

Compile files

Link

Load OBJ files

Link OBJ files

Write EXE file