TÓM TẮT
- 1 Mở Đầu
- 2 1. Khái Niệm Cơ Bản Về Use Case
- 3 2. Các Ký Hiệu Và Quy Tắc Vẽ Use Case
- 4 3. Quy Trình Vẽ Use Case Từ A → Z
- 5 4. Công Cụ Hỗ Trợ Vẽ Use Case
- 6 5. Ví Dụ Thực Tế: Vẽ Use Case Cho Ứng Dụng Đặt Vé Máy Bay
- 7 6. Các Lỗi Thường Gặp Khi Vẽ Use Case Và Cách Khắc Phục
- 8 7. Mẹo Nâng Cao Để Tạo Sơ Đồ Use Case Chuyên Nghiệp
- 9 8. Tích Hợp Use Case Vào Quy Trình Phát Triển Agile
- 10 9. Kết Luận
Mở Đầu
Trong lĩnh vực phát triển phần mềm, sơ đồ Use Case (hay còn gọi là sơ đồ trường hợp sử dụng) là một trong những công cụ quan trọng giúp các nhà phân tích, kiến trúc sư và lập trình viên hiểu rõ yêu cầu của hệ thống từ góc độ người dùng. Việc vẽ sơ đồ Use Case không chỉ giúp truyền đạt ý tưởng một cách trực quan mà còn là nền tảng cho việc thiết kế, kiểm thử và bảo trì phần mềm.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những khái niệm cơ bản nhất, quy trình chuẩn, các ký hiệu và quy tắc vẽ, cho đến các mẹo nâng cao giúp bạn tạo ra các sơ đồ Use Case chuyên nghiệp, dễ hiểu và đáp ứng yêu cầu thực tế của dự án.
1. Khái Niệm Cơ Bản Về Use Case
1.1 Use Case là gì?
- Use Case (trường hợp sử dụng): Mô tả một chuỗi hành động giữa một actor (người dùng hoặc hệ thống bên ngoài) và hệ thống để đạt được một mục tiêu cụ thể.
- Mục đích: Ghi lại các chức năng mà hệ thống phải thực hiện để đáp ứng nhu cầu của người dùng.
1.2 Các thành phần chính

Có thể bạn quan tâm: Cách Vẽ Rong Biển Đơn Giản: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
| Thành phần | Mô tả |
|---|---|
| Actor | Đối tượng (người dùng, hệ thống khác) tương tác với hệ thống. |
| Use Case | Mô tả một chức năng hoặc dịch vụ mà hệ thống cung cấp. |
| Relationship | Mối quan hệ giữa các actor và use case (include, extend, generalization). |
| System Boundary | Đường viền bao quanh các use case, xác định phạm vi hệ thống. |
1.3 Lợi ích khi sử dụng Use Case
- Giao tiếp hiệu quả: Giúp các bên liên quan (khách hàng, nhà phân tích, lập trình viên) cùng hiểu rõ yêu cầu.
- Xác định phạm vi: Rõ ràng giới hạn các chức năng cần phát triển.
- Hỗ trợ kiểm thử: Mỗi use case có thể chuyển thành một hoặc nhiều test case.
- Quản lý thay đổi: Khi yêu cầu thay đổi, dễ dàng cập nhật use case tương ứng.
2. Các Ký Hiệu Và Quy Tắc Vẽ Use Case
2.1 Ký hiệu chuẩn UML
| Ký hiệu | Ý nghĩa | Hình ảnh mô tả |
|---|---|---|
| Actor | Người dùng hoặc hệ thống bên ngoài | Stick figure (hình người) |
| Use Case | Chức năng hệ thống | Oval (hình bầu dục) |
| System Boundary | Ranh giới hệ thống | Hình chữ nhật bao quanh các use case |
| Association | Mối quan hệ tương tác | Đường thẳng |
| Include | Use case bắt buộc được thực hiện trong một use case khác | Đường thẳng có mũi tên dọc, nhãn «include» |
| Extend | Use case mở rộng tùy chọn | Đường thẳng có mũi tên dọc, nhãn «extend» |
| Generalization | Kế thừa (cho actor hoặc use case) | Đường thẳng có mũi tên rỗng (triangular) |
2.2 Quy tắc cơ bản
- Mỗi Actor chỉ xuất hiện một lần: Đặt actor ở phía bên trái hoặc bên phải, tránh lặp lại.
- Use case không chồng lấn: Không để các oval chồng lên nhau, để không gây nhầm lẫn.
- Tên Use Case ngắn gọn, động từ: Ví dụ “Đăng nhập”, “Thanh toán đơn hàng”.
- Sử dụng Include khi chức năng lặp lại: Nếu một phần chức năng luôn xuất hiện trong nhiều use case, dùng Include.
- Sử dụng Extend cho tùy chọn: Khi một hành động chỉ xảy ra trong một số điều kiện nhất định, dùng Extend.
- Giữ sơ đồ sạch sẽ, dễ đọc: Tránh đường nối chéo, sắp xếp hợp lý để người xem nhanh chóng nắm bắt.
3. Quy Trình Vẽ Use Case Từ A → Z

