TÓM TẮT
- 1 Giới thiệu chung về Sequence Diagram và StarUML
- 2 Phần 1: Chuẩn bị môi trường và tạo dự án mới
- 3 Phần 2: Các thành phần cơ bản của Sequence Diagram trong StarUML
- 4 Phần 3: Quy trình vẽ một Sequence Diagram mẫu – Quy trình đăng nhập (Login)
- 5 Phần 4: Tinh chỉnh và tối ưu hóa Sequence Diagram
- 6 Phần 5: Xuất file và chia sẻ Sequence Diagram
- 7 Phần 6: Những lưu ý và mẹo nâng cao khi làm việc với Sequence Diagram trong StarUML
- 8 Phần 7: Tổng kết và hướng phát triển tiếp theo
Giới thiệu chung về Sequence Diagram và StarUML
1. Sequence Diagram là gì?
Sequence Diagram (Sơ đồ tuần tự) là một trong những loại biểu đồ quan trọng trong UML (Unified Modeling Language). Nó mô tả cách các đối tượng (objects) và thành phần (components) tương tác với nhau qua thời gian, thông qua các thông điệp (messages) được gửi đi và nhận lại. Nhờ vào cấu trúc tuyến tính theo trục thời gian, Sequence Diagram giúp chúng ta:
- Hiểu rõ luồng nghiệp vụ: Xác định các bước thực hiện của một chức năng, quy trình.
- Phân tích tương tác giữa các lớp: Xem xét cách các lớp, đối tượng, service giao tiếp.
- Kiểm tra tính đúng đắn của thiết kế: Phát hiện sớm các lỗi logic, vòng lặp vô hạn, hoặc thiếu thông điệp.
- Giao tiếp với các bên liên quan: Trình bày rõ ràng cho nhà phát triển, tester, và stakeholder.
2. StarUML – Công cụ UML mạnh mẽ, miễn phí và dễ dùng
StarUML là một phần mềm mô hình hoá UML đa nền tảng (Windows, macOS, Linux) được phát triển dựa trên Electron. Những ưu điểm nổi bật:
- Giao diện trực quan: Kéo thả, menu ngắn gọn, hỗ trợ phím tắt.
- Hỗ trợ đa dạng biểu đồ UML: Class Diagram, Use Case, Activity, Sequence, và hơn 30 loại diagram khác.
- Mở rộng bằng plug‑in: Có thể cài thêm các extension để sinh code, tạo tài liệu, hoặc tích hợp với các công cụ CI/CD.
- Export linh hoạt: PNG, JPEG, SVG, PDF, cũng như file XMI để trao đổi với các công cụ khác.
- Miễn phí cho mục đích cá nhân và giáo dục: Phiên bản Professional có phí, nhưng bản Community đủ cho hầu hết nhu cầu học tập và dự án nhỏ.
Trong bài viết này, chúng ta sẽ đi sâu vào cách vẽ Sequence Diagram bằng StarUML – từ cài đặt môi trường, tạo dự án, xây dựng các lifeline, message, đến các tính năng nâng cao như fragment, loop, và export.
Phần 1: Chuẩn bị môi trường và tạo dự án mới
Bước 1.1: Tải và cài đặt StarUML

