Bài giảng Thiết kế hệ thống thông tin - Chương 5: Mô hình tương tác đối tượng cung cấp cho người học các kiến thức: Khái niệm mô hình động, activity diagram, sequence diagram, collaboration diagram. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
MÔ HÌNH TƯƠNG TÁC
ĐỐI TƯỢNG
DINAMIC MODEL Chương V
Trang 3KHÁ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
Trang 4KHÁI NIỆM MÔ HÌNH ĐỘNG (DINAMIC MODEL)
Trang 5TƯƠ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.
Trang 6TƯƠ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
Trang 7VAI 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
Trang 8CÁ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)
Trang 9– 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ụ
Trang 10Thí 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.
ACTIVITY DIAGRAM
Trang 11MỤ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)
Trang 12CÁ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
Trang 13CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
Trang 15Nhập tối đa 3 lần
Trang 16CÁ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
Trang 17CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
Trang 20• 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
Trang 21VÍ DỤ ACTIVITY DIAGRAM
• Sơ đồ hoạt động hiện thực hoá use case Quản lý nhập hàng
Trang 22VÍ 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
Trang 23VÍ DỤ ACTIVITY DIAGRAM
Trang 24• Example of an activity diagram
Trang 25VÍ DỤ ACTIVITY DIAGRAM
Trang 26• Partitions
Trang 28VÍ DỤ ACTIVITY DIAGRAM
Trang 29CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM
Trang 30BÀI TẬP ACTIVITY DIAGRAM
Trang 31BÀI TẬP ACTIVITY DIAGRAM
Trang 32LƯỢ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 đồ
Trang 33LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
1.1: PerformAnother Responsibility
Trang 34LƯỢ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
Trang 35VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Trang 36LƯỢ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
Trang 37LƯỢ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
Trang 38LƯỢ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.
Trang 39LƯỢ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)
Trang 40LƯỢ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”
Trang 41LƯỢ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
Trang 42THỂ HIỆN ĐỐI TƯỢNG
Trang 43LƯỢ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
Trang 44LƯỢ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
Trang 45LƯỢ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)
Trang 46BIỂU DIỄN THÔNG ĐIỆP
Trang 48LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Trang 49Interaction Frame
Trang 50LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Common Frame Operators
Trang 51LƯỢ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ự
Trang 52LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Mô tả Responsibilities
Trang 53LƯỢ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
Trang 54LƯỢ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
Trang 55CHU KỲ SỐNG CỦA ĐỐI TƯỢNG
Trang 56ĐIỀU HƯỚNG GỌI METHODS
Activation
Nesting
Trang 57SELECTION AND LOOPS
Trang 58LINKING 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?
Trang 59VÍ DỤ LINKING SEQUENCE DIAGRAMS
Trang 60FORMS OF SYSTEM CONTROL
• What can you say about the control flow of each system?
– Is it centralized?
– Is it distributed?
Trang 61Flawed sequence diagram 1
• What's wrong with this sequence diagram?
(Look at the UML syntax and the viability of the scenario.)
Trang 62Flawed sequence diagram 1
• What's wrong with this sequence diagram?
(Look at the UML syntax and the viability of the scenario.)
Trang 63Flawed sequence diagram 1
• Ví dụ: lược đồ tuần tự dạng tổng quát
Trang 64Flawed sequence diagram 1
• VD: lược đồ tuần tự dạng tổng quát
Trang 65Flawed 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
Trang 66Flawed sequence diagram 1
Trang 67LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Trang 68SƠ ĐỒ 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.
Trang 69LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Trang 70VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Trang 71SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: Customer Places Order Scenario
Trang 72SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: Customer Places Order Scenario
Trang 73SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: University Enrollment Model
AcademicRecord course_code : String year : Date
semester : Integer grade : String
Course
<<PK>> course_code : String
<<CK>> course_name : String credit_points : Integer
semester : Integer enrolment_quota : Integer
Trang 74SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: University Enrollment Model
Trang 75SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: Car Ordering
Trang 76SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: Car Ordering - Kịch bản lựa chọn
Trang 77SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
Example: Car Ordering - Hợp nhất các kịch bản
Trang 78SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM
• Example: Car Ordering - Làm mịn biểu đồ tuần tự
Trang 79BÀ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?
Trang 80BIỂ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
Trang 81BIỂ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ự
Trang 82BIỂ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
Trang 83BIỂ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
Trang 84BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
• Ví dụ: lược đồ cộng tác tạo thẻ thành viên
Trang 85BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
Trang 86BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM)
– 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,…