Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
340,77 KB
Nội dung
Phântích thit k h thng hng đi tng bng UML 74 Chng 6 MÔHÌNHHOÁUSECASE Mc tiêu Sau khi hc xong sinh viên có th: - Hiu ý ngha ca vic s dng s đ usecase trong biu din yêu cu h thng - Xác đnh đc các tác nhân và mi quan h gia các tác nhân ca mt h thng phn mm - Xác đnh đc các usecase biu din chc nng phn mm h thng và mi quan h gia tác nhân cà usecase nhm xây dng s đ usecasemô t yêu c u phn mm h thng - Tinh ch s đ usecase nhm làm gia tng tính din đt, tính tái s dng qua vic s dng các liên kt <<extend>>, <<include>> Gii thiu Trong giai đon phân tích, kt qu ca quá trình kho sát yêu cu phn ánh quá trình làm vic ca ngi phát trin vi ngi s dng. Các kt qu này phi nhm đn yu t ca ngi dùng. Có ngha là ngi phát trin trc tiên phi din đt bc tranh ca h thng tng lai theo cách nhìn ca ngi s dng. iu này s giúp cho ngi dùng có th thy đc h thng s làm thoã mãn các yêu cu nh th nào và đó chính là chìa khoá đu vào cho vic phát trin h thng trong các giai đon v sau. Mt công c giúp din đt điu này chính là môhìnhuse case. Jacobson và cng s ca ông (1992) là nhng ngi tiên phong trong vic s dng môhìnhusecase đ phântích yêu cu h thng. Bi vì môhìnhusecase đt trng tâm đ biu din h thng hin ti làm gì, h thng mi s làm gì và môi trng c a nó. Nó giúp cho ngi phát trin có th hiu rõ v yêu cu chc nng h thng mà không quan tâm đn chc nng này đc cài đt nh th nào. hiu yêu cu ca h thng, chúng ta phi tìm ra ngi dùng s s dng h thng nh th nào. Do đó t mt quan đim ngi dùng chúng ta phát hin các tình hung s dng khác nhau ca ngi dùng, các tình hung này đc thit lp b i các use case, tng hp các usecase và tác nhân cùng vi quan h gia chúng s cho ta mt môhìnhusecasemô t yêu cu ca h thng. Trong chng 5, quá trình môhìnhhoá nghip v đc áp dng đi vi các h thng nghip v và kt qu ca nó s cung cp s đ usecase t vic thng nht các yêu cu h thng phn mm đ t đng hoá hot đng ca h thng nghi p v đó. Tuy nhiên, trong nhng h thng mà không có hot đng nghip v (ví d: h thng nhúng), hoc các nghip v ca h thng không quá phc tp hoc không quan tâm đ môhìnhhoá nghip v thì vic xây dng môhìnhusecase phn mm s là bc tip cn môhìnhhoá đu tiên v h thng. Mt tin trình xây dng s đ usecase bao gm các bc sau: - Xác đnh tác nhân h thng o Ai đang s dng h thng? o Hoc trong trng hp phát trin mi thì ai s s dng h thng? - Phát trin usecase o Ngi dùng (tác nhân) đang làm gì vi h thng? Phântích thit k h thng hng đi tng bng UML 75 o Hoc trong trng hp h thng mi thì ngi dùng s làm gì vi h thng? - Xây dng s đ usecase o Xác đnh mi quan h gia tác nhân – usecase o Xác đnh mi quan h gia các usecase - Phân chia s đ usecase thành các gói (package) Xác đnh tác nhân Tác nhân (actor) Ý ngha: mt tác nhân là mt đi tng bên ngoài h thng giao tip vi h thng theo mt trong nhng hình thc sau: - Tng tác, trao đi thông tin vi h thng hoc s dng chc nng h thng - Cung cp đu vào hoc nhn các đu ra t h thng - Không điu khin hot đng ca h thng Ký hiu Tên tác nhân: tên tác nhân là mt danh t Quan h gia các tác nhân: Là quan h tng quát hóa và chuyên bit hoá Ví d: Xác đnh tác nhân Xác đnh tác nhân cng đc xem có tm quan trng nh xác đnh class, use case, liên kt,…. Khi xác đnh ngi s dng phn mm h thng, chúng ta đng quan trng vn đ quan sát ngi nào đang s dng h thng mà chúng ta nên xác đnh xem vai trò chu trách nhim trong vic s dng h thng. Ngha là tác đng lên h thng theo ngha cung cp thông tin cho h thng hoc nhn kt qu x lý t h thng. Tác nhân đc hiu là mt vai trò tham gia vào h thng không ging nh mt con ngi c th hoc mt công vic. Mt đi tng có th tham gia vào mt hoc nhiu vai trò Tên tác nhân <<Actor>> <Tên tác nhân> Khách hàng Khách quen Nhân viên Nhân viên bán hàng Th kho Phântích thit k h thng hng đi tng bng UML 76 Qua quá trình kho sát và phântích tài liu h thng, chúng ta có th nhn ra các tác nhân thông qua các câu hi sau: - Ai đang s dng h thng? Hoc ai đc tác đng bi h thng? Hoc nhóm đi tng nào cn h thng tr giúp đ làm công vic? (tác nhân chính) - Ai tác đng ti h thng? Nhng nhóm đi tng nào h thng cn đ thc hin hot đng ca nó (hot đng g m chc nng chính và chc nng ph, nh là chc nng qun tr)? - Nhng phn cng hoc h thng bên ngoài nào s dng h thng? Ví d: trong hot đng ca máy ATM ca mt ngân hàng, các tác nhân đc xác đnh là: Trong đó, các tác nhân Khách hàng, Nhân viên ngân hàng là các tác nhân chính (primary actor) ca h thng ATM. Bi vì khách hàng là mc tiêu mà h thng tng tác; Nhân viên ngân hàng s dng h thng đ tr giúp công vic. Trong khi đó, Nhân viên v n hành là tác nhân ph (secondary actor) bi vì tác nhân này đm nhn nhng chc nng ph mà h thng cn có đ thc hin hot đng ca nó. Hoc trong mt th vin ca trng đi hc, các tác nhân ca h thng phn mm qun lý th viên gm: Xác đnh usecaseUsecase Mt Usecase đc xem nh mt chc nng h thng t quan đim ngi dùng, nh vy tp hp tt c usecase biu din b mt ca h thng bao gm các chc nng cn có đ cung cp cho các đi tng tng tác làm vic vi h thng. Nh vy, usecase dùng đ mô t yêu cu Nguyn Vn A Nguyn Th B Trn Vn C Khách hàng NV bán hàng Bán hàng Th kho t mua NGK Ngi dùng Tác nhân Usecase Khách hàng Nhân viên ngân hàng Nhân viên vn hành c gi Th th Nhà cung cp Phântích thit k h thng hng đi tng bng UML 77 ca h thng mi v mt chc nng, mi chc nng s đc biu din nh mt hoc nhiu use case. Ví d: h thng ca hàng NGK ta có mt vài usecase Bán hàng, qun tr tn kho,… Ký hiu Xác đnh usecase Chúng ta bt đu t tp các tác nhân đã xác đnh trong bc đu tiên. ng vi mi tác nhân: - Tìm các nhim v và chc nng mà tác nhân s thi hành hoc h thng cn tác nhân đ thi hành và môhìnhhoá nó nh là use case. Usecase s đi din mt dòng s kin dn ti mt mc tiêu rõ ràng (hoc trong mt vài trng hp, dn ti mt vài mc tiêu riêng bit có th là các phng án thay th cho tác nhân hoc cho h thng so v i dòng s kin chính) - t tên cho use case: tên usecase nên đt nhm phn ánh mt mô t tng quan v chc nng ca use case. Tên nên dn đt nhng gì xy ra khi mt th hin ca usecase đc thi hành. Mt hình thc đt tên usecase ph bin là : đng t (do) + danh t (what). - Mô t usecase mt cách ngn gn bng vic áp dng các thut ng gn gi vi ngi s dng. iu này s làm cho mô t usecase ít m h. Ví d: trong h thng ATM Tác nhân Khách hàng s s dng h thng qua các chc nng: - Gi tin - Rút tin - Truy vn thông tin v tài khon Tác nhân Nhân viên vn hành s s dng các chc nng - Khi đng h thng - óng h thng Gi tin: khách hàng đng nhp vào h th ng và yêu cu gi tin vào tài khon. Khách hàng s xác đnh tài khon và s tin gi, h thng s to mt giao tác gi tin và lu vào h thng. Các bc nh sau: - Yêu cu xác đnh tài khon - H thng hi s tin gi Gi tin Rút tin Truy vn thông tin tài khon Khi đng h thn g óng h thng Tên usecase Bán hàng Qun tr kho Phântích thit k h thng hng đi tng bng UML 78 - Nhp vào s tin gi - Khách hàng đa tin vào bao th và chuyn vào máy ATM Rút tin: khách hàng đng nhp h thng và yêu cu rút tin t tài khon. Khách hàng xác đnh tài khon và lng tin rút. Sau khi kim tra s d tài khon còn đ, h thng s to mt giao tác rút tin và lu vào h thng. Các bc nh sau: - Yêu cu xác đnh tài khon - Yêu cu xác đnh s tin cn rút - Nhp s tin rút - Kim tra s d có đ không - Chuyn tin ra ngoài Truy vn thông tin tài khon: khách hàng đng nhp vào h thng và yêu cu xem thông tin v các giao dch ca tài khon. H thng hin th các thông tin v các giao tác đã to lên màn hình cho khách hàng. Khi đng h thng: h thng đc khi đng khi nhân viên vn hành bt công tc ca máy. Nhân viên vn hành s đc yêu cu nhp vào s tin hin hành ca máy nm trong két đng tin. Sau đó, h thng s thit lp mt kt ni ti ngân hàng và các dch v ca máy ATM bt đu vn hành. óng h thng: h thng đc đóng li khi nhân viên vn hành đm bo rng không có khách hàng nào đang s dng máy. Khi đó, nhân viên vn hành s ly các bao tin gi ra, bô sung l ng tin, giy,… Trong h thng qun lý th vin, các usecase đc xác đnh nh sau: Xác đnh mi quan h Quan h tác nhân – usecase : quan h này cho bit tác nhân s tng tác vi use case. Mt usecase luôn luôn đc khi to bi mt tác nhân và có th tng tác vi nhiu tác nhân. Ký hiu Ví d: Tên usecase Tác nhân X lý mn sách X lý tr sách Tra cu sách ng ký thành viên Mua sách Phântích thit k h thng hng đi tng bng UML 79 Mi quan h gia các usecase Vic mô t usecase có th s khó hiu nu usecase này cha đng nhiu dòng ph hoc dòng ngoi l ch x lý cho nhng s kin trong nhng điu kin đc bit. làm đn gin mô t này chúng ta s dng thêm các mi kt hp <<extend>> và <<include>>. Liên kt m rng (<<extend>> ): đc dùng khi chúng ta có mt usecase tng t nh usecase khác nhng có nhiu hn mt vài x lý đc bit. Ging nh liên kt tng quát - chuyên bit, trong đó, usecase chuyên bit là mt m rng ca usecase tng quát bng vic đa thêm vào các hot đng hoc ng ngha mi vào usecase tng quát, hoc b qua hot đng ca usecase tng quát. Ví d: gi s ng nhp là mt usecase c b n. Usecase này s đi din cho tt c nhng gì đc xem là thc hin đng nhp mt cách xuyên sut.Tuy nhiên, nhiu vn đ có th tác đng đn dòng s kin chính. Ví d, mã s PIN không hp l, hoc th không đc đc do b h,…. Do đó, chúng ta không phi luôn luôn thi hành các hot đng thng xuyên ca mt usecase đc cho và nh vy, cn thit to ra các usecase mi đ gii quyt nh ng tình hung mi. Tt nhiên, chúng ta có th đa vào usecase c bn các ni dung x lý đc bit đó. Tuy nhiên, điu này có th dn đn s phc tp vi nhiu lun lý riêng bit và s làm gim vai trò ca dòng chính. gii quyt vn đ này chúng ta có th s dng quan h <<extend>>. đây chúng ta gom các x lý c bn hoc bình thng vào trong mt usecase (c bn). Các x lý đc bi t vào X lý mn sách X lý tr sách Tra cu sách ng ký thành viên Mua sách c gi Th th Nhà cung cp Truy vn thông tin tài khon Rút tin Gi tin Khách hàng Khi đng h thn g Nhân viên vn hành óng h thng Phântích thit k h thng hng đi tng bng UML 80 nhng usecase (chuyên bit) khác. Ri to mt liên kt <<extend>> gia usecase c bn ti các usecase chuyên bit đ khai báo rng: ngoài x lý dòng chính (c bn), usecase c bn có m rng đn các tình hung x lý đc bit đc gii quyt trong các usecase chuyên bit. To mt usecase tng quát có tên là Giao dch ca các usecase Rút tin, Gi tin và Truy vn thông tin tài khon. To các liên kt <<extend>> t usecase Giao dch đn các usecase này. Nh vy, mt rút ti n, hoc gi tin, hoc truy vn thông tin tài khon là mt loi giao dch mà khách hàng có th s dng trên máy ATM. Có ngha rng, các x lý trong usecase Giao dch s cung cp mt dòng chung và khi khách hàng chn mt loi giao dch đc bit nào đó thì usecase này s m rng vic gii quyt thông qua các usecase chuyên bit. Giao dch: khách hàng tng tác vi h thng bt đu bng vic đng nhp h thng. Sau khi đ ng nhp, khách hàng có th thc hin các giao dch. Sau đây là các bc: - a th vào máy - Thc hin đng nhp - Yêu cu loi giao dch - Nhp loi giao dch - Thc hin giao dch - y th ra - Yêu cu ly th - Ly th Trong h thng qun lý th vin, usecase Mn sách ngoài dòng hot đng chính còn có các dòng ph. Dòng ph này s đc kích hot đ gii quyt vn đ khi mt đc gi đn mn tài liu nhng không có trong th vin và th vin s mn tài liu đó t nhng th vin khác có liên kt. Hoc do đc gi không tho các điu kin đ đc mn (mn sách quá hn cha Giao dch Rút tin Gi tin Khách hàng Khi đng h thn g Nhân viên vn hành óng h thng Truy vn thông tin tài khon <<extend>> <<extend>> <<extend>> UsecaseUsecase <<extend>> ng nhp Gii quyt PIN khôn g hp l <<extend>> Phântích thit k h thng hng đi tng bng UML 81 tr ca ln mn trc). Do đó, chúng ta tách dòng ph này và usecase “Mn sách t th vin thành viên” và “ ”và to mt liên kt <<extend>> t usecase này đn usecase X lý mn sách. Liên kt s dng (<<include>>): đc thành lp khi chúng ta có các usecase mà tìm thy mt vài usecase có nhng dòng hot đng chung, và đ tránh mô t dòng hot đng chung đó lp li trên nhng usecase này, chúng ta có th tách nhng dòng hot đng chung đó ra thành mt use case. Usecase mi này có th s dng bi nhng usecase khác. Quan h gia nhng usecase vi usecase đc trích ra này gi là quan h <<include>>. Quan h s dng giúp chúng ta tránh s trùng lp bng cách cho phép mt usecase có th đc chia s. Trong ví d trên, usecase mn sách và tr sách đu phi thc hin công vic kim tra th th vin ca đc gi, do đó chúng ta phát sinh mt usecase mi là kim tra th bng cách trích ra hot đng kim tra th th vin t hai usecase trên và to mt liên kt <<include>> ti usecase t hai usecase đó ti usecase mi. Các usecase X lý mn sách và X lý tr sách đu tha hng tt c hot đng ca usecase ca usecase kim tra th. Trong h thng ATM, usecase Giao dch s có mi liên kt <<include>> vi usecase đng nhp. ng nhp: khách hàng nhp vào mã s PIN gm bn ký s. Nu mã s PIN hp l, tài khon ca khách hàng s sn sàng cho các giao dch. Các bc nh sau: - Yêu cu password - Nhp password - Kim tra password Gii quyt PIN không hp l: nu mã s PIN không hp l, h thng s hin th mt thông báo ti khách hàng. Giao dch Khách hàng ng nhp Gii quyt PIN khôn g hp l <<extend>> <<include>> X lý mn sách Mn sách t th vi n thành viên <<extend>> X lý t chi m n sách <<extend>> X lý mn sách X lý tr sách Th th Kim tra th <<include>> <<include>> Phântích thit k h thng hng đi tng bng UML 82 S ging nhau gia liên kt <<extend>> và liên kt <<include>> là tt c đu đc xem nh là mt loi k tha. Khi chúng ta mun chia s mt s hot đng chung trong nhiu use case, dùng liên kt <<include>> bng cách trích các hot đng chia s đó thành mt usecase mi. Khi chúng ta mun thêm vào mt ít khác bit cho mt usecase đ mô t mt tình hung đc bit trong mt tình hung chung, chúng ta s to mt usecase mi có liên kt <<extend>> vi usecase chung đ ó. Da vào các liên kt đc thit lp cho các usecase chúng ta phânusecase thành hai loi: Usecase tru tng: là usecase cha hoàn ho ngha là không tng tác vi bt k mt tác nhân nào mà đc s dng bi mt usecase khác. Usecase tru tng cng có th có liên kt <<extend>> hoc liên kt <<include>> trong nhng mc đ khác. Ví d: các usecase Kim tra th, X lý t chi mn sách,… là các usecase tru tng. Usecase c th: là usecase có tng tác trc tip vi m t tác nhân. Ví d: các usecase X lý mn sách, X lý tr sách, hoc Khi đng máy,óng máy,…. Môhìnhusecase ca h thng máy ATM Giao dch Rút tin Gi tin Khách hàng Khi đng h thn g Nhân viên vn hành óng h thng Truy vn thông tin tài khon <<extend>> <<extend>> <<extend>> ng nhp Gii quyt PIN khôn g hp l <<extend>> <<include>> Phântích thit k h thng hng đi tng bng UML 83 Môhìnhusecase h thng phn mm qun lý th vin Phân chia các usecase thành các gói (package) Mi usecase minh ho mt kch bn trong h thng. Khi gp nhng h thng tng đi phc tp thì chúng ta nên thu hp tiêu đim ca các kch bn trong h thng bng cách phân chia thành các gói. Mi gói phn ánh mt phm vi ca h thng mà chúng ta ch mun qun lý nó khi chúng ta truy cp gói đó. Ví d, có th chia các se case ca h thng máy ATM thành ba gói: Giao dch, Rút gi và Vn hành Trong đó, gói Giao dch g m các use case: Giao dch, ng nhp, Gii quyt PIN không hp l; gói Rút gi gm các use case: Gi tin, Rút tin, Truy vn thông tin tài khon; và gói Vn hành gm các use case: Khi đng h thng, óng h thng H thng qun lý th vin đc chia thành ba gói nh sau: Mn tr sách, đng ký thành viên, và Mua sách. X lý mn sách X lý tr sách Tra cu sách ng ký thành viên Mua sách c gi Th th Nhà cung cp Kim tra th <<include>> <<include>> Mn sách t th vi n thành viên X lý t chi m n sách <<extend>> <<extend>> Giao dch Rút gi Vn hành . use case t hai use case đó ti use case mi. Các use case X lý mn sách và X lý tr sách đu tha hng tt c hot đng ca use case ca use case. đng chung đó ra thành mt use case. Use case mi này có th s dng bi nhng use case khác. Quan h gia nhng use case vi use case đc trích ra này gi