Biểu đồ trình tự UML  là biểu đồ tương tác mô tả chi tiết cách các hoạt động được thực hiện. Chúng nắm bắt sự tương tác giữa các đối tượng trong bối cảnh cộng tác. Biểu đồ trình tự tập trung vào thời gian và chúng hiển thị thứ tự của tương tác một cách trực quan bằng cách sử dụng trục dọc của biểu đồ để biểu thị thời gian những thông điệp nào được gửi và khi nào.

Sơ đồ trình tự là gì?

Sơ đồ trình tự, còn được gọi là sơ đồ trình tự, sơ đồ tuần tự hoặc sơ đồ tuần tự, là một sơ đồ tương tác UML. Nó cho thấy sự cộng tác năng động giữa nhiều đối tượng bằng cách mô tả thứ tự thời gian mà các thông điệp được gửi giữa chúng.

Trong UML, một đối tượng trong sơ đồ tuần tự được vẽ dưới dạng hình chữ nhật chứa tên của đối tượng, được gạch dưới. Một đối tượng có thể được đặt tên theo một trong ba cách: tên đối tượng, tên đối tượng và lớp của nó hoặc chỉ tên lớp (đối tượng ẩn danh). Ba cách đặt tên cho một đối tượng được hiển thị trong Hình bên dưới.

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Các đối tượng của biểu đồ tuần tự

  1. Hiển thị thứ tự tương tác giữa các đối tượng. Lập mô hình hành vi tương tác khi truyền tin nhắn và hiển thị động tương tác giữa các đối tượng bằng cách mô tả cách gửi và nhận tin nhắn giữa chúng.
  2. So với các sơ đồ UML khác, sơ đồ trình tự thời gian nhấn mạnh hơn vào thứ tự thời gian của hành vi tương tác.
  3. Nó có thể mô tả trực quan quá trình đồng thời.

Các yếu tố của biểu đồ trình tự

1. Tác nhân – Tác nhân hệ thống, có thể là con người, máy móc, hệ thống khác, hệ thống con; dùng để biểu diễn trong biểu đồ trình tự thời gian.

2. Đối tượng – Có ba cách đặt tên đối tượng:

  1. Bao gồm tên đối tượng và tên lớp, ví dụ: lớp trực tiếp: lớp, trong sơ đồ chuỗi thời gian, với “đối tượng: lớp”.
  2. Chỉ hiển thị tên lớp, nghĩa là nó là một đối tượng ẩn danh, ví dụ: :course; trong sơ đồ thời gian, với “:class”.
  3. Chỉ hiển thị tên đối tượng chứ không hiển thị tên lớp, ví dụ: giảng viên; trong sơ đồ thời gian, nó được biểu diễn bằng “đối tượng”.

Cả 3 cách đặt tên đều có, cái nào dễ nhất cho người đọc biểu đồ thời gian hiểu, chọn cái nào.

3. Thứ tự của các đối tượng

  • Thứ tự trái phải của các đối tượng không quan trọng, nhưng để sơ đồ rõ ràng và gọn gàng, cần tuân theo hai nguyên tắc sau: đặt các đối tượng có tương tác thường xuyên càng gần nhau càng tốt;
  • Đặt đối tượng khởi tạo toàn bộ hoạt động tương tác ở ngoài cùng bên trái.

dây cứu sinh

Một đường đứt nét kéo dài xuống từ biểu tượng đối tượng trong sơ đồ thời gian, cho biết đối tượng đã tồn tại bao lâu.

  • Tiêu điểm điều khiển (hay còn gọi là khoảng thời gian kích hoạt) là ký hiệu cho khoảng thời gian mà đối tượng sẽ thực hiện thao tác tương ứng. Nó có thể được hiểu là một cặp dấu ngoặc { } trong ngữ nghĩa C; đại diện bởi một hình chữ nhật nhỏ. Nó đại diện cho khoảng thời gian mà một phần tử đang thực hiện một hoạt động. Phần trên và phần dưới của hình chữ nhật được căn chỉnh tương ứng với thời gian bắt đầu và thời gian hoàn thành.
  • Tin nhắn thường được phân loại thành Tin nhắn đồng bộ, Tin nhắn không đồng bộ và Tin nhắn trả về.

