BÀI 5:
TÌM HIU SÂU V S TP HP (AGGREGATION), S CU
THÀNH (COMPOSITE), GIAO DIN (INTERFACE) VÀ S HIN
THC (REALIZATION)
Trong bài này, chúng ta tiếp tc vi các mi quan h gia các class và tìm hiu thêm các
khái nim mi v các class và các sơ đồ lp (class diagram). Ni dung chính trong bài hc:
+ S tp hp (aggregation)
+ S cu thành (composite)
+ Ng cnh (context)
+ Giao din (interface)
+ S hin thc (realization)
+ Tính rõ ràng (visibility)
S tp hp (aggregation):
Thut ng: Đôi khi mt class bao gm mt s class thành phn (component class). Đây là
loi đặc bit ca mi quan h được gi là s tp hp (aggregation). Quan h gia các thành
phn vi class mà chúng tp hp nên là mt quan h b phn-tng th (part-whole). Trong
bài 2, chúng ta đã thy rng h thng máy tính cá nhân gia đình là mt tp hp gm CPU
box, keyboard, mouse, monitor, CD-ROM drive, hard disk, floppy disk drive, modem,
printer và speaker.
Ta biu din mt s tp hp như mt phân cp vi class “whole” đỉnh và các thành phn
phía dưới. Mt đường liên kết tng th (whole) vi các thành phn (component) vi mt
hình thoi gn đầu “whole”. Hình 5.1 cho thy h thng máy tính như mt s tp hp.
Hình 5.1
Mt aggregation (part-
whole) được biu din
bi mt đường liên kết
gia tng th vi các b
phn.
Trang 1 – Bài 5
Mc dù ví d này cho thy mi component ch thuc mt whole, nhưng trong mt
aggregation không bt buc như thế. Ví d, trong mt h thng gii trí ti gia, mt điu
khin t xa (remote control) có th là 1 component ca 1 TV và đồng thi là 1 component
ca mt VCR.
Ràng buc trên các mi kết hp:
Mt tp hp các thành phn trong mt aggregation có th “rơi” vào mi quan h OR. Ví d,
trong mt s nhà hàng, mt ba ăn (meal) bao gm soup hoc salad, main course và dessert.
Để mô hình hoá điu này, ta dùng mt ràng buc OR như hình 5.2.
Hình 5.2
Ta có th đặt mt ràng
buc trên mt
aggregation để cho thy
rng mt thành phn
này hoc thành phn
khác là b phn ca
tng th.
Các cu thành (composite):
Mt cu thành (composite) là mt loi aggregation cht ch hơn. Mi thành phn trong mt
composite ch có th thuc mt tng th mà thôi. Các thành phn ca mt bàn cà phê (coffee
table) - mt bàn và các chân bàn - to nên mt composite. Biu tượng cho composite tương
t như cho aggregation, ngoi tr hình thoi màu đen.
Hình 5.3
Trong mt composite,
mi thành phn thuc
v duy nht mt tng th
(whole).
Ng cnh (context)
Khi ta mô hình hóa mt h thng, nhóm các class s trn vi nhau thường dưới dng
aggregation hoc composite. Chúng ta s ch tp trung vào mt nhóm này hay nhóm kia, và
sơ đồ ng cnh (context diagram) cung cp tính năng mô hình hóa điu đó. Mt context
diagram ging như mt bn đồ chi tiết ca mt vùng t mt bn đồ ln hơn.
Trang 2 – Bài 5
Hình 5.4
Mt sơ đồ ng cnh
composite biu din các
thành phn ca mt
class như mt diagram
lng bên trong mt hình
ch nht class ln.
Context diagram ca composite tp trung vào áo sơ-mi và các thành phn bên trong ca nó.
Để thy áo sơ-mi trong ng cnh ca t áo qun, ta phi m rng tm vc. Mt context
diagram cho h thng cho phép điu này. Ta có th thy class Shirt kết ni như thế nào vi
các class Wardrobe và Outfit.
Hình 5.5
Mt context diagram
ca h thng cho thy
các thành phn ca mt
class và quan h ca nó
vi các class khác trong
h thng.
Giao din và hin thc (Interface and Realization)
Sau khi to ra mt s class, ta có th thy rng chúng không cùng liên quan đến mt class
cha c th, nhưng các hành vi ca chúng có th cha mt s operation ging nhau vi du
hiu ging nhau. Khi đó, ta có th mã hóa các operation cho mt trong s các class đó ri
dùng li chúng trong các class còn li. Mt kh năng khác là ta xây dng mt tp các
operation cho các class trong mt h thng, và tái s dng chúng cho các class trong h
thng khác.
Thut ng: Vi c hai cách trên, ta s cn có cách nào đó để nm bt tp các operation có
th tái s dng đó. Giao din (interface) là mt cu trúc ca UML cho phép làm điu này.
Mt interface là mt tp các operation mà đặc t mt s khía cnh trong hành vi ca mt
class, đó cũng chính là tp các operation mà mt class mun th hin cho các class khác.
Trang 3 – Bài 5
Thut ng: Mi quan h gia mt class và mt interface được gi là hin thc hóa
(realization). Mi quan h náy được mô hình hóa như mt đường đứt nét vi mt hình tam
giác ln k và ch vào interface.
Hình 5.6
Mt interface là mt tp
hp các operation mà
mt class thc hin. Mt
class liên h vi mt
interface thông qua
realization, được biu
din bi đường đứt nét
có hình tam giác nm k
và ch vào interface.
Mt cách khác để biu din mt class và mt interface là mt hình tròn nh kết ni vi class
bi mt đường thng.
Hình 5.7
Cách ngn gn để biu
din mt vic mt class
hin thc hóa mt
interface.
Tính rõ ràng (visibility):
Thut ng: Liên quan cht ch đến interface và realization là khái nim tính rõ ràng
(visibility). Visibility ápdng cho các attribute và operation (hoc operation ca mt
interface). Có 3 cp độ cho visibility. cp public, kh năng s dng được m rng cho các
class khác. cp protected, kh năng s dng ch được m rng cho các class tha kế t
class ngun. cp private, ch class ngun mi có th dùng các attribute và operation ca
nó.Ví d, trong mt TV, changeVolume() và changeChannel() là các public operation,
paintImageOnScreen() là mt private operation. Trong mt xe gn máy, accelerate() và
brake() là các public operation, trong khi updateMileageCount() là protected operation.
Trang 4 – Bài 5
Hình 5.8
Các public operation,
private operation trong
mt TV và các public
operation, protected
operation trong mt xe
gn máy.
Tm vc (Scope)
Thut ng: Tm vc (scope) là mt khái nim khác liên quan đến attribute và operation. Có
2 loi tm vc. Trong tm vc instance, mi instance có giá tr riêng ca nó cho attribute và
operation. Trong tm vc classifier, ch mt giá tr ca attribute và operation cho tt c các
instance ca class. Mt thuc tính hay operation có tm vc loi classifier xut hin vi tên
được gch dưới. Loi tm vc này thường được dùng khi mt nhóm c th các instance phi
chia s các giá tr đúng ca mt thuc tính private. Loi tm vc instance được dùng nhiu
hơn.
Tóm lược
Để hiu đầy đủ v các class cũng như quan h gia chúng, cn phi biết mt s mi quan h
b sung. S tp hp (aggregation) mô t mt mi kết hp b phn - tng th (part – whole):
mt “whole class” được to nên t các “component class”. Mt component trong mt
aggregation có th là b phn cho nhiu “whole class” khác nhau. Mt cu thành
(composite) là mt dng tp hp có tính cht ch hơn, trong đó mt component ch có th
b phn ca duy nht 1 “whole class”. Biu din UML cho aggregation tương t như cho
composite. Đường kết hp liên kết các b phn vi mt tng th có mt hình thoi k vi đầu
“whole”. Trong aggregation, hình thoi rng, còn trong composite thì hình thoi đặc.
Mt context diagram tp trung s chú ý vào mt class c th trong mt h thng. Mt
context diagram cho mt composite ging như mt bàn đồ chi tiết ca mt bn đồ ln hơn.
Nó cho trình din mt class diagram được lng bên trong mt biu tượng hình ch nht ln.
Mt context diagram cho h thng cho biết cách thc mà mt context diagram cho
composite quan h vi các object khác trong h thng.
Mt s hin thc hóa (realization) là mt mi kết hp gia mt class và mt interface, là
mt tp hp các operation mà mt s class có th s dng. Mt interface có th được biu
din như mt class không có attribute. Để phân bit nó vi mt class có các thuc tính
nhưng đã được lược b, dùng stereotype <<interface>> xut hin trên tên ca interface vi
mt tam giác k và ch v phía interface. Cách khác để biu din mt realization là vi mt
đường ni mt class vi mt hình tròn nh, vi hình tròn tượng trưng cho interface.
Trong thut ng tính rõ ràng (visibility), tt c các operation trong mt interface là public,
sao cho bt c class nào cũng có th s dng chúng. Hai cp độ khác cho tính rõ ràng là
protected (kh năng s dng được m rng đến các class con ca class s hu các attribute
Trang 5 – Bài 5