Sequence diagram (sơ đồ tuần tự) là một loại sơ đồ tương tác trong UML, mô tả các đối tượng trong hệ thống trao đổi thông điệp với nhau theo thứ tự thời gian từ trên xuống dưới. Sơ đồ gồm các đường đời (lifeline), thông điệp (message), thanh kích hoạt (activation) và các khối điều kiện, vòng lặp. Chỉ cần nắm vài ký hiệu cơ bản và chọn một kịch bản cụ thể như đăng nhập, bạn đã có thể tự vẽ sơ đồ bằng draw.io, Mermaid hoặc PlantUML.
Tóm tắt nhanh:
- Sequence diagram là gì: sơ đồ UML thể hiện thứ tự tương tác giữa người dùng và các thành phần hệ thống theo thời gian.
- Thành phần chính: actor, lifeline, message (đồng bộ, bất đồng bộ, phản hồi), activation, combined fragment (alt, opt, loop, par).
- Dùng khi: phân tích một chức năng cụ thể như đăng nhập, đặt hàng, thanh toán, gọi API.
- Công cụ vẽ: draw.io, Mermaid, PlantUML, Visual Paradigm, StarUML, sequencediagram.org.
Sequence diagram là gì?
Sequence diagram là sơ đồ thể hiện một kịch bản sử dụng cụ thể: ai gửi thông điệp cho ai, theo thứ tự nào và nhận lại kết quả gì. Trục ngang liệt kê các đối tượng tham gia, trục dọc là thời gian chạy từ trên xuống, nên chỉ cần đọc từ trên xuống là hiểu luồng xử lý.
Trong UML (Unified Modeling Language – ngôn ngữ mô hình hóa thống nhất), sequence diagram thuộc nhóm sơ đồ tương tác (interaction diagram). Người phân tích nghiệp vụ, lập trình viên backend, frontend và kiểm thử đều dùng sơ đồ này để thống nhất cách các thành phần nói chuyện với nhau. Nếu bạn mới làm quen với các loại sơ đồ, xem trước bài diagram là gì để có cái nhìn tổng quan.

Các thành phần của sequence diagram
Một sequence diagram gồm năm nhóm ký hiệu chính: tác nhân (actor), đường đời (lifeline), thanh kích hoạt (activation), thông điệp (message) và khối kết hợp (combined fragment). Nắm vững các ký hiệu này là bạn đọc được hầu hết sơ đồ tuần tự theo chuẩn UML 2.x.
| Thành phần | Ký hiệu | Ý nghĩa |
|---|---|---|
| Actor (tác nhân) | Hình người que | Người dùng hoặc hệ thống bên ngoài khởi tạo tương tác |
| Lifeline (đường đời) | Hộp tên đối tượng + đường nét đứt dọc | Đối tượng tham gia và sự tồn tại của nó theo thời gian |
| Activation (thanh kích hoạt) | Hình chữ nhật hẹp trên lifeline | Khoảng thời gian đối tượng đang xử lý |
| Thông điệp đồng bộ | Mũi tên nét liền, đầu tô đặc | Bên gửi chờ kết quả rồi mới làm tiếp |
| Thông điệp bất đồng bộ | Mũi tên nét liền, đầu mở | Bên gửi không chờ phản hồi |
| Thông điệp phản hồi | Mũi tên nét đứt | Kết quả trả về cho bên gọi |
| Hủy đối tượng | Dấu X ở cuối lifeline | Đối tượng kết thúc vòng đời |
Các khối điều kiện, vòng lặp trong sequence diagram
Khối kết hợp (combined fragment) là khung chữ nhật có nhãn ở góc trên bên trái, dùng để thể hiện rẽ nhánh, tùy chọn, vòng lặp hay xử lý song song trong sequence diagram. Khái niệm này được đưa vào từ UML 2.0; mỗi khối có một toán tử (operator) và có thể chia thành nhiều vùng kèm điều kiện canh (guard) đặt trong ngoặc vuông, ví dụ [mật khẩu đúng].
- alt: rẽ nhánh theo điều kiện, giống if – else (ví dụ đăng nhập đúng / sai).
- opt: đoạn chỉ chạy khi điều kiện đúng, giống if không có else.
- loop: lặp lại nhiều lần (ví dụ thử lại tối đa 3 lần).
- par: các đoạn chạy song song.
- break: thoát khỏi luồng chính khi gặp điều kiện.
- ref: tham chiếu tới một sequence diagram khác để sơ đồ gọn hơn.