lưu ý rằng

  • Người gửi tin nhắn chuyển quyền kiểm soát cho người nhận tin nhắn, sau đó dừng hoạt động và đợi người nhận tin nhắn từ bỏ hoặc trả lại quyền kiểm soát được sử dụng để biểu thị đồng bộ hóa.
  • Người gửi tin nhắn chuyển tín hiệu đến người nhận tin nhắn thông qua tin nhắn và sau đó tiếp tục hoạt động của mình mà không cần đợi người nhận trả lại tin nhắn hoặc điều khiển. Người nhận và người gửi tin nhắn không đồng bộ đang hoạt động đồng thời.
  • Thông báo trả về cho biết sự trở lại từ một cuộc gọi thủ tục.

 

Thông điệp Sáng tạo và Hủy diệt

Những người tham gia không nhất thiết phải sống trong toàn bộ thời gian tương tác của sơ đồ tuần tự. Những người tham gia có thể được tạo và hủy theo các thông báo đang được chuyển.

Một  thông điệp xây dựng  tạo ra người nhận của nó. Người gửi đã tồn tại khi bắt đầu tương tác được đặt ở đầu sơ đồ. Các mục tiêu được tạo trong quá trình tương tác bằng lệnh gọi hàm tạo sẽ tự động được đặt xa hơn trong sơ đồ.

Một  thông điệp  hủy diệt phá hủy người nhận của nó. Có nhiều cách khác để chỉ ra rằng mục tiêu bị tiêu diệt trong quá trình tương tác. Chỉ khi sự hủy diệt của mục tiêu được đặt thành ‘sau hàm hủy’ thì bạn mới phải sử dụng hàm hủy.

Tin nhắn không tức thời

Tin nhắn thường được coi là tức thời, do đó, thời gian đến người nhận là không đáng kể. Các thông điệp được vẽ như một mũi tên nằm ngang. Để chỉ ra rằng phải mất một khoảng thời gian nhất định trước khi người nhận thực sự nhận được tin nhắn, một  mũi tên nghiêng được sử dụng .

mảnh ghép

Một đoạn trình tự được biểu diễn dưới dạng một hộp được gọi là đoạn kết hợp, chứa một phần tương tác trong biểu đồ trình tự. Toán tử phân đoạn (ở góc trên bên trái) cho biết loại phân đoạn. Các đoạn tương tác cho phép bạn nhóm các thông báo có liên quan trong một sơ đồ trình tự. Có sẵn nhiều loại phân đoạn được xác định trước, cho phép bạn chỉ định kết quả thay thế, thông báo song song hoặc vòng lặp.

Đoạn trong biểu đồ trình tự là các khung hình chữ nhật được vẽ trên một phần của biểu đồ. Chúng đại diện cho cấu trúc có điều kiện ảnh hưởng đến luồng thông điệp. Các khung này được gọi là các đoạn kết hợp trong đặc tả UML và các bộ chứa được gọi là toán hạng tương tác. Các khung được dán nhãn ở góc trên bên trái. Nhãn này được gọi là toán tử tương tác trong UML.

 

Ví dụ – đặt một tình huống đặt hàng

Một thành viên tàu muốn đặt hàng trực tuyến. Các mặt hàng đã đặt sẽ được gửi đến thành viên bằng chuyển phát nhanh hoặc thư thông thường, tùy thuộc vào trạng thái thành viên của cô ấy (VIP, thành viên thường). Nếu thành viên chọn tùy chọn thông báo trong đơn hàng, cửa hàng sẽ gửi thông báo xác nhận cho thành viên.

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Một ví dụ khác: Đặt hàng

Biểu đồ trình tự là biểu đồ hai chiều với trục ngang biểu thị các đối tượng và trục dọc biểu thị thời gian, trong đó các thông báo được truyền theo chiều ngang giữa các đối tượng và được sắp xếp theo chiều dọc theo thứ tự thời gian. Ví dụ này hiển thị sơ đồ Trình tự có ba đối tượng tham gia: Khách hàng, Đơn hàng và Cổ phiếu. Thậm chí không cần biết ký hiệu chính thức, bạn có thể có một ý tưởng khá hay về những gì đang diễn ra.

  1. Bước 1 và 2: Khách hàng tạo đơn hàng.
  2. Bước 3: Khách hàng thêm hàng vào đơn hàng.
  3. Bước 4, 5: Mỗi mặt hàng được kiểm tra tình trạng sẵn có trong kho.
  4. Bước 6, 7, 8 : Nếu có hàng thì cộng vào đơn hàng.
  5. Bước 9 quay lại
  6. Bước 10, 11: lưu và hủy lệnh

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

 

