Professional Documents
Culture Documents
Interaction and Design Class Diagrams
Interaction and Design Class Diagrams
Interaction and Design Class Diagrams
Craig Larman
With some ideas from
students in George Blanks
course at NJIT
Sale
:Sale
class
s1:Sale
instance
named instance
: Sale
doX
doA
doB
afoundm
essage
whosesender will not
bespecified
doC
doD
executionspecification
bar indicatesfocusof
control
Figure 15.7
typical sychronousmessage
shownwithafilled-arrowline
:S
a
le
n
o
teth
a
tn
e
w
lyc
re
a
te
d
o
b
je
c
tsa
rep
la
c
e
da
tth
e
ir
c
re
a
tio
n"h
e
ig
h
t"
m
a
k
e
P
a
y
m
e
n
t(c
a
s
h
T
e
n
d
e
re
d
)
c
re
a
te
(c
a
s
h
T
e
n
d
e
re
d
)
a
u
th
o
riz
e
Figure 15.10
:P
a
y
m
e
n
t
Communication Diagram:
makePayment
d
ir
e
c
t
io
n
o
fm
e
s
s
a
g
e
m
a
k
e
P
a
y
m
e
n
t
(
c
a
s
h
T
e
n
d
e
r
e
d
)
:
R
e
g
is
t
e
r
1
:m
a
k
e
P
a
y
m
e
n
t
(
c
a
s
h
T
e
n
d
e
r
e
d
)
:
S
a
le
1
.
1
:c
r
e
a
t
e
(
c
a
s
h
T
e
n
d
e
r
e
d
)
:
P
a
y
m
e
n
t
Communication
(aka Collaboration) diagrams
e.g., prepare()
Control logic in
Interaction Diagrams
Conditional Message
Iteration (Looping)
:B
a
r
x
x
o
p
t
[c
o
lo
r=
re
d
]
c
a
lc
u
la
te
y
y
Figure 15.13
:F
o
o
:B
a
r
x
x
[c
o
lo
r=
re
d]c
a
lc
u
la
te
Figure 15.14
y
y
c
o
n
d
itio
n
a
lm
e
s
s
a
g
e
,w
ith
te
s
t
m
e
s
s
a
g
e
1
:F
o
o
1
[c
o
lo
r=
r
e
d
]: c
a
lc
u
la
te
Figure 15.29
:B
a
r
:S
a
le
t=
g
e
t
T
o
t
a
l
l
o
o
p
[i<
l
i
n
e
I
t
e
m
s
.
s
i
z
e
]
s
t=
g
e
t
S
u
b
t
o
t
a
l
i
+
+
T
h
is
lif
e
lin
e
b
o
x
r
e
p
r
e
s
e
n
t
s
o
n
e
in
s
t
a
n
c
e
f
r
o
m
a
c
o
lle
c
t
io
n
o
fm
a
n
y
S
a
le
s
L
in
e
I
t
e
m
o
b
je
c
t
s
.
lin
e
I
t
e
m
s
[
i]is
t
h
e
e
x
p
r
e
s
s
io
n
t
o
s
e
le
c
to
n
e
e
le
m
e
n
tf
r
o
m
t
h
e
c
o
lle
c
t
io
n
o
fm
a
n
y
S
a
le
s
L
in
e
I
t
e
m
s
;t
h
e
iv
a
lu
e
r
e
f
e
r
s
t
o
t
h
e
s
a
m
e
iin
t
h
e
g
u
a
r
d
in
t
h
e
L
O
O
P
f
r
a
m
e
a
n
a
c
t
i
o
n
b
o
x
m
a
y
c
o
n
t
a
in
a
r
b
it
r
a
r
y
la
n
g
u
a
g
e
s
t
a
t
e
m
e
n
t
s
(
in
t
h
is
c
a
s
e
,in
c
r
e
m
e
n
t
in
g
i)
Figure 15.16
itis
p
la
c
e
d
o
v
e
rt
h
e
lif
e
lin
e
t
o
w
h
ic
h
ita
p
p
lie
s
lin
e
It
e
m
s
[
i]:
S
a
le
s
L
in
e
Ite
m
:S
a
le
t=
g
e
tT
o
ta
l
lo
o
p
Figure 15.17
s
t=
g
e
tS
u
b
to
ta
l
: Sale
thisiterationandrecurrenceclauseindicates
w
eareloopingacrosseachelem
ent of the
lineItem
scollection.
lineItem
s[i]:
SalesLineItem
Thislifelineboxrepresentsoneinstancefroma
collectionof m
anySalesLineItemobjects.
lineItem
s[i]istheexpressiontoselect one
elem
ent fromthecollectionof m
any
SalesLineItem
s; thei valuecom
esfromthe
m
essageclause.
t =getTotal
: Sale
1*: st =getSubtotal
lineItem
s[i]:
SalesLineItem
Figure 15.31
Asynchronous calls
s
ta
rtC
lo
c
k
3
:ru
n
F
in
a
liz
a
tio
n
:C
lo
c
k
S
ta
rte
r
S
y
s
te
m
:C
la
s
s
1
:c
re
a
te
a
s
y
n
c
h
ro
n
o
u
sm
e
s
s
a
g
e
2
:ru
n
:C
lo
c
k
a
c
tiv
e
o
b
je
c
t
Figure 15.35
Polymorphism:
How is it shown in interaction diagrams?
p
o
ly
m
o
rp
h
icm
e
s
s
a
g
e
d
o
X
:R
e
g
is
te
r
s
to
pa
tth
isp
o
in
td
o
n
ts
h
o
wa
n
y
fu
rth
e
rd
e
ta
ilsfo
rth
ism
e
s
s
a
g
e
a
u
th
o
riz
e
:P
a
y
m
e
n
t{a
b
s
tra
c
t}
a
u
th
o
riz
e
:D
e
b
itP
a
y
m
e
n
t
o
b
je
c
tinro
leo
fa
b
s
tra
c
t
s
u
p
e
rc
la
s
s
a
u
th
o
riz
e
d
o
A
d
o
B
d
o
X
:F
o
o
:C
re
d
itP
a
y
m
e
n
t
s
e
p
a
ra
ted
ia
g
ra
m
sfo
re
a
c
hp
o
ly
m
o
rp
h
icc
o
n
c
re
tec
a
s
e
Figure 15.34
:B
a
r
Chapter 16
Design Class Diagrams (DCDs)
D
o
m
a
in
M
o
d
e
l
c
o
n
c
e
p
tu
a
l
p
e
rs
p
e
c
tiv
e
R
e
g
is
te
r
a
p
tu
re
s
1 C
...
R
e
g
is
te
r
tim
e
is
C
o
m
p
le
te
:B
o
o
le
a
n
/to
ta
l
S
a
le
D
e
s
ig
n
M
o
d
e
l
...
D
C
D
;s
o
ftw
a
re
p
e
rs
p
e
c
tiv
e
e
n
d
S
a
le
()
e
n
te
rIte
m
(...)
m
a
k
e
P
a
y
m
e
n
t(...)
Figure 16.2
e
1 tim
is
C
o
m
p
le
te
:B
o
o
le
a
n
c
u
rre
n
tS
a
le /to
ta
l
m
a
k
e
L
in
e
Ite
m
(...)
Sale
ProductSpecification
SalesLineItem
S
alesLineItem
tim
e: D
ateTim
e
lineItem
s: S
alesLineItem[1..*]
or
lineItem
s: S
alesLineItem[1..*] {ordered}
...
...
...
Tw
ow
aystoshowa
collectionattribute
S
ale
S
alesLineItem
tim
e: D
ateTim
e
...
Figure 16.4
1..*
...
lineItem
s
{ordered, List} ...
noticethat anassociationendcanoptionallyalso
haveapropertystringsuchas{ordered, List}
:R
e
g
iste
r
:S
a
le
m
a
ke
P
a
ym
e
n
t(ca
sh
T
e
n
d
e
re
d)
m
a
ke
P
a
ym
e
n
t(ca
sh
T
e
n
d
e
re
d)
m
e
ssa
g
e
sinin
te
ra
ctio
n
d
ia
g
ra
m
sin
d
ica
teo
p
e
ra
tio
n
s
inth
ecla
ssd
ia
g
ra
m
s
R
e
g
iste
r
...
m
a
ke
P
a
ym
e
n
t(
)
...
S
a
le
1
cu
rre
n
tS
a
le
...
m
a
ke
P
a
ym
e
n
t(
)
...
cla
sse
s
id
e
n
tifie
dinth
e
in
te
ra
ctio
n
d
ia
g
ra
m
sa
re
d
e
cla
re
dinth
e
cla
ssd
ia
g
ra
m
s
R
e
g
i
s
t
e
r
m
e
t
h
o
d
/
/
p
s
e
u
d
o
c
o
d
e
o
r
a
s
p
e
c
i
f
i
c
l
a
n
g
u
a
g
e
i
s
O
K
p
u
b
l
i
c
v
o
i
d
e
n
t
e
r
I
t
e
m
(
i
d
,
q
t
y
)
{
P
r
o
d
u
c
t
D
e
s
c
r
i
p
t
i
o
n
d
e
s
c
=
c
a
t
a
l
o
g
.
g
e
t
P
r
o
d
u
c
t
D
e
s
c
r
i
p
t
i
o
n
(
i
d
)
;
s
a
l
e
.
m
a
k
e
L
i
n
e
I
t
e
m
(
d
e
s
c
,
q
t
y
)
;
}
.
.
.
e
n
d
S
a
l
e
(
)
e
n
t
e
r
I
t
e
m
(
i
d
,
q
t
y
)
m
a
k
e
N
e
w
S
a
l
e
(
)
m
a
k
e
P
a
y
m
e
n
t
(
c
a
s
h
T
e
n
d
e
r
e
d
)
...
...
u
p
d
a
te
P
rice
F
o
r(P
ro
d
u
ctD
e
scrip
tio
n)
...
S
a
le
sL
in
e
Ite
m
1
..*
lin
e
Ite
m
s
...
...
1
H
a
n
d
0
.
.
7
F
i
n
g
e
r
c
o
m
p
o
s
i
t
i
o
n
1
B
o
a
r
d
4
0
c
o
m
p
o
s
i
t
i
o
n
m
e
a
n
s
a
p
a
r
t
i
n
s
t
a
n
c
e
(
S
q
u
a
r
e
)
c
a
n
o
n
l
y
b
e
p
a
r
t
o
f
o
n
e
c
o
m
p
o
s
i
t
e
(
B
o
a
r
d
)
a
t
a
t
i
m
e
t
h
e
c
o
m
p
o
s
i
t
e
h
a
s
s
o
l
e
r
e
s
p
o
n
s
i
b
i
l
i
t
y
f
o
r
m
a
n
a
g
e
m
e
n
t
o
f
i
t
s
p
a
r
t
s
,
e
s
p
e
c
i
a
l
l
y
c
r
e
a
t
i
o
n
a
n
d
d
e
l
e
t
i
o
n
1
S
a
l
e
S
q
u
a
r
e
Figure 16.13
1
.
.
*
S
a
l
e
s
L
i
n
e
I
t
e
m
Association classes
model association with attributes & operations
C
o
m
p
a
n
y
a
p
e
r
s
o
n
m
a
y
h
a
v
e
e
m
p
l
o
y
m
e
n
tw
i
t
h
s
e
v
e
r
a
l
c
o
m
p
a
n
i
e
s
E
m
p
l
o
y
s
P
e
r
s
o
n
E
m
p
l
o
y
m
e
n
t
s
a
l
a
r
y
s
t
a
r
t
D
a
t
e
Figure 16.16
in
te
rfa
c
e
L
is
t
c
le
a
r()
...
th
ea
ttrib
u
tety
p
em
a
yb
ee
x
p
re
s
s
e
din
o
ffic
ia
lU
M
L
,w
ithth
ete
m
p
la
teb
in
d
in
g
s
y
n
ta
xre
q
u
irin
ga
na
rro
w
o
r
ina
n
o
th
e
rla
n
g
u
a
g
e
,s
u
c
ha
sJ
a
v
a
B
o
a
rd
a
n
o
n
y
m
o
u
sc
la
s
sw
ith
te
m
p
la
teb
in
d
in
gc
o
m
p
le
te
A
rra
y
L
is
t
A
rra
y
L
is
t<
TS
q
u
a
re
>
c
le
a
r()
...
s
q
u
a
re
s:L
is
t<
KS
q
u
a
re
>
o
r
s
q
u
a
re
s:L
is
t<
S
q
u
a
re
>
...
e
le
m
e
n
ts:T
[*]
...
c
le
a
r()
...
fo
re
x
a
m
p
le
,th
ee
le
m
e
n
tsa
ttrib
u
teisa
n
a
rra
yo
fty
p
eT
,p
a
ra
m
e
te
riz
e
da
n
db
o
u
n
d
b
e
fo
rea
c
tu
a
lu
s
e
.
th
e
reisac
h
a
n
c
eth
eU
M
L2a
rro
w
s
y
m
b
o
lw
ill
e
v
e
n
tu
a
llyb
ere
p
la
c
e
dw
iths
o
m
e
th
in
ge
ls
ee
.g
.,=
Figure 16.18
S u p e rc la s s F o o
or
S u p e rC la s s F o o { a b s tra c t }
3 com m on
c o m p a rtm e n ts
1 . c la s s ifie r n a m e
2 . a ttrib u te s
3 . o p e ra tio n s
a n in te rfa c e
s h o w n w ith a
k e y w o rd
in te rfa c e
R u n n a b le
ru n ()
- c la s s O rS ta tic A ttrib u te : In t
+ p u b lic A ttrib u te : S trin g
- p riv a te A ttrib u te
a s s u m e d P riv a te A ttrib u te
is In itia liz e d A ttrib u te : B o o l = tru e
a C o lle c tio n : V e g g ie B u rg e r [ * ]
a ttrib u te M a y L e g a lly B e N u ll : S trin g [0 ..1 ]
fin a lC o n s ta n tA ttrib u te : In t = 5 { re a d O n ly }
/d e riv e d A ttrib u te
+ c la s s O rS ta tic M e th o d ()
+ p u b lic M e th o d ()
a s s u m e d P u b lic M e th o d ()
- p riv a te M e th o d ()
# p ro te c te d M e th o d ()
~ p a c k a g e V is ib le M e th o d ()
c o n s tru c to r S u p e rc la s s F o o ( L o n g )
m e th o d W ith P a rm s ( p a rm 1 : S trin g , p a rm 2 : F lo a t)
m e th o d R e tu rn s S o m e th in g () : V e g g ie B u rg e r
m e th o d T h ro w s E x c e p tio n () {e x c e p tio n IO E x c e p tio n }
a b s tra c tM e th o d ()
a b s tra c tM e th o d 2 () { a b s tra c t } // a lte rn a te
fin a lM e th o d () { le a f } // n o o v e rrid e in s u b c la s s
s y n c h ro n iz e d M e th o d () { g u a rd e d }
o ffic ia lly in U M L , th e to p fo rm a t is
u s e d to d is tin g u is h th e p a c k a g e
n a m e fro m th e c la s s n a m e
u n o ffic ia lly , th e s e c o n d a lte rn a tiv e
is c o m m o n
ja v a .a w t::F o n t
or
ja v a .a w t.F o n t
p la in : In t = 0 { re a d O n ly }
b o ld : In t = 1 { re a d O n ly }
n a m e : S trin g
s ty le : In t = 0
...
g e tF o n t (n a m e : S trin g ) : F o n t
g e tN a m e () : S trin g
...
DCD
summary
Questions?
F ru it
dependency
...
...
in te rfa c e
im p le m e n ta tio n
and
s u b c la s s in g
S u b c la s s F o o
P u rc h a s e O rd e r
1
...
ru n ()
...
- e llip s is m e a n s th e re m a y b e e le m e n ts , b u t n o t s h o w n
- a b la n k c o m p a rtm e n t o ffic ia lly m e a n s u n k n o w n b u t a s a
c o n v e n tio n w ill b e u s e d to m e a n n o m e m b e rs
...
o rd e r
...
a s s o c ia tio n w ith
m u ltip lic itie s
Figure 16.1