Có thể bạn quan tâm: Cách Vẽ Ran Mori Đơn Giản: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
Bước 1: Thu Thập Yêu Cầu
- Phỏng vấn: Gặp gỡ người dùng cuối, khách hàng để hiểu nhu cầu.
- Workshop: Tổ chức buổi họp nhóm để thu thập và thống nhất các chức năng.
- Tài liệu: Đọc các tài liệu yêu cầu, hợp đồng, đặc tả kỹ thuật.
Bước 2: Xác Định Actor
- Liệt kê tất cả các đối tượng tương tác với hệ thống: người dùng, hệ thống bên ngoài, thiết bị IoT, API của bên thứ ba…
- Phân loại: Primary Actor (điều khiển use case) vs Secondary Actor (hỗ trợ).
Bước 3: Xác Định Use Case
- Dựa trên nhu cầu của mỗi actor, viết tên và miêu tả ngắn cho từng use case.
- Đảm bảo mỗi use case mô tả một kết quả có giá trị cho actor.
Bước 4: Xây Dựng System Boundary
- Vẽ một hình chữ nhật, đặt tên hệ thống (ví dụ “Hệ thống Quản lý Bán hàng”) ở trên.
- Đặt tất cả các use case bên trong.
Bước 5: Vẽ Các Mối Quan Hệ
- Association: Kết nối actor với use case.
- Include: Khi một use case luôn cần một chức năng chung (ví dụ “Xác thực người dùng”).
- Extend: Khi một chức năng phụ chỉ xảy ra trong một số trường hợp (ví dụ “Áp dụng mã giảm giá” mở rộng “Thanh toán”).
Bước 6: Kiểm Tra & Rà Soát

Có thể bạn quan tâm: Cách Vẽ Phòng Khách Đơn Giản: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
- Kiểm tra tính đầy đủ: Đảm bảo mọi yêu cầu đã được biểu diễn.
- Kiểm tra tính nhất quán: Không có mối quan hệ mâu thuẫn.
- Nhận phản hồi: Đưa sơ đồ cho stakeholder xem và chỉnh sửa nếu cần.
Bước 7: Lưu Trữ & Bảo Trì
- Lưu dưới định dạng XMI, PDF, hoặc PNG tùy công cụ.
- Đánh phiên bản (v1.0, v1.1…) và ghi chú thay đổi để dễ theo dõi.
4. Công Cụ Hỗ Trợ Vẽ Use Case
| Công cụ | Đặc điểm | Giá |
|---|---|---|
| Microsoft Visio | Thư viện ký hiệu UML phong phú, tích hợp Office | Thuê bao |
| Lucidchart | Làm việc nhóm online, drag‑drop dễ dàng | Freemium |
| draw.io (diagrams.net) | Miễn phí, hỗ trợ lưu trên Google Drive | Miễn phí |
| StarUML | Hỗ trợ UML 2.x, export XMI | Một lần mua |
| Enterprise Architect | Công cụ mạnh cho dự án lớn, quản lý yêu cầu | Thuê bao cao cấp |
Mẹo: Khi làm việc trong nhóm, ưu tiên công cụ có khả năng phiên bản đồng thời (real‑time collaboration) để giảm thiểu lỗi đồng bộ.
5. Ví Dụ Thực Tế: Vẽ Use Case Cho Ứng Dụng Đặt Vé Máy Bay
5.1 Xác định Actor

Có thể bạn quan tâm: Cách Vẽ Phong Cảnh Thiên Nhiên: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
| Actor | Vai trò |
|---|---|
| Khách hàng | Đặt vé, hủy vé, xem lịch bay |
| Nhân viên hỗ trợ | Xử lý yêu cầu hủy, đổi vé |
| Hệ thống thanh toán | Xác nhận giao dịch |
| Hệ thống quản lý chuyến bay | Cung cấp thông tin chuyến bay |
5.2 Xác định Use Case
- Đăng nhập / Đăng ký
- Tìm kiếm chuyến bay
- Chọn chỗ ngồi
- Thanh toán
- Xác nhận đặt vé
- Hủy vé
- Đổi vé
- Xem lịch sử đặt vé
5.3 Mối quan hệ Include / Extend
- Thanh toán include Xác nhận giao dịch (được thực hiện bởi hệ thống thanh toán).
- Đặt vé extend Áp dụng mã giảm giá (chỉ khi khách nhập mã).
- Hủy vé extend Xác nhận hủy (đối với vé đã thanh toán).
5.4 Sơ Đồ Tổng Quan (Mô tả bằng lời)
- System Boundary: “Ứng dụng Đặt vé Máy bay”.
- Actor: Khách hàng (bên trái), Nhân viên hỗ trợ (bên phải), Hệ thống thanh toán (bên dưới), Hệ thống quản lý chuyến bay (bên trên).
- Use Cases: Các oval đặt trong boundary, kết nối bằng đường thẳng tới các actor tương ứng.
- Include: Đường thẳng từ “Thanh toán” tới “Xác nhận giao dịch” với nhãn «include».
- Extend: Đường thẳng từ “Đặt vé” tới “Áp dụng mã giảm giá” với nhãn «extend».
5.5 Kiểm Tra
- Mỗi yêu cầu: Khách muốn đặt vé → đã có “Tìm kiếm chuyến bay”, “Chọn chỗ ngồi”, “Thanh toán”.
- Kịch bản ngoại lệ: Thanh toán thất bại → “Xác nhận giao dịch” trả về lỗi, hệ thống hiển thị thông báo.
6. Các Lỗi Thường Gặp Khi Vẽ Use Case Và Cách Khắc Phục