Có thể bạn quan tâm: Cách Vẽ Ruộng Lúa Đơn Giản: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
- Truy cập trang chủ: https://staruml.io/
- Chọn “Download” phù hợp với hệ điều hành của bạn (Windows, macOS, Linux).
- Mở file tải về và làm theo hướng dẫn cài đặt. Đối với macOS, kéo biểu tượng StarUML vào thư mục Applications.
- Khi cài đặt xong, khởi động StarUML lần đầu. Bạn sẽ thấy màn hình chào “Welcome to StarUML”.
Bước 1.2: Tạo một Project mới
- File → New Project (hoặc nhấn
Ctrl+N). - Chọn UML 2.x trong danh sách mẫu.
- Đặt tên cho dự án, ví dụ:
BankingSystem. - Nhấn Create. Giao diện chính sẽ xuất hiện với Model Explorer bên trái và Diagram Canvas ở trung tâm.
Bước 1.3: Thêm một Sequence Diagram
- Trong Model Explorer, chuột phải vào Model → Add Diagram → Sequence Diagram.
- Đặt tên cho diagram, ví dụ:
LoginProcess. - Diagram mới sẽ xuất hiện trên canvas, sẵn sàng để bạn bắt đầu vẽ.
Phần 2: Các thành phần cơ bản của Sequence Diagram trong StarUML
2.1. Lifeline (đường sống)
Lifeline biểu thị một đối tượng hoặc một thực thể tham gia trong quá trình tương tác. Trong StarUML:
- Cách tạo: Kéo biểu tượng Lifeline (hình chữ nhật có đầu mũi tên) từ thanh công cụ UML Toolbox (bên phải) vào canvas.
- Đặt tên: Nhập tên đối tượng, ví dụ:
User,AuthController,UserService,Database. - Thay đổi kiểu: Click chuột phải → Properties → Instance Specification để thêm thuộc tính hoặc stereotype.
2.2. Activation Bar (thanh kích hoạt)
Activation bar (còn gọi là Execution Specification) cho biết thời điểm một đối tượng đang thực hiện một hành động.
- Cách tạo: Khi bạn kéo một Message (thông điệp) từ một lifeline tới lifeline khác, StarUML tự động tạo activation bar tại lifeline nhận.
- Điều chỉnh chiều dài: Kéo các đầu của activation bar lên xuống để mở rộng hoặc thu hẹp thời gian thực thi.
2.3. Message (thông điệp)
Message là trung tâm của Sequence Diagram, thể hiện sự trao đổi dữ liệu hoặc lệnh gọi hàm.
Các loại message được hỗ trợ trong StarUML:
| Loại Message | Ký hiệu | Mô tả |
|————–|———|——|
| Synchronous Call | → | Gọi hàm đồng bộ, chờ trả về. |
| Asynchronous Call | ↣ | Gọi hàm không đồng bộ, không chờ trả về. |
| Return Message | ← | Trả về kết quả. |
| Create Message | → (đầu mũi tên có hình vuông) | Tạo một đối tượng mới. |
| Delete Message | → (đầu mũi tên có hình tròn) | Xóa đối tượng. |
| Self‑Message | → (cùng lifeline) | Gọi lại chính mình (recursive). |

Có thể bạn quan tâm: Cách Vẽ Ram Dốc Trong Sketchup: Hướng Dẫn Chi Tiết Từ A Đến Z
Cách tạo message:
1. Chọn công cụ Message trên toolbox.
2. Click vào lifeline nguồn, kéo tới lifeline đích.
3. Nhập tên message, ví dụ: login(username, password).
4. Đối với Return Message, nhấn R sau khi kéo để tạo mũi tên trả về.
2.4. Fragment (khối điều kiện, vòng lặp)
Fragment cho phép mô tả các cấu trúc điều khiển như alt, opt, loop, par, break.
- Thêm fragment: Kéo biểu tượng Combined Fragment từ toolbox lên canvas.
- Chọn loại: Trong Properties, chọn Operator (
alt,opt,loop, …). - Đặt điều kiện: Nhập biểu thức trong ô Guard (ví dụ:
username != null).
Phần 3: Quy trình vẽ một Sequence Diagram mẫu – Quy trình đăng nhập (Login)
Để minh hoạ, chúng ta sẽ vẽ một quy trình đăng nhập cho hệ thống ngân hàng, bao gồm các thành phần:
- User (người dùng)
- LoginPage (giao diện)
- AuthController (controller)
- AuthService (service)
- UserRepository (truy cập DB)
Bước 3.1: Tạo các lifeline
- Kéo 5 lifeline vào canvas, đặt tên lần lượt:
User,LoginPage,AuthController,AuthService,UserRepository. - Sắp xếp chúng từ trái sang phải theo thứ tự giao tiếp.
Bước 3.2: Vẽ các message chính
| Thứ tự | Nguồn | Đích | Loại | Tên message | Ghi chú |
|---|---|---|---|---|---|
| 1 | User | LoginPage | Synchronous | enterCredentials(username, password) |
Người dùng nhập thông tin. |
| 2 | LoginPage | AuthController | Synchronous | login(username, password) |
Gửi yêu cầu tới controller. |
| 3 | AuthController | AuthService | Synchronous | authenticate(username, password) |
Controller gọi service. |
| 4 | AuthService → UserRepository | Synchronous | findByUsername(username) |
Service truy vấn DB. | |
| 5 | UserRepository → AuthService | Return | UserEntity |
Trả về đối tượng người dùng. | |
| 6 | AuthService → AuthController | Return | AuthToken |
Trả về token nếu hợp lệ. | |
| 7 | AuthController → LoginPage | Return | loginSuccess(token) |
Trả về kết quả cho UI. | |
| 8 | LoginPage → User | Asynchronous | showDashboard() |
UI chuyển sang dashboard. |
Thực hiện:
– Dùng công cụ Message, kéo từ lifeline User tới LoginPage, nhập tên message.
– Lặp lại cho các bước tiếp theo, chú ý tạo Return Message bằng cách kéo ngược lại và chọn R.

