450 likes | 893 Views
Hoang Huu Hanh (PhD), Hue University hanh-at-hueuni.edu.vn. Mô hình hóa Use Case. Nội dung. Use Case là gì ? Lợi ích của Use Case Use Case vs. Tài liệu yêu cầu Mô hình hóa Use Case Hệ thống - System Tác nhân - Actor Use Case Quan hệ giữa các Use Case Ví dụ : TVRS Use Case.
E N D
Hoang Huu Hanh (PhD), Hue University hanh-at-hueuni.edu.vn Môhìnhhóa Use Case
Nội dung • Use Case làgì? • Lợiíchcủa Use Case • Use Case vs. Tàiliệuyêucầu • Môhìnhhóa Use Case • Hệthống - System • Tácnhân - Actor • Use Case • Quanhệgiữacác Use Case • Vídụ: TVRS Use Case Use Case Modeling Based on tutorials and presentations of Rational’s UML website
Use Case làgì? • ĐượcđềxuấtbởiIvar Jacobson (1994) • “Là một khối chức năng được thực hiện bởi hệ thống để mang lại một kết quả có giá trị đối với một actor nào đó” • Trảlờicâuhỏi“Hệthốngsẽlàmgì” theocáchnhìncủangườisửdụng • Làtậpcáckịchbảnđượcđưaradựavàocácyêucầuchungcủangườisửdụng • Môhìnhhóa Use Case khôngphảilàmộtkỹthuậtmôhìnhhóahướngđốitượng Use Case Modeling
Lợiích Use Case • Nắmbắtcácyêucầuvềchứcnăngtừkhíacạnhngườidùng • Môtảrõràngvàphùhợpnhữnggìhệthốngcầnlàm • Làcơsởđểkiểmđịnhhệthống • Giúpchoviệcđưacácyêucầuhệthốngthànhcáclớpvàcáchàmchứcnăngvàohệthống Use Case Modeling
Lợiích Use Case • Đóngvàitrònhưlàmộtđơnvịcơbảndùngđểđánhgiá • Làđơnvịđượcphântáchnhỏnhất • Each increment that is planned and delivered is described in terms of the Use Case that will be delivered in that increment Use Case Modeling
Use Case vàcácyêucầu • Mộttàiliệuyêucầuchobiếtnhữnggìhệthốngsẽthựchiện. Use Case môtảnhữnghoạtđộngmàngườisửdụngthựchiệnvànhữngđáptrảtươngứngcủahệthống • Đôikhi Use Case đượcxemnhưlàmộtsuyluậntừnhữngyêucầu • Cácyêucầusẽđượclậptàiliệuhiệuquảbằngcác Use Case • Tăngkhảnăngtìmvết • Giúpchoviệcxácthựcyêucầungườidùngvàchứcnăngcủahệthốngdễdànghơn • Giúpchoviệcphânloạingườisửdụngthủcông • Côngcụđểtìmcáclớp Use Case Modeling
Use Case vàcácyêucầu • Use Case khôngphùhợpchoviệcxácđịnhcácyêucầu phi chứcnăngcủahệthống • Use case đượcxemnhưlàmộtphầncủaviệcđặctảcácyêucầuhệthống Use Case Modeling
Biểu đồ Use Case • Môhình Use Case đượcmôtảtrong UML bởimột hay nhiềubiểuđồ Use Case (UCD) • Mộtbiểuđồ Use Case baogồm 4 thànhphầnchính: • Môtảhệthống • Cáctácnhânmàhệthốngtươngtác • Các UC, hoặcdịchvụmàhệthốngthựchiện • Mốiquanhệgiữacácthànhphầntrên Use Case Modeling
Hệ thống • Làmộtphầncủamôhình Use Case • Ranh giới của hệ thống mà ta muốn phát triển cần phải được định nghĩa rõ ràng • Hệthốngkhôngcầnthiếtlàmộthệthốngphầnmềm • Địnhnghĩacácvùngbiênquantrọngcủahệthống • Nhữngtácvụnàođượcthựchiệntựđộnghoặcthủcông? • Nhữngtácvụnàođượcthựchiệnbởicáchệthốngkhác? • Tấtcảcácgiảiphápđượcđưaraphảinằmtrongvùngbiêncủahệthống Use Case Modeling
Hệ thống • Một hệ thống trong biểu đồ Use Case được mô tả như một hộp hình khối • Tên của hệ thống được hiển thị bên trong hoặc trên hộp hình khối Traffic Violations Report System Use Case Modeling
Tác nhân • Làcáigìhoặcaitươngtácvớihệthống (traođổithông tin vớihệthống) • Tác nhân mô tả và đại diện cho một vai trò, chứ không phải là một người sử dụng thật sự và cụ thể của hệ thống • Vídụ: • Nhânviên (Clerk)– Nhậpdữliệu • Ngườigiámsát (Supervisor)– Cho phéphiệuchỉnh/xóadữliệu • Ngườiquảnlý (Manager) – Cho phépxemcácphântích • Mộtngườisửdụngđơnlẻcóthểcónhiềuhơnmộtvaitrò Use Case Modeling
Tác nhân • Tácnhâncómụcđích: • Add a Traffic Violation • Lookup a Traffic Violation • Tácnhânkhôngnhấtthiếtlà con người • Cóthểlàmộthệthốngbênngoàitươngtácvớihệthốngchính • Mỗitácnhânđềucótên, phảnánhvaitròcủatácnhân • Một use case luônđượckíchhoạtbởimộttácnhânnàođó Use Case Modeling
<< Actor >> Clerk Clerk Ký hiệu tác nhân Use Case Modeling
Clerk Supervisor Manager Mối quan hệ giữa các tác nhân • Khi các tác nhân với từng vai trò cả mình, nhằm thực hiện một vai trò khái quát hơn thì vai trò đó được mô tả như một sự khái quát chung của từng vai trò riêng biệt • Những hành vi chung của các tác nhân sẽ được mô tả ở lớp cha • Các tác nhân kế thừa các hành vi của lớp tác nhân cha và mở rộng những chức năng mà lớp cha không có • Các tác nhân không nhất thiết lúc nào cũng có quan hệ với nhau Use Case Modeling
Xác định tác nhân • Ai sửdụngchứcnăngchínhcủahệthống? • Ai sẽduytrì, quảnlývàgiữchohệthốnglàmviệc? • Nhữngphầnmềm/hệthốngkhácmàhệthốngcầntươngtác? • Nhữnghệthốngmáytínhkhác • Nhữngứngdụngkhácchạytrêncùngmộtmáytính (i.e. X client/server) • Chú ý: tránhnhầmlẫngiữasựtươngtác (interaction) vớiđầuvào (input) Use Case Modeling
Xác định tác nhân • Làai • Sửdụnghệthống? • Càiđặthệthống? • Khởiđộnghệthống? • Duytrìhệthống? • Thoáthệthống? • Thu thậpthông tin từhệthống? • Cungcấpthông tin chohệthống? • Chuyệngìxảyratạimộtthờiđiểmđịnhtrước? Use Case Modeling
Thời gian? • Xemthờigiannhưlàmộttácnhân • Tácnhânthờigiancóthểkíchhoạtmột Use Case Use Case Modeling
Use Case • Mô tả một chức năng hoàn chỉnh theo quan điểm của một tác nhân • Một UC thỏa mãn một mục đích nào đó của tác nhân • Luôn được kích hoạt bởi một tác nhân • Một UC cung cấp một giá trị cho một tác nhân • Một UC phải hoàn chỉnh • Tránh phân rã UC thành các UC nhỏ hơn bổ sung cho nhau (phân rã chức năng) Use Case Modeling
Use Case (cont.) • Cáckịchbảncủa UC thườngđượcmôtảdướidạngvănbản • Đặctảđơngiảnvànhấtquáncáchthứcmàtácnhânvàhệthốngtươngtácvớinhau • MẫumôtảUC (Use Case Description Tempate • Môtảtheomức ý địnhcủangườisửdụngvàsựtrảlờicủahệthống • Khôngsửdụngcácyếutốcôngnghệ, tránhchítiếthoácáccơchế, đặcbiệtlàliênquanđếncácgiaodiện Use Case Modeling
Mẫumôtả UC • Tên (Name) • Têncủa UC, cónghĩagầnvớimụcđíchngườisửdụng • Cáctácnhân (Actors) • Mụcđích (Goals) • Cácyêucầu (Requirements) (tùychọn) • Cungcấpkhảnănglầnvết • Điềukiệntiênquyết (Pre-Conditions) • Cácđiềukiệncầnthiếtcầnphảicótrướckhithựchiệnmộ UC • Cóthểlàmột UC khác(khônggiốngvớiquanhệ<<include>>) Use Case Modeling
Biểu mẫu mô tả UC • Môtả (Description) • Môtảcáctiếntrìnhcơbảnhoặcbìnhthườngcủahệthốngnếuhệthốnghoạtđộngnhưdựđịnh (mọithứđiềuđúng) • Điềukiệnsau (Post-conditions) • Trạngtháicủahệthốngsaukhi UC đượcthựcthi • Cácgiátrịđưarachocáctácnhân • Phânbiệtgiữabiếnthểvàcácngoạilệ • Cácbiếnthể (Variations) • Cácđiềukiệndẫntớiviệcphânnhánh • Môtảcáctiếntrìnhthaythếhoặclàtênmởrộngcủa UC • Cácngoạilệ (Exceptions) • Nhữngđiềukiệnkhôngmongđợidẫntớiviệcphânnhánh (xungđộtvớiđiềukiệnsau) • Môtảcáctiếntrìnhthaythế Use Case Modeling
Use-Cases Tips • Phầnlớnbắtđầuvàkếtthúcbởitácnhân • Kịchbản (môtả) đượcviếttheocáchnhìncủatácnhân (vìvậycácbướcnênchỉrõchotácnhânthấy) • Sửdụngcáccâukhaibáo Use Case Modeling
Tìmkiếm Use Case • Vớimỗitácnhân, taxácđịnh: • Nhữngdịchvụnàotácnhânyêucầutừhệthống? • Hệthốngcólưutrữthông tin không? • Đọc, tạo, hủy, hiệuchỉnh, lưutrữthông tin • Liệutácnhâncầnđượcthôngbáovềcácsựkiệntronghệthống, hay tácnhâncầnthôngbáochohệthốngvềviệcgìđókhông? • Côngviệcthườngngàycủatácnhâncóđơngiảnkhông? • Khôngnênchỉtậptrungvàohệthốnghiệntại Use Case Modeling
Traffic Violations Report system Add Traffic Violation Clerk Use Case (cont.) • Kýhiệu Use Case • Làmộthìnhelipchứatêncủa Use Case • Đượcđặtbêntrongbiênmôhìnhcủahệthống • Kếtnốivớiítnhấtmộttácnhân Ngoạilệchocác UC đặcbiệtvàmởrộng Use Case Modeling
X Y << include >> Mối quan hệ giữa các Use Case • Mốiquanhệ “Include” (“uses” đốivớicácphiênbảntrước) • Khimộtsố UC cóchunghành vi, thìhành vi đósẽđượcmôhìnhhóathànhmột UC riêngđượcsửdụngbởicác UC khác • X << includes >> Y cónghĩalàmuốnthựchiệnhànhđộng X thìphảithựchiện Y ítnhấtmộtlần • Thậntrọngđốivớiviệcphânrãchứcnăng • UC “include” phảihoànchỉnh • X phảithỏamãnnhữngđiềukiệnđầucủa Y trướckhi “include” Y Use Case Modeling
Specialized Generalized Mốiquanhệgiữacác Use Case • Quanhệkháiquáthóa • Sửdụngkhimộtsố Use Case cóchungmộtvàitácvụ, nhưngkhácnhau ở mộtvàitácvụkhácđểcóthểtáchrathànhcác Use Case riêngbiệt • Các Use Case tổngquátvàchuyênbiệtphảicócùngchungmụcđích • Một Use Case chuyênbiệtnắmbắtmộtkịchbảnnàođócủa Use Case tổngquát • Use Case tổngquátphảihoànthiện Use Case Modeling
Specialized Generalized Mốiquanhệgiữacác Use Case • Quanhệkháiquáthóa • Use Case chuyênbiệtcóthểtươngtácvớicáctácnhânmới • Loại Use Case nàycũngcóthểthêmvàocácđiềukiệnđầuvàpost-conditions Use Case Modeling
Recommended Workflow • Xácđịnhcáctácnhân (quanhệgiữachúngnếucầnthiết) • Vớimỗitácnhânđãxácđịnh, tìm UC chođếnkhikhôngtìmthấy UC mới • Xácđịnhtấtcảmụcđíchcủatácnhân • Quyếtđịnhtiếntrìnhnàosẽgiúpđạtđượcđốivớimỗimụcđích • Tạo Use Case đốivớimỗimụcđíchtìmđược • Tácnhân/mụcđíchmớicóthểđượctìmthấytrongbướcnày • Xácthực/kiểmtratínhđúngcác Use Case tìmđược • Vẽbiểuđồ Use Case • Đơngiảhóamôhìnhbằngcáchlặplạicácquytrìnhtrongtrườnghợpbiểuđồquáphứctạp Use Case Modeling
TVRS Use Case Example Use Case Modeling
Example – TVRS Use Case External System • Name: Remove Traffic Violation • Actors: Supervisor, OffendersDB. • Goal: Remove an existing Traffic Violation • References to requirements: 1.2.3, 1.3.2.4, … • Pre-conditions: • Normal Course of “Lookup Traffic Violation” UC is completed, and the details of an existing Traffic Violation are displayed • Description: • Supervisor calls for deletion of the chosen Traffic Violation • TVRS prompts Supervisor for confirmation Use Case Modeling
Example – TVRS Use Case • Supervisor confirms • TVRS requests OffendersDB to delete the Traffic Violation from the offender’s record • OffendersDB approves that the Traffic Violation has been deleted • TVRS allows Supervisor to look up a new Traffic Violation as described in the “Lookup Traffic Violation” UC • Post-conditions: • Removed Traffic Violation is no longer stored in the TVRS. • Traffic Violation is removed from the offender’s record in the OffendersDB • "Lookup Traffic Violation" form is displayed Use Case Modeling
Example – TVRS Use Case • Exceptions: • 3a: Supervisor cancels: • 3a1: TVRS Continues to item 6 without removing the Traffic Violation • 5a: Traffic Violation is not removed from the OffendersDB • 5a1: TVRS displays an error message describing the failure5a2: TVRS continues to item 6 without clearing chosen Traffic Violation details, and without deleting the Traffic Violation Use Case Modeling
Example – TVRS Use Case • Name: Add Traffic Violation • Actors: Clerk, PolicemenDB, OffendersDB • Goal: Add a new Traffic Violation to the TVRS • References to requirements: … • Pre-conditions: • The Traffic Violation Management window is displayed • Description: • Clerk calls for addition of a new Traffic Violation • TVRS displays an empty Traffic Violation Details form • Clerk enters violation details and calls for saving the new Traffic Violation Use Case Modeling
Example – TVRS Use Case • TVRS prompts Clerk for confirmation. • Clerk confirms • TVRS asks the PolicemenDB whether or not the policeman is known • PolicemenDB replies that the policeman is known • TVRS asks the OffendersDB whether or not the offender is known • [Extension point] OffendersDB replies that the offender is known … Use Case Modeling
Example – TVRS Use Case • Post-conditions: • New Traffic Violation is stored in the TVRS • TVRS displays an empty Traffic Violation Details form • Variations: • 5a: Clerk cancels • 5a1: TVRS continues to item 2 without clearing the traffic violation details entered by clerk • 9a: OffendersDB replies that the offender is not known. • Described in Use Case “New Offender” • 7a: Policeman is not stored in the policemenDB • 7a1: TVRS displays an error message • 7a2: TVRS continues to item 2 without clearing Traffic Violation details entered by clerk • ... Use Case Modeling
Example – TVRS Use Case • Exceptions: • 3a: Clerk cancels addition of the new Traffic Violation • 3a1: TVRS displays the "Traffic Violation Management" form • … Use Case Modeling
Example – TVRS Use Case • Name: New Offender [extends “Add Traffic Violaton” ] • Actors: • Goal: • References to requirements: … • Pre-conditions: • Offender is not stored in the OffendersDB UC attributes are “inherited” Use Case Modeling
Example – TVRS Use Case • Description: • 9a: OffendersDB replies that the offender is not known. [Add Traffic Violation] • 9b: TVRS displays an empty “Offender Details form” • 9c: Clerk enters offender details and calls for saving the new details • 9d: TVRS prompts Clerk for confirmation • 9e: Clerk confirms • 9f: TVRS requests OffendersDB to store the new offender • 9g: OffendersDB replies that offender was stored successfully • Post-conditions: • New Offender is stored in the offenders DB • ... Use Case Modeling
Traffic Violations Report System Edit T.V. (8) Add T.V. (9) <<extend>> <<include>> OffendersDB Clerk Remove T.V Lookup T.V Replace Offender New Offender PolicemenDB <<extend>> Supervisor Example – TVRS Use Case Use Case Modeling
Levels of Use-Cases • Sea-Level • Discrete interactions between primary actor and system • Kite-Level • Show how sea-level use-cases fit into wider business interactions Use Case Modeling
Use-Cases • Provide the boundaries and scope of a project Use Case Modeling
Prioritize Use Case • Based on risk • Time • Money Use Case Modeling
Thank You! … feel tired? YES!!!! Use Case Modeling