CH NG 4 : MƠ HÌNH HĨA USE CASE
4.9. Th% Use Case
M t trong các m c ích chính c a Use Case là th nghi m (testing). Có hai lo i th nghi m khác nhau c th c hi n ây: ki m tra (verification) và phê duy t xác nh n (validation). Ki m tra m b o là h th ng ã c phát tri n úng "n và phù h p v i các c t ã c t o ra. Phê duy t xác nh n m b o r%ng h th ng s& c phát tri n chính là th mà khách hàng ho c ng i s d ng cu i th t s c n n.
Công vi c phê duy t xác nh n c th c hi n k tr c giai o n phát tri n. Ngay khi m t mơ hình Use Case c hồn t!t (hay th m chí có th ang trong giai o n phát tri n), mơ hình này ph i c trình bày và th o lu n v i khách hàng c'ng nh ng i s d ng. H# c n ph i xác nh n r%ng mơ hình này là úng "n, hoàn t!t và th a mãn s mong i c a h# i v i h th ng; c bi t là ph ng cách
mà h th ng cung c!p ch c n(ng cho h#. làm i u ó, nhà phát tri n ph i m b o r%ng khách hàng th t s hi u c mơ hình và ý ngh+a c a chúng, tránh tr ng h p t o ra nh ng th không th ch!p nh n n i. Trong giai o n này, rõ ràng là các câu h i và các ý t ng s& xu!t hi n và chúng c n ph i c b sung thêm vào mơ hình Use Case tr c khi n giai o n phê duy t chung cu c. Giai o n xác nh n c'ng có th c th c hi n trong th i k0 th nghi m h th ng, nh ng i m y u c a ph ng th c làm này là n u h th ng không th a mãn nh ng yêu c u c th c a ng i s d ng thì tồn b d án r!t có th s& ph i làm l i t u.
Ki m tra h th ng là m b o nó ho t ng úng nh c t . i u này không th c th c hi n
tr c khi ã có nh ng thành ph n c a h th ng c t o ra. Ch* sau ó ng i ta m i có th th xem h th ng có ho t ng úng nh c t mà ng i s d ng ã a ra, r%ng các Use Case th c hi n úng theo nh nh ng l i ã miêu t trong mơ hình, r%ng chúng ho t ng theo úng ph ng th c ã c miêu t trong v(n b n miêu t Use Case.
i b' d3c Use Case.
M t trong nh ng k, thu t h u d ng c dùng trong c giai o n nh ngh+a l n th nghi m Use Case g#i là " i B D#c Use Case”. Theo k, thu t này, nhi u ng i khác nhau trong nhóm làm mơ hình s&
óng vai các tác nhân c'ng nh h th ng trong m t Use Case c th . Ng i m nh n vai tác nhân s& b"t u b%ng vi c nói ra tác nhân làm gì v i h th ng. K t qu c a công vi c này là h th ng s& kh i ch y m t Use Case c th c b"t u t hành ng trên. Ng i óng vai h th ng sau ó s& nói anh ta làm gì khi Use Case c th c hi n. Nhà phát tri n ng ngồi trị ch i di n k ch s& ghi chép và tìm cách phát hi n ra các i m y u trong các Use Case c miêu t b%ng các di n viên. Trong tr ng h p c thù, b n s& tìm th!y r%ng có m t vài chu.i hành ng b sung không c miêu t c'ng nh m t vài hành ng không c miêu t v i y chi ti t.
Các "di n viên" càng hi u th!u áo khía c nh s d ng c a h th ng bao nhiêu thì cơng vi c th Use Case s& càng hi u qu b!y nhiêu. Vi c thay i các di n viên óng nh ng vai trò khác nhau s& d n t i nh ng thay i trong miêu t và h ng nhìn, cung c!p d li u u vào cho các nhà t o mơ hình
h# bi t c làm cách nào có th a ra nh ng l i miêu t Use Case rõ ràng h n, minh b ch h n, và ch* ra nh ng i m còn thi u. M t khi vai trò c a t!t c các tác nhân ã c di n và th c thi, và t!t c các Use Case ã c th c thi theo ki u này, ó là th i i m mà ng i ta nói m t q trình th nghi m c a mơ hình Use Case ã hồn t!t.
4.10. Th*c hi n các Use Case
Use Case là nh ng l i miêu t c l p v i s th c thi các ch c n(ng c a h th ng. i u ó có ngh+a là Use Case s& c th c hi n (th c th hóa) trong h th ng, v y nên trách nhi m th c thi các hành ng c miêu t trong tài li u Use Case u c phân b v cho các i t ng c ng tác th c thi ch c n(ng ó.
Các nguyên t"c c a UML cho vi c th c hi n các Use Case là: M t Use Case s& c th c hi n trong m t s c ng tác (collaboration): M t s c ng tác ch* ra m t gi i pháp (ph thu c vào s th c thi n i b ) c a m t Use Case s d ng các khái ni m l p/ i t ng và m i quan h gi a chúng i v i nhau (g#i là ng c nh – context c a s c ng tác) c'ng nh s t ng tác gi a chúng t t i ch c n(ng mong mu n (g#i là chu.i t ng tác c a s c ng tác). Kí hi u cho s c ng tác là m t hình ellipse có ch a tên c a s c ng tác ó.
M t s c ng tác c trình bày trong UML qua m t lo t các bi u ch* ra c ng c nh l n chu.i t ng tác gi a các thành ph n tham gia: thành ph n tham gia trong m t s c ng tác là m t lo t các l p (và trong m t th c th c ng tác: các i t ng). Các bi u s d ng ây là bi u c ng tác, bi u chu.i và bi u ho t ng. C n ph i s d ng lo i bi u nào t o ra m t b c tranh bao quát v s c ng tác là quy t nh tùy thu c vào t ng tr ng h p c th . Trong m t vài tr ng h p, ch* m t bi u c ng tác ã có th là ; nh ng trong các tr ng h p khác, ng i ta nh!t thi t c n t i s k t h p c a nhi u lo i bi u khác nhau.
M t c nh k ch (Scenario) là m t th c th (instance) c a m t Use Case hay là m t s c ng tác: m t c nh k ch là m t chu.i th c thi c th (m t dòng ch y c th c a các s ki n) trình bày m t s th c th hóa c a m t Use Case (t c là m t l n s d ng h th ng). Khi m t c nh k ch c quan sát trong t cách m t Use Case, ng i ta ch* miêu t nh ng ng x bên ngồi h ng v phía tác nhân. Khi quan sát m t c nh k ch trong t cách là m t th c th c a s c ng tác, ng i ta s& miêu t c s th c thi n i t i (các dòng l nh code) c a các l p tham gia ây, thu t toán c'ng nh th t c c a chúng cùng s giao ti p gi a chúng v i nhau.
Tác v th c hi n m t Use Case là chuy n các b c và hành ng khác nhau trong l i miêu t Use Case thành l p (Class), th t c trong nh ng l p này c'ng nh quan h gi a chúng v i nhau. Nó c miêu t là ng tác phân b trách nhi m c a m.i b c i trong Use Case vào các l p tham gia s c ng tác th c hi n Use Case ó. T i giai o n này, ng i ta ph i tìm ra m t gi i pháp cung c!p nh ng hành vi h ng ngo i ã c xác nh c a Use Case; nó c miêu t trong nh ng thu t ng c a m t s c ng tác n i b trong h th ng.
M.i b c hành ng trong Use Case s& c chuy n thành th t c (operation) trong các l p tham gia. M t b c trong Use Case s& c chuy n thành m t lo t các th t c t i nhi u l p; r!t hi m khi x y ra ánh x 1-1 gi a các hành ng trong Use Case và các th t c c th c thi trong t ng tác gi a các i t ng c a các l p tham gia. C'ng xin nh r%ng m t l p có th tham gia nhi u Use Case khác nhau và trách nhi m cao nh!t c a l p n%m chính trong vi c k t t p t!t c các vai trò mà l p này m nh n trong các Use Case khác nhau.
M i quan h gi a m t Use Case và s th c thi nó theo khái ni m c ng tác c ch* ra ho c qua m t m i quan h nâng cao (refinement relationship) – bi u th b%ng o n th)ng ch!m ch!m v i m'i tên - - -
-> hay m t hyperlink ng m trong m t cơng c nào ó. M t hyperlink trong m t công c s& t o i u
ki n chuy n t vi c quan sát m t Use Case trong m t bi u Use Case sang ngay s c ng tác th c thi Use Case ó. Các hyperlink c'ng c s d ng chuy n t Use Case này sang m t c nh k ch (th ng là m t mơ hình ng – bi u ho t ng, bi u chu.i hay bi u c ng tác) miêu t m t s th c hi n c th nào ó c a Use Case.
Phân b trách nhi m cho các l p m t cách thành công là m t tác v òi h i kinh nghi m. C'ng gi ng nh m#i công o n h ng i t ng khác, công vi c này mang tính vịng l p (iterative). Nhà phát tri n th nghi m v i nhi u s phân b trách nhi m khác nhau và d n d n nâng c!p chúng trong gi i pháp c a mình cho t i khi t o ra c m t mơ hình th c hi n ch c n(ng ó, ng th i l i m c n(ng
ng cho phép ti n hành các s thay i trong t ng lai.
Jacobson s d ng ph ng pháp nh ngh+a ba lo i i t ng c(n b n (có ngh+a là ba lo i l p): các i t ng biên (boundary objects) , i t ng ch* huy (control objects) và i t ng th c th (entity objects). i v i m.i Use Case, các l#ai i t ng này c s d ng miêu t m t s c ng tác th c thi Use Case. Trách nhi m c a các lo i i t ng k trên nh sau:
i t ng th c th : lo i i t ng này i di n cho các th c th c a bài toán n%m trong
ph m vi mà h th ng x lý. Th ng chúng mang tính th ng, theo khái ni m là chúng không t gây nên các t ng tác i v i chúng. Trong m t h th ng thông tin, các i t ng th c th th ng mang tính tr ng t n (persistent) và c l u tr trong m t h ngân hàng d li u. Các
i t ng th c th th ng tham gia vào nhi u Use Case khác nhau.
i t ng biên: lo i i t ng này n%m g n ng ranh gi i c a h th ng (m c dù v n n%m bên trong h th ng). Chúng t ng tác v i các tác nhân n%m bên ngoài h th ng và nh n thông
i p c'ng nh g i thông i p n các lo i i t ng khác n%m bên trong h th ng.
i t ng ch" huy: lo i i t ng này ch* huy s t ng tác gi a các nhóm i t ng. M t
i t ng nh th có th óng vai trị "b ph n i u khi n” cho toàn b m t Use Case hồn t!t, hay nó có th th c thi m t chu.i hành ng chung c a nhi u Use Case. Th ng thì m t i t ng nh v y ch* t n t i trong quá trình th c thi Use Case.
Ba lo i i t ng này có ba kí hi u khác nhau và có th c s d ng khi v& các lo i bi u miêu t c ng tác ho c bi u l p. Sau khi ã nh ngh+a nhi u lo i i t ng khác nhau và xác nh n các c ng tác, ng i ta có th cơng i tìm s t ng t gi a chúng m t s l p có th c s d ng trong m t lo t các Use Case khác nhau. S d ng các Use Case theo ph ng th c này ta có th t o nên n n t ng cho vi c phân tích và thi t k h th ng; qui trình phát tri n c Ivar Jacobson g#i là "Qui Trình Phát Tri n Theo Use Case" (Use case – driven).
Nhìn chung có nhi u ph ng pháp khác nhau phân b trách nhi m t Use Case v cho các l p. Có ph ng pháp ngh u tiên ph i ti n hành phân tích ph m vi bài tố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 Use Case 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. M t ph ng pháp khác l i ngh là nên l!y các Use Case 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 tốn s& t ng b c t ng b c c thi t l p.
M t i m quan tr#ng c n ph i nh"c l i là công vi c ây mang tính vịng l p. Khi phân b trách nhi m cho các l p, ta có th phát hi n ra s thi u ng b ho c l.i trong các bi u l p và qua ó, d n n
vi c s a ch a trong bi u l p. Nh ng l p m i s& c nh n d ng và tìm ra nh%m m c ích h. tr cho các Use Case. Trong m t s tr ng h p, th m chí có th x y ra chuy n ph i thay i ho c s a ch a c bi u Use Case vì khi hi u h th ng m t cách sâu s"c h n, nhà phát tri n s& nh n ra r%ng có m t Use Case nào ó ã khơng c miêu t chính xác và úng "n. Các Use Case giúp chúng ta t p trung vào khía c nh ch c n(ng c a h th ng, làm sao ph i m b o cho nó c miêu t chính xác và c xây d ng chính xác trong h th ng. M t trong nh ng v!n x y ra v i nhi u ph ng pháp h ng i t ng mà không s d ng n khái ni m Use Case là chúng t p trung quá nhi u vào c!u trúc t+nh c a các l p và các i t ng (nhi u khi ng i ta g#i là ph ng pháp mơ hình hóa khái ni m – conceptual modeling) nh ng l i b qua các khía c nh ch c n(ng và khía c nh ng c a h th ng.
4.11. Tóm t)t v Use Case
Mơ hình Use Case là m t k, thu t c s d ng miêu t nh ng yêu c u mang tính ch c n(ng c a m t h th ng. Use Case c miêu t qua các khái ni m tác nhân bên ngoài, Use Case và h th ng. Tác nhân t ng tr ng cho m t vai trò và m t th c th bên ngồi ví d nh m t ng i dùng, m t b ph n ph n c ng ho c m t h th ng khác t ng tác v i h th ng. Tác nhân gây ra và giao ti p v i các Use Case, trong khi m t Use Case là m t t p h p c a các chu.i hành ng c th c hi n trong h th ng. M t Use Case ph i cung c!p m t giá tr c n h ng t i nào ó cho tác nhân, và bình th ng nó c miêu t b%ng v(n b n. Tác nhân và Use Case là các l p. M t tác nhân c liên k t v i m t ho c nhi u Use Case qua m i liên k t (Association) và c tác nhân l n Use Case u có th có m i quan h khái quát hóa, m i quan h này miêu t nh ng ng x chung trong các l p cha, s& c th a k b i m t ho c nhi u l p con. M t mơ hình Use Case c miêu t b%ng m t hay nhi u bi u tr ng h p thu c ngôn ng UML.
Use Case c th c hi n qua các s c ng tác. M t s c ng tác là m t l i miêu t m t ng c nh, ch* ra các l p/ i t ng và m i quan h c a chúng và m t t ng tác ch* ra các l p/ i t ng ó t ng tác v i nhau ra sao th c hi n m t ch c n(ng c th . M t s c ng tác c miêu t b%ng bi u ho t ng, bi u c ng tác và bi u chu.i. Khi m t Use Case c th c hi n, trách nhi m cho m.i b c hành ng trong Use Case c n ph i c phân b cho các l p tham gia s c ng tác ó, th ng là qua vi c xác nh các th t c c a các l p này, i song song v i ph ng th c mà chúng t ng tác v i nhau. M t c nh k ch là m t th c th c a m t Use Case, hay m t s c ng tác, ch* ra m t chu.i th c thi c th .