Ví dụ sequence diagram chức năng đăng nhập
Chức năng đăng nhập là ví dụ kinh điển: người dùng nhập tài khoản, giao diện gửi yêu cầu tới máy chủ, máy chủ kiểm tra trong cơ sở dữ liệu rồi trả kết quả thành công hoặc báo lỗi.
- Người dùng nhập email, mật khẩu và bấm Đăng nhập trên giao diện.
- Giao diện gửi yêu cầu đăng nhập (thông điệp đồng bộ) tới máy chủ qua API.
- Máy chủ truy vấn cơ sở dữ liệu để lấy thông tin tài khoản.
- Cơ sở dữ liệu trả về dữ liệu người dùng (thông điệp phản hồi).
- Khối alt: nếu mật khẩu đúng, máy chủ tạo phiên đăng nhập và trả về thành công; nếu sai, trả về thông báo lỗi.
- Giao diện hiển thị trang chủ hoặc thông báo lỗi cho người dùng.
Viết bằng Mermaid, sơ đồ trên có dạng:
sequenceDiagram
actor U as Người dùng
participant G as Giao diện
participant S as Máy chủ
participant D as CSDL
U->>G: Nhập email, mật khẩu
G->>S: POST /login
S->>D: Tìm tài khoản
D-->>S: Thông tin tài khoản
alt Mật khẩu đúng
S-->>G: Đăng nhập thành công
G-->>U: Mở trang chủ
else Mật khẩu sai
S-->>G: Lỗi xác thực
G-->>U: Báo sai mật khẩu
end
Để hiểu rõ hơn phần giao diện gọi máy chủ, xem bài API là gì và backend là gì.
Cách vẽ sequence diagram từng bước
Để vẽ sequence diagram, bạn chọn một kịch bản cụ thể, liệt kê các đối tượng tham gia, sắp xếp thông điệp theo thứ tự thời gian, rồi bổ sung phản hồi và các khối điều kiện, vòng lặp.
- Chọn một kịch bản: mỗi sơ đồ chỉ nên mô tả một chức năng, ví dụ “đặt hàng thành công”.
- Xác định đối tượng: actor khởi tạo và các thành phần như giao diện, máy chủ, dịch vụ thanh toán, cơ sở dữ liệu.
- Đặt lifeline từ trái sang phải theo thứ tự tham gia, actor ở ngoài cùng bên trái.
- Vẽ thông điệp theo thời gian từ trên xuống, đặt tên rõ ràng dạng động từ (Tạo đơn, Kiểm tra tồn kho).
- Thêm thông điệp phản hồi bằng nét đứt khi cần thể hiện kết quả trả về.
- Thêm alt, opt, loop cho các nhánh lỗi, tùy chọn, thử lại.
- Rà lại với nhóm để chắc sơ đồ khớp với yêu cầu và thiết kế API.