Có thể bạn quan tâm: Cách Vẽ Ram Dốc Trong Revit: Hướng Dẫn Chi Tiết Từ A Đến Z
Bước 3.3: Thêm fragment cho trường hợp lỗi
- Kéo Combined Fragment bao quanh các message từ bước 3 đến bước 6.
- Trong Properties, chọn Operator = alt (điều kiện thay thế).
- Thêm Operand (phân đoạn) cho trường hợp
username không tồn tại: - Guard:
!userExists - Message:
UserRepository → AuthService : null - Return:
AuthController → LoginPage : loginFailed("User not found") - Thêm Operand cho trường hợp
password sai: - Guard:
passwordIncorrect - Message:
AuthService → AuthController : null - Return:
AuthController → LoginPage : loginFailed("Invalid password")
Kết quả là một diagram hiển thị cả luồng thành công và các luồng lỗi.
Bước 3.4: Thêm loop cho retry (tùy chọn)
Nếu muốn mô tả người dùng có thể thử lại tối đa 3 lần:
- Thêm một Combined Fragment ở bên ngoài toàn bộ diagram.
- Chọn Operator = loop.
- Guard:
attempts < 3. - Đặt toàn bộ các message từ bước 1 đến bước 8 vào trong fragment này.
Phần 4: Tinh chỉnh và tối ưu hóa Sequence Diagram
4.1. Định dạng và bố cục tự động
- Auto Layout: Nhấn
Ctrl+Lđể StarUML tự động sắp xếp lifeline và message, giảm thiểu crossing. - Align: Chọn nhiều lifeline → Align → Top để đồng nhất vị trí đầu.
- Resize: Kéo các thanh activation để làm nổi bật thời gian thực thi lâu hơn.
4.2. Thêm notes và constraints
- Note: Kéo biểu tượng Note (hình chữ nhật có góc gập) để giải thích chi tiết, ví dụ: “Mã OTP được gửi qua SMS”.
- Constraint: Dùng biểu tượng Constraint để ghi chú các ràng buộc như
@Precondition,@Postcondition.
- Stereotype: Click chuột phải vào lifeline → Add Stereotype → nhập
<<controller>>,<<service>>, giúp diagram trở nên chuyên nghiệp. - Tagged Values: Thêm các thuộc tính tùy chỉnh (ví dụ:
version=1.0) trong Properties → Tagged Values.
4.4. Kiểm tra tính nhất quán
- Validate Diagram: Vào Tools → Validate Model để StarUML kiểm tra các lỗi UML cơ bản (ví dụ: message không có source hoặc target).
- Consistency Check: Đảm bảo mọi lifeline đều có ít nhất một activation, mọi return message đều có source tương ứng.
Phần 5: Xuất file và chia sẻ Sequence Diagram