Các đoạn kết hợp thường được sử dụng

Các loại phân đoạn bao gồm ref, assert, loop, break, alt, opt và neg, ref, sd.

Nhà điều hành Nghĩa
thay thế Nhiều đoạn thay thế: chỉ đoạn có điều kiện đúng mới được thực thi.
opt Tùy chọn : đoạn này chỉ thực thi nếu điều kiện được cung cấp là đúng. Tương đương với một alt chỉ với một dấu vết.
mệnh Song song : mỗi đoạn được chạy song song.
vòng Vòng lặp : đoạn có thể thực thi nhiều lần và bộ bảo vệ cho biết cơ sở của phép lặp.
phê bình Vùng quan trọng : đoạn có thể chỉ có một luồng thực thi nó cùng một lúc.
phủ nhận Phủ định : đoạn hiển thị tương tác không hợp lệ.
giới thiệu Tham khảo : đề cập đến một tương tác được xác định trên một sơ đồ khác. Khung được vẽ để bao phủ các dây cứu sinh liên quan đến tương tác. Bạn có thể xác định các tham số và giá trị trả về.
sd Biểu đồ trình tự : được sử dụng để bao quanh toàn bộ biểu đồ trình tự.

Lưu ý rằng:

  • Có thể kết hợp các khung để chụp, ví dụ: vòng lặp hoặc nhánh.
  • Các từ khóa phân đoạn kết hợp  : alt, opt, break, par, seq, nghiêm ngặt, phủ định, quan trọng, bỏ qua, xem xét, khẳng định và lặp lại.
  • Các ràng buộc thường được sử dụng để hiển thị các ràng buộc về thời gian trên các thông báo. Chúng có thể áp dụng cho thời gian của một tin nhắn hoặc khoảng thời gian giữa các tin nhắn.

Ví dụ về các mảnh kết hợp

(1) Lựa chọn (Alt) – Một đoạn thay thế cung cấp một số đoạn thay thế được bảo vệ (được phân tách bằng toán hạng tương tác), tức là được sử dụng để chỉ định các lựa chọn loại trừ lẫn nhau giữa hai hoặc nhiều chuỗi thông báo, tương đương với if..else… cổ điển:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

(2) Tùy chọn (Opt) – Chứa một chuỗi các khả năng xảy ra hoặc không xảy ra, nghĩa là một đoạn tùy chọn chỉ được thực thi nếu một số điều kiện bảo vệ là đúng:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

(3) Vòng lặp (Loop) – Một vòng lặp cho phép một đoạn được lặp lại cho đến khi một số điều kiện bảo vệ trở thành sai:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Phá vỡ

Một dấu ngắt cho phép thoát khỏi một vòng lặp kèm theo khi một số bảo vệ trở thành đúng:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Các dấu ngắt được sử dụng phổ biến nhất để mô hình xử lý ngoại lệ. Ví dụ về sơ đồ trình tự này sử dụng một đoạn kết hợp ngắt vì nó coi điều kiện số dư < lượng là một ngoại lệ thay vì là một luồng thay thế. Để đọc ví dụ này, chúng ta bắt đầu từ góc trên cùng bên trái của dãy và đọc xuống. Khi chuỗi nhận được giá trị trả về là “số dư”, nó sẽ kiểm tra xem số dư có nhỏ hơn số tiền hay không. Nếu số dư không ít hơn số tiền, thông báo tiếp theo được gửi là thông báo addDebitTransaction và trình tự tiếp tục như bình thường.

Song song

Một đoạn song song cho phép nhiều tương tác chạy song song:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

khung

Một khung cung cấp một cách để đóng gói một sơ đồ tuần tự.

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Tham khảo (Ref)

Một khung có thể được tham chiếu trong một sơ đồ trình tự khác:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

giao thức

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

cộng tác

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

kịch bản

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Tín hiệu và tiếp nhận

Một người bán đấu giá công bố giá đề xuất cho một mặt hàng trước một căn phòng đông đúc những người trả giá đang lo lắng. Khi một nhà thầu nghe đề xuất, anh ta quyết định chấp nhận giá hay không.

