Hệ thống thông tin - Chương 5: Mô hình tương tác đối tượng

pptx 129 trang vanle 2570
Bạn đang xem 20 trang mẫu của tài liệu "Hệ thống thông tin - Chương 5: Mô hình tương tác đối tượng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptxhe_thong_thong_tin_chuong_5_mo_hinh_tuong_tac_doi_tuong.pptx

Nội dung text: Hệ thống thông tin - Chương 5: Mô hình tương tác đối tượng

  1. TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Chương V DINAMIC MODEL
  2. NỘI DUNG 1. Khái niệm mô hình động 2. Activity diagram 3. Sequence diagram 4. Collaboration diagram
  3. KHÁI NIỆM MÔ HÌNH ĐỘNG (DINAMIC MODEL) • Mô hình động (dynamic model). để mô hình hóa sự hoạt động thật sự của một hệ thống và trình bày một hướng nhìn đối với hệ thống trong thời gian hệ thống hoạt động • Hành vi của hệ thống được mô tả bằng mô hình động bao gồm: – Tương tác giữa các đối tượng: cộng tác hay trình tự – Trạng thái của đối tượng/lớp – Quá trình hoạt động của lớp/đối tượng
  4. KHÁI NIỆM MÔ HÌNH ĐỘNG (DINAMIC MODEL)
  5. TƯƠNG TÁC GIỮA CÁC ĐỐI TƯỢNG(1) • Đối tượng tương tác (interaction) với nhau bằng cách gởi nhận các kích hoạt(stimulus) • Actor cũng có thể gởi kích hoạt đến đối tượng • Kích hoạt khiến một tác vụ thực thi, một đối tượng được tạo ra hay hủy đi, hoặc gây ra một tín hiệu. • Thông điệp (message) là đặc tả của kích hoạt.
  6. TƯƠNG TÁC GIỮA CÁC ĐỐI TƯỢNG(1) • Các loại thông điệp: – Đơn giản – Đồng bộ – Bất đồng bộ – Trả về của gọi hàm
  7. VAI TRÒ CỦA LƯỢC ĐỒ TƯƠNG TÁC • UC mô tả chức năng của hệ thống, chỉ ra các actor có thể sử dụng hệ thống để làm gì (what), nhưng không chỉ ra hệ thống sẽ làm như thế nào. • Chính các lớp và hành động (action) của các lớp sẽ thực thi các use case. Các hành động được thể hiện trong lược đồ tương tác
  8. CÁC LOẠI BIỂU ĐỒ ĐỘNG Bốn loại biểu đồ động trong UML • Lược đồ hoạt động (Activity diagram) • Lược đồ tuần tự (Sequence diagram) • Lược đồ cộng tác (Collaboration diagram) • Lược đồ trạng thái (Status diagram)
  9. ACTIVITY DIAGRAM • Biểu dồ Activity được sử dụng để mô hình hóa luồng công việc của use case bằng các phần tử đồ họa • Nó chỉ ra: – các buớc trong luồng công việc – các điểm quyết định – ai có trách nhiệm thực hiện từng buớc – các đối tượng ảnh hưởng đến luồng công việc • Lược đồ hoạt động thường được sử dụng để biểu diễn cho hoạt động một use case • Lược đồ hoạt động cũng thường được mô tả qui trình xử lý nghiệp vụ.
  10. ACTIVITY DIAGRAM Thí dụ: Khách hàng nhận được sản phẩm lỗi, yêu cầu trả lại hàng • Customer viết thư yêu cầu bồi thuờng. Customer service representative nghiên cứu thư. Nếu thiếu tài liệu yêu cầu thì họ viết thư từ chối bồi thuờng. Nếu đầy đủ tài liệu thì họ lưu trữ thư và đồng thời Account payable clerk viết séc. Khi xong hai việc này, Customer service representative thông báo cho khách hàng và yêu cầu của họ được chấp nhận.
  11. MỤC ĐÍCH SỬ DỤNG ACTIVITY DIAGRAM • Để nắm bắt công việc (hành động) sẽ phải được thực thi khi một thủ tục được thực hiện. • Để chỉ ra một nhóm hành động liên quan có thể được thực thi ra sao, và chúng sẽ ảnh hưởng đến những đối tượng nằm xung quanh chúng như thế nào. • Để chỉ ra một trường hợp sử dụng có thể được thực thể hóa như thế nào, theo khái niệm hành động và các sự biến đổi trạng thái của đối tượng. • Để chỉ ra một doanh nghiệp hoạt động như thế nào theo các khái niệm tác nhân, qui trình nghiệp vụ (workflow), hoặc tổ chức và đối tượng (các khía cạnh vật lý cũng như tri thức được sử dụng trong doanh nghiệp).
  12. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM • Các phần tử chính của biểu đồ hoạt động – Swimlines: chỉ ra ai có trách nhiệm thực hiện các nhiệm vụ trong biểu đồ – rounded rectangles mô tả các công việc actions – diamonds mô tả điều kiện quyết định decisions – a black circle mô tả bắt đầu workflow. – an encircled black circle mô tả kết thúc workflow •
  13. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  14. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  15. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM Nhập tối đa 3 lần
  16. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM Vẽ sơ đồ activity cho đăng nhập vào 1 website với user là admin và user
  17. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  18. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  19. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  20. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM • Biểu đồ hoạt động của máy ATM. Sau khi thẻ được đưa vào máy, ta thấy có ba hoạt động song song: – Xác nhận thẻ – Xác nhận mã số PIN – Xác nhận số tiền yêu cầu được rút • Chỉ khi sử dụng biểu đồ hoạt động, các hoạt động song song như vậy mới có thể được miêu tả. Mỗi một hoạt động xác nhận bản thân nó cũng đã có thể là một quá trình riêng biệt.
  21. VÍ DỤ ACTIVITY DIAGRAM • Sơ đồ hoạt động hiệnthực hoá use case Quản lý nhập hàng
  22. VÍ DỤ ACTIVITY DIAGRAM • Sơ đồ hoạt động hiện thực hoá use case Quản lý khách hàng thân thiết
  23. VÍ DỤ ACTIVITY DIAGRAM
  24. VÍ DỤ ACTIVITY DIAGRAM • Example of an activity diagram
  25. VÍ DỤ ACTIVITY DIAGRAM
  26. VÍ DỤ ACTIVITY DIAGRAM • Partitions
  27. VÍ DỤ ACTIVITY DIAGRAM Xây dựng một số Collaboration diagram của ứng dụng quản lý TKB: • SV chọn chức năng xem TKB lớp • Hệ thống hiển thị màn hình xem TKB lớp • SV chọn lớp, niên khóa, học kỳ • SV chọn chức năng xem TKB • Hệ thống truy cập CSDL lấy thông tin TKB tương ứng với lớp SV chọn • Hệ thống hiển thị thông tin TKB
  28. VÍ DỤ ACTIVITY DIAGRAM
  29. CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
  30. BÀI TẬP ACTIVITY DIAGRAM
  31. BÀI TẬP ACTIVITY DIAGRAM
  32. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM • Biểu đồ tuần tự minh họa các đối tượng tương tác với nhau ra sao theo trình tự thời gian. Chúng tập trung vào các chuỗi thông điệp, có nghĩa là các thông điệp được gửi và nhận giữa một loạt các đối tượng như thế nào. • Biểu đồ tuần tự có hai trục: trục nằm dọc chỉ thời gian, trục nằm ngang chỉ ra một tập hợp các đối tượng. • Một biểu đồ tuần tự cũng nêu bật sự tương tác trong một cảnh kịch (scenario) – một sự tương tác sẽ xảy ra tại một thời điểm nào đó trong quá trình thực thi của hệ thống. • Các thông điệp được trao đổi với nhau theo trình tự thời gian • Các mối liên kết không được thể hiện trong lược đồ
  33. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Client Object Supplier Object :Client Message :Supplier Object Lifeline Reflexive Message 1: PerformResponsibility Event Occurrence Execution 1.1: PerformAnother Responsibility Occurrence Hierarchical Message Numbering ref Interaction Occurrence Các thuật ngữ dùng cho lược đồ tuần tự (sequence diagram)
  34. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Các thành phần của Sequence diagram: • Hình chữ nhật biểu diễn đối tượng có các đường gạch rời (dashed line) thẳng đứng biểu thị đường đời (thời gian sống) của đối tượng, tức là sự tồn tại của đối tượng trong chuỗi tương tác. Trong khoảng thời gian này, đối tượng được thực thể hóa, sẵn sàng để gửi và nhận thông điệp. • Quá trình giao tiếp giữa các đối tượng được thể hiện bằng các đường thẳng thông điệp nằm ngang nối các đường đời đối tượng. Mỗi mũi tên ở đầu đường thẳng sẽ chỉ ra loại thông điệp này mang tính đồng bộ, không đồng bộ hay đơn giản. • Để đọc biểu đồ tuần tự, hãy bắt đầu từ phía bên trên của biểu đồ rồi chạy dọc xuống và quan sát sự trao đổi thông điệp giữa các đối tượng xảy ra dọc theo tiến trình thời gian.
  35. VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
  36. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Các bước thực hiện: 1. Identify classes 2. Add messages 3. Place lifeline and focus of control Khi vẽ biểu đồ tuần tự, cần chú ý: • Sự kiện được biểu diễn bằng các đường thẳng nằm ngang. • Đối tượng bằng các đường nằm dọc. • Thời gian được thể hiện bằng đường thẳng nằm dọc bắt đầu từ trên biểu đồ. Điều đó có nghĩa là các sự kiện cần phải được thể hiện theo đúng thứ tự mà chúng xảy ra, vẽ từ trên xuống dưới.
  37. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM • Việc xây dựng lược đồ sequence sẽ dễ dàng hơn nếu đã xây dựng xong: – Mô tả use case – Mô hình domain • Từ các nguồn này sẽ giúp xác định được tập hợp các tương tác và các đối tượng tham gia vaò các tương tác này. • Lược đồ tuần tự đều được mô hình ở mức đối tượng hơn là ở mức lớp. • Đối với mỗi scenario của UC, nhiều điển hình (instance) của cùng 1 lớp sẽ tham gia vào lược đồ và làm việc cùng nhau.
  38. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM • Có ba lớp tham gia cảnh kịch này: khách hàng, máy ATM và tài khoản. • Khách hàng đưa yêu cầu rút tiền vào máy ATM • Đối tượng máy ATM yêu cầu khách hàng cung cấp mã số • Mã số được gửi cho hệ thống để kiểm tra tài khoản • Đối tượng tài khoản kiểm tra mã số và báo kết quả kiểm tra đến cho ATM ATM gửi kết quả kiểm tra này đến khách hàng • Khách hàng nhập số tiền cần rút. • ATM gửi số tiền cần rút đến cho tài khoản • Đối tượng tài khoản trừ số tiền đó vào mức tiền trong tài khoản. Tại thời điểm này, chúng ta thấy có một mũi tên quay trở lại chỉ vào đối tượng tài khoản. Ý nghĩa của nó là đối tượng tài khoản xử lý yêu cầu này trong nội bộ đối tượng và không gửi sự kiện đó ra ngoài. • Đối tượng tài khoản trả về mức tiền mới trong tài khoản cho máy ATM. • Đối tượng ATM trả về mức tiền mới trong tài khoản cho khách hàng và dĩ nhiên, cả lượng tiền khách hàng đã yêu cầu được rút.
  39. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Ba ký hiệu cơ bản : • Đối tượng (điển hình của lớp), • Thông điệp hay tác nhân (message/stimuli) • Chu kỳ sống của đối tượng (object lifeline).
  40. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Đối tượng(hay điển hình lớp)-Object (class instance) • UML sử dụng cùng 1 ký hiệu của lớp phân tích cho điển hình lớp: một hình chữ nhật, bên trong là tên điển hình lớp được gạch dưới và được viết theo một trong 2 dạng sau: – Dạng 1 là “tên điển hình : tên lớp” – Dạng 2 là “: tên lớp”
  41. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Đối tượng(hay điển hình lớp)Object ( class instance) • Ví dụ lớp ý niệm “Sale”, 2 điển hình của nó theo dạng 1 và 2 như hình vẽ sau. • Trong lược đồ tuần tự, các đối tượng (object) đều nằm trên đỉnh lược đồ, thứ tự của các đối tượng được sắp xếp sao cho dễ nhìn.
  42. THỂ HIỆN ĐỐI TƯỢNG
  43. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Ánh xạ đối tượng vào lớp Mapping an Object to a Class • Tất cả các đối tượng trong lược đồ tuần tự cần được ánh xạ (map) vào một lớp nào đó. • Có thể gán cho đối tượng thuộc 1 lớp đã được định nghĩa sẵn trong mô hình domain, hay gán cho nó 1 lớp mới
  44. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Chu kỳ sống(lifeline) của đối tượng • Thời gian được biểu diễn bằng đuờng đứt nét theo phương thẳng đứng và được gọi là lifeline. • Hình chữ nhật hẹp dọc theo lifeline được gọi là thanh hoạt động (activity bar), dùng để biểu diễn thời gian thực thi của một hành động (action) tương ứng. • Activity bar còn được gọi là Focus of control, ký hiệu này chỉ xuất hiện trong lược đồ tuần tự • Để chỉ ra một đối tượng đã kết thúc, đặt chữ X trên lifeline của đối tượng nơi xảy ra kết thúc. Điều này có nghĩa là nếu không có dấu hiệu chữ X trên lifeline của một đối tượng nào đó khi chuỗi các sự kiện trong một lược đồ đã kết thúc thì đối tượng đó vẫn tiếp tục tồn tại.
  45. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Thông điệp (Message) • Mỗi thông điệp đều có cú pháp như sau: – return := message(parameter : parameterType) : returnType – Parameter: là tham số của thông điệp, – returnType: loại của giá trị trả về (tùy chọn) • Ví dụ : – spec := getProductSpect(id) – spec := getProductSpect(id:ItemID) – spec := getProductSpect(id:ItemID): ProductSpect
  46. BIỂU DIỄN THÔNG ĐIỆP
  47. BIỂU DIỄN THÔNG ĐIỆP
  48. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
  49. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Interaction Frame
  50. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Common Frame Operators
  51. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Mô tả Responsibilities • Responsibility là phát biểu liên quan đến việc đối tượng được yêu cầu phải cung ứng. • Hai dạng responsibility: – Action: đối tượng cần phải thực thi – Knowledge: đối tượng phải duy trì và cung cấp cho các đối tượng khác • Responsibility được suy diễn từ message trong lược đồ tuần tự
  52. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Mô tả Responsibilities
  53. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Message và responsibility • Nếu message có thể chưa được gán với operation của 1 lớp →tên của message sẽ là chuỗi tạm thời mô tả ý nghĩa chung của message
  54. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Duy trì tính thống nhất khi gán nhiệm vụ Khi xem lại các lớp, cần loại trừ các trường hợp sau: • Responsibility trùng nhau giữa các lớp • Các responsibility khác biệt nhau trong cùng 1 lớp • Lớp chỉ có 1 responsibility • Lớp không có responsibility nào • Lớp tương tác với quá nhiều lớp khác.
  55. CHU KỲ SỐNG CỦA ĐỐI TƯỢNG
  56. ĐIỀU HƯỚNG GỌI METHODS Activation Nesting
  57. SELECTION AND LOOPS
  58. LINKING SEQUENCE DIAGRAMS • If one diagram is too large or refers to another, indicate with: – an unfinished arrow and comment, – or a "ref" frame that names the other diagram • when would this occur in our system? Customer Info ref Verify customer credit Approved?
  59. VÍ DỤ LINKING SEQUENCE DIAGRAMS sd Example StoreFront Cart Inventory loop AddItem ReserveItem Checkout ProcessOrder ConfirmOrder PlaceItemInOrder
  60. FORMS OF SYSTEM CONTROL • What can you say about the control flow of each system? – Is it centralized? – Is it distributed?
  61. Flawed sequence diagram 1 • What's wrong with this sequence diagram? (Look at the UML syntax and the viability of the scenario.)
  62. Flawed sequence diagram 1 • What's wrong with this sequence diagram? (Look at the UML syntax and the viability of the scenario.)
  63. Flawed sequence diagram 1 • Ví dụ: lược đồ tuần tự dạng tổng quát
  64. Flawed sequence diagram 1 • VD: lược đồ tuần tự dạng tổng quát
  65. Flawed sequence diagram 1 • VD: lược đồ tuần tự dạng cụ thể cho use case Login của hệ thống đăng ký môn học tín chỉ qua web
  66. Flawed sequence diagram 1
  67. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
  68. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Typically, actors interact with boundary classes, which in turn interact with control classes, which in turn interact with entity classes.
  69. LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
  70. VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
  71. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: Customer Places Order Scenario
  72. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: Customer Places Order Scenario
  73. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: University Enrollment Model Course Student > course_code : String > student_id : String > course_name : String student_name : String credit_points : Integer current_fees : Money has_stud * takes takes_crsoff 0 * 0 * CourseOffering AcademicRecord * year : Date course_code : String semester : Integer year : Date enrolment_quota : Integer semester : Integer grade : String 0 * 0 1 AcademicInCharge
  74. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: University Enrollment Model
  75. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: Car Ordering
  76. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: Car Ordering - Kịch bản lựa chọn
  77. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM Example: Car Ordering - Hợp nhất các kịch bản
  78. SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM • Example: Car Ordering - Làm mịn biểu đồ tuần tự
  79. BÀI TẬP SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM • Create a sequence diagram for a “New conference registration” use case for the HICSS registration system. – This diagram should describe how the system: • Collect registrants information • Validate required information • Provide information on payment or process online Paypal payment • Generate a registration receipt • Record registration data at the appropriate time(s) • What else?
  80. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Biểu đồ cộng tác: miêu tả giữa actor và các đối tượng hệ thống tương tác với nhau ra sao, vị trí của đối tượng không quan trọng nhưng trọng điểm trong một biểu đồ cộng tác là sự kiện. Tập trung vào sự kiện có nghĩa là chú ý đặc biệt đến mối quan hệ (nối kết) giữa các đối tượng, và vì thế mà phải thể hiện chúng một cách rõ ràng trong biểu đồ. • Lược đồ cộng tác thường được dùng để biểu diễn một kịch bản khai thác (scenario) của một use case • Có thể tạo nhiều collaboration diagram cho một usecase. • Có thể xác định được các lớp đối tượng và mối liên hệ giữa các lớp từ collaboration diagram
  81. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Trong một biểu đồ cộng tác: – Các đối tượng được biểu diễn bằng kí hiệu lớp. – Thứ tự trong biểu đồ cộng tác được thể hiện bằng cách đánh số các thông điệp. • 2.1.2 xảy ra sau 2.1.1 và được lồng trong 2.1 • Ưu điểm của biểu đồ cộng tác là nó có thể chỉ ra các chi tiết về các lệnh gọi hàm (thủ tục), yếu tố được né tránh trong biểu đồ tuần tự.
  82. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Ví dụ: lược đồ cộng tác mức cụ thể cho use case của login của hệ thống đăng ký môn học tín chỉ qua web
  83. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Đầu tiên thủ tục WithdrawalReq() được gọi từ lớp khách hàng. Đó là lệnh gọi số 1. • Bước tiếp theo trong tuần tự là hàm AskForPin(), số 1.1, được gọi từ lớp ATM. Thông điệp trong biểu đồ được viết dưới dạng pin:= AskForPin(), thể hiện rằng "giá trị trả về" của hàm này chính là mã số mà lớp khách hàng sẽ cung cấp. • Hình cung bên lớp tài khoản biểu thị rằng hàm ComputeNetBalance() được gọi trong nội bộ lớp tài khoản và nó xử lý cục bộ. Thường thì nó sẽ là một thủ tục riêng (private) của lớp.
  84. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Ví dụ: lược đồ cộng tác tạo thẻ thành viên
  85. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Các thành phần có trong lược đồ cộng tác: • Actor • Object • Message • Instance link
  86. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Actor: – Tác nhân bên ngoài tương tác với hệ thống • Object – Đối tượng tham gia quá trình tương tác giữa người dùng và hệ thống • Message – Thông điệp mô tả tương tác giữa các đối tượng – Thông điệp được gửi từ đối tượng này sang đối tượng khác – Thông điệp có thể là 1 yêu cầu thực thi hệ thống, lời gọi hàm khởi tạo đối tượng, hủy đối tượng, cập nhật đối tượng,
  87. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Message
  88. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Thuộc tính của thông điệp: • Action • Control Flow • Operation • Arguments • Return Value • Predecessor list • Condition
  89. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Thuộc tính của thông điệp: • Action – Create: đối tượng gởi thông điệp gọi hàm khởi tạo đối tượng nhận thông điệp – Destroy: đối tượng gửi thông điệp gọi hàm hủy đối tượng nhận thông điệp – Self Destroy: đối tượng gửi thông điệp sẽ bị hủy sau khi gởi thông điệp đến đối tượng nhận.
  90. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Thuộc tính của thông điệp: • Control Flow – Undefined: không được định nghĩa – Asynchronous: thông điệp không đồng bộ, đối tượng gởi thông điệp không cần đợi kết quả trả về từ đối tượng nhận, các thông điệp có thể thực hiện đồng thời – Procedure Call: thông điệp đồng bộ, đối tượng gởi thông điệp phải đợi kết quả trả về từ đối tượng nhận – Return: thông điệp return thường liên kết với thông điệp loại :Procedure call”
  91. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Thuộc tính của thông điệp: • Operation – Nếu đối tượng trong lược đồ là một thể hiện của một lớp đối tượng (class), chúng ta có thể chọn operation của class để liên kết message – Không thể liên kết return message với operation • Arguments • Return Value • Predecessor list • Condition
  92. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) • Instance link – Biểu diễn liên kết giữa 2 đối tượng
  93. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Xây dựng một số Collaboration diagram của ứng dụng quản lý TKB: • SV chọn chức năng xem TKB lớp • Hệ thống hiển thị màn hình xem TKB lớp • SV chọn lớp, niên khóa, học kỳ • SV chọn chức năng xem TKB • Hệ thống truy cập CSDL lấy thông tin TKB tương ứng với lớp SV chọn • Hệ thống hiển thị thông tin TKB
  94. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  95. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  96. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  97. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  98. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Bài tập: Vẽ biểu đồ trình tự và cộng tác cho qui trình đặt sách
  99. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) Bài tập: 1. Vẽ biểu đồ trình tự và cộng tác cho qui trình đặt sách 2. Vẽ biểu đồ tuần tự của kịch bản in một file ra máy in 3. Chuyển biểu đồ tuần tự trên sang biểu đồ tương tác
  100. Biểu đồ tuần tự: Đặt trước sách
  101. Thêm các phương thức vào các lớp
  102. Biểu đồ cộng tác: Đặt sách
  103. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  104. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
  105. SO SÁNH 2 LƯỢC ĐỒ
  106. LƯỢC ĐỒ TRẠNG THÁI • Biểu diễn hành vi của một phần tử bất kỳ bằng cách chỉ ra đáp ứng của nó đối với các sự kiện bên ngoài • Thông thường lược đồ trạng thái áp dụng cho đối tượng/ lớp → biểu diễn hành vi của lớp • Trạng thái của mỗi đối tượng ít nhiều sẽ bị thay đổi trong suốt chu kỳ sống của đối tượng • Trạng thái đơn giản là một tình trạng trong đời sống đối tượng hoặc một tương tác của đối tượng mà theo đó đối tượng thỏa mãn một điều kiện, thực hiện một công việc hoặc đợi một sự kiện nào đó. • Thông thường mỗi đối tượng nằm ở một trạng thái trong một khoảng thời gian nhất định→ nó sẽ dịch chuyển từ trạng thái này sang trạng thái khác
  107. LƯỢC ĐỒ TRẠNG THÁI • Một lớp có thể có một thuộc tính đặc biệt xác định trạng thái, hoặc trạng thái cũng có thể được xác định qua giá trị của các thuộc tính “bình thường" trong đối tượng. • Ví dụ về các trạng thái của đối tượng: – Hóa đơn (đối tượng) đã được trả tiền (trạng thái). – Chiếc xe ô tô (đối tượng) đang đứng yên (trạng thái). – Động cơ (đối tượng) đang chạy (trạng thái). – Jen (đối tượng) đang đóng vai trò người bán hàng (trạng thái). – Kate (đối tượng) đã lấy chồng (trạng thái).
  108. LƯỢC ĐỒ TRẠNG THÁI • Trạng thái tổng hợp là trạng thái có thể được phân rã về các trạng thái đơn giản • Ký hiệu Tên Phần mô tả các hành động
  109. LƯỢC ĐỒ TRẠNG THÁI • Lưu ý: – Tên trạng thái là duy nhất trong lược đồ – Các hành động bên trong: các hành động hoặc tác vụ được thực hiện khi nằm ở trạng thái đang xét , có cú pháp: action-label / action –expression Một số action-label được quy ước trước: - entry: thực hiện hành động tại thời điểm bắt đầu trạng thái - Exit: thực hiện hành động tại thời điểm kết thúc trạng thái - Do: thực hiện hành động suốt trạng thái hoặc cho đến khi kết thúc nó. - Include: triệu gọi một máy trạng thái con khác.
  110. LƯỢC ĐỒ TRẠNG THÁI • Các nhãn hành động khác chỉ ra sự kiện kích hoạt hành động tương ứng trong biểu thức hành động(action-expression) • Cú pháp của biểu thức hành động: • Trạng thái bắt đầu: khi đối tượng được tạo ra hoặc trạng thái tổng hợp được xác định. Ký hiệu: • Trạng thái kết thúc: khi đối tượng bị hủy bỏ hoặc trạng thái tổng hợp trở nên không xác định.
  111. LƯỢC ĐỒ TRẠNG THÁI • Trạng thái tổng hợp được phân rã thành nhiều trạng thái con đồng thời hoặc các trạng thái con loại trừ nhau • Ví dụ: phân rã trạng thái tổng hợp Running
  112. LƯỢC ĐỒ TRẠNG THÁI • Sự kiện (event) kích hoạt chuyển động trạng thái, có thể là: – Một điều kiện trở nên đúng(chú ý khác với guard-condition) – Một đối tượng nhận tín hiệu từ một đối tượng khác – Một phép gọi tác vụ – Một khoảng thời gian trôi qua kể từ một sự kiện nào đó • Cú pháp của sự kiện: event-name’(’parameter-list’)’ • Sự kiện có tầm vực thuộc về package chứa lớp đang mô tả lược đồ trạng thái • Dịch chuyển trạng thái: quan hệ giữa 2 trạng thái theo đó đối tượng đang ở trạng thái thứ nhất sẽ chuyển sang trạng thái thứ 2 đồng thời sẽ thực hiện một số hành động khi sự kiện tương ứng xảy ra và thỏa mãn một số điều kiện nhất định • Được ký hiệu như một mũi tên hướng từ trạng thái nguồn sang trạng thái đích và được gán nhãn
  113. LƯỢC ĐỒ TRẠNG THÁI • Cú pháp nhãn: even t-signature[guard-condition] /action-expression VD: lược đồ trạng thái của lớp Message
  114. LƯỢC ĐỒ TRẠNG THÁI • Cú pháp nhãn: even t-signature[guard-condition] /action-expression VD: lược đồ trạng thái của lớp Message
  115. LƯỢC ĐỒ TRẠNG THÁI Biến đổi trạng thái không có sự kiện từ ngoài. Sự thay đổi trạng thái xảy ra khi các hoạt động trong mỗi trạng thái được thực hiện xong.
  116. NHẬN BIẾT TRẠNG THÁI VÀ SỰ KIỆN • Quá trình phát hiện sự kiện và trạng thái về mặt bản chất bao gồm việc hỏi một số các câu hỏi thích hợp: • Một đối tượng có thể có những trạng thái nào?: Hãy liệt kê ra tất cả những trạng thái mà một đối tượng có thể có trong vòng đời của nó. • Những sự kiện nào có thể xảy ra?: Bởi sự kiện gây ra việc thay đổi trạng thái nên nhận ra các sự kiện là một bước quan trọng để nhận diện trạng thái. • Trạng thái mới sẽ là gì?: Sau khi nhận diện sự kiện, hãy xác định trạng thái khi sự kiện này xảy ra và trạng thái sau khi sự kiện này xảy ra. • Có những thủ tục nào sẽ được thực thi?: Hãy để ý đến các thủ tục ảnh hưởng đến trạng thái của một đối tượng. • Chuỗi tương tác giữa các đối tượng là gì?: Tương tác giữa các đối tượng cũng có thể ảnh hưởng đến trạng thái của đối tượng. • Qui định nào sẽ được áp dụng cho các phản ứng của các đối tượng với nhau?: Các qui định kiềm tỏa phản ứng đối với một sự kiện sẽ xác định rõ hơn các trạng thái.
  117. NHẬN BIẾT TRẠNG THÁI VÀ SỰ KIỆN • Những sự kiện và sự chuyển tải nào là không thể xảy ra?: Nhiều khi có một số sự kiện hoặc sự thay đổi trạng thái không thể xảy ra. Ví dụ như bán một chiếc ô tô đã được bán rồi. • Cái gì khiến cho một đối tượng được tạo ra?: Đối tượng được tạo ra để trả lời cho một sự kiện. Ví dụ như một sinh viên ghi danh cho một khóa học. • Cái gì khiến cho một đối tượng bị hủy?: Đối tượng sẽ bị hủy đi khi chúng không được cần tới nữa. Ví dụ khi một sinh viên kết thúc một khóa học. • Cái gì khiến cho đối tượng cần phải được tái phân loại (reclassfied)?: Những loại sự kiện như một nhân viên được tăng chức thành nhà quản trị sẽ khiến cho động tác tái phân loại của nhân viên đó được thực hiện.
  118. NHẬN BIẾT TRẠNG THÁI VÀ SỰ KIỆN • Một số lời mách bảo cho việc tạo dựng biểu đồ trạng thái • Chuyển biểu đồ trình tự thành biểu đồ trạng thái • Xác định các vòng lặp (loop) • Bổ sung thêm các điều kiện biên và các điều kiện đặc biệt • Trộn lẫn các kịch bản khác vào trong biểu đồ trạng thái • Một khi mô hình đã được tạo nên, hãy nêu ra các câu hỏi và kiểm tra xem mô hình có khả năng cung cấp tất cả các câu trả lời. Qui trình sau đây cần phải được nhắc lại cho mỗi đối tượng.
  119. Chuyển biểu đồ tuần tự thành biểu đồ trạng thái • Sắp xếp các sự kiện thành một đường dẫn, dán nhãn input (hoặc entry) và output (exit) cho các sự kiện. Khoảng cách giữa hai sự kiện này sẽ là một trạng thái. • Nếu cảnh kịch có thể được nhắc đi nhắc lại rất nhiều lần (vô giới hạn), hãy nối đường dẫn từ trạng thái cuối cùng đến trạng thái đầu tiên
  120. Nhận ra các vòng lặp (loop) • Một chuỗi sự kiện có thể được nhắc đi nhắc lại vô số lần được gọi là vòng lặp (loop). • Chú ý: • Trong một vòng lặp, chuỗi các sự kiện được nhắc đi nhắc lại cần phải đồng nhất với nhau. Nếu có một chuỗi các sự kiện khác chuỗi khác thì trường hợp đó không có vòng lặp. • Lý tưởng nhất là một trạng thái trong vòng lặp sẽ có sự kiện kết thúc. Đây là yếu tố quan trọng, nếu không thì vòng lặp sẽ không bao giờ kết thúc.
  121. Bổ sung thêm các điều kiện biên và các điều kiện đặc biệt • Kiểm tra, đối chứng chúng với điều kiện biên và các điều kiện đặc biệt khác, những điều kiện rất có thể đã chưa được quan tâm đủ độ trong thời gian tạo dựng biểu đồ trạng thái. • Điều kiện biên là những điều kiện thao tác trên giá trị, đây là những giá trị nằm bên ranh giới của một điều kiện để quyết định về trạng thái của đối tượng. • Ví dụ như quy định về kỳ hạn của một tài khoản là 30 ngày thì ngày thứ 31 đối với tài khoản này sẽ là một điều kiện biên. • Các điều kiện đặc biệt là những điều kiện ngoại lệ • Ví dụ ngày thứ 30 của tháng 2 năm 2000 (nếu có một điều kiện thật sự như vậy tồn tại ngoài đời thực).
  122. Trộn lẫn các cảnh kịch khác vào trong biểu đồ trạng thái • Ấn định một điểm bắt đầu chung cho tất cả các chuỗi sự kiện bổ sung. • Xác định điểm nơi các ứng xử bắt đầu khác biệt với những ứng xử đã được mô hình hóa trong biểu đồ trạng thái. Chú ý: • Biểu đồ trạng thái chỉ cần được tạo dựng nên cho các lớp đối tượng có ứng xử động quan trọng. • Hãy thẩm tra biểu đồ trạng thái theo khía cạnh tính nhất quán đối với những sự kiện dùng chung để cho toàn bộ mô hình động được đúng đắn. • Dùng các trường hợp sử dụng để hỗ trợ cho quá trình tạo dựng biểu đồ trạng thái. • Khi định nghĩa một trạng thái, hãy chỉ để ý đến những thuộc tính liên quan.
  123. CÂU HỎI VÀ BÀI TẬP 1. Hỏi: Thế nào là một vòng lặp? Đáp: Một chuổi sự kiện có thể được nhắc đi, nhắc lại vô số lần được gọi là vòng lặp (loop). 2. Hỏi: Mô hình động chính là mô hình đối tượng cộng thêm phần ứng xử động của hệ thống Đáp: Đúng 3. Hỏi: Các sự kiện độc lập cũng có thể là các sự kiện song song Đáp: Đúng 4. Hỏi: Một đối tượng không nhất thiết phải có trạng thái. Đáp: Sai, mọi đối tượng đều có trạng thái
  124. CÂU HỎI VÀ BÀI TẬP 1. Một lớp có thể có trạng thái ban đầu và trạng thái kết thúc. Đáp: Sai, một đối tượng có thể có trạng thái ban đầu và trạng thái kết thúc. 2. Hỏi: Một vòng đời (chu trình) vòng lặp của đối tượng không có trạng thái khởi tạo cũng không có trạng thái kết thúc Đáp: Đúng, đối tượng được coi là đã luôn luôn tồn tại ở đây và sẽ còn mãi mãi tiếp tục tồn tại.
  125. CÂU HỎI VÀ BÀI TẬP • Bài tập: trong hệ thống ATM chúng ta xem hoạt động của use case “Rút tiền”. Các hoạt động tuần tự mà khách hàng thực hiện: – Đưa vào thẻ ATM – Nhập mã PIN – Rút t ATM Vẽ các sơ đồ trình tự, cộng tác và hoạt động để hiện thực hóa use case trên
  126. CÂU HỎI VÀ BÀI TẬP
  127. CÂU HỎI VÀ BÀI TẬP
  128. CÂU HỎI VÀ BÀI TẬP • Đặc tả Use case cho các bài toán nghiệp vụ trên