- 17
3.2 Phân tích và đặc tả các yêu cầu hệ thống
Khái niệm ca sử dụng, hay trường hợp sử dụng (Use Case) đượcIvan Jacobson đề xuấttừnăm1994nhằmmôtảcácdịchvụcủahệthốngchokháchhàngvàxácđịnh mốiquanhệtươngtácgiữahệthốngphầnmềmvớiNSDtrongnghiệpvụ.
Một cách hình thứchơn, ca sử dụng mô tả tập các hoạt động của hệ thống theo
quan điểm của các tác nhân (Actor). Nó mô tả các yêu cầu của hệ thống vàtrảlờicho
câuhỏi:
Hệthốngphảilàm cái gì(What?).
Casửdụngmôtảmộtquátrìnhtừbắtđầuchođếnkhikếtthúc,gồmdãycácthao tác, cácgiaodịchcần thiếtđể sảnsinh racáigìđó (giátrị,thông tin)theo yêucầucủa một tổchức,củatácnhân,v.v.
Casửdụngđượckýhiệulà:
Hoạtđộng
Hình3-1 Kýhiệucủacasửdụng
-49-
Trongđó,“Hoạt động”làcácchứcnăng,nhiệmvụhaygọi chunglà dịchvụcủa hệthốngvànó thườngđượcmôtảbằngcác động từ,hay mệnh đề động từ đơn, vídụ:
bán hàng, thanh toán, khởi động hệ thống, v.v.
Những ca sử dụng phức tạp sẽ được mô tả chi tiết thông qua các kịch bản (scenario).
Mục tiêucủacasửdụngtrongcảquátrìnhpháttriểnphầnmềm:
Mô tả các yêu cầu chứcnăng củahệ thống, làkết quả củaquá trìnhkhảo sát, nghiên cứu các yêu cầu của bài toán và những thoả thuận giữa khách hàng, NSDhệthốngvớingườipháttriểnphầnmềm.
Làmcơsởđểngườiphântíchviênhiểu,ngườithiếtkếxâydựngcáckiếntrúc, ngườilập trìnhcàiđặt các chứcnăng,ngườikiểmduyệtkiểm tracác kếtquả thựchiệncủahệthống.
Các ca sử dụng đóng vai trò rất quan trọng trong cả quá trình phát triển phần mềm, tấtcả cácphaphân tích, thiếtkế saunàyđều dựa vàocác casửdụng.Như vậy, quá trình đượchướng dẫn bởi ca sử dụng (use case driven process) là một cách hữu hiệuđểmôhìnhhoáhệthốngvớiUML.
3.2.2 Tác nhân
Tác nhân ngoài, hay gọi ngắn gọn là tác nhân (External Actor, Actor) là những thực thểbên ngoàicó tương tácvớihệ thống, bao gồm người,vật,thiết bịhaycác hệ thống khác có trao đổi thông tin vớihệ thống. Nói cách khác, tác nhân đại diện cho người hay một bộ phận của tổ chức mong muốn nhận được các thông tin (dữ liệu) hoặccáccâutrảlờitừnhữngcasửdụngtươngứng.
Ví dụ: Khách mua hàng, người bán hànglàhaitácnhâncủaHBH.
Kýhiệucủatácnhânlà hình nhân cùng với tên gọinhưhình3-2.
Kháchhàng
Hình3-2 Kýhiệutácnhân Khách hàng
Tên gọi của tác nhânđượcmô tảbằng cácdanhtừ(chung)vàthườngphải đặctả
đượcvaitròcủanóđốivớihệthống.
Tácnhântraođổi vớihệthống thôngquaviệctươngtác,sửdụngcácdịchvụcủa hệthốnglàcáccasửdụngbằng cáchtrao đổicácthôngđiệp(Message). Nhưvậy,tác nhânsẽcungcấphoặcsửdụngcácthôngtincủahệthốngthôngquacáccasửdụng.
Trảtiềnmặt
Thanhtoán Kháchhàng
-50 -
Hình3-3Tácnhân Khách hàngtươngtácvớicasửdụng Thanh toán
Thôngthường trong mỗi hệ thống,khách hàng, NSD, ngườiquản lý, ngườiphụ vụ,v.v.cóthể xemnhư làcáctácnhân củahệthống đó.Chúng tacũngdễ nhận thấy, mộtcasửdụngthìphảiđượckhởiđộngbởi,hayphụcvụchomộthaynhiềutácnhân.
3.2.3Xácđịnhcáccasửdụngvàcáctácnhân
Thôngthườngviệcxácđịnhvàhiểurõcácyêucầuhệthốnglàrấtkhókhăn, phức tạp vìkhốilượngthôngtin liênquanlàrấtnhiều,đượcmôtảlộn xộnvà khôngcócấu trúc.KháiniệmcasửdụngđượcđưarađểbiểuthịcácyêucầutừphíaNSD,xuấtphát từquanđiểmđơn giảnlàhệthốngđượcxâydựngtrướchếtlàchonhữngNSDchúng, làđểphụcvụtốtchokháchhàng.
Như trên đã phân tích, các tácnhân và cácca sửdụng của một hệ thống có mối quan hệchặtchẽvới nhau. Mỗitácnhânphải liênquan đếnítnhấtmột casửdụngvà ngượclạimỗicasửdụnglạiphụcvụtrựctiếphoặcgiántiếpchomộtsốtácnhân.Như vậy, cáctác nhânvàcáccasửdụngcùngmốiquanhệ củachúngmô tảbức tranhkhái quát về hệ thống, đặc tảđầy đủ về các yêu cầu của hệ thống.Do đó,vấnđề rất quan trọng đặt ralà làm thếnào để xácđịnh đượcđầyđủ và chính xáccác tácnhân ngoài, cáccasửdụngcủahệthốngcầnxâydựng.
Xácđịnhcáctácnhân
Tác nhân là một bộ phận bên ngoài hệ thống nhưng cộng tác chặt chẽ với hệ thống. Nó chính là đối tượng màhệ thống phục vụ hoặc cần có để cungcấp dữ liệu. Dođó,nhiệmvụtrướctiêncủangườiphântíchlàxácđịnhcáctácnhân.
Mộttrongcác kỹthuậthỗtrợ để xácđịnhcáctácnhân làdựa trêncác câutrảlời nhữngcâuhỏisau:
Aisẽsửdụngcácchứcnăngchínhcủahệthống?
Aicầnsựhỗtrợcủahệthốngđểthựchiệncáccôngviệchàngngày?
Aiquản trị,bảodưỡngđểđảmbảochohệthốnghoạtđộngthườngxuyên?
Hệthốngquảnlý,sửdụngnhữngthiếtbịnào?
Hệthốngcầntươngtácvớinhữngbộphận,hệthốngnàokhác?
Aihaycáigìquantâmđếnkếtquảxửlýcủahệthống?
Xácđịnhcáccasửdụng
Bướctiếp theo là xácđịnh các casửdụng dựa trênnhững tài liệuđặc tảcác yêu cầu,thôngquacáctácnhân,v.v.Cóhaiphươngpháp chínhhỗtrợgiúptaxácđịnhcác casửdụng:
-51 -
a. Xác định những tác nhân liên quan đến hệ thốnghoặc đến tổ chức, nghĩa là tìm và xác định những tác nhân là NSD hay những hệ thống khác tương tác vớihệthốngcầnxâydựng.
b. Với mỗitác nhân, tìm những tiến trình (chức năng)được khởiđầu, hay giúp cáctácnhânthựchiện,giaotiếp/tươngtácvớihệthống.
2. Phươngphápthứhaiđểtìm cáccasửdụng là dựa vào các sự kiện.
a. Xác định những sự kiện bên ngoài có tác động đến hệ thống hay hệ thống phảitrảlời.
b. Tìmmốiliênquangiữacácsựkiệnvàcáccasửdụng.
Tươngtựnhưtrên,hãytrả lờinhữngcâuhỏisauđâyđểtìmracáccasửdụng: 1. Nhiệmvụchínhcủacáctácnhânlàgì?
2. Tác nhân cần phải đọc, ghi, sửa đổi, cập nhật, hay lưu trữ thông tin hay không?
3. Nhữngthayđổibên ngoàihệthốngthì tácnhân có cầnphảithông báochohệ thốnghaykhông?
4. Nhữngtácnhânnàocầnđượcthôngbáovềnhữngthayđổicủahệthống? 5. Hệthốngcầncónhữngđầu vào/ranào?,từđâuvàđếnđâu?
Dựavàocácphươngphápnêu trên,chúng tahãyxácđịnhcáctácnhân vàcácca sửdụng củahệthốngHBH.
1. Danhsáchcác tácnhâncủaHBH:
+ Khách hàng (Customer): là những người được hệ HBH phục vụ, là khách hàng.
+ Người bán hàng (Cashier): những người cần sửdụng chức năng bán hàng củahệthốngđểthựchiệnnhiệm vụcủamình.
+ Người quản lý (Manager):nhữngngườiđược phépkhởiđộng(Start Up)hay kếtthúccảhệthống(Shut Down)tạicácđiểmbánhàngđầucuối.
+ Người quản trị hệ thống (System Administrator): có thể bổ sung, thay đổi nhữngNSD.
2. Danhsáchcáccasử dụngcủaHBH
1. Bán hàng, mua hàng (Buy Items)là nhiệm vụ củahệ thống HBH liên quan
trựctiếp tới khách hàng và người bán hàng. Trongtrường hợpnày, haichức năng bán hàng và mua hàng là đồng nghĩa, nên có thể chọn một trong hai chức năng đó. Ca sử dụng này liên quan đến cả người bán hàng và khách
hàng.
2. Thanh toán, trả tiền mua hàng hay thu tiền (Refund Items, Cash Out): là chức năng mà hệ thống phải thực hiện để thanh toán với khách hàng bằng
- 52 -
Tác nhân Ca sử dụng
Ngườibánhàng(Cashier) Đăngnhậphệthống(LogIn) Thutiềnbánhàng(CashOut) Kháchhàng(Customer) Muahàng(BuyItems)
Thutiền,thanhtoán(RefundItems) Ngườiquảnlý(Manager)
Haygianhàngtrưởng
Khởiđộng hệthống(Start Up)đểngười bá n
hàngcóthểsửdụngđểbánhàng. Đónghệthốngkhihếtgiờ(ShutDown) Quản trị hệ thống
(SystemAdminitrator)
BổsungNSD(AddNewUsers) LoạibỏNSD(DeleteUser)
phươngthứcmàhọ lựachọn: trảtiềnmặt,thẻtíndụng,haytrảbằng séc. Ca sửdụngnàycũngliênquanđếncả người bán hàngvà khách hàng.
3. Đăng nhập hệ thống (Log In): Người bán hàng cần sửdụng đểnhập vào hệ thốngvàsửdụngnóđểbánhàng.
4. Khởi động (Start Up), Đóng hệ thống (Shut Down): Người quản lýthựchiện đểkhởiđộnghaykếtthúchoạtđộngcủahệthống.
5. Bổ sung NSD mới (Add New Users), Loại bỏ NSD (Remove User): Người
quản trị hệ thống cóthể bổsungthêmngườisửdụngmớihayloạibỏ những
NSDkhôngcòncầnsửdụnghệthống.
Sau khi xác định được các tác nhân và các ca sử dụng thì phải đặt lại tên cho chúng.Têncủacáctácnhânvàcasửdụngphảiđơn giản,rõnghĩavàphùhợp vớilĩnh vựccủabàitoánứngdụng.
Tên củatácnhânphảilà danh từ chungvàbiểuhiện đượcvaitròcủanótrong cácmốiquanhệvớihệthống.
Tên của ca sửdụng phải bắt đầu bằng động từ, là mệnh đề đơn, ngắn gọnvà môtảđúngnhiệmvụmàhệthốngcầnthựchiện.
người bán, nhưng trong hệ HBH ta có thể sử dụng một tên gọi chung là bán hàng. Tương tự, Thu tiền bán hàng và Thu tiền có thể đồng nhất là Thu tiền hoặc Thanh
toán.
3.2.3 Đặctả cáccasửdụng
Để hiểurõ hơn vềtiến trình xửlý cácyêu cầucủahệ thống, tanên xâydựngcác đặctảchocáccasửdụng.
-53-
Mẫu(Format)đặctảcasửdụngcódạng:
Ca sử dụng: Têncủacasửdụngbắtđầubằngđộngtừ.
Các tác nhân: Danh sách các tác nhân liên quan đến ca sử dụng, chỉ rõ ai bắt
đầuvớicasửdụngnày.
Mô tả:Môtảtómtắttiếntrìnhxửlýcôngviệccầnthựchiện.
Tham chiếu:Cácchứcnăng, casửdụngvànhữnghệthốngliênquan.
Ví dụ:ĐặctảmộtsốcasửdụngtrongHBH:
1.Casửdụng: Mua hay bán hàng(BuyItems)
Tác nhân:Kháchhàng,ngườibánhàng
Mô tả: Kháchhàngsaukhiđãchọnđủ cácmặthàngcầnmuađểởtronggiỏhàng
thìđưahàngđếnquầythutiền. Ngườibán(cashier)lầnlượtghinhậncác mặthàng tronggiỏhàng củakhách và thutiền. Sau khi thanhtoán xong kháchhàngđượcmangsốhàngđãmuađirakhỏicửahàng.
Tham chiếu tới:Cácchứcnăng R1.1,R1.2,2R1.3, R1.6,R1.7,R1.8, R2.1,R2.2,
R2.3.
2.Casửdụng: Thu tiền(thanhtoán)
Tác nhân:Kháchhàng,ngườibánhàng.
Mô tả:Kháchhàngcóthểtrảtiềntheo3phươngthức:
1.Trảtiềnmặt(PaybyCash)
2.Trảbằngthẻtíndụng (PaybyCredit) 3.Trảbằngséc(PaybyCheck)
Ngườibánnhậntiềnmặt,thẻtíndụng,tiềnsécrồi thanhtoántiềnthừachokhách
hàngsaukhithẻtíndụng,sécđãđượckiểmduyệt.
Tham chiếu tới:CácchứcnăngR1.1,R1.2,2R1.3,R1.9,R2.1,R2.2,R2.3.
Tươngtựmôtảtiếpcáccasửdụngcònlại.
Như trongđặc tả casửdụng “Thu tiền” ta thấynó lạiđược phân làmba trường hợp: Thu tiền mặt, thu bằng thẻ tín dụng và thu bằng séc.Do đó, đểhiểu rõ hơn các hoạt động của hệ thống chúng ta có thể bổ sung thêm ba ca sử dụng mới: Thu tiền
mặt, thu bằng thẻ tín dụng và thu bằng séc. Để thành toánđược bằng thẻ tín dụng và
bằng séc thìthẻtíndụng,sécphảiđượckiểmduyệtbởicáctácnhân:
+ Bộ phận kiểm duyệt thẻ tín dụng (Credit Authorization Service): Giúp hệ thốngkiểmtrathẻtíndụng.
-54 -
+ Bộ phận kiểm duyệt séc(Check Authorization Service):Giúp hệ thống kiểm
traséc.
Ngoàinhữngđặctảnêutrên,tacòncóthểxâydựngcác kịch bản (scenario)hành độngđể mô tảcác sự kiệnxảy ratronghệ thống.Mỗi kịchbản có thể mô tảtheo hai luồng: luồngthựchiện của các tácnhân và luồng tương ứngvới hệ thống. Ví dụ:đối vớicasửdụng“Bán hàng”cókịchbảnthựchiệnnhưsau:
Hành động của các tác nhân Hành động của Hệ thống
1. Kháchhàngsaukhichọnđủsốhàngcầnthiếtthìđưa hàngđãchọnđếnchoquầythutiền
2. Người bán ghi nhận từng mặt hàng. Nếu một mặt 3.Xácđịnhgiávàcácthông hàngmuavớisốlượngnhiềuhơnthìngườibánnhập
vàosốlượngđóvàotừbànphím.
4. Khi đã nhập xong các mặt hàngcủa khách đã chọn muathìngườibánphảichỉchohệHBHbiếtlàđãkết thúc phiên bán hàng bằng cách nhấn phím Enter hoặcnhấnnút“Kếtthúc”phiênbánhàng(EndSale).
6. Người bán thông báo cho khách hàng biết tổng số tiềnphảitrả.
7. Kháchhàngchọnphươ ngthứcthanhtoán:
a) Nếuchọntrả tiềnmặt:xemtiếpkịchbản con
(Sub_scenario)Thu
b) Nếu trảbằngthẻtíndụng:xemkịchbảncon
Thubằngthẻtíndụng.
c) Nếutrảtiềnséc:xemkịchbảnconThubằng Check. - 55 - tin về sản phẩm được hiểnthị. 5. Tính và hiển thị tổng số tiềnbánhàng.
8. Hiển thị số tiền dư phải trảchokháchhàng 9. Kết thúc một phiên giao dịchbánhàng. 10. C ập nhật lại các h àng trongcửahàng. 11. Phát sinh phiếu bán hàng(hoáđơn).
12.Người bántrả tiềnthừa vàđưa phiếubán hàngcho kháchhàng.
13.Kháchhàngrakhỏicửahàngvớihàngđãthanhtoán.
Lưu ý: Nếukháchhàngkhôngtrảđủtiền,hoặckhithẻtíndụng,séckhônghợplệ
thìhuỷbỏphiêngiaodịchđó.
Sau đó xâydựng những kịchbản khác hoặc những kịchbản con để hiểu vànăm bắtđượcmọiyêucầucủahệthống.
Sauđâychúngtaxéttiếpkịchbảncon Thu tiền mặtcủacasửdụng Thu tiền.
Hành động của các tác nhân Hành động của Hệ thống
vàtrảchongườibántiềnmặt.
2. Người bán nhập vào số tiền khách hàng trả (số nàycóthểlớnhơnsốtiềnphảitrả).
3.Hệthốnghiểnthịsố dưphải trảlạichokhách.
4. Ngườibántrảlạitiềndư.
Kịchbảncon“Thu bằng thẻ tín dụng
Hành động của các tác nhân Hành động của hệ thống
1.Kháchhàngtrảbằngthẻtíndụng.
2. Phát sinh yêu cầu trả thẻ tín dụng và gửi nó tới bộ phận kiểmtrathẻtíndụng.
3. Bộ phận kiểm tra thẻ cho phép trả tiền tín dụng saukhiđãkiểmtra.
4. Trừ số tiền phải trả vào tài
-56 -
khoảntíndụng.
3.3 Biểuđồcasửdụng
Biểu đồ ca sử dụng chỉramốiquanhệgiữa cáctácnhân vàcácca sửdụngtrong
hệthống.
Mỗicasửdụngcầnphảibiểudiễntrọnvẹnmộtgiaodịch giữaNSDvàhệthống.
Mốiquanhệgiữacáccasửdụng
Giữacáccasửdụngcóbaquanhệ chính: quan hệ mở rộng (extends), quan hệ sử
dụng (uses)và quan hệ theo nhóm hay theo gói (package).
1. Quan hệ mở rộng
Trongkhixâydựngnhữngcasửdụng,tanhậnthấycónhững casửdụnglạiđược sửdụngnhưlàmộtphầncủa chứcnăngkhác.Trongnhữngtrườnghợp nhưthếtanên xây dựng một casử dụng mớimở rộngmột haynhiều ca sửdụng đã xác định trước. Ca sửdụngmới đượcgọi là ca sử dụng mở rộng củanhững casửdụng cũ.Mốiquan