Trong phiên đấu giá tự động, người điều hành phiên đấu giá sẽ phát đề xuất như thế nào? Một đối tượng có thể có các hoạt động được chỉ định sẽ tự động được gọi nếu nhận được một số loại tín hiệu quảng bá nhất định. Những phương pháp này được gọi là tiếp nhận. Tín hiệu là một loại lớp đặc biệt. Tên của bộ thu thường khớp với tên của tín hiệu. Lễ tân được hiển thị trong một ngăn riêng biệt:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Trong sơ đồ trình tự, chúng ta có thể biểu diễn tín hiệu dưới dạng tín hiệu không đồng bộ và việc nhận dưới dạng lệnh gọi tiếp nhận:

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Phê bình

CHỈNH SỬA SƠ ĐỒ TRÌNH TỰ NÀY

Các loại mảnh vỡ khác

  • Nghiêm khắc
  • khẳng định
  • Xem xét
  • Phớt lờ
  • Vùng đất
  • phủ định

Sơ đồ tuần tự Ký hiệu Tóm tắt

Ký hiệu Mô tả Đại diện trực quan
Diễn viên nam
  • một loại vai trò của một thực thể tương tác với chủ thể (ví dụ: bằng cách trao đổi tín hiệu và dữ liệu)
  • bên ngoài chủ thể (tức là, theo nghĩa là một thể hiện của một tác nhân không phải là một phần của thể hiện của chủ thể tương ứng của nó).
  • đại diện cho vai trò của người dùng con người, phần cứng bên ngoài hoặc các đối tượng khác.

Lưu ý rằng:

  • Một tác nhân không nhất thiết đại diện cho một thực thể vật lý cụ thể mà chỉ là một vai trò cụ thể của một số thực thể
  • Một người có thể đóng vai của nhiều diễn viên khác nhau và ngược lại, một diễn viên nhất định có thể được đóng bởi nhiều người khác nhau.
Sơ đồ trình tự UML: Ví dụ về diễn viên
dây cứu sinh
  • Lifeline đại diện cho một người tham gia cá nhân trong Tương tác.
Sơ đồ trình tự UML: Ví dụ kích hoạt
kích hoạt
  • Một hình chữ nhật mỏng trên đường cứu sinh) biểu thị khoảng thời gian mà một phần tử đang thực hiện một thao tác.
  • Phần trên và phần dưới của hình chữ nhật được căn chỉnh tương ứng với thời gian bắt đầu và thời gian hoàn thành
Sơ đồ trình tự UML: Ví dụ kích hoạt
Tin nhắn cuộc gọi
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Tin nhắn cuộc gọi là một loại tin nhắn đại diện cho yêu cầu hoạt động của đường dây cứu sinh mục tiêu.
Sơ đồ trình tự UML: Ví dụ về tin nhắn cuộc gọi
Tin nhắn trả lại
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Tin nhắn trả lại là một loại tin nhắn đại diện cho việc truyền thông tin trở lại người gọi của một tin nhắn cũ tương ứng.
Sơ đồ trình tự UML: Ví dụ về thông báo trả về
Tin Nhắn Bản Thân
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Thông điệp bản thân là một loại thông điệp đại diện cho việc triệu gọi thông điệp của cùng một huyết mạch.
Sơ đồ trình tự UML: Ví dụ về thông báo tự
Tin nhắn đệ quy
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Thông báo đệ quy là một loại thông báo đại diện cho việc gọi thông báo của cùng một đường dây sống. Mục tiêu của nó trỏ đến một kích hoạt ở đầu kích hoạt nơi thông báo được gọi từ đó.
Sơ đồ trình tự UML: Ví dụ về thông báo đệ quy
Tạo một tin nhắn
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Tin nhắn tạo là một loại tin nhắn đại diện cho việc khởi tạo (mục tiêu) vòng đời.
Sơ đồ trình tự UML: Tạo ví dụ về thông báo
hủy tin nhắn
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Thông báo hủy là một loại thông báo đại diện cho yêu cầu hủy vòng đời của vòng đời mục tiêu.
Sơ đồ trình tự UML: Ví dụ về thông báo hủy
Thời lượng tin nhắn
  • Một thông báo xác định một giao tiếp cụ thể giữa các Đường dây nóng của một Tương tác.
  • Thông báo thời lượng hiển thị khoảng cách giữa hai thời điểm cho một lời gọi thông báo.
Sơ đồ trình tự UML: Ví dụ về thông báo thời lượng
Ghi chúMột ghi chú (bình luận) cung cấp khả năng đính kèm các nhận xét khác nhau cho các phần tử. Một nhận xét không mang lực lượng ngữ nghĩa, nhưng có thể chứa thông tin hữu ích cho người lập mô hình. Sơ đồ trình tự UML: Lưu ý ví dụ