Công cụ vẽ sequence diagram miễn phí
Bạn có thể vẽ sequence diagram bằng công cụ kéo thả như draw.io, hoặc viết mã văn bản để tự sinh sơ đồ bằng Mermaid, PlantUML; cách viết mã giúp dễ sửa và lưu cùng mã nguồn dự án.
| Công cụ | Cách dùng | Phù hợp |
|---|---|---|
| draw.io (diagrams.net) | Kéo thả, có sẵn bộ ký hiệu UML | Người mới, cần chỉnh giao diện sơ đồ tự do |
| Mermaid | Viết mã văn bản, hiển thị trong nhiều công cụ tài liệu, GitHub | Lập trình viên, viết tài liệu kỹ thuật |
| PlantUML | Viết mã văn bản, hỗ trợ đầy đủ ký hiệu UML | Dự án cần sơ đồ UML chi tiết |
| sequencediagram.org | Viết mã trực tiếp trên web, xem ngay | Vẽ nhanh, không cần cài đặt |
| Lucidchart | Kéo thả trên trình duyệt, có thư viện ký hiệu UML | Làm việc nhóm online; bản miễn phí có giới hạn |
| Visual Paradigm, StarUML | Phần mềm mô hình hóa UML đầy đủ | Phân tích thiết kế hệ thống lớn |
Với PlantUML, cùng kịch bản đăng nhập được viết như sau; mũi tên -> là thông điệp đồng bộ, --> là phản hồi nét đứt, còn activate/deactivate vẽ thanh kích hoạt:
@startuml
actor "Người dùng" as U
participant "Giao diện" as G
participant "Máy chủ" as S
database "CSDL" as D
U -> G : Nhập email, mật khẩu
activate G
G -> S : POST /login
activate S
S -> D : Tìm tài khoản
D --> S : Thông tin tài khoản
alt Mật khẩu đúng
S --> G : Đăng nhập thành công
else Mật khẩu sai
S --> G : Lỗi xác thực
end
deactivate S
G --> U : Hiển thị kết quả
deactivate G
@enduml
Sequence diagram khác activity diagram và class diagram thế nào?
Sequence diagram tập trung vào thứ tự thông điệp giữa các đối tượng, activity diagram tập trung vào luồng công việc và quyết định, còn class diagram mô tả cấu trúc tĩnh gồm lớp, thuộc tính và quan hệ.
| Sơ đồ | Trả lời câu hỏi | Loại |
|---|---|---|
| Sequence diagram | Các đối tượng nói chuyện với nhau theo thứ tự nào? | Hành vi, tương tác |
| Activity diagram | Công việc diễn ra qua những bước, nhánh nào? | Hành vi, luồng xử lý |
| Use case diagram | Ai dùng hệ thống để làm gì? | Hành vi, chức năng |
| Class diagram | Hệ thống gồm những lớp, quan hệ nào? | Cấu trúc tĩnh |
Khi thiết kế phần lưu trữ dữ liệu đi kèm, bạn có thể tham khảo thêm bài database là gì.
Lỗi thường gặp khi vẽ sequence diagram
Lỗi hay gặp nhất là nhồi quá nhiều kịch bản vào một sơ đồ, dùng sai kiểu mũi tên, đặt tên thông điệp mơ hồ và quên nhánh lỗi.
- Một sơ đồ quá nhiều luồng: tách ra nhiều sơ đồ hoặc dùng khối ref.
- Nhầm mũi tên: phản hồi phải nét đứt; đồng bộ dùng đầu tô đặc.
- Tên thông điệp chung chung: “Gửi dữ liệu” nên đổi thành “Gửi thông tin đơn hàng”.
- Thiếu nhánh lỗi: luôn cân nhắc trường hợp hết hàng, mất kết nối, sai mật khẩu.

Câu hỏi thường gặp về sequence diagram
Sequence diagram là gì?
Sequence diagram là sơ đồ tương tác trong UML, mô tả các đối tượng trao đổi thông điệp với nhau theo thứ tự thời gian để thực hiện một chức năng.
Sequence diagram tiếng Việt gọi là gì?
Thường gọi là sơ đồ tuần tự hoặc biểu đồ tuần tự.
Lifeline trong sequence diagram là gì?
Lifeline là đường nét đứt dọc dưới mỗi đối tượng, thể hiện sự tồn tại của đối tượng đó trong suốt kịch bản tương tác.
Mũi tên nét liền và nét đứt khác nhau thế nào?
Mũi tên nét liền là thông điệp gửi đi (gọi hàm, yêu cầu); mũi tên nét đứt là thông điệp phản hồi, kết quả trả về.
Vẽ sequence diagram bằng công cụ nào?
Có thể dùng draw.io để kéo thả, Mermaid hoặc PlantUML để viết mã sinh sơ đồ, hoặc phần mềm UML như Visual Paradigm, StarUML.
Khi nào nên dùng sequence diagram?
Khi cần làm rõ cách các thành phần phối hợp trong một chức năng cụ thể như đăng nhập, thanh toán, gọi API, trước khi lập trình hoặc khi viết tài liệu hệ thống.
Kết luận
Sequence diagram giúp nhìn rõ các đối tượng trong hệ thống trao đổi thông điệp theo thứ tự thời gian, là công cụ quen thuộc khi phân tích và thiết kế phần mềm. Hãy nắm các ký hiệu lifeline, activation, thông điệp đồng bộ, phản hồi và khối alt, opt, loop, bắt đầu từ một kịch bản cụ thể như đăng nhập, rồi chọn draw.io hoặc Mermaid, PlantUML để vẽ nhanh và dễ chỉnh sửa.
Xem thêm:
Diagram là gì? Các loại diagram và cách vẽ trực quan 2026
Mindmap AI: Công cụ hỗ trợ sắp xếp ý tưởng và học tập hiệu quả





