CH NG 4 : MƠ HÌNH HĨA USE CASE
4.5. Bi u$ Use Case
4.5.3. Tìm tác nhân
Khi nh n di n tác nhân, có ngh+a là chúng ta l#c ra các th c th áng quan tâm theo khía c nh s d ng và t ng tác v i h th ng. Sau ó chúng ta có th th t mình vào v trí c a tác nhân c g"ng nh n ra các yêu c u và òi h i c a tác nhân i v i h th ng và xác nh tác nhân c n nh ng Use Case nào. Có th nh n di n ra các tác nhân qua vi c tr l i m t s các câu h i nh sau:
Ai s& s d ng nh ng ch c n(ng chính c a h th ng (tác nhân chính)?
Ai s& c n s h. tr c a h th ng th c hi n nh ng tác v hàng ngày c a h#? Ai s& c n b o trì, qu n tr và m b o cho h th ng ho t ng (tác nhân ph )? H th ng s& ph i x lý và làm vi c v i nh ng trang thi t b ph n c ng nào?
H th ng c n ph i t ng tác v i các h th ng khác nào? Nhóm các h th ng này c chia ra làm hai nhóm, nhóm kích ho t cho m i quan h v i h th ng, và nhóm mà h th ng c n ph i xây d ng c a chúng ta s& thi t l p quan h . Khái ni m h th ng bao g m c các h th ng máy tính khác c'ng nh các ng d ng khác trong chính chi c máy tính mà h th ng này s& ho t ng.
Ai hay cái gì quan tâm n k t qu (giá tr ) mà h th ng s& s n sinh ra?
Khi i tìm nh ng ng i s d ng h th ng, ng quan sát nh ng ng i ang ng i tr c màn hình máy tính. Nên nh r%ng, ng i s d ng có th là b!t k0 ng i nào hay b!t k0 v t nào t ng tác ho c tr c ti p ho c gián ti p v i h th ng và s d ng các d ch v c a h th ng này t n m t k t qu nào ó. ng qn r%ng mơ hình hóa Use Case c th c hi n mơ hình hóa m t doanh nghi p, vì th tác nhân th ng th ng là khách hàng c a doanh nghi p ó. T ó suy ra h# không ph i là ng i s d ng theo ngh+a n gi n và tr c ti p là ng i ng i tr c màn hình máy tính và thao tác v i máy tính.
có th nh n d ng c t t nhi u tác nhân khác nhau, hãy ti n hành nghiên c u nh ng ng i s d ng c a h th ng hi n th i (m t h th ng th công ho c m t h th ng ang t n t i), h i xem h# óng nh ng vai trị nào khi th c thi công vi c hàng ngày c a h# v i h th ng. C'ng ng i s d ng ó có th th c thi nhi u vai trò khác nhau t i nhi u th i i m khác nhau, tùy thu c vào vi c ch c n(ng nào trong h th ng ang c s d ng.
Xin nh"c l i, m t tác nhân là m t vai trị (m t l p), ch khơng ph i m t th c th riêng l/. M c dù v y, khi cung c!p ví d là m t vài các th c th c a m t tác nhân, b n có th m b o r%ng tác nhân ó th t s t n t i. M t tác nhân ph i có m t s liên k t (Association) nào ó v i m t ho c là nhi u Use Case. M c dù có nh ng tác nhân có th khơng kích ho t nên m t Use Case nào, nh ng tác nhân ó s& giao ti p ít nh!t v i m t Use Case t i m t th i i m nào ó. C n ph i t tên cho tác nhân làm sao tên ph n ánh úng vai trị c a tác nhân ó trong h th ng.
4.5.4. Bi u di!n tác nhân trong ngôn ng UML
Tác nhân trong UML là m t l p v i bi t ng "Actor" (Tác nhân) và tên c a l p này là tên c a tác nhân (ph n ánh vai trò c a tác nhân). M t l p tác nhân có th v a có thu c tính (attribute) l n hành vi
(method) c'ng nh m t thu c tính tài li u (document) mơ t tác nhân ó. M t l p tác nhân có m t bi u t ng chu$n hóa, bi u t ng "hình nhân":
Hình 4.2- bi u t ng tác nhân trong UML
4.5.5. Use Case
M t Use Case là i di n cho m t ch c n(ng nguyên v-n mà m t tác nhân nh n c. M t Use Case trong ngôn ng UML c nh ngh+a là m t t p h p c a các chu.i hành ng mà m t h th ng th c hi n t o ra m t k t qu có th quan sát c, t c là m t giá tr n v i m t tác nhân c th . Nh ng hành ng này có th bao g m vi c giao ti p v i m t lo t các tác nhân c'ng nh th c hi n tính tốn và cơng vi c n i b bên trong h th ng.
Các tính ch!t tiêu bi u c a m t Use Case là:
M t Use Case bao gi c'ng c gây ra b i m t tác nhân, c th c hi n nhân danh m t tác nhân nào ó. Tác nhân ph i ra l nh cho h th ng th c hi n Use Case ó, dù là tr c ti p hay gián ti p. Hi m khi có tác nhân khơng liên quan n vi c gây ra m t Use Case nào ó.
M t Use Case ph i cung c!p m t giá tr cho m t tác nhân. Giá tr ó khơng ph i bao gi c'ng c n thi t ph i n i tr i ra ngồi, nh ng ln ph i c th!y rõ.
M t Use Case là ph i hoàn t!t. M t trong nh ng l.i th ng g p là s/ chia m t Use Case thành các Use Case nh h n, và các Use Case này th c thi l n nhau gi ng nh vi c g#i hàm cho m t ngơn ng l p trình. M t Use Case s& khơng c coi là hồn t!t ch ng nào mà giá tr cu i cùng c a nó ch a c s n sinh ra, th m chí ngay c khi ã x$y ra nhi u ng tác giao ti p (ví d nh i tho i v i ng i s d ng).
Use Case c n i v i tác nhân qua liên k t (association). ng liên k t ch* ra nh ng tác nhân nào giao ti p v i Use Case nào. M i liên k t bình th ng ra là m t m i quan h 1-1 và khơng có h ng. i u ó mu n nói lên r%ng m t th c th c a l p tác nhân s& giao ti p v i m t th c th c a m t Use Case và c hai có th giao ti p v i nhau trong c hai chi u. M t Use Case s& c t tên theo m t th c th mà Use Case s& th c hi n, ví d nh ký h p ng b o hi m, c p nh t danh sách, v.v…, và th ng là m t c m t h n là ch* m t t riêng l/.
M t Use Case là m t l p, ch khơng ph i m t th c th . Nó mơ t tr#n v-n m t ch c n(ng, k c các gi i pháp b sung và thay th có th có, các l.i có th x y ra c'ng nh nh ng ngo i l có th x y ra trong quá trình th c thi. M t k t qu c a s th c th hóa m t Use Case c g#i là m t c nh k ch (scenario) và nó i di n cho m t s s d ng c th c a h th ng (m t ng d n th c thi riêng bi t qua h th ng). Ví d m t c nh k ch c a Use Case "Ký h p ng b o hi m" có th là "John liên h v i h th ng qua i n tho i r i sau ó ký h p ng b o hi m ô tô cho chi c xe Toyota Carolla mà anh ta v a mua."
4.5.6. Tìm Use Case
Quá trình tìm các Use Case b"t u v i các tác nhân ã c xác nh ph n tr c. i v i m.i tác nhân, hãy h i các câu h i sau:
a. Tác nhân này c n nh ng ch c n(ng nào t h th ng? Hành ng chính c a tác nhân là gì ?. Ví d cho m t giao d ch rút ti n bên máy ATM trong m t nhà b(ng l/, các hành ng chính c a khách hàng (tác nhân) có th là :
út th/ vào máy ATM Nh p password Nh p lo i chuy n d ch Nh p s ti n m t mu n rút ra Yêu c u v lo i ti n Nh t ti n ra t máy Rút th/ và t in k t qu giao d ch
b. Tác nhân có c n ph i #c, ph i t o, ph i h y b , ph i s a ch a, hay là l u tr m t lo i thông
tin nào ó trong h th ng? Ví d :
Nhân viên nhà b(ng li u có quy n truy xu!t hay thay i m c ti n lãi? Khách hàng có th thay i password c a mình.
c. Tác nhân có c n ph i báo cho h th ng bi t v nh ng s ki n nào ó? Nh ng s ki n nh th s& i di n cho nh ng ch c n(ng nào?
Ví d :
Khách hàng k t thúc tài kho n, nhân viên cung c!p nh ng thơng tin này cho h th ng.
Có m t ch ng trình u t m i, các chi ti t c a ch ng trình này s& ph i c nhân viên nhà b(ng nh p vào h th ng.
d. H th ng có c n ph i thơng báo cho Actor v nh ng thay i b!t ng trong n i b h th ng? Trong tài kho n cịn q ít ti n.
Ba k0 liên ti p ti n l ng ch a v tài kho n.
e. Công vi c hàng ngày c a tác nhân có th c n gi n hóa ho c h u hi u hóa qua các ch c n(ng m i trong h th ng (th ng ây là nh ng ch c n(ng tiêu bi u ch a c t ng hóa trong h th ng)?
Use Case có th c gây ra b i các s ki n nào khác? Ví d : S ki n th i gian: Cu i tháng, h t h n u t . S ki n bình th ng c a h th ng: T ng chuy n ti n theo các l nh xác nh tr c. Các s ki n b!t bình th ng: H p ng u t k t thúc tr c th i h n.
H th ng c n nh ng thông tin u vào/ u ra nào? Nh ng thông tin u vào/ u ra ó t âu t i và s& i âu?
Khó kh(n và thi u h t chính trong h th ng hi n th i n%m âu (th công /t ng hóa)?
i v i nhóm câu h i cu i khơng có ngh+a là Use Case ây khơng có tác nhân, mà tác nhân s& c nh n ra ch* khi chúng ta nh n di n ra các Use Case này và sau ó xác nh tác nhân d a trên c s là Use Case. Xin nh"c l i, m t Use Case bao gi c'ng ph i c liên k t v i ít nh!t m t tác nhân.
4.5.7. Ví d tìm Use Case
Nhà b(ng ABC a ra các yêu c u sau:
M t khách hàng có th mu n g i ti n vào, rút ti n ra ho c n gi n ki m tra l i s ti n trong tài kho n c a anh ta qua máy t ng rút ti n (ATM). Khi a ti n vào ho c rút ti n ra, c n ph i ghi ra gi!y k t qu nh ng chuy n d ch ã th c hi n và trao t gi!y này cho khách hàng.
Quan sát các ch c n(ng c(n b n và các thành ph n tham gia, ta th!y có hai tác nhân d nh n ra nh!t là khách hàng và nhân viên thu ngân.
Qua ó, có th nhân d ng các Use Case sau: G i ti n vào.
Rút ti n ra.
Ki m tra m c ti n trong tài kho n
Th c hi n các chuy n d ch n i b h th ng In k t qu các chuy n d ch ã th c hi n.
Hình 4.3 – Các Use case trong h th ng ATM
Use Case g i ti n vào và rút ti n ra ph thu c vào Use Case th c hi n các chuy n d ch trong n i b h th ng, vi c th c hi n này v ph n nó l i ph thu c vào ch c n(ng in ra các công vi c ã c th c hi n. Ki m tra m c ti n trong tài kho n là m t Use Case c l p, không ph thu c vào các Use Case khác.
4.6. Các bi!n th (Variations) trong m't Use Case
M.i Use Case s& có m t dịng hành ng chính (Basic Course). ó là ti n trình bình th ng hay ti n trình mong i i v i Use Case này.
Ngồi ra, có th cịn có m t hay nhi u dòng hành ng thay th (Alternative) khác. Chúng có th c chia làm hai nhóm chính:
Thay th bình th ng (Normal Alternative) i u ki n gây l.i (Error Condidtions)
Nh ng gì mang tính bình th ng h n trong Use Case c g#i là Thay th bình th ng. Có th miêu t các dòng hành ng thay th b%ng t ng (xem ph n tài li u Use Case ). Ví d m t khách hàng có th ch#n các lo i giao d ch sau c a ATM:
G i ti n vào Rút ti n ra
Ki m tra m c ti n trong tài kho n
ây là nh ng ví d cho các dịng hành ng thay th bình th ng.
i u ki n gây l.i i di n cho nh ng b c ti n hành b!t bình th ng trong m t Use Case. C n ph i tính tr c n nh ng i u ki n gây l.i ó, ví d :
M c ti n trong tài kho n không ti n hành giao d ch Password không úng
ATM b ngh&n th/
Hình sau nêu b t dịng hành ng chính và nh ng dòng hành ng thay th c'ng nh s khác bi t c a chúng i v i ti n trình mong i c a Use Case.
Hình 4.4 – Các ti n trình trong h th ng ATM
4.7. Quan h gi#a các Use Case
Có ba lo i quan h Use Case: Quan h m r ng, quan h s d ng và quan h t o nhóm. Quan h m r ng và quan h s d ng là hai d ng khác nhau c a tính th a k . Quan h t o nhóm là m t ph ng cách
t nhi u Use Case chung v i nhau vào trong m t gói.
4.7.1. Quan h m r ng
Nhi u khi trong quá trình phát tri n Use Case, ng i ta th!y m t s Use Case ã t n t i cung c!p m t ph n nh ng ch c n(ng c n thi t cho m t Use Case m i. Trong m t tr ng h p nh v y, có th nh
ngh+a m t Use Case m i là Use Case c' c ng thêm m t ph n m i. M t Use Case nh v y c g#i là m t Use Case m r ng (Extended Use Case ). Trong quan h m r ng, Use Case g c (Base Use Case ) c dùng m r ng ph i là m t Use Case hoàn thi n. Use Case m r ng không nh!t thi t ph i s d ng toàn b hành vi c a Use Case g c.
Bi u sau ch* ra Use Case “Ký h p ng mua ô tô” là Use Case m r ng c a "Ký h p ng b o hi m”.
Hình 4.5 - Quan h m r ng gi a các Use Case
Quan h m r ng gi a các Use Case c bi u th b%ng o n th)ng v i hình tam giác r.ng tr v phía Use Case c dùng m r ng, i kèm v i stereotype <<extends>>.
4.7.2. Quan h s d ng
Khi m t nhóm các Use Case cùng chung m t hành vi nào ó thì hành vi này có th c tách riêng ra thành m t Use Case riêng bi t và nó có th c s d ng b i các Use Case kia, m t m i quan h nh v y c g#i là quan h s d ng. Trong quan h s d ng, ph i s d ng toàn b Use Case khái quát hóa, nói m t cách khác, ta có m t Use Case này s d ng toàn b m t Use Case khác. Các hành ng trong Use Case khái qt hóa khơng c n ph i c s d ng trong cùng m t ti n trình. Chúng có th
c tr n l n v i các hành ng x y ra trong Use Case chuyên bi t hóa.
Quan h s d ng gi a các Use Case c bi u th b%ng o n th)ng v i hình tam giác r.ng tr v phía Use Case c s d ng, i kèm v i stereotype <<uses>>.
4.7.3. Quan h chung nhóm
Khi m t s các Use Case cùng x lý các ch c n(ng t ng t ho c có th liên quan n nhau theo m t ph ng th c nào ó, ng i ta th ng nhóm chúng l i v i nhau. Nhóm các Use Case c th c hi n b%ng khái ni m "Gói" (Package) c a UML. Gói khơng cung c!p giá tr gia t(ng cho thi t k .
Ví d : t!t c các Use Case có liên quan n s t ng tác gi a khách hàng và nhân viên thu ngân s& c nhóm thành "Package Khách hàng- N/v thu ngân"
Hình 4.7 – Package c a UML
Tóm t"t v Use Case v i máy ATM trong ngân hàng l/:
Cho t i nay chúng ta ã xác nh c m t vài Use Case, phân tích dịng hành ng chính c'ng nh các dịng hành ng thay th , c'ng nh rút ra các m i quan h gi a chúng. Bi u sau t ng h p nh ng thông tin ã thu th p c v nhóm các Use Case c(n b n c a m t h th ng ATM.
4.8. Miêu t Use Case