Bài giảng Phân tích và thiết kế hệ thống - Chương 5: Mô hình tương tác đối tượng

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

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.

 

pptx 129 trang kimcuc 8320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích và thiết kế hệ thống - Chương 5: Mô hình tương tác đối tượng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phân tích và thiết kế hệ thống - Chương 5: Mô hình tương tác đối tượng

Bài giảng Phân tích và thiết kế hệ thống - Chương 5: Mô hình tương tác đối tượng
TRƯỜ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 
NỘI DUNG 
Khái niệm mô hình động 
Activity diagram 
Sequence diagram 
Collaboration diagram 
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 
KHÁI NIỆM MÔ HÌNH ĐỘNG (DINAMIC MODEL) 
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. 
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	 
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 
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) 
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ụ. 
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. 
ACTIVITY DIAGRAM 
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). 
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 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
Nhập tối đa 3 lần 
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 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
B iể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. 
VÍ DỤ ACTIVITY DIAGRAM 
S ơ đồ hoạt động hiện thực hoá use case Quản lý nhập hàng 
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 
VÍ DỤ ACTIVITY DIAGRAM 
VÍ DỤ ACTIVITY DIAGRAM 
Example of an activity diagram 
VÍ DỤ ACTIVITY DIAGRAM 
VÍ DỤ ACTIVITY DIAGRAM 
Partitions 
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 
VÍ DỤ ACTIVITY DIAGRAM 
CÁC THÀNH PHẦN CỦA ACTIVITY DIAGRAM 
BÀI TẬP ACTIVITY DIAGRAM 
BÀI TẬP ACTIVITY DIAGRAM 
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 đồ 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
1: PerformResponsibility	 
Client Object 
Supplier Object 
Message 
:Client 
:Supplier 
Execution 
Occurrence 
Reflexive Message 
Object Lifeline 
1.1: PerformAnotherResponsibility	 
Hierarchical Message 
Numbering 
Interaction Occurrence 
 ref 
Event Occurrence 
Các thuật ngữ dùng cho lược đồ tuần tự (sequence diagram) 
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. 
VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
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. 
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. 
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. 
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). 
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” 
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. 
THỂ HIỆN ĐỐI TƯỢNG 
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 
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. 
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 
BIỂU DIỄN THÔNG ĐIỆP 
BIỂU DIỄN THÔNG ĐIỆP 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Interaction Frame 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Common Frame Operators 
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ự 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Mô tả Responsibilities 
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 
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. 
CHU KỲ SỐNG CỦA ĐỐI TƯỢNG 
ĐIỀU HƯỚNG GỌI METHODS 
Activation 
Nesting 
SELECTION AND LOOPS 
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? 
VÍ DỤ LINKING SEQUENCE DIAGRAMS 
FORMS OF SYSTEM CONTROL 
What can you say about the control flow of each system? 
Is it centralized? 
Is it distributed? 
Flawed sequence diagram 1 
What's wrong with this sequence diagram? 
	(Look at the UML syntax and the viability of the scenario.) 
Flawed sequence diagram 1 
What's wrong with this sequence diagram? 
	(Look at the UML syntax and the viability of the scenario.) 
Flawed sequence diagram 1 
Ví dụ: lược đồ tuần tự dạng tổng quát 
Flawed sequence diagram 1 
VD: lược đồ tuần tự dạng tổng quát 
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 
Flawed sequence diagram 1 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
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. 
LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
VÍ DỤ LƯỢC ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Customer Places Order Scenario 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Customer Places Order Scenario 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: University Enrollment Model 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: University Enrollment Model 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Car Ordering 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Car Ordering - Kịch bản lựa chọn 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Car Ordering - Hợp nhất các kịch bản 
SƠ ĐỒ TRÌNH TỰ - SEQUENCY DIAGRAM 
Example: Car Ordering - Làm mịn biểu đồ tuần tự 
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? 
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 
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ự. 
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 
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. 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
Ví dụ: lược đồ cộng tác tạo thẻ thành viên 
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 
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, 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
Message 
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 
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. 
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” 
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 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
Instance link 
Biểu diễn liên kết giữa 2 đối tượng 
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 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
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 
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 
Vẽ biểu đồ tuần tự của kịch bản in một file ra máy in 
Chuyển biểu đồ tuần tự trên sang biểu đồ tương tác 
Biểu đồ tuần tự: Đặt trước sách 
Thêm các phương thức vào các lớp 
Biểu đồ cộng tác: Đặt sách 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 
SO SÁNH 2 LƯỢC ĐỒ 
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 
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). 
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 
LƯỢC ĐỒ TRẠNG THÁI 
Tên 
Phần mô tả các hành động 
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. 
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. 
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 
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 
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 
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 
LƯỢC ĐỒ TRẠNG THÁI 
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. 
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. 
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. 
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. 
NHẬN BIẾT TRẠNG THÁI VÀ SỰ KIỆN 
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 
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. 
Bổ sung thêm các điều kiện biên và các điều kiện đặc biệt 
K iể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). 
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. 
CÂU HỎI VÀ BÀI TẬP 
1. Hỏi: Thế nào là một vòng lặp? 
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 
Đá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). 
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. 
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. 
Đá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. 
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 
CÂU HỎI VÀ BÀI TẬP 
CÂU HỎI VÀ BÀI TẬP 
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 
THANKS YOU 

File đính kèm:

  • pptxbai_giang_phan_tich_va_thiet_ke_he_thong_chuong_5_mo_hinh_tu.pptx