Sơ đồ tuần tự là gì?
Một sơ đồ tuần tự là một sơ đồ hành vi sơ đồ UML mô tả chi tiết cách các thao tác phần mềm được thực hiện theo thời gian. Là một tiêu chuẩn cốt lõi trong đặc tả Ngôn ngữ Mô hình hóa Đơn nhất (UML), nó mô hình hóa thứ tự chính xác theo thời gian mà các đối tượng, quy trình hoặc microservice trao đổi tin nhắn. Bằng cách biểu diễn các đường sống theo chiều dọc và các tương tác tuần tự theo chiều ngang, loại sơ đồ UML này loại sơ đồ UML cho phép các kỹ sư phần mềm và kiến trúc sư hệ thống hình dung rõ ràng các chuỗi gọi API phức tạp, các thao tác trao đổi dữ liệu mạng và các ranh giới giao dịch cơ sở dữ liệu trước khi viết mã sản xuất.
Với VPasCode, bạn không cần mất hàng giờ để căn chỉnh các mũi tên song song, kéo dài các đường tin nhắn hay di chuyển các hộp giới hạn để tạo không gian cho một bước mới. Bộ động lực bố cục của chúng tôi tính toán toàn bộ lưới thời gian một cách động khi bạn nhập các đoạn mã khai báo văn bản thuần túy.
Hướng dẫn cú pháp cốt lõi: Các thành phần và cấu trúc
Để thiết kế một sơ đồ tuần tự UML có thể thực thi và tuân thủ tiêu chuẩn trong PlantUML, bạn cần thành thạo các khai báo thành phần, kiểu mũi tên tin nhắn, các đường sống và các cấu trúc điều khiển logic.
1. Khai báo người tham gia và hình dạng UML
Mặc định, các thành phần trong sơ đồ UML này kế thừa hình dạng hộp vuông tiêu chuẩn. Tuy nhiên, bạn có thể thay đổi mẫu hình ảnh của các thực thể để cung cấp cho người đọc bối cảnh kiến trúc tức thì về ranh giới hệ thống của bạn bằng cách sử dụng các từ khóa UML cụ thể:
actor Client
boundary "API Gateway" as Gateway
control Controller
database "PostgreSQL" as DB 
2. Mũi tên tin nhắn và tính đồng bộ
Kiểu dáng của các đường và đầu mũi tên của bạn xác định chính xác giao thức truyền thông diễn ra trong các đường ống hạ tầng của bạn dựa trên tiêu chuẩn sơ đồ UML:
- Yêu cầu đồng bộ (Chặn): Được biểu thị bằng đường liền và đầu mũi tên liền. Người gửi chờ phản hồi:
A -> B - Tin nhắn bất đồng bộ (Không chặn): Được biểu thị bằng đường liền và đầu mũi tên mỏng mở. Người gửi truyền dữ liệu và tiếp tục ngay lập tức:
A ->> B - Phản hồi / Giá trị trả về: Được biểu thị bằng đường chấm và đầu mũi tên mở:
B --> A
3. Quản lý các đường sống (Kích hoạt và Vô hiệu hóa)
Để tránh các thành phần của bạn trông giống như những thanh phẳng, bạn nên hiển thị rõ ràng khi một tiến trình đang thực sự sử dụng các luồng CPU hoặc dung lượng bộ nhớ. Sử dụng các ký hiệu kích hoạt và vô hiệu hóa để đánh dấu, hoặc sử dụng cú pháp rút gọn dạng tăng trực tiếp (++ / --):
Cổng -> Điều khiển ++ : "processPayment()"
Điều khiển --> Cổng -- : "trả về biên lai" 
4. Các khối logic: Lựa chọn, Vòng lặp và Song song
Các logic kinh doanh phức tạp (như nhánh if/else, thử lại cơ sở dữ liệu, hoặc các luồng thực thi song song) phải được bao bọc bên trong các ranh giới khung toàn cục có cấu trúc được gọi là các khối kết hợp trong quy định biểu đồ UML:
- Logic điều kiện (alt / else): Mô hình hóa các nhánh điều kiện.
Plantuml Edit Plantuml in VPasCode
alt trạng thái thành công A -> B : "Tiếp tục yêu cầu" else trạng thái thất bại A -> B : "Ném mã lỗi" end
- Vòng lặp lặp lại (loop): Mô hình hóa các lần lặp, thử lại, hoặc các khối xử lý hàng đợi cho đến khi điều kiện được thỏa mãn.
Plantuml Edit Plantuml in VPasCode
loop cho đến khi hàng đợi trống Người làm việc -> Hàng đợi : "Lấy công việc tiếp theo" end
- Thực thi song song (par): Các mô hình tách biệt các thao tác đang thực thi đồng thời trên các luồng độc lập.
Plantuml Edit Plantuml in VPasCode
par Chạy các quy trình song song A -> LogService : "Ghi phân tích vết theo dõi" else A -> DB : "Cam kết dữ liệu hồ sơ khách hàng" end
Các thực hành tốt nhất cho các trình tự sạch
- Nhóm các tin nhắn bằng các đường phân cách: Sử dụng hai dấu bằng (“
== Giai đoạn của bạn ==) để chia nhỏ một chuỗi xác thực đến thanh toán khổng lồ thành các mốc logic riêng biệt. - Sử dụng đánh số tự động: Đặt lệnh
autonumberchỉ định ngay phía dưới@startuml. Điều này buộc môi trường làm việc đánh dấu số nguyên bước trên mỗi mũi tên, giúp việc kiểm tra mã nguồn trở nên dễ dàng hơn đáng kể. - Giữ phản hồi sạch sẽ: Tránh viết các câu mô tả dài dòng trên các mũi tên phản hồi (
-->). Thay vào đó, hãy đơn giản gán nhãn cho đối tượng dữ liệu thô hoặc mã HTTP nào đang được gửi ngược lại (ví dụ:"201 Tạo Token").
Các ví dụ về sơ đồ tuần tự PlantUML trong thế giới thực
Ví dụ 1: Vòng lặp xác thực dịch vụ vi mô (Khối Alt & Đường sống)
Mẫu này xử lý một trình tự bảo mật tiêu chuẩn nơi một client xác thực với một cổng, thể hiện rõ ràng các đường sống và khung kết quả điều kiện thay thế bên trong định dạng sơ đồ UML tiêu chuẩn.
@startuml
autonumber
actor Người dùng
boundary "Ứng dụng Web" as App
control "Dịch vụ Xác thực" as Auth
Người dùng -> App ++ : "Gửi thông tin đăng nhập"
App -> Auth ++ : "POST /v1/auth"
alt #LightGreen Đăng nhập thành công
Auth --> App : "200 OK (Token JWT)"
App --> Người dùng : "Hiển thị Bảng điều khiển"
else #LightPink Thông tin đăng nhập không hợp lệ
Auth --> App : "401 Không được ủy quyền"
App --> Người dùng : "Hiển thị thông báo lỗi"
end
deactivate Auth
deactivate App
@enduml 
Phân tích cú pháp: Phần autonumber thẻ tự động quản lý các số từ 1 đến 5. Phần alt và else các khối được thêm vào cờ màu hex tùy chỉnh (ví dụ như #LightGreen) để thêm hiệu ứng nổi bật trực quan ngay lập tức cho các nhánh thực thi thành công so với thất bại. Phần ++ các token đảm bảo các đường sống vẫn hoạt động trong suốt khối gọi mạng.
Ví dụ 2: Xử lý đơn hàng nâng cao (Vòng lặp, Song song và Bộ chia)
Bản thiết kế kiến trúc doanh nghiệp này mô hình hóa một hệ thống thanh toán mạnh mẽ, chia nhỏ các tác vụ giữa các công nhân song song, thực hiện ghi dữ liệu cơ sở dữ liệu và dựa vào vòng lặp đồng bộ hệ thống bên ngoài.
@startuml
autonumber
boundary "API Thanh toán" as API
database "Cơ sở dữ liệu Đơn hàng" as DB
control "Hàng đợi Công nhân" as Queue
boundary "Stripe" as Stripe
== Giai đoạn 1: Xác thực Sổ giao dịch ==
API -> DB ++ : "Ghi Đơn hàng Chờ xử lý"
DB --> API -- : "Xác nhận ID Đơn hàng"
== Giai đoạn 2: Thanh toán & Hoàn thành Bất đồng bộ ==
API -> Stripe ++ : "Tính phí Tài khoản Khách hàng"
Stripe --> API -- : "Thanh toán được ủy quyền"
par Các Thao tác Nền Song song
API -> Queue ++ : "Phát hành sự kiện 'Order_Placed'"
tắt Queue
else
API -> DB ++ : "Cập nhật trạng thái thành 'Đã thanh toán'"
tắt DB
end
loop Thử lại Tối đa 3 Lần khi Mạng bị lỗi
API -> API : "Gửi tín hiệu Ping Webhook Đồng bộ Thông báo"
end
API --> Client : "Trả về HTTP 200 (Thành công)"
@enduml 
Phân tích Ngữ pháp: Phần == các bộ chia chia bố cục thành các giai đoạn hoạt động riêng biệt. Phần par khối tách rõ ràng đường đi của mũi tên tin nhắn thành hai đường ngang riêng biệt, minh họa rằng việc phát hành sự kiện và cập nhật trạng thái cơ sở dữ liệu xảy ra đồng thời mà không làm tắc nghẽn lẫn nhau. Mũi tên tự trỏ (API -> API) mô tả chính xác vòng lặp hàm nội bộ cục bộ.