Tài liệu môn học: Phân tích và thiết kế HTTT theo UML - Phần 2 là tài liệu được sưu tầm và tổng hợp. Tiếp theo phần 1, phần 2 này có 2 chương với nội dung: Mô hình hướng đối tượng, Mô hình hóa tự động sẽ giúp cung cấp các hiểu biết nhằm nâng cao kiến thức về thiết kế HTTT.
Trang 1CH NG 5 : MÔ HÌNH I T +NG
5.1 L p, i t ng và quan h – các thành ph n c b n c a mô hình
Trong mô hình hóa h ng i t ng, nh ng ph n t c!u thành c(n b n nh!t c a mô hình là l p, i
t ng và m i quan h gi a chúng v i nhau L p và i t ng s& mô hình hóa nh ng gì có trong h
th ng mà chúng ta mu n miêu t , các m i quan h s& bi u th c!u trúc ng tác phân l p (classification) ã c s d ng t hàng ngàn n(m nay n gi n hóa vi c miêu t các h th ng ph c
t p Khi loài ng i bi t n vi c l p trình h ng i t ng xây d ng các h th ng ph n m m thì l p
và các m i quan h c a chúng c chuy n thành các dòng code c th
5.1.1 i t ng (Object)
M t i t ng là m t s t ng tr ng cho m t th c th , ho c là th c th t n t i trong th gi i i th c
ho c th c th mang tính khái ni m M t i t ng có th t ng tr ng cho cái gì ó c th , ví d nh
m t chi c xe ô tô ch hàng c a b n ho c chi c máy tính c a tôi, ho c t ng tr ng cho m t khái ni m ví
d nh m t quy trình hóa h#c, m t giao d ch trong nhà b(ng, m t l i t hàng, nh ng thông tin trong quá trình s d ng tín d ng c a khách hàng hay m t t3 l ti n l i
C'ng có nh ng i t ng (ví d nh các i t ng th c thi m t trong h th ng ph n m m) không th t
s t n t i ngoài th gi i th c, nh ng là k t qu d n xu!t t quá trình nghiên c u c!u trúc và ng x
c a các i t ng ngoài th gi i th c Nh ng i t ng ó, dù là b%ng cách này hay cách khác, u liên quan n quan ni m c a chúng ta v th gi i th c
M t i t ng là m t khái ni m, m t s tr u t ng hóa, ho c là m t v t v i ranh gi i và ý ngh+a
c nh ngh+a rõ ràng cho m t ng d ng nào ó M.i i t ng trong m t h th ng u có ba c tính: tr ng thái, ng x và s nh n di n
5.1.2 Tr ng thái, ng x và nh#n di n c a i t ng
Tr ng thái (state) c a m t i t ng là m t trong nh ng hoàn c nh n i i t ng có th t n t i Tr ng
thái c a m t i t ng th ng s& thay i theo th i gian, và nó c nh ngh+a qua m t t h p các thu c tính, v i giá tr c a các thu c tính này c'ng nh m i quan h mà i t ng có th có v i các i
t ng khác Ví d m t danh sách ghi danh cho m t l p h#c trong h th ng tr ng h#c có th có hai
tr ng thái: tr ng thái óng và tr ng thái m N u danh sách sinh viên ghi danh cho l p h#c này còn nh
h n s t i a cho phép (ví d là 10), thì tr ng thái c a b ng ghi danh này là m M t khi ã 10 sinh viên ghi danh cho l p, danh sách s& chuy n sang tr ng thái óng
ng x (Behaviour) xác nh m t i t ng s& ph n ng nh th nào tr c nh ng yêu c u t các i
t ng khác, nó tiêu bi u cho nh ng gì mà i t ng này có th làm 5ng x c th c thi qua lo t các
Ph ng th c (operation) c a i t ng Trong ví d tr ng i h#c, m t i t ng b ng ghi danh l p h#c có th có ng x là b sung thêm m t sinh viên hay xóa i tên c a m t sinh viên khi sinh viên (ng
ký h#c hay bãi b (ng ký
S nh n di n (Identity) m b o r%ng m.i i t ng là duy nh!t – dù tr ng thái c a nó có th gi ng v i
tr ng thái c a các i t ng khác Ví d , khóa h#c i s 101 ch ng 1 và khóa h#c i s 101 ch ng
Trang 22 là hai i t ng trong h th ng ghi danh tr ng h#c M c dù c hai u thu c lo i b ng ghi danh, m.i khóa h#c v n có s nh n d ng duy nh!t c a mình
5.1.3 L p (Class)
M t l p là m t l i miêu t c a m t nhóm các i t ng có chung thu c tính, chung ph ng th c ( ng
x ), chung các m i quan h v i các i t ng khác và chung ng ngh+a (semantic) Nói nh th có ngh+a l p là m t khuôn m u t o ra i t ng M.i i t ng là m t th c th c a m t l p nào ó và
m t i t ng không th là k t qu th c th hóa c a nhi u h n m t l p Chúng ta s d ng khái ni m
l p bàn lu n v các h th ng và phân lo i các i t ng mà chúng ta ã nh n d ng ra trong th
gi i th c
M t l p t t s& n"m b"t m t và ch* m t s tr u t ng hóa - nó ph i có m t ch chính Ví d , m t l p
v a có kh n(ng gi t!t c các thông tin v m t sinh viên và thông tin v t!t c nh ng l p h#c mà
ng i sinh viên ó ã tr i qua trong nhi u n(m tr c không ph i là m t l p t t, b i nó không có ch chính L p này c n ph i c chia ra làm hai l p liên quan n nhau: l p sinh viên và l p l ch s c a sinh viên
Hình 5.1- M.i th c th trong mô hình trên là m t l p
Khi t o d ng mô hình c'ng nh th t s xây d ng các h th ng doanh nghi p, các h th ng thông tin, máy móc ho c các l#ai h th ng khác, chúng ta c n s d ng các khái ni m c a chính ph m vi v!n khi n cho mô hình d hi u và d giao ti p h n N u chúng ta xây d ng h th ng cho m t công ty b o
hi m, mô hình c n ph i d a trên các khái ni m c a ngành b o hi m N u chúng ta xây d ng m t h
th ng cho quân i, thì các khái ni m c a th gi i quân s c n ph i c s d ng khi mô hình hóa h
th ng M t h th ng d a trên các khái ni m chính c a m t ngành doanh nghi p nào ó có th d c thi t k l i cho phù h p v i nh ng qui ch , chi n l c và qui nh m i, b i chúng ta ch* c n cân b%ng
và kh"c ph c s chênh l ch gi a công vi c c' và công vi c m i Khi các mô hình c xây d ng d a trên các khái ni m l!y ra t cu c i th c và d a trên các khái ni m thu c ph m vi v!n , h ng i
t ng s& là m t ph ng pháp r!t thích h p b i n n t ng c a ph ng pháp h ng i t ng là các l p,
i t ng và m i quan h gi a chúng
M t l p là l i miêu t cho m t d ng i t ng trong b!t k0 m t h th ng nào ó – h th ng thông tin,
h th ng k, thu t, h th ng nhúng th i gian th c, h th ng phân tán, h th ng ph n m m và h th ng doanh th ng Các v t d ng (artifact) trong m t doanh nghi p, nh ng thông tin c n c l u tr , phân tích ho c các vai trò mà m t tác nhân m nh n trong m t doanh nghi p th ng s& tr thành các l p trong các h th ng doanh nghi p và h th ng thông tin
Trang 3Ví d v các l p trong doanh nghi p và các h th ng thông tin:
Khách hàng
B n th ng thuy t Hóa n
Món n Tài s n
B n công b giá c phi u Các l p trong m t h th ng k, thu t th ng bao g m các i t ng k, thu t, ví d nh máy móc c
s d ng trong h th ng:
Sensor Màn hình I/O card
ng c Nút b!m
L p i u khi n Các h th ng ph n m m th ng có các l p i di n cho các th c th ph n m m trong m t h i u hành:
File
Ch ng trình ch y c Trang thi t b
Icon
C a s Thanh kéo
5.1.4 Bi u l p (Class diagram)
M t bi u l p là m t d ng mô hình t+nh M t bi u l p miêu t h ng nhìn t+nh c a m t h th ng b%ng các khái ni m l p và m i quan h gi a chúng v i nhau M c dù nó c'ng có nh ng nét t ng t
v i m t mô hình d li u, nh ng nên nh r%ng các l p không ph i ch* th hi n c!u trúc thông tin mà còn miêu t c hình vi M t trong các m c ích c a bi u l p là t o n n t ng cho các bi u khác, th
hi n các khía c nh khác c a h th ng (ví d nh tr ng thái c a i t ng hay c ng tác ng gi a các
i t ng, c ch* ra trong các bi u ng) M t l p trong m t bi u l p có th c th c thi tr c
ti p trong m t ngôn ng h ng i t ng có h tr tr c ti p khái ni m l p M t bi u l p ch* ch* ra
Trang 4các l p, nh ng bên c nh ó còn có m t bi n t!u h i khác i m t chút ch* ra các i t ng th t s là các
th c th c a các l p này (bi u i t ng)
Hình 5.2-Mô hình l p trong UML
Hình 5.3- M t l p c th v i các thu c tính
t o m t bi u l p, u tiên ta ph i nh n di n và miêu t các l p M t khi ã có m t s l ng các
l p, ta s& xét n quan h gi a các l p ó v i nhau
5.2 Tìm l p
H u nh không có m t công th c chung cho vi c phát hi n ra các l p i tìm các l p là m t công vi c
òi h i trí sáng t o và c n ph i c th c thi v i s tr giúp c a chuyên gia ng d ng Vì qui trình phân tích và thi t k mang tính vòng l p, nên danh sách các l p s& thay i theo th i gian T p h p ban
u c a các l p tìm ra ch a ch"c ã là t p h p cu i cùng c a các l p sau này s& c th c thi và bi n
i thành code Vì th , th ng ng i ta hay s d ng n khái ni m các l p ng c viên (Candidate
Class) miêu t t p h p nh ng l p u tiên c tìm ra cho h th ng
Nh ã nói trong ph n 2.10 (Th c hi n Tr ng h p s d ng), tr ng h p s d ng là nh ng l i miêu t
ch c n(ng c a h th ng, còn trách nhi m th c thi thu c v các i t ng c ng tác th c thi ch c n(ng
ó Nói m t cách khác, chúng ta i tìm các l p là ti n t i tìm gi i pháp cung c!p nh ng ng x
h ng ngo i ã c xác nh trong các tr ng h p s d ng
Có nhi u ph ng pháp khác nhau th c hi n công vi c ó Có ph ng pháp ngh ti n hành phân tích ph m vi bài toán, ch* ra t!t c các l p th c th (thu c ph m vi bài toán) v i m i quan h c a chúng
v i nhau Sau ó nhà phát tri n s& phân tích t ng tr ng h p s d ng và phân b trách nhi m cho các
l p trong mô hình phân tích (analysis model), nhi u khi s& thay i chúng ho c b sung thêm các l p
m i Có ph ng pháp ngh nên l!y các tr ng h p s d ng làm n n t ng tìm các l p, làm sao trong quá trình phân b trách nhi m thì mô hình phân tích c a ph m vi bài toán s& t ng b c t ng b c
c thi t l p
Trang 55.2.1 Phân tích ph m vi bài toán tìm l p
Quá trình phân tích ph m vi bài toán th ng c b"t u v i các khái ni m then ch t (Key
Abstraction), m t công c th ng c s d ng nh n di n và l#c ra các l p ng c viên (Candidate class)
a) Khái ni m then ch t:
Hãy l!y ví d m t nhà b(ng ABC, i u u tiên ta ngh+ t i là gì? Ti n! Bên c nh ó, ABC còn ph i có
nh ng th c th liên quan t i ti n nh sau:
Khách hàng
S n ph$m (các tài kho n c coi là các s n ph$m c a m t nhà b(ng)
L c l ng nhân viên Ban qu n tr nhà b(ng Phòng máy tính trong nhà b(ng
Nh ng th c th này c g#i là các khái ni m then ch t cho nh ng gì mà nhà b(ng có th có Khái
ni m then ch t ho c mang tính c!u trúc (structural) ho c mang tính ch c n(ng (functional) Th c th mang tính c!u trúc là nh ng th c th v t lý t ng tác v i nhà b(ng, ví d khách hàng Th c th mang tính ch c n(ng là nh ng ch c n(ng mà nhà b(ng ph i th c hi n, ví d duy trì m t tài kho n ho c chuy n ti n t tài kho n này sang tài kho n khác Khái ni m then ch t là các th c th ta ý n u tiên Chúng r!t quan tr#ng vì giúp ta:
nh ngh+a ranh gi i c a v!n Nh!n m nh n các th c th có liên quan n thi t k c a h th ng
Lo i b th c th n%m ngoài ph m vi h th ng Các khái ni m then ch t th ng s& tr thành các l p trong mô hình phân tích
M t khái ni m then ch t tóm l i là m t l p hay i t ng thu c chuyên ngành c a ph m vi bài toán Khi trình bày v i ng i s d ng, chúng có m t ánh x 1-1 gi a v i nh ng th c th liên quan t i ng i
s d ng nh hóa n, sec, gi!y ngh rút ti n, s ti t ki m, th/ rút ti n t ng, nhân viên thu ngân, nhân viên nhà b(ng, các phòng ban,…
T ng t nh v y, m c tr u t ng quá th!p c'ng d gây hi u l m, b i nh ng thông tin quá v n v t
ch a thích h p v i th i i m này Ví d nh ng quy t nh d ng:
Trang 6Form m tài kho n òi h i t!t c 15 Entry
Nh ng d li u trên Form này u ph i c c(n ph i
Không có nhi u ch ghi a ch* c a khách hàng trên Form
nên c dành cho các giai o n sau
Vài i m c n chú ý v khái ni m then ch t:
Nh ng th c th xu!t hi n u tiên trong óc não chúng ta là nh ng th c th d có kh n(ng tr thành khái ni m then ch t cho m t v!n nh tr c
M.i l n tìm th!y m t khái ni m then ch t m i, c n xem xét nó theo cách nhìn c a v!n , có th h i các câu h i sau :
Nh ng ch c n(ng nào có th c th c hi n i v i th c th này?
i u gì khi n nh ng th c th lo i này c t o ra?
N u không có câu tr l i thích h p, c n ph i suy ngh+ l i v th c th ó
M.i khái ni m then ch t m i c n ph i c t tên cho thích h p, miêu t úng ch c n(ng c a khái
ni m
b) Nh n d"ng l p và i t ng:
N"m v ng khái ni m l p, chúng ta có th t ng i d dàng tìm th!y các l p và i t ng trong ph m
vi v!n M t nguyên t"c thô s th ng c áp d ng là danh t4 trong các l i phát bi u bài toán
th ng là các ng c viên chuy n thành l p và i t ng
M t s g i ý th c t cho vi c tìm l p trong ph m vi v!n :
B c u tiên là c n ph i t p trung nghiên c u k,:
Các danh t trong nh ng l i phát bi u bài toán
Ki n th c chuyên ngành thu c ph m vi bài toán Các Tr ng h p s d ng
Ví d trong l i phát bi u "Có m t s tài kho n mang l i ti n lãi", ta th!y có hai danh t là tài kho n và
ti n lãi Chúng có th là các l p ti m n(ng cho mô hình nhà b(ng l/
Th hai, chúng ta c n chú ý n các nhóm v t th trong h th ng hi n th i nh :
Các th c th v t lý c a h th ng: nh ng v t th t ng tác v i h th ng, ví d khách hàng
Các v t th h u hình: các v t th v t lý mà ta có th nhìn và s th!y Ví d nh công c giao thông, sách v , m t con ng i, m t ngôi nhà,… Trong m t nhà b(ng ABC, ó có
th là t p sec, phi u ngh rút ti n, s ti t ki m, các lo i Form c n thi t
Trang 7Các s ki n (Events): M t chi c xe b h ng, m t cái c a c m ra Trong m t nhà b(ng là s áo h n m t tài kho n u t , hi n t ng rút quá nhi u ti n m t trong m t tài kho n bình th ng
Các vai trò (Role): Ví d nh m-, khách hàng, ng i bán hàng, … Trong m t nhà b(ng, vai trò có th là nhân viên, nhà qu n tr , khách hàng,
Các s t ng tác (Interactions): Ví d vi c bán hàng là m t chu.i t ng tác bao g m khách hàng, ng i bán hàng và s n ph$m Trong m t nhà b(ng, vi c m m t tài kho n
m i s& yêu c u m t chu.i t ng tác gi a nhân viên và khách hàng
V trí (Location): M t v t nào ó ho c m t ng i nào ó c gán cho m t v trí nào
ó Ví d : Ôtô i v i nhà xe Trong m t nhà b(ng ta có th th!y nhân viên thu ngân luôn ng c a s c a mình
n v t ch c (Organisation Unit): Ví d các phòng ban, phòng tr ng bày s n ph$m, các b ph n Trong m t nhà b(ng có th có b ph n tài kho n bình th ng, b ph n tài kho n ti t ki m, b ph n tài kho n u t
Bên c nh ó, còn nhi u câu h i khác giúp ta nh n d ng l p Ví d nh :
Ta có thông tin c n c l u tr ho c c n c phân tích không? N u có thông tin c n
ph i c l u tr , bi n i, phân tích ho c x lý trong m t ph ng th c nào ó thì ch"c ch"n ó s& là ng c viên cho l p Nh ng thông tin này có th là m t khái ni m luôn
c n ph i c ghi trong h th ng ho c là s ki n, giao d ch x y ra t i m t th i i m c
Có thi t b ngo i vi mà h th ng c a chúng ta c n x lý không? M.i thi t b k, thu t
c n i v i h th ng c a chúng ta th ng s& tr thành ng c viên cho l p x lý lo i thi t b ngo i vi này
Chúng ta có ph n công vi c t ch c không? Miêu t m t n v t ch c là công vi c
c th c hi n v i các l p, c bi t là trong các mô hình doanh nghi p
c) T ng k!t v các ngu$n thông tin cho vi c tìm l p:
Nhìn chung, các ngu n thông tin chính c n c bi t chú ý khi tìm l p là :
Các l i phát bi u yêu c u Các Tr ng h p s d ng
S tr giúp c a các chuyên gia ng d ng Nghiên c u h th ng hi n th i
Trang 8Lo t các l p u tiên c nh n d ng qua ây th ng c g#i là các l p ng c viên (Candidate Class) Ngoài ra, nghiên c u nh ng h th ng t ng t c'ng có th s& mang l i cho ta các l p ng c viên khác:
Khi nghiên c u h th ng hi n th i, hãy ý n các danh t và các khái ni m then ch t nh n ra l p
ng c viên Không nên a các l p ã c nh n di n m t l n n a vào mô hình ch* b i vì chúng c nh"c l i âu ó theo m t tên g#i khác Ví d , m t h th ng nhà b(ng có th coi cùng m t khách hàng
v i nhi u v trí khác nhau là nhi u khách hàng khác nhau C n chú ý khi phân tích nh ng l i miêu t
nh th tránh d n n s trùng l p trong quá trình nh n di n l p
Có nhi u ngu n thông tin mà nhà thi t k c n ph i chú ý t i khi thi t k l p và ch* khi làm nh v y, ta
m i có th tin ch"c v kh n(ng t o d ng m t mô hình t t Hình sau t ng k t các ngu n thông tin k trên
Hình 5.4 - Ngu n thông tin h tr tìm l p
Các tr ng h p s d ng là ngu n t t nh!t cho vi c nh n di n l p và i t ng C n nghiên c u k, các
Tr ng h p s d ng tìm các thu c tính (attribute) báo tr c s t n t i c a i t ng ho c l p ti m n(ng Ví d n u Tr ng h p s d ng yêu c u ph i a vào m t s tài kho n (account-number) thì i u này tr t i s t n t i c a m t i t ng tài kho n
M t ngu n khác nh n ra l p/ i t ng là các Input và Output c a h th ng N u Input bao g m tên khách hàng thì ây là tín hi u cho bi t s t n t i c a m t i t ng khách hàng, b i nó là m t attribute
Theo các b c k trên trong ph n u giai o n phân tích, ta ã miêu t c m t s l p khác nhau
Nh ng l p này c g#i là các l p ng c viên, chúng th hi n nh ng l p có kh n(ng t n t i trong
m t h th ng cho tr c M c dù v y, ây v n có th ch a ph i là k t qu chung cu c, m t s l p ng
c viên có th s& b lo i b trong các b c sau vì không thích h p
Giai o n u khi nh ngh+a các l p ng c viên, ta ch a nên c g"ng thanh l#c các l p, hãy t p trung cáo m c tiêu nghiên c u bao quát và toàn di n t nhi u ngu n thông tin khác nhau không b sót nhi u khía c nh c n x lý
Ví d trong nhà m t b(ng l/, các l p ng c viên có th là:
Trang 9Khách hàng Các lo i tài kho n khác nhau Sec, s ti t ki m, n, …
Phi u yêu c u m tài kho n m i Th/ ATM
B n in thông tin v tài kho n Gi!y ch ng nh n tài kho n u t Th/ x p hàng (Token), s th t Nhân viên
Nhân viên thu ngân
5.2.3 Lo i b$ các l p ng c viên không thích h p
Có r!t nhi u lo i l p ng c viên không thích h p c n ph i c lo i b :
L p d , th a: Khi có h n m t l p nh ngh+a cùng m t th c th , nên gi l i l p t t nh!t
và lo i b nh ng l p khác Ví d , trong m t nhà b(ng có hai l p ch tài kho n và khách hàng C hai l p bi u hi n cùng m t th c th và vì th ch* c n gi l i m t
L p không thích h p: L p nh ngh+a ra nh ng th c th không liên quan n v!n
th c t i M#i l p không xu!t phát t ph m vi ng d ng c n ph i c lo i b Ví d , l p
c a các máy m ti n bên casse trong m t nhà b(ng có th là m t ng c viên cho khái
th c coi là m t l p không rõ ràng (vì không có ch c n(ng rõ ràng trong h th ng
c n xây d ng tr c m"t)
T ng t , nh ng thu c tính và ph ng th c không rõ ràng c n ph i c lo i ra kh i danh sách các l p ng c viên Chúng không c n ph i b xoá h)n, nh ng c n c a
ra ngoài ta có th nhìn rõ các l p c n thi t ã c nh n di n Các ng x ó sau này
có th c gán cho các l p thích h p h n
Các l p ch* là vai trò (Role) i v i m t l p khác: Hãy lo i b t!t c các vai trò và gi
l i l p chính Ví d nhà qu n tr , nhân viên thu ngân, ng i ch y gi!y r!t có th ch* là vai trò c a l p nhân viên Hãy gi l i l p nhân viên và lo i b t!t c nh ng l p khác ch*
là vai trò
Trang 10M t l p không cung c!p ng x c n thi t ho c thu c tính c n thi t có th s& là l p không c n thi t Nhi u khi, có th có m t l p ch)ng cung c!p m t thu c tính ho c ng
x nào mà ch* nh ngh+a m t t p h p các m i quan h Nh ng l p nh th c n ph i
c nghiên c u k, xác nh s liên quan v i h th ng Ví d m t khách hàng có th
c nh ngh+a là khách hàng quan tr#ng hay khách hàng bình th ng tùy theo m i quan h mà anh ta có v i nhà b(ng trong t cách ch nhân tài kho n
T!t c nh ng công c xây d ng (Implementation constructs) ví d nh stack, arrays, link lists, … c n ph i c a ra kh i mô hình phân tích Chúng s& c dùng t i trong giai o n xây d ng ph n m m
M t l p có tên mang tính ng t có th n gi n ch* là m t hàm ch không ph i là m t
L p không có hàm là m t thi u sót trong mô hình V!n hàm thành ph n (ph ng
th c) c a l p này ch a c suy ngh+ th!u áo
5.3 L p và i t ng trong UML
UML th hi n l p b%ng hình ch nh t có 3 ph n Ph n th nh!t ch a tên l p Trong ph n th hai là thu c tính và các d li u thành ph n c a l p và trong ph n th ba là các ph ng th c hay hàm thành
ph n c a l p
5.3.1 Tên l p (class name)
Tên l p c in m (bold) và c(n gi a Tên l p ph i c d n xu!t t ph m vi v!n và rõ ràng nh
có th Vì th nó là danh t , ví d nh tài kho n, nhân viên,
5.3.2 Thu c tính (attribute)
L p có thu c tính miêu t nh ng c i m c a i t ng Giá tr c a thu c tính th ng là nh ng d ng
d li u n gi n c a ph n các ngôn ng l p trình h tr nh Integer, Boolean, Floats, Char, … Thu c tính có th có nhi u m c trông th!y c (visibility) khác nhau, miêu t li u thu c tính ó có
th c truy xu!t t các l p khác, khác v i l p nh ngh+a ra nó N u thu c tính có tính trông th!y là công c ng (public), thì nó có th c nhìn th!y và s d ng ngoài l p ó N u thu c tính có tính trông th!y là riêng (private), b n s& không th truy c p nó t bên ngoài l p ó M t tính trông th!y khác là
b o v (protected), c s d ng chung v i công c khái quát hóa và chuyên bi t hóa Nó c'ng gi ng
nh các thu c tính riêng nh ng c th z k b i các l p d n xu!t
Trong UML, thu c tính công c ng mang kí hi u "+" và thu c tính riêng mang d!u "-"
Giá tr c gán cho thu c tính có th là m t cách miêu t tr ng thái c a i t ng M.i l n các giá
tr này thay i là bi u hi n cho th!y có th ã x y ra m t s thay i trong tr ng thái c a i t ng
Trang 11L u ý: M#i c i m c a m t th c th là nh ng thông tin c n l u tr u có th chuy n thành thu c tính c a l p miêu t lo i th c th ó
5.3.3 Ph ng th c (method)
Ph ng th c nh ngh+a các ho t ng mà l p có th th c hi n T!t c các i t ng c t o t m t
l p s& có chung thu c tính và ph ng th c Ph ng th c c s d ng x lý thay i các thu c tính c'ng nh th c hi n các công vi c khác Ph ng th c th ng c g#i là các hàm (function), nh ng chúng n%m trong m t l p và ch* có th c áp d ng cho các i t ng c a l p này M t ph ng th c
c miêu t qua tên, giá tr tr v và danh sách c a 0 cho t i nhi u tham s Lúc thi hành, ph ng
th c c g#i kèm theo m t i t ng c a l p Vì nhóm các ph ng th c miêu t nh ng d ch v mà
l p có th cung c!p nên chúng c coi là giao di n c a l p này Gi ng nh thu c tính, ph ng th c c'ng có tính trông th!y c nh công c ng, riêng và b o v
Hình 5.5- M t l p v i các thu c tính tiêu bi u
Hình 5.6- M t l p v i các thu c tính chung và riêng
Hình 5.7- M t l p v i các thu c tính và gía tr m c nhiên
Trang 12Hình 5.8- M t l p g m các thu c tính v i gía tr m c nhiên và thu c tính ph m vi l p
Hình 5.9- M t thu c tính v i li t kê gía tr (status)
5.3.4 Kí hi u i t ng
i t ng là th c th c a các l p nên kí hi u dùng cho i t ng c'ng là kí hi u dùng cho l p
Hình 5.10-Ký hi u i t ng
Hình trên c #c nh sau: CAH là i t ng c a l p AccountHolder Các thu c tính c gán giá
tr , ây là các giá tr khi l p c th c th hóa Chú ý r%ng kí hi u i t ng không ch a ph n ph ng
th c
Trang 13Ph thu c (Dependency) Nâng c!p (Refinement)
M t liên h là m t s n i k t gi a các l p, c'ng có ngh+a là s n i k t gi a các i t ng c a các l p này Trong UML, m t liên h c nh ngh+a là m t m i quan h miêu t m t t p h p các n i k t (links), trong khi n i k t c nh ngh+a là m t s liên quan v ng ngh+a (semantic connection) gi a
m t nhóm các i t ng
Khái quát hóa là m i quan h gi a m t y u t mang tính khái quát cao h n và m t y u t mang tính chuyên bi t h n Y u t mang tính chuyên bi t h n có th ch a ch* các thông tin b sung M t th c th (m t i t ng là m t th c th c a m t l p) c a y u t mang tính chuyên bi t h n có th c s d ng b!t c n i nào mà i t ng mang tính khái quát hóa h n c phép
Trang 14S ph thu c là m t m i quan h gi a các y u t , g m m t y u mang tính c l p và m t y u t mang tính ph thu c M t s thay i trong y u t c l p s& nh h ng n y u t ph thu c
M t s nâng c!p là m i quan h gi a hai l i miêu t c a cùng m t s v t, nh ng nh ng m c tr u
t ng hóa khác nhau
5.5 Liên h (Association)
M t liên h là m t s n i k t gi a các l p, m t liên quan v ng ngh+a gi a các i t ng c a các l p tham gia Liên h th ng th ng mang tính hai chi u, có ngh+a khi m t i t ng này có liên h v i
m t i t ng khác thì c hai i t ng này nh n th!y nhau M t m i liên h bi u th b%ng các i
t ng c a hai l p có n i k t v i nhau, ví d r%ng "chúng bi t v nhau", " c n i v i nhau", "c m.i X
l i có m t Y", L p và liên h gi a các l p là nh ng công c r!t m nh m& cho vi c mô hình hóa các
h th ng ph c t p, ví d nh c!u trúc s n ph$m, c!u trúc v(n b n và t!t c các c!u trúc thông tin khác
M i liên k t c th hi n trong bi u UML b%ng m t ng th)ng n i hai l p (hình 4.18)
Hình 5.13-M t l p Author k t h p v i l p Computer
5.5.1 Vai trò trong liên h
M t liên h có th có các vai trò (Roles) Các vai trò c n i v i m.i l p bao ch a trong quan h Vai trò c a m t l p là ch c n(ng mà nó m nh n nhìn t góc nhìn c a l p kia Tên vai trò c vi t kèm
v i m t m'i tên ch* t h ng l p ch nhân ra, th hi n l p này óng vai trò nh th nào i v i l p mà m'i tên ch* n
Hình 5.14- Vai trò trong liên h gi a Customer và Account
Trong ví d trên: m t khách hàng có th là ch nhân c a m t tài kho n và tài kho n c chi m gi
b i khách hàng ng th)ng th hi n liên h gi a hai l p
M t s i m c n chú ý khi t tên vai trò :
• Tên vai trò có th b i n u trùng v i tên l p
• Tên vai trò ph i là duy nh!t
• Tên vai trò ph i khác v i các thu c tính c a l p
Trang 15• Tên vai trò ph i miêu t c ch c n(ng mà l p này m nh n trong quan h , t c
c n ph i là các khái ni m l!y ra t ph m vi v!n , gi ng nh tên các l p
5.5.2 Liên h m t chi u (Uni-Directional Association)
Ta c'ng có th s d ng m i liên h m t chi u b%ng cách thêm m t m'i tên và m t u c a ng th)ng n i k t M'i tên ch* ra r%ng s n i k t ch* có th c s d ng duy nh!t theo chi u c a m'i tên
Hình 5.15- Liên h m t chi u gi a Interest và Account
Bi u ph n 5.15 th hi n r%ng gi a hai l p có liên h , nh ng không h có thông tin v s l ng các
i t ng trong quan h Ta không th bi t m t khách hàng có th có bao nhiêu tài kho n và m t tài kho n có th là c a chung cho bao nhiêu khách hàng Trong UML, lo i thông tin nh th c g#i là s
l ng ph n t (Cardinality) trong quan h
5.5.3 S l ng (Cardinality) trong liên h
Hình 5.16- S l ng trong liên h gi a Customer và Account
Bi u trên nói rõ m t khách hàng có th m m t ho c nhi u tài kho n và m t tài kho n có th thu c
v m t cho t i ba khách hàng
S l ng c ghi phía u ng th)ng th hi n liên h , sát vào l p là mi n áp d ng c a nó Ph m
vi c a s l ng ph n t trong liên h có th t 0-t i-1 (0 1), 0-t i-nhi u (0 * hay ), m t-t i-nhi u (1 ),
hai (2), n(m-t i-m i m t (5 11) C'ng có th miêu t m t dãy s ví d (1,4,6, 8 12) Giá tr m c nh
là 1
Trang 16Hình 5.17- M t s l p tiêu bi u
Hình trên là ví d cho m t bi u l p tiêu bi u Bi u gi i thích r%ng b ph n d ch v tài kho n ti t
ki m c a m t nhà b(ng có th có nhi u tài kho n ti t ki m nh ng t!t c nh ng tài kho n này u thu c
v b ph n ó M t tài kho n ti t ki m v ph n nó l i có th có nhi u tài li u, nh ng nh ng tài li u này ch* thu c v m t tài kho n ti t ki m mà thôi M t tài kho n ti t ki m có th thu c v t 1 cho t i nhi u nh!t là 3 khách hàng M.i khách hàng có th có nhi u h n m t tài kho n
5.5.4 Phát hi n liên h
Th ng s& có nhi u m i liên h gi a các i t ng trong m t h th ng Quy t nh liên h nào c n ph i
c th c thi là công vi c th ôc giai o n thi t k Có th tìm các m i liên h qua vi c nghiên c u các
l i phát bi u v!n , các yêu c u Gi ng nh danh t ã giúp chúng ta tìm l p, các 'ng t4 ây s&
giúp ta tìm ra các m i quan h
M t vài l i mách b o khi tìm liên h :
V trí v m t v t lý ho c s thay th , i di n: M.i c m ng t xác nh hay
bi u l m t v trí u là m t bi u hi n ch"c ch"n cho liên h Ví d : t i a i m,
ng i trong, …
S bao ch a: C m ng t bi u l s bao ch a, ví d nh : là thành ph n c a Giao ti p: Có nhi u c m ng t bi u l s giao ti p, ví d truy n thông i p, nói chuy n v i, …
Quy n s h u: Ví d : thu c v , c a, … Tho mãn m t i u ki n: Nh ng c m t nh : làm vi c cho, là ch ng/v c a,
qu n tr , …
5.5.5 X lý các liên h không c n thi t
Sau khi tìm các m i liên h , b c ti p theo ó là phân bi c các liên h c n thi t ra kh i các liên h không c n thi t Liên h không c n thi t có th bao g m nh ng liên h bao ch a các l p ng c viên ã
Trang 17b lo i tr ho c các liên h không liên quan n h th ng Có nh ng liên h c t o ra nh%m m c ích t(ng hi u qu Nh ng liên h nh th là ví d tiêu ti u c a các chi ti t th c thi và không liên quan t i giai o n này
C n chú ý phân bi t gi a hành ng và m i liên h Ng i ta th ng có xu h ng miêu t hành ng
nh là liên h , b i c liên h l n hành ng u c d n xu!t t nh ng c m t mang tính ng t trong b n miêu t yêu c u Các hành ng ã c th hi n sai thành liên h c'ng c n ph i c lo i
b Khi làm vi c này, có th áp d ng m t nguyên t"c: liên h là n i k t mang tính t+nh gi a các i
t ng, trong khi hành ng ch* là thao tác x y ra m t l n Hành ng vì v y nên c coi là Ph ng
Hình 5.18- Lo i b các liên h không c n thi t
5.5.6 Nâng c p các m i liên h
M t khi các m i liên h c n thi t ã c nh n d ng, b c ti p theo là ngiên c u k, mô hình và nâng c!p các m i liên h ó
ng tác nâng c!p u tiên là xem xét l i tên liên h , tên vai trò, t l i cho úng v i b n ch!t quan h
mà chúng th hi n M.i liên h c n ph i c suy xét k, v ph ng di n s l ng thành ph n tham gia (Cardinality) S h n nh (Qualification) cho liên h óng m t vai trò quan tr#ng ây, b sung y u
t h n nh có th giúp làm gi m s l ng N u c n thi t, hãy b sung các liên h còn thi u Nghiên
c u k, các thu c tính, xem li u trong s chúng có thu c tính nào th t ra th hi n liên h N u có, hãy chuy n chúng thành liên h B sung các thông tin và i u ki n c n thi t c'ng nh xem xét các m i liên h trong mô hình t ng th xác nh các d ng quan h gi a chúng v i nhau
a) Liên h và y!u t h"n 1nh (Qualifier):
Trang 18M t liên h c h n nh liên h hai l p và m t y u t h n nh (Qualifier) v i nhau Y u t h n nh
là m t thu c tính h n ch s l ng thành ph n tham gia trong m t m i liên h Có th h n nh các m i liên h m t-t i nhi u và nhi u-t i-nhi u Y u t h n nh giúp phân bi t trong nhóm i t ng c a u nhi u c a liên h
Ví d m t th m c có nhi u t p tin.M t t p tin ch* thu c v m t th m c mà thôi Trong m t th m c xác nh, tên c a t p tin s& xác nh duy nh!t t p tin mang tên ó Th m c và T p tin là hai l p, và tên
t ptin ây óng vai trò y u t h n nh M t th m c và m t tên t p tin xác nh m t t p tin Y u t
h n nh ây ã chuy n m t m i liên h m t-t i-nhi u thành liên h m t-t i-m t
b) Liên h VÀ (AND Association):
Nhà b(ng n# a ra quy nh: khách hàng khi mu n m m t tài kho n ATM ph i là ch nhân c a ít nh!t m t tài kho n u t Trong m t tr ng h p nh th , m i liên h VÀ (AND) s& c th hi n nh sau:
Hình 5.20- Liên h VÀ (AND Association)
Bi u trên cho th!y m t khách hàng có th có nhi u h n m t tài kho n u t có th i h n và ch* m t tài kho n ATM Trong bi u có m t m i liên h VÀ ng m c áp d ng gi a nhóm tài kho n u t
và tài kho n ATM mà m t khách hàng có th có
c) Liên h HO5C (OR Association):
Ví d t i m t hãng b o hi m n#, cá nhân c'ng công ty u có th ký h p ng b o hi m, nh ng cá nhân và công ty không c phép có cùng lo i h p ng b o hi m nh nhau Trong m t tr ng h p
nh th , gi i pháp là s d ng liên h HO6C (OR Association) M t liên h HO6C là m t s h n ch
i v i m t nhóm hai hay nhi u liên h , xác nh r%ng i t ng c a m t l p này t i m t th i i m ch*
có th tham gia vào nhi u nh!t m t trong các m i liên h ó
Trang 19Hình 5.21- M t liên h OR mà bi u th ch* m t liên h là h p l t i m.i th i i m
Các m i n i k t (link) gi a các i t ng có m t tr t t ng m nh Giá tr m c nh c a tr t t này là
ng u nhiên M t liên h có tr t t rõ ràng có th c hi u là m t liên h v i tr t t* s)p x!p (sort
order) trong nhóm các n i k t, nó s& c th hi n nh sau:
Hình 5.22- Tài kho n ti t ki m c s"p x p theo khách hàng Nhãn {ordered} c ghi g n l p có i t ng c s"p x p Bi u trên c #c là các tài kho n
ti t ki m c s"p x p theo khách hàng
e) Liên h tam nguyên (Ternary Association)
Có th có nhi u h n hai l p n i k t v i nhau trong m t liên h tam nguyên
Trang 20Hình 5.23- Liên h Tam nguyên
Bi u trên c #c nh sau: M t khách hàng có th quan h v i b ph n u t và m t b ph n u
t có th có m t ho c nhi u khách hàng M t gi!y ch ng nh n tài kho n u t s& xu!t hi n qua quan
h gi a khách hàng và b ph n u t
f) L p liên h (Association Class):
M t l p có th c ính kèm theo m t liên h , trong tr ng h p này nó s& c g#i là m t l p liên h
M t l p liên h không c n i t i b!t k0 m t l p nào c a m i liên h , mà t i chính b n thân m i liên
h C'ng gi ng nh m t l p bình th ng, l p liên h có th có thu c tính, Ph ng th c và các quan h khác L p liên h c s d ng b sung thêm thông tin cho n i k t (link), ví d nh th i i m n i
k t c thi t l p M.i n i k t c a liên h g"n li n v i m t i t ng c a l p liên h
Ví d sau miêu t m t h th ng thang máy B ph n i u khi n ch* huy b n thang máy Cho m.i n i
k t gi a nhóm thang máy và b ph n i u khi n có m t hàng x p (queue) M.i hàng l u tr nh ng y u
c u k c t phía b ph n i u khi n l n t phía thang máy (nh ng nút b!m bên trong thang) Khi b
ph n i u khi n ch#n m t thang máy th c hi n m t l i yêu c u n t m t hành khách ng ngoài thang máy (m t hành khách trên hành lang), nó s& #c các hàng và ch#n thang máy nào có hàng yêu
c u ng"n nh!t
Hình 5.24- L p liên h (Association class)
Trang 21g) Liên h quy (Recursive Association):
Có th liên k t m t l p v i b n thân nó trong m t m i liên h M i liên h ây v n th hi n m t s liên quan ng ngh+a, nh ng các i t ng c n i k t u thu c chung m t l p M t liên h c a m t
l p v i chính b n thân nó c g#i là m t liên h quy, và là n n t ng cho r!t nhi u mô hình ph c
t p, s d ng ví d miêu t các c!u trúc s n ph$m Hình 5.25 ch* ra m t ví d c a liên h quy và hình 5.26 là m t bi u i t ng cho bi u l p trong hình 5.25
mu n t o nên m t th c th m i b%ng cách t p h p các th c th t n t i v i nhau M t ví d tiêu bi u c a
k t t p là chi c xe ô tô g m có b n bánh xe, m t ng c , m t khung g m, m t h p s , v.v
Trang 22Quá trình ghép các b ph n l i v i nhau t o nên th c th c n thi t c g#i là s k t t p Trong quá trình tìm l p, k t t p s& c chú ý t i khi g p các lo i ng t “ c t o b i", "g m có", … Quan h
k t t p không có tên riêng Tên ng m ch a trong nó là "bao g m các thành ph n"
Trang 23Trong tr ng h p tài kho n k trên, m t trong các b ph n c a nó là các chi ti t v khách hàng Các chi
ti t v khách hàng l i bao g m danh sách ch tài kho n, danh sách a ch*, các quy nh v k0 h n c'ng
nh các chi ti t khác khi m tài kho n
Nhìn chung, n u các l p c n i k t v i nhau m t cách ch t ch& qua quan h "toàn th – b ph n" thì
ng i ta có th coi quan h là k t t p Không có l i h ng d n ch"c ch"n và rõ ràng cho vi c bao gi nên dùng k t t p và bao gi nên dùng liên h M t l i ti m c n nh!t quán i kèm v i nh ng ki n th c sâu s"c v ph m vi v!n s& giúp nhà phân tích ch#n gi i pháp úng "n
5.7 Khái quát hóa và chuyên bi t hóa (Generalization & Specialization)
Hãy quan sát c!u trúc l p trong bi u sau:
Trang 24Hình 7.1- Chuyên bi t hoá (Specialization)
Trong hình trên, tài kho n là khái ni m chung c a các lo i tài kho n khác nhau và ch a nh ng c t
c n thi t cho t!t c các lo i tài kho n Ví d nh nó có th ch a s tài kho n và tên ch tài kho n Ta có
th có hai lo i tài kho n c bi t suy ra t d ng tài kho n chung này, m t lo i mang tính k0 h n và m t
lo i mang tính giao d ch Y u t chia cách hai l p này v i nhau là các quy nh chuyên ngành hay úng
h n là ph ng th c ho t ng c a hai lo i tài kho n
T ng t nh v y, tài kho n u t trung h n và dài h n l i là nh ng khái ni m chuyên bi t c a khái
ni m tài kho n có k0 h n M t khác, tài kho n bình th ng và tài kho n ti t ki m là nh ng tr ng h p
c bi t c a lo i tài kho n giao d ch
Lo i c!u trúc l p nh th c g#i là m t c!u trúc hình cây ho c c!u trúc phân c!p Khi chúng ta d ch chuy n t i m xu!t phát c a cây xu ng d i, chúng ta s& g p các khái ni m càng ngày càng c chuyên bi t hóa nhi u h n Theo con ng i t tài kho n n tài kho n ti t ki m, ta s& ph i i qua
l p tài kho n giao d ch L p này ti p t c phân lo i các l p chuyên bi t hóa cao h n, tùy thu c vào ch c n(ng c a chúng
5.7.1 Kí hi u khái quát hóa và chuyên bi t hóa
Trong bi u trên, các l p trong m t c!u trúc cây c n i v i nhau b%ng m t m'i tên r.ng , ch* t
l p chuyên bi t h n t i l p khái quát h n
Hình 7.2- Khái quát hóa
Trang 25Quá trình b"t u v i m t l p khái quát s n xu!t ra các l p mang tính chuyên bi t cao h n c g#i
là quá trình chuyên bi t hoá (Specialization)
Chuyên bi t hóa: là quá trình tinh ch m t l p thành nh ng l p chuyên bi t h n Chuyên bi t hóa b
sung thêm chi ti t và c t cho l p k t qu L p mang tính khái quát c g#i là l p cha (superclass),
k t qu chuyên bi t hóa là vi c t o ra các l p con (Subclass)
M t khác, n u chúng ta i d#c c!u trúc cây t d i lên, ta s& g p các l p ngày càng mang tính khái quát cao h n - Ví d t l p tài kho n ti t ki m lên t i l p tài kho n Con ng b"t u t m t l p chuyên
bi t và khi n nó ngày càng mang tính khái quát cao h n c g#i là quá trình khái quát hóa (Generalization) L p chuyên bi t ây c g#i là l p con, trong ví d trên là tài kho n ti t ki m, trong khi l p khái quát k t qu c g#i là l p cha
Chuyên bi t hóa và khái quát hóa là hai con ng khác nhau xem xét cùng m t m i quan h
M t l p là l p con c a m t l p này có th óng vài trò là m t l p cha c a l p khác
Trong mô hình i t ng, không nh!t thi t ph i nêu b t y u t phân bi t Y u t phân bi t luôn có m t trong m t c!u trúc phân c!p l p cha/ con, dù có c nh!n m nh trong mô hình i t ng hay không
Trang 26M c d u v y, m b o cho m t mô hình c nh ngh+a rõ ràng, trình bày y u t phân bi t v n luôn là công vi c nên th c hi n
a) L p tr4u t ng:
Quan sát c!u trúc trong hình trên, ta th!y l p tài kho n s& không bao gi c th c th hóa, có ngh+a là
h th ng s& không bao gi t o ra các i t ng thu c l p này Nguyên nhân là vì l p tài kho n mang tính khái quát cao n m c vi c kh i t o l p này s& không có m t ý ngh+a nào áng k L p tài kho n m c dù v y v n óng m t vai trò quan tr#ng trong vi c khái quát hóa các thu c tính s& c c n
n trong các l p d n xu!t t nó Nh ng lo i l p nh th c dùng cung c!p m t cây c!u trúc l p
và không có s t n t i y ý ngh+a trong m t mô hình th t s ngoài i, chúng c g#i là l p tr4u
tr ng (abstract class)
b) T"o l p tr4u t ng:
Các l p tr u tr ng là k t qu c a quá trình khái quát hóa Hãy quan sát ví d c!u trúc l p sau ây
L p tài kho n ng u cây c!u trúc và c g#i là l p c(n b n L p c(n b n c a m t cây c!u trúc
ch a nh ng thu c tính ã c khái quát hóa và có th c áp d ng cho m#i l p d n xu!t t nó Trong quá trình khái quát hóa, các thu c tính c dùng chung trong các l p chuyên bi t c a lên
l p cha L p cha v cu i c t o b i các thu c tính chung c a t!t c các l p d n xu!t t nó Nh ng
l p cha d ng nh v y trong r!t nhi u tr ng h p s& mang tính khái quát tuy t i và s& không theo
u i m c ích kh i t o, chúng có l i ng x gi ng nh m t thùng ch a (container) cho t!t c các thu c tính chung c a các l p d n xu!t Nh ng l p nh th trong tr ng h p chung th ng là k t qu ánh x
c a nh ng danh t tr u t ng, là h qu c a ph ng pháp s d ng các danh t nh n di n l p
Hình 7.4- T o l p tr u t ng
Bi u trên cho ta m t ví d v khái quát hóa và các thu c tính chung, nó ch* ra nhi u l p chuyên bi t Chú ý r%ng c theo m.i m c chuyên bi t hóa l i có thêm các thu c tính c b sung thêm cho các
l p, khi n chúng mang tính chuyên bi t cao h n so v i các l p cha m c tr u t ng bên trên Ví d
l p tài kho n có thu c tính là s tài kho n và tên khách hàng ây là nh ng thu c tính h t s c chung chung T!t c các l p d n xu!t t nó, dù là tr c ti p hay gián ti p ( các m c tr u t ng th!p h n
n a), u có quy n s d ng các thu c tính ó c a l p tài kho n Các l p tài kho n có k0 h n và tài
Trang 27kho n giao d ch là hai l p chuyên bi t d n xu!t t l p tài kho n Chúng có nh ng thu c tính chuyên
bi t riêng c a chúng - ví d m c th i gian (duration) i v i l p tài kho n có k0 h n và m c ti n t i thi u i v i l p tài kho n giao d ch – bên c nh hai thu c tính s tài kho n và tên khách hàng mà chúng th a k t l p tài kho n C'ng t ng t nh th v i tài kho n u t ng"n h n và tài kho n u
t trung h n là các lo i l p thu c tài kho n có k0 h n, tài kho n ti t ki m và tài kho n bình th ng là các lo i l p thu c l p tài kho n giao d ch
c) L p c( th (concrete class):
L p c th là nh ng l p có th th c th hóa Nh ã nói t tr c, các l p c th khi th c th hóa c g#i là các i t ng Trong ví d trên, các l p tài kho n u t ng"n h n và tài kho n u t dài h n có
th c th c th hóa thành i t ng T ng t i v i tài kho n ti t ki m và tài kho n bình th ng
d) T ng k!t v phát tri n cây c,u trúc:
C ch dùng chung thu c tính và th t c s d ng nguyên t"c khái quát hóa c g#i là tính th4a k! (inheritance) S d ng tính th a k tinh ch (refine) các l p s& d n t i vi c phát tri n m t cây c!u
trúc Nên phát hi n nh ng ng x (behaviour) chung trong m t lo t l p r i th hi n nó thành m t l p cha S khác bi t trong ng x c a cùng m t l p s& d n t i vi c t o ra các l p con
Khi phát tri n cây c!u trúc, hãy quan sát ng x c a các l p Trong tr ng h p có m t liên h t n t i t
m t l p c th n t!t c các l p con c a m t l p cha, nên d ch chuy n liên h này lên l p cha
N u t n t i m t liên h gi a m t l p nào ó và m t l p cha, hãy chuyên bi t hóa và nâng cao c!u trúc xác nh xem li u liên h này có c áp d ng cho t!t c các l p con c a l p cha n# hay không N u
có thì gán nó vào l p cha, n u không thì d ch xu ng cho nh ng l p con phù h p
Trong khi ti n hành khái quát hóa, tr#ng tâm công vi c là xác nh các ng x chung trong m t nhóm nhi u l p chuyên bi t b c trung Khi ã xây d ng c m t th t c ho c m t thu c tính chung, nên
ki m tra l i xem chúng có th t s là y u t chung c a t!t c các l p chuyên bi t trong ph m vi này Khái quát hóa c áp d ng ch* khi chúng ta có m t t p h p các l p nh ngh+a m t lo i i t ng riêng bi t và có m t s l ng l n các ng x chung Tr#ng tâm ây là t o nên l p cha ch a các ng
x chung ó
Khi chuyên bi t hóa, ta i tìm các s khác bi t trong ng x t o các l p con thích ng Có ngh+a là
ta xem xét m t l p t n t i, ki m tra xem có ph i t!t c các ng x c a nó u có kh n(ng áp d ng cho m#i i t ng N u không, ta l#c ra ng x không ph i lúc nào c'ng c n thi t và chia tr ng h p nó ra thành các l p con Tr#ng tâm c a chuyên bi t hóa là t o các l p con
V i c ch th a k , m t l p con s& k th a m#i thu c tính à th t c c a t!t c các l p cha c a nó Hình sau làm rõ vi c t o c!u trúc l p s d ng tính khái quát
Trang 28Hình 7.5- Phát tri n h th ng l p (1)
Th ng x y ra tr ng h p t!t c các l p con cùng tham gia vào m t liên h ho c k t t p Trong tr ng
h p này nên t o l p cha nh ngh+a liên h /k t t p ó Hình sau gi i thích thêm i m này:
Hình 7.6- Phát tri n h th ng l p (2)
5.8 Quan h ph( thu'c và nâng c,p (Dependency & Refinement)
Bên c nh liên h và khái quát hóa, UML còn nh ngh+a hai lo i quan h khác Quan h ph( thu'c
(Dependency) là m t s liên quan ng ngh+a gi a hai ph n t mô hình, m t mang tính c l p và m t
mang tính ph thu c M#i s thay i trong ph n t c l p s& nh h ng n ph n t ph thu c Ph n
t mô hình ây có th là m t l p, m t gói (package), m t tr ng h p s d ng, v.v Có th nêu m t vài cí d cho s ph thu c nh : m t l p l!y tham s là i t ng c a m t l p khác, m t l p truy nh p
m t i t ng toàn c c c a m t l p khác, m t l p g#i m t th t c thu c thu c m t l p khác Trong t!t
Trang 29c các tr ng h p trên u có m t s ph thu c c a m t l p này vào m t l p kia, m c dù chúng không
có liên h rõ ràng v i nhau
Quan h ph thu c c th hi n b%ng ng th)ng g ch r i (dashed line) v i m'i tên (và có th thêm
m t nhãn) gi a các ph n t mô hình N u s d ng nhãn thì nó s& là m t khuôn m u (stereotype), xác
nh lo i ph thu c Hình sau ch* ra m t s ph thu c d ng "friend", có ngh+a r%ng m t ph n t mô hình nh n c quy n truy c p c bi t t i c!u trúc n i b c a ph n t th hai (th m chí t i c nh ng
ph n mang tính nhìn th!y là private)
Hình 8.1- M t quan h ph thu c gi a các l p Nâng c,p (Refinement) là m t quan h gi a hai l i miêu t c a cùng m t s v t, nh ng nh ng m c
tr u t ng hóa khác nhau Nâng c!p có th là m i quan h gi a m t lo i i t ng và l p th c hi n
nó Các nâng c!p th ng g p khác là quan h gi a m t l p phân tích (trong mô hình phân tích) và m t
l p thi t k (trong mô hình thi t k ) u mô hình hóa cùng m t th , quan h gi a m t l i miêu t có
m c tr u t ng hóa cao và m t l i miêu t có m c tr u t ng hóa th!p (ví d m t b c tranh khái quát
c a m t s c ng tác ng và m t bi u chi ti t c a c'ng c ng tác ó) Quan h nâng c!p còn c s
d ng mô hình hóa nhi u m c th c thi c a cùng m t th (m t th c thi n gi n và m t th c thi ph c
Ch* ra m i liên quan gi a các mô hình nhi u m c tr u t ng khác nhau
Ch* ra m i liên quan gi a các mô hình nhi u giai o n khác nhau (phân tích yêu c u, phân tích, thi t k , th c thi, )
H tr vi c qu n tr c!u hình
H tr vi c theo dõi trong mô hình