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.
Các đối tượng của biểu đồ tuần tự
- 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.
- 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.
- 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:
- 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”.
- 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”.
- 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.
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.
- Bước 1 và 2: Khách hàng tạo đơn hàng.
- Bước 3: Khách hàng thêm hàng vào đơn hàng.
- Bước 4, 5: Mỗi mặt hàng được kiểm tra tình trạng sẵn có trong kho.
- Bước 6, 7, 8 : Nếu có hàng thì cộng vào đơn hàng.
- Bước 9 quay lại
- Bước 10, 11: lưu và hủy lệnh
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:
(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:
(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:
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:
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:
khung
Một khung cung cấp một cách để đóng gói một sơ đồ tuần tự.
Tham khảo (Ref)
Một khung có thể được tham chiếu trong một sơ đồ trình tự khác:
giao thức
cộng tác
kịch bản
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:
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:
Phê bình
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
Lưu ý rằng:
|
|
dây cứu sinh
|
|
kích hoạt
|
|
Tin nhắn cuộc gọi
|
|
Tin nhắn trả lại
|
|
Tin Nhắn Bản Thân
|
|
Tin nhắn đệ quy
|
|
Tạo một tin nhắn
|
|
hủy tin nhắn
|
|
Thời lượng tin nhắn
|
|
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. |