CH NG 4 : MƠ HÌNH HĨA USE CASE
6.4. S* kin và thông ip (Event & Message)
6.4.1. S ki n (Event)
M t trong nh ng thành ph n quan tr#ng b c nh!t c a m t i t ng là s ki n. M t s ki n là m t s kích thích c g i t i t ng này sang i t ng khác.
M t s ki n là m t vi c s& x y ra và có th gây ra m t hành ng nào ó. Ví d nh khi b n b!m lên
CD và nói chung là dàn CD-Player ho t ng t t). S ki n ây là b n nh!n lên nút Play, và hành
ng ây là b"t u ch i nh c. N u có m t s n i k t c nh ngh+a rõ ràng gi a s ki n và hành ng, ng i ta g#i nó là quan h nhân qu (Causality). Trong công ngh ph n m m, chúng ta th ng ch* mơ hình hóa các h th ng mang tính nhân qu , n i s ki n và hành ng c n i k t v i nhau. M t ph n ví d c a quan h nhân qu : b n lái xe trên xa l v i t c quá nhanh, c nh sát ng(n xe l i. ây không ph i là nhân qu b i hành ng ng(n b n l i c a c nh sát không ch"c ch"n bao gi c'ng x y ra; vì th mà khơng có m t s n i k t c nh ngh+a rõ ràng gi a s ki n (lái xe quá nhanh) và hành ng (ng(n xe). Trong mô hình hóa, v y là ta quan tâm n s ki n theo ngh+a là b!t k0 hành
ng nào khi n h th ng ph n ng theo m t cách nào ó.
Quan sát ví d m t nhà b(ng l/, ta có m t vài ví d v s ki n nh sau: i n m t t gi!y yêu c u rút ti n.
S áo h n m t tài kho n u t có k0 h n. K t thúc m t h p ng tr c k0 h n.
i n m t gi!y yêu c u m tài kho n. UML bi t n t!t c b n lo i s ki n:
M t i u ki n tr thành c th a mãn (tr thành úng) Nh n c m t tín hi u ngo i t m t i t ng khác
Nh n c m t l i g#i th t c t m t i t ng khác (hay t chính i t ng ó). M t kho ng th i gian xác nh tr c trôi qua.
Xin chú ý r%ng c các l.i x y ra c'ng là s ki n và có th mang tính h u d ng r!t l n i v i mơ hình.
a) S ki n c l#p và s ki n ph thu c:
Các s ki n có th mang tính c l p hay liên quan n nhau. Có m t s s ki n, theo b n ch!t, ph i i tr c ho c là x y ra sau các s ki n khác. Ví d :
i n các chi ti t trong m t t yêu c u rút ti n m t s& d n t i vi c nh n c m t s th/
x p hàng.
S áo h n c a m t tài kho n u t có k0 h n s& d n n ng tác gia h n ho c rút ti n m t.
i n các chi ti t trong m t gi!y yêu c u m tài kho n s& d n t i vi c ph i n p m t kho n ti n t i thi u (theo quy nh) vào tài kho n.
Các s ki n c l p là nh ng s ki n không c n i k t v i nhau trong b!t k0 m t ph ng di n nào. Ví d :
Rút ti n m t và a ti n vào tài kho n là các s ki n c l p v i nhau.
K t thúc tr c k0 h n m t tài kho n u t và vi c m m t tài kho n u t có k0 h n khác là c l p v i nhau.
Các s ki n c l p cịn có th c g#i là các s ki n song song hay ng th i. B i chúng không ph thu c vào nhau, nên các s ki n này có th x y ra t i cùng m t th i i m.
Trong nhi u tr ng h p, m t s ki n riêng l/ trong ph m vi v!n s& c chuy n t i thành nhi u s ki n trong h th ng. Ví d : a gi!y yêu c u rút ti n m t cho nhân viên phát th/ x p hàng s& có k t qu là m t lo t các s ki n n i ti p.
Có nh ng tình hu ng n i m t s ki n riêng l/ s& c nh n b i nhi u i t ng khác nhau và khi n cho chúng ph n ng thích h p. Ví d nh m t l i ngh ng(n m t t séc có th ng th i c g i
n cho nhân viên thu ngân và nhân viên ki m tra séc.
b) S* ki n n'i (internal) và s* ki n ngo"i (external):
S ki n n i là các s ki n x y ra trong n i b h th ng. ây là các s ki n do m t i t ng này gây ra i v i i t ng khác. Ví d , tính tốn ti n lãi cho m t tài kho n u t có k0 h n s& c n i b h th ng th c hi n, tuân theo m t i t ng quan sát ngày tháng.
S ki n ngo i là nh ng s ki n c kích nên t phía bên ngồi biên gi i c a h th ng, ví d nh s k t thúc tr c k0 h n m t tài kho n u t .
c) S* ki n và l p s* ki n:
L p s ki n i v i s ki n c'ng nh l p i v i i t ng bình th ng. L i nh ngh+a xác nh m t lo i s ki n c g#i là m t l p s ki n.
L p s ki n ngồi ra cịn có th c phân lo i:
Các tín hi u n gi n: L p s ki n trong tr ng h p này s& c th c th hóa ch* ra m t s ki n ho c là m t tín hi u c a m t s ki n.
Các s ki n chuy n t i d li u: th ng thì m t s ki n có kh n(ng và chuy n t i d li u. T!t
c các s ki n c n ph i "bi t n” các i t ng s& nh n c s ki n này. Thông tin v ng i nh n s ki n c g#i là thơng tin nh n di n. Nói m t cách khác, y u t nh n di n xác nh các i t ng s& nh n s ki n. Bên c nh ó, cịn có th có các d li u b sung thu c v các i t ng khác, không nh!t thi t ph i là i t ng g i hay nh n s ki n.
V m t nguyên t"c, các s ki n thu c d ng phát tin (Broadcast) s& c truy n n cho t!t c các i t ng. N u s ki n này là không quan tr#ng i v i i t ng nào ó trong tr ng thái hi n th i c a nó thì i t ng s& b qua s ki n.
6.4.2. Thông i p (Message)
Trong l p trình h ng i t ng, m t t ng tác gi a hai i t ng c th c thi d i d ng thông i p c g i t i t ng này sang i t ng khác. Trong ng c nh này, y u t quan tr#ng là không nên hi u danh t "thông i p” quá chính xác theo ngh+a v(n h#c bình th ng. M t thơng i p ây th ng c th c hi n qua m t l nh g#i th t c n gi n (m t i t ng này g#i m t th t c c a m t i t ng khác); khi th t c ã c th c hi n xong, quy n i u khi n c trao tr v cho i t ng g#i th t c cùng v i giá tr tr v . M t thông i p m t khác c'ng có th là m t thông i p th c th c g i qua m t s c ch giao ti p nào ó, ho c là qua m ng ho c là n i b trong m t máy tính, ây là
i u th ng x y ra trong các h th ng th i gian th c. Thông i p c th hi n trong t!t c các lo i bi u ng (tu n t , c ng tác, ho t ng và tr ng thái) theo ý ngh+a là s giao ti p gi a các i t ng. M t thông i p c v& là m t c th)ng v i m'i tên n i gi a i t ng g i và i t ng nh n thông i p. Lo i m'i tên s& ch* rõ lo i thông i p.
Hình 6.3 ch* rõ các lo i thông i p c s d ng trong UML.
Hình 6.3- Các ký hi u c a các ki u thông i p
Thông i p n gi n (simple): Ch* miêu t n gi n chi u i u khi n. Nó ch* ra quy n i u
khi n c trao t i t ng này sang cho i t ng khác mà không kèm thêm l i miêu t b!t k0 m t chi ti t nào v s giao ti p ó. Lo i thơng i p này c s d ng khi ng i ta không bi t các chi ti t v giao ti p ho c coi chúng là không quan tr#ng i v i bi u .
Thông i p ng b (synchronous): th ng c th c thi là m t l nh g#i th t c. Th t c x lý thông i p này ph i c hoàn t!t (bao g m b!t k0 nh ng thông i p nào c l ng vào trong, c g i nh là m t thành ph n c a s x lý) tr c khi i t ng g#i ti p t c th c thi. Quá trình tr v có th c ch* ra d i d ng thông i p n gi n.
Thông i p không ng b (asynchronous): ây là d ng i u khi n trình t khơng ng b ,
n i khơng có m t s tr v i v i i t ng g#i và n i i t ng g i thông i p ti p t c quá trình th c thi c a mình sau khi ã g i thơng i p i, không ch cho t i khi nó c x lý xong. Lo i thông i p này th ng c s d ng trong các h th ng th i gian th c, n i các i t ng th c thi ng th i.
Thông i p n gi n và thơng i p ng b có th c k t h p v i nhau trong ch* m t ng th)ng ch* thông i p v i m'i tên ch* thông i p ng b m t phía và m'i tên ch* thông i p n gi n phía kia. i u này ch* rõ r%ng s tr v c x y ra h u nh ngay l p t c sau l nh g#i hàm.
6.5. Bi u $ tu n t* (Sequence Diagram)
Bi u tu n t minh h#a các i t ng t ng tác v i nhau ra sao. Chúng t p trung vào các chu.i thơng i p, có ngh+a là các thơng i p c g i và nh n gi a m t lo t các i t ng nh th nào. Bi u tu n t có hai tr c: tr c n%m d#c ch* th i gian, tr c n%m ngang ch* ra m t t p h p các i t ng. M t bi u tu n t c'ng nêu b t s t ng tác trong m t c nh k ch (scenario) – m t s t ng tác s& x y ra t i m t th i i m nào ó trong q trình th c thi c a h th ng.
T các hình ch nh t bi u di n i t ng có các ng g ch r i (dashed line) th)ng ng bi u th ng i i t ng, t c là s t n t i c a i t ng trong chu.i t ng tác. Trong kho ng th i gian này, i t ng c th c th hóa, s2n sàng g i và nh n thông i p. Quá trình giao ti p gi a các i t ng c th hi n b%ng các ng th)ng thông i p n%m ngang n i các ng i i t ng. M.i tên
u ng th)ng s& ch* ra lo i thông i p này mang tính ng b , khơng ng b hay n gi n.
#c bi u tu n t , hãy b"t u t phía bên trên c a bi u r i ch y d#c xu ng và quan sát s trao i
thông i p gi a các i t ng x y ra d#c theo ti n trình th i gian.
Ví d hãy quan sát m t c nh k ch rút ti n m t t i m t máy ATM c a m t nhà b(ng l/:
Hình 6.4- Bi u c nh k ch rút ti n m t t i máy ATM
Bi u trên có th c di n gi i theo trình t th i gian nh sau:
Có ba l p tham gia c nh k ch này: khách hàng, máy ATM và tài kho n. Khách hàng a yêu c u rút ti n vào máy ATM
i t ng máy ATM yêu c u khách hàng cung c!p mã s Mã s c g i cho h th ng ki m tra tài kho n
i t ng tài kho n ki m tra mã s và báo k t qu ki m tra n cho ATM ATM g i k t qu ki m tra này n khách hàng
ATM g i s ti n c n rút n cho tài kho n
i t ng tài kho n tr s ti n ó vào m c ti n trong tài kho n. T i th i i m này, chúng ta th!y có m t m'i tên quay tr l i ch* vào i t ng tài kho n. Ý ngh+a c a nó là i t ng tài kho n x lý yêu c u này trong n i b i t ng và không g i s ki n ó ra ngồi.
i t ng tài kho n tr v m c ti n m i trong tài kho n cho máy ATM.
i t ng ATM tr v m c ti n m i trong tài kho n cho khách hàng và d+ nhiên, c l ng ti n khách hàng ã yêu c u c rút.
i t ng tài kho n ch* b"t u c sinh ra khi i t ng ATM c n t i nó ki m tra mã s và i t ng tài kho n ti p t c s ng cho t i khi giao d ch c hồn t!t. Sau ó, nó ch t i. B i khách hàng có th mu n ti p t c th c hi n các giao d ch khác nên i t ng khách hàng và i t ng máy ATM v n ti p t c t n t i, i u này c ch* ra qua vi c các ng i i t ng c kéo v t quá ng th)ng th hi n s ki n cu i cùng trong chu.i t ng tác.
Lo i t ng tác này là r!t h u d ng trong m t h th ng có m t s l ng nh các i t ng v i m t s l ng l n các s ki n x y ra gi a chúng. M c dù v y, khi s l ng các i t ng trong m t h th ng t(ng lên thì mơ hình này s& khơng cịn m!y thích h p.
có th v& bi u tu n t , u tiên hãy xác nh các i t ng liên quan và th hi n các s ki n x y ra gi a chúng.
Khi v& bi u tu n t , c n chú ý:
S ki n c bi u di n b%ng các ng th)ng n%m ngang. i t ng b%ng các ng n%m d#c.
Th i gian c th hi n b%ng ng th)ng n%m d#c b"t u t trên bi u . i u ó có ngh+a là các s ki n c n ph i c th hi n theo úng th t mà chúng x y ra, v& t trên xu ng d i.
6.6. Bi u $ c'ng tác (Collaboration Diagram)
M t bi u c ng tác miêu t t ng tác gi a các i t ng c'ng gi ng nh bi u tu n t , nh ng nó t p trung tr c h t vào các s ki n, t c là t p trung ch y u vào s t ng tác gi a các i t ng.
Trong m t bi u c ng tác, các i t ng c bi u di n b%ng kí hi u l p. Th t trong bi u c ng tác c th hi n b%ng cách ánh s các thông i p. K, thu t ánh s c coi là h i có ph n khó hi u h n so v i k, thu t m'i tên s d ng trong bi u tu n t . Nh ng u i m c a bi u c ng tác là nó có th ch* ra các chi ti t v các l nh g#i hàm (th t c), y u t c né tránh trong bi u tu n t . Bi u sau ây là m t ví d cho m t bi u c ng tác, c chu$n b c'ng cho m t c nh k ch rút ti n m t nh trong bi u tu n t c a ph n tr c. Hãy quan sát các th t s trong bi u . u tiên th t c WithdrawalReq() c g#i t l p khách hàng. ó là l nh g#i s 1. B c ti p theo trong tu n t là hàm AskForPin(), s 1.1, c g#i t l p ATM. Thông i p trong bi u c vi t d i d ng pin:= AskForPin(), th hi n r%ng "giá tr tr v " c a hàm này chính là mã s mà l p khách hàng s& cung c!p.
Hình cung bên l p tài kho n bi u th r%ng hàm ComputeNetBalance() c g#i trong n i b l p tài kho n và nó x lý c c b . Th ng thì nó s& là m t th t c riêng (private) c a l p.
Hình 6.5- M t bi u c ng tác c a kích c nh rút ti n máy ATM
6.7. Bi u $ tr"ng thái (State Diagram)
Bi u tr ng thái n"m b"t vòng i c a các i t ng, các h th ng con (Subsystem) và các h th ng. Chúng cho ta bi t các tr ng thái mà m t i t ng có th có và các s ki n (các thông i p nh n c, các kho ng th i gian ã qua i, các l.i x y ra, các i u ki n c th a mãn) s& nh h ng n nh ng tr ng thái ó nh th nào d#c theo ti n trình th i gian. Bi u tr ng thái có th ính kèm v i t!t c các l p có nh ng tr ng thái c nh n di n rõ ràng và có l i ng x ph c t p. Bi u tr ng thái xác nh