Mụ hỡnh động
18.5 Biểu đồ tuần tự (Sequence diagram)
Biểu đồ tuần tự minh họa cỏc đối tượng tương tỏc với nhau ra sao. 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
G
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.
Từ cỏc 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 đố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 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ụ hóy quan sỏt một cảnh kịch rỳt tiền mặt tại một mỏy ATM của một nhà băng lẻ: Hỡnh 18.4- Biểu đồ cảnh kịch rỳt tiền
mặt tại mỏy ATM
Biểu đồ trờn cú thể được diễn giải theo trỡnh tự thời gian như sau: 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.
Đối tượng tài khoản chỉ bắt đầu được sinh ra khi đối tượng ATM cần tới nú để kiểm tra mó số và đối tượng tài khoản tiếp tục sống cho tới khi giao dịch được hoàn tất. Sau đú, nú chết đi. Bởi khỏch hàng cú thể muốn tiếp tục thực hiện cỏc giao dịch khỏc nờn đối tượng khỏch hàng và đối tượng mỏy ATM vẫn tiếp tục tồn tại, điều này được chỉ ra qua việc cỏc đường đời đối tượng được kộo vượt quỏ đường thẳng thể hiện sự kiện cuối cựng trong chuỗi tương tỏc. Loại tương tỏc này là rất hữu dụng trong một hệ thống cú một số lượng nhỏ cỏc đối tượng với một số lượng lớn cỏc sự kiện xảy ra giữa chỳng. Mặc dự vậy, khi số lượng cỏc đối tượng trong một hệ thống tăng lờn thỡ mụ hỡnh này sẽ khụng cũn mấy thớch hợp.
G
Để cú thể vẽ biểu đồ tuần tự, đầu tiờn hóy xỏc định cỏc đối tượng liờn quan và thể hiện cỏc sự kiện xảy ra giữa chỳng.
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.
18.6 Biểu đồ cộng tỏc (Collaboration Diagram)
Một biểu đồ cộng tỏc miờu tả tương tỏc giữa cỏc đối tượng cũng giống như biểu đồ tuần tự, nhưng nú tập trung trước hết vào cỏc sự kiện, tức là tập trung chủ yếu vào sự tương tỏc giữa cỏc đối tượng.
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. Kỹ thuật đỏnh số được coi là hơi cú phần khú hiểu hơn so với kỹ thuật mũi tờn sử dụng trong biểu đồ tuần tự. Nhưng ư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 đồ sau đõy là một vớ dụ cho một biểu đồ cộng tỏc, được chuẩn bị cũng cho một cảnh kịch rỳt tiền mặt như trong biểu đồ tuần tự của phần trước. Hóy quan sỏt cỏc thứ tự số trong biểu đồ. Đầ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.
Hỡnh 18.5- Một biểu đồ cộng tỏc của kớch cảnh rỳt tiền ở mỏy ATM