Có thể bạn quan tâm: Cách Vẽ Quốc Kỳ Việt Nam: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
5.1. Export hình ảnh
- PNG/JPEG: File → Export Diagram → PNG. Lựa chọn độ phân giải (dpi) để phù hợp với tài liệu.
- SVG: Định dạng vector, thích hợp cho slide PowerPoint hoặc tài liệu LaTeX.
5.2. Export PDF
- File → Export Diagram → PDF. Lưu lại để gửi cho stakeholder mà không cần StarUML.
5.3. Export XMI (để nhập vào công cụ khác)
- File → Export → XMI. Định dạng chuẩn UML, giúp đồng bộ với Enterprise Architect, Visual Paradigm, hoặc các công cụ CI.
5.4. Tích hợp vào tài liệu
- Markdown:
!Login Sequence(login_sequence.png) - LaTeX:
\includegraphicswidth=\linewidth{login_sequence.svg}
5.5. Chia sẻ dự án StarUML
- File → Save As: Lưu dự án dưới dạng
.staruml. Bạn có thể đẩy lên GitHub để quản lý phiên bản. - Import/Export Extension: Cài plug‑in Git Integration để tự động commit khi lưu.
Phần 6: Những lưu ý và mẹo nâng cao khi làm việc với Sequence Diagram trong StarUML
6.1. Tránh over‑crowding (quá tải)

- Phân chia: Nếu một chức năng quá phức tạp, hãy tách thành nhiều diagram (ví dụ:
Login_Process,Login_ErrorHandling). - Sử dụng Refactor: Kéo một phần diagram thành Sub‑Interaction (fragment
ref). Điều này giúp tái sử dụng và giảm độ dài.
6.2. Sử dụng “Interaction Overview Diagram” (IOD)
- Khi có nhiều Sequence Diagram liên quan, tạo một Interaction Overview Diagram để liên kết chúng bằng các node.
- StarUML hỗ trợ IOD, giúp bạn xây dựng bản đồ tổng quan cho toàn bộ quy trình nghiệp vụ.
6.3. Tự động sinh code (code generation)
- Extension “UML to Code”: Cài plug‑in này để sinh skeleton code từ Sequence Diagram (Java, C#, Python).
- Lưu ý: Chỉ sinh khung, logic nghiệp vụ vẫn phải viết tay.
6.4. Thực hành Test‑Driven Design (TDD) với Sequence Diagram
- Viết test case dựa trên các message trong diagram.
- Đảm bảo mỗi message tương ứng với một method hoặc API endpoint.
6.5. Đánh dấu thời gian thực tế
- Nếu cần hiển thị thời gian thực (ms), có thể sử dụng Note gắn vào activation bar, hoặc dùng Tagged Value
duration=120ms.
Phần 7: Tổng kết và hướng phát triển tiếp theo
Trong bài viết này, chúng ta đã:
- Hiểu rõ vai trò của Sequence Diagram trong việc mô tả luồng tương tác.
- Cài đặt và khởi tạo dự án StarUML một cách nhanh chóng.
- Thực hành vẽ các thành phần cơ bản: lifeline, activation bar, message, fragment.
- Xây dựng một ví dụ thực tế – quy trình đăng nhập – bao gồm cả luồng thành công và lỗi.
- Tối ưu hoá diagram bằng layout tự động, notes, stereotypes, và kiểm tra tính nhất quán.
- Export và chia sẻ kết quả dưới nhiều định dạng (PNG, SVG, PDF, XMI).
- Áp dụng các mẹo nâng cao như refactor, Interaction Overview Diagram, và code generation.
Những bước tiếp theo bạn có thể thực hiện
- Thực hành với các trường hợp nghiệp vụ khác: Checkout trong e‑commerce, giao dịch ngân hàng, workflow phê duyệt.
- Kết hợp với các diagram khác: Use Case Diagram để xác định actor, Class Diagram để thiết kế lớp, và Activity Diagram để mô tả luồng công việc.
- Tích hợp vào quy trình Agile: Đưa Sequence Diagram vào backlog, dùng chúng như “definition of ready” cho user story.
- Học thêm về các plug‑in: Ví dụ plug‑in “PlantUML Export” cho phép chuyển đổi diagram sang ngôn ngữ PlantUML, giúp tích hợp vào CI/CD.
Kết luận: StarUML là công cụ mạnh mẽ và linh hoạt để tạo Sequence Diagram chất lượng cao. Khi bạn nắm vững các bước cơ bản và áp dụng các mẹo nâng cao, việc truyền đạt kiến trúc hệ thống sẽ trở nên rõ ràng, nhanh chóng và hiệu quả hơn bao giờ hết. Hãy bắt tay vào thực hành ngay hôm nay, tạo ra những diagram chuyên nghiệp cho dự án của mình!
