Tài liệu môn học Phân tích và thiết kế HTTT theo UML - Nguyễn Đức Cương
Tóm tắt Tài liệu môn học Phân tích và thiết kế HTTT theo UML - Nguyễn Đức Cương: ...n u t Chuy n tin t tài khon tit kim sang tài khon ATM Xin chú ý là ây, nh ã nói, ta chú ý n c hai khía c nh: thông tin và cách ho t ng c a h thng (tc là nhng gì có th xy ra vi nhng thông tin ó). Li phân tích b%ng ki u ánh x "i thc” vào máy tính nh th tht s... cha mt lo t các i tng c bi u din b%ng các ng th)ng ng. Trc thi gian có hng t trên xung di trong bi u , và bi u ch* ra s trao i thông ip gia các i tng khi thi gian trôi qua. Các thông ip c bi u din b%ng các ng g ch ngang g"n lin vi m'i tên (bi ...n theo k0 h n t mt tài khon u t sang mt tài khon tit kim. 4.3. S* cn thi!t phi có Use Case Use Case là mt công c xu!t s"c khuyn khích nhng ngi dùng tim n(ng nói v h thng t hng nhìn c a h#. i vi ngi dùng, ch)ng phi bao gi vic th hin và mô t nhng ý nh t...
trong h thng. V(n bn phi rõ ràng, nh!t quán, khin cho khách hàng có th d dàng hi u và th$m tra chúng ( ri ng ý r%ng nó i din cho nhng gì mà anh/cô ta mun t phía h thng). Tránh dùng nhng câu v(n phc t p, khó din gii và d hi u lm. Mt Use Case c'ng có th c miêu t qua mt bi u ho t ng. Bi u ho t ng này ch* ra chu.i các hành ng, th t c a chúng, các quyt nh ch#n la xác nh xem hành ng nào sau ó s& c thc hin. b sung cho li miêu t mt Use Case, ngi ta thng a ra mt lo t các cnh kch c th minh h#a iu gì s& xy ra mt khi Use Case này c thc th hóa. Li miêu t cnh kch minh h#a mt trng hp c bit, khi c tác nhân ln Use Case u c coi là mt thc th c th . Khách hàng có th d dàng hi u hn toàn b mt Use Case phc t p nu có nhng cnh kch c miêu t thc tin hn, minh h#a l i li ng x và phng thc ho t ng c a h thng. Nhng xin nh r%ng, mt li miêu t cnh kch ch* là mt s b sung ch không phi là ng c viên thay th cho li miêu t Use Case. Sau khi các Use Case ã c miêu t, mt ho t ng và mt công vic c bit cn phi thc hin là th$m tra xem các mi quan h (ã cp ti trong phn 2.7) có c nhn din không. Trc khi t!t c 58 các Use Case c miêu t, nhà phát tri n cha th có c nhng kin thc hoàn t!t và tng th xác nh các mi quan h thích hp, th nghim làm theo phng thc ó có th s& dn n mt tình hung nguy hi m. Trong thi gian thc hin công vic này, hãy tr li các câu h i sau: T!t c các tác nhân liên quan n mt Use Case có mi liên kt giao tip vi Use Case ó không? Có tn t i nhng s tng t gia mt lo t các tác nhân minh h#a mt vai trò chung và nhóm này liu có th c miêu t là mt lp tác nhân c(n bn (base class)? Có tn t i nhng s tng t gia mt lo t các Use Case, minh h#a mt dòng chy hành ng chung? Nu có, liu iu này có th c miêu t là mt mi quan h s dng n vi mt Use Case khác? Có tn t i nhng trng hp c bit c a mt Use Case có th c miêu t là mt mi quan h m rng? Có tn t i mt tác nhân nào hay mt Use Case nào không có mi liên kt giao tip? Nu có, ch"c ch"n ây ã có chuyn lm l c, sai trái: T i sao l i xu!t hin tác nhân này? Có li yêu cu nào v chc n(ng ã c xác nh, nhng l i không c b!t k0 mt Use Case nào x lý? Nu th, hãy t o mt Use Case cho yêu cu ó. V(n bn miêu t mt Use Case n gin: Ví d Use Case "Cung C!p Thông Tin V Mt Tài Khon T i Nhà B(ng ABC”: Sau khi phân tích h thng, ta nhn th!y cn có mt Use Case in lên màn hình c a nhân viên nhà b(ng t!t c nhng chi tit v mt tài khon c a mt khách hàng. -c t Use Case: Chi ti!t tài khon: // tên Use Case S Use Case: UCSEC35 Miêu t ng)n: // miêu t ngn gn Use Case Use Case "chi tit tài khon" cho phép nhân viên nhà b(ng xem các chi tit c a mt tài khon mà anh ta nh tìm hi u. Dòng chy các s* kin: // dòng logic chung Nhân viên ch#n Chi Tit Tài Khon trên menu. Mt con ng khác ch* ra các thông tin chi tit c a tài khon là g#i t Màn Hình Tóm T"t Thông Tin V Tài Khon (xem Use Case s UCSEC99). Dòng hành 'ng chính: // dòng logic chi tit. M.i khách hàng s& có mt s nh danh g#i là CustomerId. Mt khách hàng có th có nhiu tài khon. Sau khi nhân viên nhp CustomerId vào h thng, màn hình phi in ra t!t c nhng tài khon thuc v khách hàng này và thuc v nhà b(ng ABC, ri rác t i t!t c các chi nhánh. Khi ch#n tip lo i tài khon và s tài khon, các chi tit c a tài khon mong mun s& c in ra. 59 Lo i tài khon tit kim: Nu lo i tài khon c ch#n là tài khon tit kim, thì theo Use Case s UCSEC45, các chi tit sau ây s& c in ra: Mc tin hin có Các t sec cha thanh toán Lng tin tín dng c phép Lng tin lãi cho ti ngày hôm nay Lng tin ti thi u cn phi có trong tài khon Lo i tài khon u t: Nu lo i tài khon c ch#n là lo i u t, thì theo Use Case s UCSEC46, các chi tit sau ây s& c in ra. H n u t S tin u t Ngày u t Lng tin cui h n Ngày cui h n T3 l li Dòng hành 'ng thay th!: // chui logic thay th Không tìm th!y chi tit: Khi ch#n mt s tài khon không thích hp (không có tài khon tng ng) dù vì lý do chc n(ng hay k, thut, theo Use Case s UCSEC12, h thng s& a ra mt màn hình báo l.i. iu kin thoát: // Use Case kt thúc nh th nào? Nút Thoát: Khi ch#n nút thoát, ngi s dng s& quay tr l i màn hình chính. Nút Xem Thêm: Khi ch#n nút này, ngi s dng s& c yêu cu ch#n lo i tài khon t mt danh sách xung. Nút Xem Giao Dch: Khi ch#n nút này, ngi s dng s& c chuy n sang màn hình "Giao dch" và theo Use Case s UCSEC91, màn hình s& ch* ra nhng giao dch ã xy ra i vi tài khon, bên c nh nhng chi tit chính c a tài khon. Nút Yêu Cu In Kt Qu: Khi ch#n phn thc n này, kt qu giao dch theo Use Case s UCSEC70 s& c in ra mt máy in a phng ni trc tip vi máy tính c a nhân viên. Các yêu cu -c bit: // các yêu cu c bit Theo Use Case s UCSEC110, h thng có kh n(ng in lên màn hình b%ng nhng ngôn ng khác. Chc n(ng này s& c kích ho t khi ngi s dng ch#n mc Ngo i Ng trên menu. iu kin trc ó: // iu xy ra trc khi Use Case c th c hin 60 Bo an: Ngi s dng (nhân viên tip khách) c cung c!p mt s nh danh riêng bit truy nhp vào h thng. Dch chuy n: Ngi s dng ch* n c màn hình Chi Tit Tài Khon sau khi ã truy nhp thành công và Identify thành công. iu kin sau ó: // iu gì xy ra sau khi Use Case c th c hin? H thng s& không lu tr l i b!t k0 mt thông tin nào liên quan ti khách hàng lên +a cng cc b. 4.9. Th% Use Case Mt trong các mc ích chính c a Use Case là th nghim (testing). Có hai lo i th nghim khác nhau c thc hin ây: kim tra (verification) và phê duyt xác nhn (validation). Ki m tra m bo là h thng ã c phát tri n úng "n và phù hp vi các c t ã c t o ra. Phê duyt xác nhn m bo r%ng h thng s& c phát tri n chính là th mà khách hàng hoc ngi s dng cui tht s cn n. Công vic phê duyt xác nhn c thc hin k trc giai o n phát tri n. Ngay khi mt mô hình Use Case c hoàn t!t (hay thm chí có th ang trong giai o n phát tri n), mô hình này phi c trình bày và tho lun vi khách hàng c'ng nh ngi s dng. H# cn phi xác nhn 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 vi h thng; c bit là phng cách mà h thng cung c!p chc n(ng cho h#. làm iu ó, nhà phát tri n phi m bo r%ng khách hàng tht s hi u c mô hình và ý ngh+a c a chúng, tránh trng hp t o ra nhng th không th ch!p nhn ni. Trong giai o n này, rõ ràng là các câu h i và các ý tng s& xu!t hin và chúng cn phi c b sung thêm vào mô hình Use Case trc khi n giai o n phê duyt chung cuc. Giai o n xác nhn c'ng có th c thc hin trong thi k0 th nghim h thng, nhng i m yu c a phng thc làm này là nu h thng không th a mãn nhng yêu cu c th c a ngi s dng thì toàn b d án r!t có th s& phi làm l i t u. Kim tra h thng là m bo nó ho t ng úng nh c t. iu này không th c thc hin trc khi ã có nhng thành phn c a h thng c t o ra. Ch* sau ó ngi ta mi có th th xem h thng có ho t ng úng nh c t mà ngi s dng ã a ra, r%ng các Use Case thc hin úng theo nh nhng li ã miêu t trong mô hình, r%ng chúng ho t ng theo úng phng thc ã c miêu t trong v(n bn miêu t Use Case. i b' d3c Use Case. Mt trong nhng k, thut hu dng c dùng trong c giai o n nh ngh+a ln th nghim Use Case g#i là "i B D#c Use Case”. Theo k, thut này, nhiu ngi khác nhau trong nhóm làm mô hình s& óng vai các tác nhân c'ng nh h thng trong mt Use Case c th . Ngi m nhn vai tác nhân s& b"t u b%ng vic nói ra tác nhân làm gì vi h thng. Kt qu c a công vic này là h thng s& khi ch y mt Use Case c th c b"t u t hành ng trên. Ngi óng vai h thng sau ó s& nói anh ta làm gì khi Use Case c thc hin. Nhà phát tri n ng ngoài trò chi din kch s& ghi chép và tìm cách phát hin ra các i m yu trong các Use Case c miêu t b%ng các din viên. Trong trng hp c thù, b n s& tìm th!y r%ng có mt vài chu.i hành ng b sung không c miêu t c'ng nh mt vài hành ng không c miêu t vi y chi tit. Các "din viên" càng hi u th!u áo khía c nh s dng c a h thng bao nhiêu thì công vic th Use Case s& càng hiu qu b!y nhiêu. Vic thay i các din viên óng nhng vai trò khác nhau s& dn ti nhng thay i trong miêu t và hng nhìn, cung c!p d liu u vào cho các nhà t o mô hình 61 h# bit c làm cách nào có th a ra nhng li miêu t Use Case rõ ràng hn, minh b ch hn, và ch* ra nhng i m còn thiu. Mt khi vai trò c a t!t c các tác nhân ã c din và thc thi, và t!t c các Use Case ã c thc thi theo ki u này, ó là thi i m mà ngi ta nói mt quá trình th nghim c a mô hình Use Case ã hoàn t!t. 4.10. Th*c hin các Use Case Use Case là nhng li miêu t c lp vi s thc thi các chc n(ng c a h thng. iu ó có ngh+a là Use Case s& c thc hin (thc th hóa) trong h thng, vy nên trách nhim thc thi các hành ng c miêu t trong tài liu Use Case u c phân b v cho các i tng cng tác thc thi chc n(ng ó. Các nguyên t"c c a UML cho vic thc hin các Use Case là: Mt Use Case s& c thc hin trong mt s cng tác (collaboration): Mt s cng tác ch* ra mt gii pháp (ph thuc vào s thc thi ni b) c a mt Use Case s dng các khái nim lp/i tng và mi quan h gia chúng i vi nhau (g#i là ng cnh – context c a s cng tác) c'ng nh s tng tác gia chúng t ti chc n(ng mong mun (g#i là chu.i tng tác c a s cng tác). Kí hiu cho s cng tác là mt hình ellipse có cha tên c a s cng tác ó. Mt s cng tác c trình bày trong UML qua mt lo t các bi u ch* ra c ng cnh ln chu.i tng tác gia các thành phn tham gia: thành phn tham gia trong mt s cng tác là mt lo t các lp (và trong mt thc th cng tác: các i tng). Các bi u s dng ây là bi u cng tác, bi u chu.i và bi u ho t ng. Cn phi s dng lo i bi u nào t o ra mt bc tranh bao quát v s cng tác là quyt nh tùy thuc vào tng trng hp c th . Trong mt vài trng hp, ch* mt bi u cng tác ã có th là ; nhng trong các trng hp khác, ngi ta nh!t thit cn ti s kt hp c a nhiu lo i bi u khác nhau. Mt cnh kch (Scenario) là mt thc th (instance) c a mt Use Case hay là mt s cng tác: mt cnh kch là mt chu.i thc thi c th (mt dòng chy c th c a các s kin) trình bày mt s thc th hóa c a mt Use Case (tc là mt ln s dng h thng). Khi mt cnh kch c quan sát trong t cách mt Use Case, ngi ta ch* miêu t nhng ng x bên ngoài hng v phía tác nhân. Khi quan sát mt cnh kch trong t cách là mt thc th c a s cng tác, ngi ta s& miêu t c s thc thi ni t i (các dòng lnh code) c a các lp tham gia ây, thut toán c'ng nh th tc c a chúng cùng s giao tip gia chúng vi nhau. Tác v thc hin mt Use Case là chuy n các bc và hành ng khác nhau trong li miêu t Use Case thành lp (Class), th tc trong nhng lp này c'ng nh quan h gia chúng vi nhau. Nó c miêu t là ng tác phân b trách nhim c a m.i bc i trong Use Case vào các lp tham gia s cng tác thc hin Use Case ó. T i giai o n này, ngi ta phi tìm ra mt gii pháp cung c!p nhng hành vi hng ngo i ã c xác nh c a Use Case; nó c miêu t trong nhng thut ng c a mt s cng tác ni b trong h thng. M.i bc hành ng trong Use Case s& c chuy n thành th tc (operation) trong các lp tham gia. Mt bc trong Use Case s& c chuy n thành mt lo t các th tc t i nhiu lp; r!t him khi xy ra ánh x 1-1 gia các hành ng trong Use Case và các th tc c thc thi trong tng tác gia các i tng c a các lp tham gia. C'ng xin nh r%ng mt lp có th tham gia nhiu Use Case khác nhau và trách nhim cao nh!t c a lp n%m chính trong vic kt tp t!t c các vai trò mà lp này m nhn trong các Use Case khác nhau. 62 Mi quan h gia mt Use Case và s thc thi nó theo khái nim cng tác c ch* ra hoc qua mt mi quan h nâng cao (refinement relationship) – bi u th b%ng o n th)ng ch!m ch!m vi m'i tên - - - -> hay mt hyperlink ngm trong mt công c nào ó. Mt hyperlink trong mt công c s& t o iu kin chuy n t vic quan sát mt Use Case trong mt bi u Use Case sang ngay s cng tác thc thi Use Case ó. Các hyperlink c'ng c s dng chuy n t Use Case này sang mt cnh kch (thng là mt mô hình ng – bi u ho t ng, bi u chu.i hay bi u cng tác) miêu t mt s thc hin c th nào ó c a Use Case. Phân b trách nhim cho các lp mt cách thành công là mt tác v òi h i kinh nghim. C'ng ging nh m#i công o n hng i tng khác, công vic này mang tính vòng lp (iterative). Nhà phát tri n th nghim vi nhiu s phân b trách nhim khác nhau và dn dn nâng c!p chúng trong gii pháp c a mình cho ti khi t o ra c mt mô hình thc hin chc n(ng ó, ng thi l i mc n(ng ng cho phép tin hành các s thay i trong tng lai. Jacobson s dng phng pháp nh ngh+a ba lo i i tng c(n bn (có ngh+a là ba lo i lp): các i tng biên (boundary objects) , i tng ch* huy (control objects) và i tng thc th (entity objects). i vi m.i Use Case, các l#ai i tng này c s dng miêu t mt s cng tác thc thi Use Case. Trách nhim c a các lo i i tng k trên nh sau: i tng thc th : lo i i tng này i din cho các thc th c a bài toán n%m trong ph m vi mà h thng x lý. Thng chúng mang tính th ng, theo khái nim là chúng không t gây nên các tng tác i vi chúng. Trong mt h thng thông tin, các i tng thc th thng mang tính trng tn (persistent) và c lu tr trong mt h ngân hàng d liu. Các i tng thc th thng tham gia vào nhiu Use Case khác nhau. i tng biên: lo i i tng này n%m gn ng ranh gii c a h thng (mc dù vn n%m bên trong h thng). Chúng tng tác vi các tác nhân n%m bên ngoài h thng và nhn thông ip c'ng nh gi thông ip n các lo i i tng khác n%m bên trong h thng. i tng ch" huy: lo i i tng này ch* huy s tng tác gia các nhóm i tng. Mt i tng nh th có th óng vai trò "b phn iu khi n” cho toàn b mt Use Case hoàn t!t, hay nó có th thc thi mt chu.i hành ng chung c a nhiu Use Case. Thng thì mt i tng nh vy ch* tn t i trong quá trình thc thi Use Case. Ba lo i i tng này có ba kí hiu khác nhau và có th c s dng khi v& các lo i bi u miêu t cng tác hoc bi u lp. Sau khi ã nh ngh+a nhiu lo i i tng khác nhau và xác nhn các cng tác, ngi ta có th công i tìm s tng t gia chúng mt s lp có th c s dng trong mt lo t các Use Case khác nhau. S dng các Use Case theo phng thc này ta có th t o nên nn tng cho vic phân tích và thit k h thng; 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ó nhiu phng pháp khác nhau phân b trách nhim t Use Case v cho các lp. Có phng pháp ngh u tiên phi tin hành phân tích ph m vi bài toán, ch* ra t!t c các lp thc th (thuc ph m vi bài toán) vi mi quan h c a chúng vi nhau. Sau ó nhà phát tri n s& phân tích tng Use Case và phân b trách nhim cho các lp trong mô hình phân tích (analysis model), nhiu khi s& thay i chúng hoc b sung thêm các lp mi. Mt phng pháp khác l i ngh là nên l!y các Use Case làm nn tng tìm các lp, làm sao trong quá trình phân b trách nhim thì mô hình phân tích c a ph m vi bài toán s& tng bc tng bc c thit lp. Mt i m quan tr#ng cn phi nh"c l i là công vic ây mang tính vòng lp. Khi phân b trách nhim cho các lp, ta có th phát hin ra s thiu ng b hoc l.i trong các bi u lp và qua ó, dn n 63 vic sa cha trong bi u lp. Nhng lp mi s& c nhn d ng và tìm ra nh%m mc ích h. tr cho các Use Case. Trong mt s trng hp, thm chí có th xy ra chuyn phi thay i hoc sa cha c bi u Use Case vì khi hi u h thng mt cách sâu s"c hn, nhà phát tri n s& nhn ra r%ng có mt 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 tp trung vào khía c nh chc n(ng c a h thng, làm sao phi m bo cho nó c miêu t chính xác và c xây dng chính xác trong h thng. Mt trong nhng v!n xy ra vi nhiu phng pháp hng i tng mà không s dng n khái nim Use Case là chúng tp trung quá nhiu vào c!u trúc t+nh c a các lp và các i tng (nhiu khi ngi ta g#i là phng pháp mô hình hóa khái nim – conceptual modeling) nhng l i b qua các khía c nh chc n(ng và khía c nh ng c a h thng. 4.11. Tóm t)t v Use Case Mô hình Use Case là mt k, thut c s dng miêu t nhng yêu cu mang tính chc n(ng c a mt h thng. Use Case c miêu t qua các khái nim tác nhân bên ngoài, Use Case và h thng. Tác nhân tng trng cho mt vai trò và mt thc th bên ngoài ví d nh mt ngi dùng, mt b phn phn cng hoc mt h thng khác tng tác vi h thng. Tác nhân gây ra và giao tip vi các Use Case, trong khi mt Use Case là mt tp hp c a các chu.i hành ng c thc hin trong h thng. Mt Use Case phi cung c!p mt giá tr cn hng ti nào ó cho tác nhân, và bình thng nó c miêu t b%ng v(n bn. Tác nhân và Use Case là các lp. Mt tác nhân c liên kt vi mt hoc nhiu Use Case qua mi liên kt (Association) và c tác nhân ln Use Case u có th có mi quan h khái quát hóa, mi quan h này miêu t nhng ng x chung trong các lp cha, s& c tha k bi mt hoc nhiu lp con. Mt mô hình Use Case c miêu t b%ng mt hay nhiu bi u trng hp thuc ngôn ng UML. Use Case c thc hin qua các s cng tác. Mt s cng tác là mt li miêu t mt ng cnh, ch* ra các lp/ i tng và mi quan h c a chúng và mt tng tác ch* ra các lp/i tng ó tng tác vi nhau ra sao thc hin mt chc n(ng c th . Mt s cng tác c miêu t b%ng bi u ho t ng, bi u cng tác và bi u chu.i. Khi mt Use Case c thc hin, trách nhim cho m.i bc hành ng trong Use Case cn phi c phân b cho các lp tham gia s cng tác ó, thng là qua vic xác nh các th tc c a các lp này, i song song vi phng thc mà chúng tng tác vi nhau. Mt cnh kch là mt thc th c a mt Use Case, hay mt s cng tác, ch* ra mt chu.i thc thi c th . Vì th, mt cnh kch là mt s minh h#a hay là mt ví d c a mt Use Case hay là mt s cng tác. Khi cnh kch c ch* ra trong t cách mt thc th c a mt Use Case, ch* duy nh!t s tng tác gia Use Case và tác nhân ngo i lai s& c miêu t, nhng khi cnh kch c quan sát và c ch* ra theo hng là mt thc th c a mt s cng tác, thì s tng tác gia các lp/i tng phía bên trong h thng c'ng s& c miêu t. 4.12. Phn câu hi Hi: Mt tác nhân (Actor) trong mt Use Case luôn là mt con ngi áp: Sai, tác nhân là mt ngi hoc mt vt nào ó tng tác vi h thng. Hi: H thng khác c'ng có th óng vai trò tác nhân trong mt Use Case? áp: úng Hi: M.i h thng ch* có mt Use Case? áp: Sai 64 Hi: Bi u Use case mô t chc n(ng h thng? áp: úng
File đính kèm:
- tai_lieu_mon_hoc_phan_tich_va_thiet_ke_httt_theo_uml_nguyen.pdf