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ý.
Khá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 ni m l p không thích h p.
L p không rõ ràng: L p không có ch c n(ng c th c g#i là các l p không rõ ràng. L p t n t i và có giá tr s d ng trong m t h th ng là l p có m t ch c n(ng ã c nh n di n và xác nh rõ ràng. Các l p không rõ ràng c n ph i c nh ngh+a l i ho c lo i b . Ví d quan sát nhi u b ph n khác nhau trong m t nhà b(ng ABC. M t trong nh ng b ph n ã c nh n di n có th là b ph n hành chính. Vì ph m vi cho quá trình vi tính hóa c a nhà b(ng hi n th i ch a bao g m m ng hành chính nên l p này có 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*
M 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. Ví d "rút ti n" không c n ph i c coi là m t l p, nó có th là ch c n(ng c a m t l p.
L p ch* có m t hàm ho c ch* là s miêu t vi c th c hi n m t ch c n(ng nào ó có th n gi n ch* là m t hàm, ho c quá trình tr u t ng hóa d li u (data abstraction) ây ch a c th c hi n y .
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.
L 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.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.
Hình 5.11- Các d!u hi u hành ng
Hình 5.12- Các giá tr m c nhiên c a tham s
5.4. Quan h gi#a các l p
Bi u l p th hi n các l p và các m i quan h gi a chúng. Quan h gi a các l p g m có b n lo i: Liên h (Association)
Khái quát hóa (Generalization) Ph 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
S 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 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.
Hì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