+ All Categories
Home > Documents > CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth...

CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth...

Date post: 14-Oct-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
35
Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: [email protected]
Transcript
Page 1: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Interaction Diagramming

CSSE 574: Session 3, Part 1

Steve Chenoweth

Phone: Office (812) 877-8974

Cell (937) 657-3885 Email:

[email protected]

Page 2: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Interaction Diagrams

Used for dynamic object modeling

Answer questions about behavior

(i.e., events, sequencing)

Two common types:

Sequence diagrams

Communication diagrams

Don’t confuse with

System Sequence

Diagrams (SSDs),

which use a subset

of the notation

Page 3: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Sequence Diagram Example

public class A {

private B myB = new B();

public void doOne() {

myB.doTwo();

myB.doThree();

}

}

Page 4: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Communication Diagram Example

public class A {

private B myB = new B();

public void doOne() {

myB.doTwo();

myB.doThree();

}

}

Page 5: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Relative Strengths

Sequence Diagrams (SD)

Clearer notation and semantics

Better tool support

Easier to follow

Excellent for documents

Communication Diagrams (CD)

Much more space efficient

Easier to modify quickly

Excellent for UML as sketch

Page 6: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Why Bother with Interaction Diagrams?

Keep us from getting bogged down in

syntax

Can allocate responsibilities with minimal

commitment

Did I say, “don’t

get bogged

down” ?

Page 7: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Common Notation

Page 8: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Lifeline Boxes

Page 9: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Basic Message Expression Syntax

id = message(parameter : parameterType) : returnType

Much is optional, for example:

initialize(register)

initialize

d = getProductDescription(id)

d = getProductDescription(id:ItemID)

d = getProductDescription(id:ItemID) : ProductDesc

Page 10: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Sequence Diagrams

Page 11: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Some Terminology

Found

message

Execution

specification bars

Synchronous

messages

Page 12: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Two Ways of Illustrating Return Values

returnVar = message(parameter)

Page 13: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Messages to Self

Page 14: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Instance Creation conventional

message name

Note dashed line!

Page 15: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Instance Destruction

“stereotype”

Page 16: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Cartoon of the Day

General solutions get you a 50% tip

Page 17: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Speaking of Sales…

Recall Interaction Frames

Frame

operator Guard

Page 18: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Common Frame Operators

Operator Meaning

alt “alternative”, if-then-else or switch

loop loop while guard is true, or loop(n) times

opt optional fragment executes if guard is true

par parallel fragments

region critical region (single threaded)

ref a “call” to another sequence diagram

sd a sequence diagram that can be “called”

Page 19: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Mutual Exclusion ―alt‖ Frame

Divides sections

of frame

Page 20: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Iterating Over a Collection—Version 1

Action box contains arbitrary statements

from implementation language – increment i

One instance

from a collection

Page 21: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Iterating Over a Collection—Version 2

Leaves the loop implicit.

Page 22: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Abstracting Interaction

Interaction occurrence

ref frames

sd frames

Page 23: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Asynchronous Calls

Asynchronous

(non-blocking) call

Synchronous (blocking) call

Active object has

its own thread

Page 24: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

BBVS Exercise on Sequence Diagrams

Given the following:

Select a number of videos in

preparation to purchase and

put them in a list (cart)

Involve Classes/Lifeline

Boxes:

Customer, Video, and Video

Description

Invent other classes if you

need them!

Draw an SD for Rent Video

activities (on the board!) Q7

Page 25: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Store

Address

Phone#

Customer

name

address

phone#

Video

ID

Transaction

date

Payment

/amount: Money

type

authorization

Initiates

Records-

rental-of

Pays-for

Transacts

Rents-from,

Buys-from

Stocks

Selects

* 1 1 *

*

1

*

1..* 1 1 1

0..*

1

Makes-

Authorizes

1

1..*

Rental

dueDate

ReturnDate

ReturnTime

VideoDescription

title

subjectCategory

VideoSupplier

address

name

newVideos Basket

Shelf

location

stock

Membership

ID

startDate

PricingPolicy

perDayRentalCharge

perDayLateCharge

1

Obtains

1 1

Maintains

1

*

Determines-

rental-charge

1

*

Contains

1

*

*

1

Stores-

video-on

Defines

1

*

Provides

1

*

*

Describes

Contains

1

0..*

Provides

1

0..*

1

1

Holds-

videos-in

1

Page 26: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

An SD Solution for Rent Video Example

:Video

findVideoToRent(ID,duration) Loop [more items]

videoTitle, availability

Checkout

totalWithTaxes

:Customer

rentVideos

:Video

Description

getVideoInfo(ID,duration)

videoTitle, desc, availabilty

selectVideoToRent(ID)

selectedVideos(video List)

updateAvailability(ID,duration)

Page 27: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Communication

Diagrams

Page 28: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Links vs. Messages

Single link connects

two objects

Multiple

messages

traverse links

Sequence number

gives ordering

Page 29: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Sequence Numbering – Following Flow

No number on

“found” message

Nested messages

use “legal” style

Page 30: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Conditional Messages Use Guards

Take different paths

based on Test and

~Test conditions

Page 31: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Iteration Uses Stars (splats )

Iteration is indicated with “*”

Note: 1 * [i=1..n]: st = getSubtotal

Page 32: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Asynchronous Calls

Asynchronous

(non-blocking) call

Synchronous

(blocking) call

Active object

Page 33: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

BBVS Exercise on Sequence Diagrams

Break up into your

project teams

Given the following:

Select a number of videos in

preparation to purchase and

put them in a list (cart)

Involve Classes/Lifeline Boxes:

Customer, Video, andVideo Description

Invent other classes if you need them!

Draw an SD for Rent Video activities

Q7

Page 34: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

Store

Address

Phone#

Customer

name

address

phone#

Video

ID

Transaction

date

Payment

/amount: Money

type

authorization

Initiates

Records-

rental-of

Pays-for

Transacts

Rents-from,

Buys-from

Stocks

Selects

* 1 1 *

*

1

*

1..* 1 1 1

0..*

1

Makes-

Authorizes

1

1..*

Rental

dueDate

ReturnDate

ReturnTime

VideoDescription

title

subjectCategory

VideoSupplier

address

name

newVideos Basket

Shelf

location

stock

Membership

ID

startDate

PricingPolicy

perDayRentalCharge

perDayLateCharge

1

Obtains

1 1

Maintains

1

*

Determines-

rental-charge

1

*

Contains

1

*

*

1

Stores-

video-on

Defines

1

*

Provides

1

*

*

Describes

Contains

1

0..*

Provides

1

0..*

1

1

Holds-

videos-in

1

Page 35: CSSE 574: Session 3, Part 1 · Interaction Diagramming CSSE 574: Session 3, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

A CD Solution for Rent Video BBVS Example

:Video

1: FindVideoToRent(ID,duration)

1.3: videoTitle, availability

3: Checkout

3.2: totalWithTaxes

:Customer rentVideos

:Video

Description

1.1: getVideoInfo(ID,duration)

1.2: videoTitle, desc, availabilty

2: selectVideoToRent(ID)

3.1: selectedVideos(video List)

2.1: updateAvailability(ID,duration)


Recommended