Biểu đồ Use Case UML cho biết hệ thống cung cấp những gì và ai—hoặc cái gì—tương tác với nó. Với quy trình làm việc biểu đồ dưới dạng mã, nguồn của biểu đồ là văn bản thuần: chỉnh sửa văn bản, hiển thị biểu đồ và giữ nguồn bên cạnh tài liệu dự án.

PlantUML hỗ trợ biểu đồ Use Case. Trình soạn thảo VPasCode của Visual Paradigm cung cấp trình soạn thảo và xem trước PlantUML, cùng với các tính năng tạo và chỉnh sửa biểu đồ được hỗ trợ bởi AI.
1. Những gì biểu đồ Use Case truyền đạt
Biểu đồ Use Case tập trung vào phạm vi hệ thống và mục tiêu của người dùng, không phải các cơ chế từng bước của một quy trình làm việc. Một biểu đồ thường bao gồm:

-
Ranh giới hệ thống:Một hình chữ nhật đặt tên cho hệ thống đang được mô hình hóa.
-
Người tham gia (Actor):Một vai trò bên ngoài hệ thống tương tác với nó. Người tham gia có thể là con người, tổ chức, thiết bị hoặc hệ thống bên ngoài.
-
Use Case:Một khả năng hoặc mục tiêu do hệ thống cung cấp, thường được hiển thị dưới dạng hình oval và đặt tên bằng một cụm động từ, chẳng hạn như “Đặt hàng.”
-
Liên kết:Một đường chỉ ra rằng một người tham gia tham gia vào một use case.
-
Mối quan hệ Use Case:Include, extend và generalization.
Người tham gia đại diện cho các vai trò, không phải các cá nhân cụ thể. Một dịch vụ thanh toán bên ngoài có thể là một người tham gia nếu nó tương tác với hệ thống đang được mô hình hóa.
Biểu đồ Use Case hữu ích để làm rõ phạm vi hệ thống, thảo luận yêu cầu với các bên liên quan, xác định các phụ thuộc bên ngoài và cung cấp cái nhìn tổng quan chung cho phát triển và kiểm thử. Hãy kết hợp chúng với các mô tả use case bằng văn bản khi bạn cần chi tiết như điều kiện tiên quyết, các bước chính, luồng thay thế và kết quả.
2. Mối quan hệ nhìn tổng quan

-
Liên kết Người tham gia–Use Case:Một đường thẳng chỉ ra sự tương tác.
-
<<include>>:Use case bao gồm luôn sử dụng hành vi được bao gồm. Mũi tên đứt nét chỉ từ use case bao gồm đến use case được bao gồm. Ví dụ, việc đặt hàng có thể luôn bao gồm xác thực thanh toán. -
<<extend>>:Một use case mở rộng thêm hành vi vào một use case cơ sở trong một điều kiện nhất định. Mũi tên đứt nét chỉ từ trường hợp sử dụng mở rộng đến trường hợp sử dụng cơ sở. Ví dụ, việc áp dụng khuyến mãi có thể mở rộng việc đặt hàng. -
Tổng quát hóa: Một vai trò hoặc trường hợp sử dụng chuyên biệt kế thừa từ một cái tổng quát hơn. Đường liền với tam giác rỗng chỉ về phần tử tổng quát.
Một sự phân biệt hữu ích: include có nghĩa là hành vi bắt buộc; extend có nghĩa là hành vi bổ sung có điều kiện.
3. Những điều cơ bản về PlantUML
Một sơ đồ PlantUML bắt đầu bằng @startuml và kết thúc bằng @enduml. Khai báo vai trò bằng actor, trường hợp sử dụng bằng usecase và ranh giới hệ thống bằng rectangle. Các biệt danh giúp các phần tử dễ tham chiếu hơn trong các mối quan hệ.

@startuml
hướng từ trái sang phải
actor Customer
rectangle "Cửa hàng trực tuyến" {
usecase "Duyệt sản phẩm" as Browse
usecase "Đặt hàng" as Place
}
Customer --> Browse
Customer --> Place
@enduml
hướng từ trái sang phải yêu cầu PlantUML bố trí sơ đồ theo chiều ngang. PlantUML có thể điều chỉnh bố cục chính xác khi sơ đồ thay đổi.
4. Ví dụ: cửa hàng trực tuyến cơ bản

