1 / 43

Mô hình hóa Use Case

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.

kirby
Download Presentation

Mô hình hóa Use Case

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hoang Huu Hanh (PhD), Hue University hanh-at-hueuni.edu.vn Môhìnhhóa Use Case

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. << Actor >> Clerk Clerk Ký hiệu tác nhân Use Case Modeling

  14. 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

  15. 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

  16. 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

  17. Thời gian? • Xemthờigiannhưlàmộttácnhân • Tácnhânthờigiancóthểkíchhoạtmột Use Case Use Case Modeling

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. TVRS Use Case Example Use Case Modeling

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. Use-Cases • Provide the boundaries and scope of a project Use Case Modeling

  42. Prioritize Use Case • Based on risk • Time • Money Use Case Modeling

  43. Thank You! … feel tired? YES!!!! Use Case Modeling

More Related