| Lỗi | Mô tả | Cách khắc phục |
|---|---|---|
| Nhập nhằng Actor và Use Case | Đặt actor vào trong boundary hoặc đặt use case ngoài | Kiểm tra lại vị trí, luôn để actor bên ngoài. |
| Tên Use Case không mô tả hành động | Dùng danh từ (“Báo cáo”) thay vì động từ (“Tạo báo cáo”) | Đổi tên thành dạng “động từ + danh từ”. |
| Quá nhiều Use Case trong một sơ đồ | Gây rối, khó đọc | Chia thành sub‑system hoặc package diagram, hoặc tạo sơ đồ cấp cao và chi tiết riêng. |
| Sử dụng Include/Extend không đúng | Dùng Extend cho chức năng luôn thực hiện | Đánh giá lại tính bắt buộc, chuyển sang Include nếu cần. |
| Không cập nhật khi yêu cầu thay đổi | Sơ đồ lỗi thời, không phản ánh thực tế | Áp dụng quy trình Change Management, cập nhật ngay khi có thay đổi. |
7. Mẹo Nâng Cao Để Tạo Sơ Đồ Use Case Chuyên Nghiệp
- Sử dụng màu sắc để phân biệt: Màu xanh cho actor, màu cam cho use case chính, màu xám cho các use case phụ.
- Áp dụng layered diagram: Tạo sơ đồ cấp cao (high‑level) cho quản lý, và cấp chi tiết cho nhóm phát triển.
- Gắn link tới tài liệu chi tiết: Trong công cụ hỗ trợ, gắn hyperlink từ use case tới tài liệu mô tả chi tiết (user story, acceptance criteria).
- Thiết lập naming convention: Ví dụ “UC_01_Đăng nhập”, “UC_02_Tìm kiếm chuyến bay” để dễ quản lý.
- Kiểm tra tính nhất quán với các diagram khác: Đảm bảo các class diagram, sequence diagram phù hợp với các use case đã mô tả.
- Sử dụng “actor stereotypes”: Đánh dấu actor là «primary», «secondary», hoặc «external system» để truyền đạt vai trò rõ ràng.
- Thêm “pre‑condition” và “post‑condition” vào mô tả use case: Dù không hiển thị trong sơ đồ, nhưng trong tài liệu kèm theo, chúng giúp kiểm thử và phát triển.
8. Tích Hợp Use Case Vào Quy Trình Phát Triển Agile
- User Story ↔ Use Case: Mỗi user story thường tương ứng với một hoặc một vài use case. Khi viết backlog, hãy đính kèm sơ đồ use case để làm rõ.
- Sprint Planning: Dựa vào các use case để ước lượng công việc (story points) và xác định các task.
- Definition of Done (DoD): Bao gồm “các test case dựa trên use case đã được thực hiện thành công”.
- Retrospective: Đánh giá xem các use case có phản ánh đúng nhu cầu không, cần điều chỉnh hay không.
9. Kết Luận
Việc vẽ sơ đồ Use Case không chỉ là một bước trong giai đoạn phân tích mà còn là cầu nối quan trọng giữa người dùng, nhà phân tích và đội phát triển. Khi thực hiện đúng quy trình, áp dụng các ký hiệu chuẩn, tuân thủ quy tắc thiết kế và sử dụng công cụ hỗ trợ hợp lý, bạn sẽ có được:
- Sơ đồ rõ ràng, dễ hiểu giúp giảm thiểu hiểu lầm.
- Cơ sở cho việc thiết kế, lập trình và kiểm thử một cách có hệ thống.
- Tài liệu sống có thể cập nhật nhanh khi yêu cầu thay đổi.
Hãy bắt đầu ngay hôm nay: thu thập yêu cầu, xác định actor, vẽ các use case, và liên tục cải tiến sơ đồ để chúng luôn phản ánh đúng thực tế dự án. Khi bạn làm được điều này, chất lượng phần mềm sẽ được nâng lên, thời gian phát triển giảm, và sự hài lòng của khách hàng sẽ tăng đáng kể.
Chúc bạn thành công trong việc tạo ra các sơ đồ Use Case chuyên nghiệp và hiệu quả!