@startuml
left to right direction
actor Customer
actor Administrator as Admin
rectangle "Online Store" {
usecase "Browse products" as Browse
usecase "Place order" as Place
usecase "Track shipment" as Track
usecase "Manage catalog" as Manage
}
Customer --> Browse
Customer --> Place
Customer --> Track
Admin --> Manage
@enduml
Khách hàng duyệt, đặt hàng và theo dõi đơn hàng. Người quản trị quản lý danh mục. Sơ đồ cố ý bỏ qua các bước nội bộ của quy trình xử lý đơn hàng.
5. Ví dụ: include và extend
Giả sử việc đặt hàng luôn yêu cầu xác thực thanh toán, trong khi áp dụng khuyến mãi là tùy chọn và có điều kiện.

@startuml
left to right direction
actor Customer
rectangle "Online Store" {
usecase "Place order" as Place
usecase "Authorize payment" as Payment
usecase "Apply promotion" as Promotion
}
Customer --> Place
Place ..> Payment : <<include>>
Promotion ..> Place : <<extend>>
@enduml
Mũi tên Place ..> Payment có nghĩa là “Đặt hàng” bao gồm hành vi thanh toán bắt buộc. Mũi tên Promotion ..> Place có nghĩa là “Áp dụng khuyến mãi” mở rộng “Đặt hàng” khi điều kiện của nó được đáp ứng.
Ghi lại điều kiện—ví dụ: “khách hàng nhập mã khuyến mãi hợp lệ”—trong mô tả trường hợp sử dụng hoặc một ghi chú.
6. Ví dụ: tổng quát hóa vai trò và hệ thống bên ngoài
Một vai trò chuyên biệt thừa kế các tương tác từ một vai trò tổng quát hơn. Các dịch vụ bên ngoài cũng có thể là vai trò khi chúng tương tác với hệ thống.

@startuml
left to right direction
actor "User" as User
actor "Registered customer" as Customer
actor "Payment gateway" as Gateway
Customer --|> User
rectangle "Online Store" {
usecase "Browse products" as Browse
usecase "Place order" as Place
usecase "Process payment" as Pay
}
User --> Browse
Customer --> Place
Place ..> Pay : <<include>>
Gateway --> Pay
@enduml
“Khách hàng đã đăng ký” chuyên biệt hóa “Người dùng” và thừa kế tương tác người dùng chung. Cổng thanh toán nằm ngoài ranh giới của Cửa hàng Trực tuyến nhưng tham gia vào trường hợp sử dụng thanh toán.
7. Ví dụ: tổng quát hóa trường hợp sử dụng
Tổng quát hóa có thể biểu diễn các phiên bản chuyên biệt của một trường hợp sử dụng rộng hơn. Tam giác rỗng chỉ về phía trường hợp sử dụng tổng quát.

@startuml
hướng từ trái sang phải
actor Khách hàng
rectangle "Hệ thống thanh toán" {
usecase "Thực hiện thanh toán" as ThanhToan
usecase "Thanh toán bằng thẻ" as The
usecase "Thanh toán bằng chuyển khoản ngân hàng" as ChuyenKhoan
}
Khách hàng --> The
Khách hàng --> ChuyenKhoan
The --|> ThanhToan
ChuyenKhoan --|> ThanhToan
@enduml
Sử dụng điều này khi các trường hợp sử dụng chuyên biệt chia sẻ một mục tiêu chung nhưng có sự khác biệt có ý nghĩa. Nếu các biến thể chỉ là các bước có điều kiện, một <<mở rộng>> quan hệ hoặc mô tả trường hợp sử dụng bằng văn bản có thể rõ ràng hơn.
8. Làm việc trong VPasCode
Quy trình làm việc thực tế:

