OBJECT-ORIENTED ANALYSIS
OBJECT-ORIENTED ANALYSIS
AND DESIGN WITH UML 2.0
AND DESIGN WITH UML 2.0
Bé m«n C«ng nghÖ phÇn mÒm
Bé m«n C«ng nghÖ phÇn mÒm
KHOA CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
!"#$% !&
!"#$% !&
'()"$!&
'()"$!&
*"+,,! !&
*"+,,! !&
-
-
.
/"+%0$&
.
/"+%0$&
1
1
2
.
"3$$$4&
2
.
"3$$$4&
5
5
678 "9$$% : !&
678 "9$$% : !&
-
-
;<=>%!0?@'(
;<=>%!0?@'(
!A
!A
!
!
BC ,,+
B$%D!%EF$,!,04"&B%$,
BC ,,
C ,,
+ $%D!%EF$,!,04"&B%$,
1
1
*GEH !
*GEH !
=!% * !/I
=!% * !/I
H7H
H7H
JK28A L'I"M&
JK28A L'I"M&
N7O
N7O
OPA !
OPA !
operationName([direction]parameter : class, ) : returnType
operationName([direction]parameter : class, ) : returnType
3%$!B
3%$!B
in
in
"EQ&R
"EQ&R
out
out
!Q
!Q
inout
inout
S' % EHTMR0 !@EPU A NH
S' % EHTMR0 !@EPU A NH
E,L
E,L
5
5
V'WOP !
V'WOP !
XOPA !RY<$E<Z>
XOPA !RY<$E<Z>
E,L8B
E,L8B
S'I%4[$! E% 4 E0
S'I%4[$! E% 4 E0
C80 460\ ! 4
C80 460\ ! 4
C8]4M
C8]4M
^%EQ
^%EQ
C!H E,LI>
C!H E,LI>
C/ E,LRL
C/ E,LRL
%4[L'I 4G!=O
%4[L'I 4G!=O
>
>
_
_
Public
operation
s
Protected
operations
Private
operations
`=EG%4^A !
`=EG%4^A !
"#$% !a,04&
"#$% !a,04&
`=EG%4^'I,K2?b>
`=EG%4^'I,K2?b>
Hc88
Hc88
C8?0R%!$$R!Q%G $
C8?0R%!$$R!Q%G $
`=EG%4^'I0?d
`=EG%4^'I0?d
'!e
'!e
CP>, 'I,K2B
CP>, 'I,K2B
f
f
`0 $,,
`0 $,,
g
g
`%!$$ $,,
`%!$$ $,,
h
h
`%G $ $,,
`%G $ $,,
C ,,
- %G $+%0$
f0+%0$
g%!$$+%0$
h%G $#$% !"&
f0#`$% !"&
g%!$$#$% !"&
i
i
`=EG"J!$&
`=EG"J!$&
,L'I?>A /j !
,L'I?>A /j !
B
B
k, $B?>!El?>A El
k, $B?>!El?>A El
C ,,D$%B?>!NH?>A
C ,,D$%B?>!NH?>A
`=EGC ,,D$%'IP>0m=
`=EGC ,,D$%'IP>0m=
'*/j !
'*/j !
C ,,
h ,,D$%J!$+%
h, $J!$+%
f ,,D$%J!$#"&
f, $J!$#"&
n
n
a/2BJ!$
a/2BJ!$
J$
h E$
h %$,,
h$<+G k3B
f J$$"op$J$$BJ$$RopD!%J$E$,$%BJ$E$,$%&
f$J$$"opD!%J$E$,$%BJ$E$,$%&BJ$$
f ,`%$%$7,$,"opD!%C!%,$#DD$%BC!%,$#DD$%&B0!!$
g ,,$"op$C!%,$#DD$%BC!%,$#DD$%&B0!!$
f$$<+G k3"&B
h,$k3
!"#$% !&
!"#$% !&
'()"$!&
'()"$!&
*"+,,! !&
*"+,,! !&
-
-
.
/"+%0$&
.
/"+%0$&
1
1
2
.
"3$$$4&
2
.
"3$$$4&
5
5
678 "9$$% : !&
678 "9$$% : !&
-
-
'()
'()
`'()"E$!&e
`'()"E$!&e
H,bbA !"!
H,bbA !"!
$% !
$% !
&
&
2/
2/
GN[
GN[
%*!
%*!
G*
.
b !
G*
.
b !
CGN[Y<$E<Z
CGN[Y<$E<Z
B
B
Cq
.
!c
.
0*
.
Cq
.
!c
.
0*
.
CL'I!c
.
!Y,K2
CL'I!c
.
!Y,K2
C
.
/G E,L,r'IbG,K
C
.
/G E,L,r'IbG,K
2
2
CEL7 *
.
,r'IbG,K2
CEL7 *
.
,r'IbG,K2
1
1
!"#$% !&
!"#$% !&
'()"$!&
'()"$!&
*"+,,! !&
*"+,,! !&
-
-
.
/"+%0$&
.
/"+%0$&
1
1
2
.
"3$$$4&
2
.
"3$$$4&
5
5
678 "9$$% : !&
678 "9$$% : !&
5
5
*
*
2/
2/
sIt=
sIt=
CGN[Y<$E<ZB
CGN[Y<$E<ZB
+,,! !G,+%$ !
+,,! !G,+%$ !
+%$ !G,C!E!,!
+%$ !G,C!E!,!
+%0$G,+,,! !
+%0$G,+,,! !
G 04
G 04
4$,
4$,
_
_
C!E!,!e
C!E!,!e
=A %$ !G74[,\O
=A %$ !G74[,\O
E=GGtu%]
E=GGtu%]
v!$,\O` %R=!GA4` %
v!$,\O` %R=!GA4` %
` %00wv!$00wR` %?@=
` %00wv!$00wR` %?@=
v!$@=
v!$@=
v!$
C!E!,!
` %
` %v!$
J %$+%$ !
J %$+%$ !
!h, %$+%$ !
!h, %$+%$ !
+%$ !BJ %$G,!h, %$
+%$ !BJ %$G,!h, %$
4$D!R!E!,!,!h, %$ %$ !
v!$ ` %
x nx
Multiplicity > 1
Multiplicity = 1
Multiplicity = 1
v!$ ` %
nx
v!$ ` %
nx
Composition
i
i
+%$ ! 4C!E!,!e
+%$ ! 4C!E!,!e
$E<ZGtuA C ,,GC ,,
$E<ZGtuA C ,,GC ,,
Aggregation
Composition
C ,, C ,,
C ,, C ,,
n
n
a/2BC!E!,!
a/2BC!E!,!
nx
J$$C!%,$kD!
C!%,$F$,% !y!%E
C!%,$F$,% !C!%!$%
+%0$,GC!E!,!
+%0$,GC!E!,!
JK2!E!,!B
JK2!E!,!B
CQ/"%!$%4&Y ^
CQ/"%!$%4&Y ^
[8]Q/
[8]Q/
CQ/8EN%z)=GQ
CQ/8EN%z)=GQ
/A %*z
/A %*z
CQ/H8G)=A %*
CQ/H8G)=A %*
z
z
CQ/8EL7 >A %*z
CQ/8EL7 >A %*z
Ct=,K2/" %0$&
Ct=,K2/" %0$&
S['" G 04&e
S['" G 04&e
S['{EI/,K
S['{EI/,K
2 ,,! !
2 ,,! !
C!%,$F$,% !C!%!$%
||C!%!}}
C!%,$kD!
G 04
G 04
BV'!b,bYe
BV'!b,bYe
$E<Z0?@'(
$E<Z0?@'(
^E/H '[8G~Y'
^E/H '[8G~Y'
E'=GW!=L
E'=GW!=L
G 04$!'/<H4%
G 04$!'/<H4%
JL'I?>A Ew
JL'I?>A Ew
?
n-nx
f%E %4C!%,$,
C!%,$kD!
J$$
n-nx
f%E %4C!%,$,
C!%,$kD!J$$
n-nx
f%E %4C!%,$,
C!%,$kD!
J$$
-
-
a/2Bs['
a/2Bs['
! E0$%!DJ$$,
! E0$%!DJ$$,
,E R!%
,E R!%
$G$%$$ ,!D$
$G$%$$ ,!D$
J$$!•$
J$$!•$
C!%,$kD! $ %,
C!%,$kD! $ %,
! E0$%!DC!%,$kD!,
! E0$%!DC!%,$kD!,
,E R!%
,E R!%
$G$%$$ ,!DC!%,$kD!
$G$%$$ ,!DC!%,$kD!
! J$$
! J$$
! E0$%!DC!%,$kD!
! E0$%!DC!%,$kD!
J$$ %$!,E
J$$ %$!,E
,0$ 0$! G $
,0$ 0$! G $
0!%$!,
0!%$!,
n-nx
f%E %4C!%,$,
C!%,$kD!
J$$
n-nx
f%E %4C!%,$,
C!%,$kD!
J$$
n-nx
f%E %4C!%,$,
C!%,$kD!
J$$
1
1
€< E$B+,,! !C ,,3$,
€< E$B+,,! !C ,,3$,
Design Decisions
nx n-f%E %4C!%,$,
f $% $C!%,$,
nx
n
`%E %4J$$#DD$%kD!
h% $
fjj,$%!$e"&
fjjE % ,$%!$"&
fjjE % ,!EE$"&
J$$
C!%,$kD!
C!%,$kD!
J$$
nx
h$C!%,$#DD$%
f $% $C!%,$,
nx
n
`%E %4J$$#DD$%kD!
h% $
fjj,$%!$e"&
fjjE % ,$%!$"&
fjjE % ,!EE$"&
- primaryCourseOeringInfo
n-
5
5
4•R!Q4•n
4•R!Q4•n
C8?'Ib>%b0mE%
C8?'Ib>%b0mE%
(!Q!%w
(!Q!%w
XY*E
XY*E
4}
4}
X?,K2%(!Q!%w
X?,K2%(!Q!%w
CY*EO
CY*EO
0,L7 >
0,L7 >
Cần một cho
CourseInfo
n n
‚$%$%kD! C!%,$kD!
fk,%!%
n nx
‚$%$%kD! C!%,$kD!
fk,%!%