BÀI 6:
GII THIU V USE CASE
Trong các bài trước, chúng ta đã hc v các class và các mi quan h gia chúng. Trong bài
này, chúng ta tìm hiu mt mt khác ca UML – đó là use case. ni dung chính ca bài:
+ Use case là gì?
+ Cách thc to use case
+ Các use case bao gm (including use case)
+ Các use case m rng (extending use case)
+ Khi động vic phân tích mt use case
Trong ba bài trước, chúng ta đã làm vic vi các diagram cung cp mt cái nhìn tĩnh (static
view) v các class trong mt h thng. Chúng ta s chuyn sang các diagram cung cp mt
cái nhìn động (dynamic view) và biu din s thay đổi ca h thng cũng như các lp ca
nó theo thi gian. Static view giúp mt phân tích viên liên lc vi các khách hàng (client),
trong khi dynamic view giúp mt phân tích viên liên lc vi mt nhóm các lp trình viên
(developer), giúp các lp trình viên to chương trình.
Use case là gì?
Thut ng: Hãy xem use case như mt tp hp các kch bn (scenario) v vic s dng h
thng. Mi kch bn mô t mt chui các s kin (event). Mi chui được kích hot bi
người, mt h thng khác, mt thiết b phn cng hoc bi mt thi đim. Các thc th
(entity) kích hot chui được gi là tác nhân (actor). Kết qu ca chui phi là cái gì đó s
dng được cho actor kích hot chui hoc cho actor khác.
Ví d: máy bán Soda
Gi s chúng ta bt đầu thiết kế mt máy bán soda. Để biết quan đim người dùng, ta phng
vn mt s khách hàng tim năng v cách thc mà h s dùng máy.
Do chc năng chính ca máy bán soda là cho phép mt khách hàng mua mt lon soda,
người dùng d dàng cho bn biết mt lot các kch bn-gi là use case “buy soda”. Hãy
cùng xem xét mi kch bn trong use case này. Các kch bn này, chú ý rng, có liên quan
đến nhng cuc đối thoi vi người dùng.
Trang 1 – Bài 6
Hình 6.1
Mt use case đặc t
mt tp các kch bn để
hoàn thành cái gì đó
cho actor. Trong ví d
này, use case là “buy
soda”.
Use case “Mua soda”
Actor trong use case này là mt khách hàng mun mua mt lon soda. Khách hàng khi động
kch bn bng cách nhét tin vào máy. Sau đó anh ta la chn. Nếu mi vic đều thun li,
máy có ít nht 1 lon soda bên trong, thì mt lon soda lnh s được đưa cho khách.
Ngoài chui các bước trên, còn mt s khía cnh khác ca kch bn cũng đáng quan tâm.
Tin điu kin nào khiến khách hàng khi động kch bn trong use case “buy soda”. Khát
nước là lý do rõ ràng nht. Sau mt chui các bước ca kch bn, kết qu là gì? Mt ln na,
kết qu rõ ràng nht là khách hàng có lon soda.
Kch bn va ri là duy nht cho use case “buy soda” hay sao? Rt có th máy hết loi soda
khách mun. Cũng có th khách hàng không tr đủ tin mua soda. Ta nên thiết kế máy soda
thế nào để x lý các kch bn này?
Hãy cùng xét kch bn hết soda (out-of-soda), chui các bước trong “buy soda” s khác.
Khách hàng khi động use case bng cách nhét tin vào máy. Người khách chn loi soda
nào đó. Máy không còn loi soda mà người khách đã chn. Máy hin th thông báo hết loi
soda mà khách yêu cu. Nếu tt hơn, máy s nhc khách hàng chn loi soda khác. Máy
cũng nên cho khách hàng la chn hoc chn loi soda khác, hoc rút li tin. Tin điu
kin (precondition) là mt khách hàng khát nước. Hu điu kin (postcondition) là hoc mt
lon soda hoc tin được hoàn tr li.
Bây gi xét đến kch bn s tin không đủ (incorrect-amount-of-money). Mt ln na,
khách hàng khi động use case theo cách thông thường, ri chn loi soda. Gi s máy còn
đủ loi soda mà khách đã chn. Nếu máy còn tin l phù hp, nó s tr li tin tha cho
khách kèm theo là soda. Ngược li, máy tr li tin và hin thông báo yêu cu khách đưa
vào đúng s tin. Tin điu kin vn như cũ. Hu điu kin là hoc lon soda cùng tin tha
được đưa cho khách hoc tin khách đưa được hoàn tr.
Các use case b sung
Chúng ta va xem xét máy bán soda trên quan đim mt người dùng: đó là khách hàng. Vn
còn mt s user khác trong h thng. Mt nhà cung cp (supplier) phi np soda vào máy và
người thu tin (collector) phi thu ly tin tích lũy trong máy. Điu này có nghĩa cn to
thêm ít nht 2 use case na là “Np soda” (Restock) và “Thu tin“ (Collect money).
Trang 2 – Bài 6
Hãy xét use case “Restock”. Supplier kích hot use case này bi định k thi gian (có th
mi 2 tun). Nhà cung cp m khóa máy soda, kéo mt trước ca máy m ra và np các lon
soda vào đầy các khoang cha. Ngoài ta, người đại din cũng np đầy đủ kho tin l để tr
li cho khách. Tin điu kin là s đạt đến mt định k thi gian và hu điu kin là nhà
cung cp sp có các lượt bán hàng tiếp theo.
Đối vi use case “Collect Money”, người thu ngân cũng kích hot use case bi định k thi
gian đã đến. H theo các trình t như trong “Restock”, m khóa, ri m bên trong máy
soda. Sau đó, người thu ngân s ly tin khi máy, ri cũng đóng và khóa máy li. Tin điu
kin là s đạt đến mt định k thi gian và hu điu kin là tin trong túi ca người thu
ngân.
Chú ý rng khi ta mô t mt use case, ta không bn tâm đến cách nó được thc hin. Trong
ví d này, ta không quan tâm nhiu đến cu to bên trong ca máy soda, không quan tâm
đến vic máy làm lnh như thế nào và làm sao máy có th lưu gi tin. Chúng ta ch quan
tâm đến vic nhng người s dng máy soda (gm nhiu vai trò khác nhau) s dùng nó làm
gì?
Mc tiêu là thu thp mt tp các use case để trình bày cho nhng người s thiết kế máy soda
và nhng người s thc hin nó.
Bao gm mt use case (including a use case)
Trong các use case “Restock” và “Collect”, ta thy có mt s bước (step) chung. Chng hn
như nhng bước đầu gm m khóa, m máy soda và nhng bước cui gm đóng máy và
khóa máy soda li là ging nhau. Chúng ta có th gim các bước trùng lp gia các use case
không?
Câu tr li là có th. Cách làm là ly nhng bước chung đó để to nên use case ph. Ta hãy
gom các bước m khóa và m máy vào mt use case tên “M máy”. Gom các bước đóng
khóa và khóa máy vào mt use case tên “Đóng máy”.
Vi các use case mi trên, 2 use case “Restock” và “Collect” s cùng bt đầu bng use case
“M máy” và cùng kết thúc vi use case “Đóng máy”. Ta gi trường hp này là “Restock”
và “Collect” bao gm các use case mi.
M rng mt use case (extending a use case)
Có th dùng li mt use case theo cách khác ngoài cách bao gm (inclusion). Đôi khi, ta to
mt use case mi bng cách thêm mt vài bước vào mt use case sn có.
Tr li vi use case “Restock”. Trước khi đặt mt lon soda vào máy, đại din nhà cung cp
có th chú ý đến nhng nhãn hiu nào bán chy và ngược li. Thay vì đơn gin là np đầy
đủ tt c các nhãn hiu, nhà cung cp có th thay thế các nhãn hiu ít người mua bng nhãn
hiu bán chy hơn. Các bước sau đó vn như cũ.
Nếu ta thêm các bước như trên vào use case “Restock”, ta s có mt use case mi mà ta gi
là “Restok according to sales”. Use case mi này là mt s m rng ca use case ban đầu và
k thut này gi là m rng mt use case (extending a use case).
Trang 3 – Bài 6
Tóm lược
Mt use case là mt cu trúc nhm mô t cách mà nhng người dùng tương lai nhìn nhn
mt h thng. Mi use case là mt tp kch bn (scenario) được kích hot bi mt thc th
gi là actor. Mt use case cn đem li mt kết qu nào đó cho chính actor kích hot nó hoc
cho mt actor khác.
Có th tái s dng các use case. Cách th nht (inclusion) là dùng các bước t mt use case
này như là mt phn trong chui các bước trong mt use case khác. Cách th hai
(extension) là to mt use case mi bng cách thêm các bước vào mt use case có sn.
Phng vn người dùng là k thut tt nht để dn ra các use case. Khi dn ra mt use case
cn chú ý các tin điu kin (precondition) để kích hot use case và các hu điu kin
(postcondition) được xem như hu qu ca use case.
Thc hin phng vn người dùng sau khi phng vn khách hàng và to mt danh sách các
lp d tuyn (candidate class). Điu này giúp ta có mt nn tng v thut ng dùng để nói
chuyn vi người dùng. Nên phng vn mt nhóm người dùng. Mc tiêu là dn ra các use
case d tuyn và tt c các actor có th.
Câu hi
1. Thc th kích hot mt use case được gi là gì?
2. Vic bao gm mt use case nghĩa là gì?
3. Vic m rng mt use case nghĩa là gì?
4. Mt use case có ging mt kch bn (scenario) không?
Bài tp
1. Đối vi ví d v máy bán Soda, hãy to mt use case khác bao gm các use case
“expose the inside” và “unexpose the inside”.
2. Các use case giúp bn phân tích mt công vic kinh doanh cũng như mt h thng.
Hãy quan tâm đến 1 ca hàng máy tính có bán phn cng, thiết b ngoi vi và phn
mm. Các actor là ai? Các use case chính là gì? Nêu vài kch bn cho mi use case?
Trang 4 – Bài 6