-
Xác định phạm vi.Xác định ranh giới hệ thống, vai trò của các tác nhân và mục tiêu mà mỗi vai trò muốn đạt được.
-
Tạo bản nháp.Viết PlantUML trực tiếp hoặc yêu cầu trợ lý AI tạo biểu đồ trường hợp sử dụng.
-
Xem lại mã và xem trước.Xác nhận các tác nhân nằm ngoài ranh giới hệ thống, các trường hợp sử dụng nằm trong đó, và các mũi tên chỉ theo hướng đúng.
-
Tinh chỉnh mô hình.Thay thế các tên không rõ ràng, loại bỏ chi tiết triển khai và chỉ thêm các quan hệ khi chúng phản ánh các yêu cầu thực tế.
-
Yêu cầu chỉnh sửa AI có mục tiêu.Ví dụ: “Thêm một tác nhân cổng thanh toán bên ngoài và hiển thị tương tác thanh toán cần thiết bằng quan hệ bao gồm. Giữ nguyên phần còn lại.”
-
Xác nhận với các bên liên quan.Kiểm tra xem biểu đồ có phản ánh đúng phạm vi thực tế của hệ thống và mục tiêu của người dùng hay không.
-
Lưu nguồn. Giữ lại
.pumlvăn bản cùng với tài liệu dự án hoặc trong hệ thống kiểm soát phiên bản. Xuất hình ảnh khi cần cho tài liệu hoặc bài thuyết trình.
Ví dụ về câu lệnh để hỗ trợ AI
Tạo biểu đồ trường hợp sử dụng UML bằng PlantUML cho một cửa hàng trực tuyến. Bao gồm ranh giới hệ thống, các vai trò Khách hàng và Quản trị viên, cùng các mục tiêu: Duyệt sản phẩm, Đặt hàng, Theo dõi giao hàng và Quản lý danh mục. Thể hiện việc xác thực thanh toán như một hành vi bắt buộc được bao gồm trong Đặt hàng. Thể hiện việc áp dụng khuyến mãi như một phần mở rộng có điều kiện của Đặt hàng. Chỉ trả về mã nguồn PlantUML hợp lệ.
Xem mã do AI tạo ra như bản nháp đầu tiên. Hãy xem xét các vai trò, ranh giới, mối quan hệ và các giả định kinh doanh trước khi sử dụng.
9. Những sai lầm phổ biến

-
Mô hình hóa các thành phần nội bộ dưới dạng các vai trò: Các vai trò phải là các vai trò bên ngoài hoặc các hệ thống tương tác với đối tượng.
-
Đặt tên cho các trường hợp sử dụng như các nhiệm vụ triển khai: Ưu tiên “Theo dõi giao hàng” thay vì “Gọi API theo dõi.”
-
Sử dụng
<<include>>cho hành vi tùy chọn: Include biểu thị hành vi mà trường hợp sử dụng gốc yêu cầu. -
Đảo ngược chiều mũi tên mối quan hệ: Include chỉ về trường hợp sử dụng được bao gồm; extend chỉ về trường hợp sử dụng gốc.
-
Làm cho một biểu đồ trở nên quá tải với chi tiết: Sử dụng biểu đồ cấp cao cho phạm vi, sau đó sử dụng các biểu đồ riêng biệt hoặc văn bản cho các kịch bản chi tiết.
-
Cho rằng việc hiển thị thành công có nghĩa là mô hình đúng: PlantUML có thể hiển thị một biểu đồ nhưng vẫn không phản ánh đúng các yêu cầu.
10. Danh sách kiểm tra
Trước khi chia sẻ biểu đồ, hãy xác nhận rằng:

-
Ranh giới hệ thống rõ ràng.
-
Mọi vai trò đều là bên ngoài và đại diện cho một vai trò.
-
Tên các trường hợp sử dụng mô tả các mục ý nghĩa.
-
Các liên kết của vai trò phản ánh các tương tác thực tế.
-
Các mối quan hệ Include là bắt buộc; các mối quan hệ Extend là có điều kiện hoặc được biện minh theo cách khác.
-
Các mũi tên tổng quát hóa chỉ về vai trò hoặc trường hợp sử dụng tổng quát.
-
Biểu đồ vẫn dễ đọc ở kích thước dự định.
-
Các giả định do AI tạo ra đã được xem xét cùng với những người am hiểu các yêu cầu.
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский and 繁體中文.











