sequence-diagram

Sequence diagram là gì? Thành phần, ví dụ và cách vẽ

XEM NHANH

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.

sequence-diagram-1

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.

sequence-diagram-2

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.

  1. Người dùng nhập email, mật khẩu và bấm Đăng nhập trên giao diện.
  2. 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.
  3. Máy chủ truy vấn cơ sở dữ liệu để lấy thông tin tài khoản.
  4. Cơ sở dữ liệu trả về dữ liệu người dùng (thông điệp phản hồi).
  5. 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.
  6. 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.

  1. 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”.
  2. 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.
  3. Đặt lifeline từ trái sang phải theo thứ tự tham gia, actor ở ngoài cùng bên trái.
  4. 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).
  5. 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ề.
  6. Thêm alt, opt, loop cho các nhánh lỗi, tùy chọn, thử lại.
  7. Rà lại với nhóm để chắc sơ đồ khớp với yêu cầu và thiết kế API.

sequence-diagram-3

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.

sequence-diagram-4

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ả

Tin mới nhất
sequence-diagram
Sequence diagram là gì? Thành phần, ví dụ và cách vẽ
R&D là gì? Nghiên cứu và phát triển trong doanh nghiệp
mo-thay-nguoi-than-mat
Mơ thấy người thân mất là điềm gì? Giải mã dân gian và tâm lý
cach-bam-xac-suat-tren-casio-580
Cách bấm xác suất trên máy tính Casio 580 chi tiết nhất