de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_TW

Biểu đồ Use Case UML dưới dạng mã với PlantUML và VPasCode

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.

Sơ đồ minh họa quy trình PlantUML: chỉnh sửa mã nguồn, tạo biểu đồ trường hợp sử dụng UML cho cửa hàng trực tuyến và tài liệu hóa cả hai bên cạnh nhau bằng VPasCode.

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:

Tài liệu tham khảo ký hiệu biểu đồ trường hợp sử dụng UML hiển thị ranh giới hệ thống, vai trò (actor), trường hợp sử dụng, mối liên kết và các mối quan hệ như include, extend và generalization.

  • 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

Sơ đồ mối quan hệ trường hợp sử dụng UML minh họa Association, Include, Extend và Generalization kèm theo các ví dụ và mũi tên chỉ hướng.

  • 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ệ.

Giao diện VPasCode hiển thị mã PlantUML cho biểu đồ trường hợp sử dụng cửa hàng trực tuyến bên cạnh kết quả được render, cho thấy khách hàng tương tác với các ranh giới hệ thống.

@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

Giao diện VPasCode hiển thị biểu đồ trường hợp sử dụng UML nơi vai trò Khách hàng tương tác với các trường hợp sử dụng Đặt hàng, Áp dụng khuyến mãi và Xác thực thanh toá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.

Giao diện VPasCode hiển thị mã PlantUML và biểu đồ UML kết quả cho thấy trường hợp sử dụng "Đặt hàng" bao gồm "Xác thực thanh toán" và mở rộng "Áp dụng khuyến mãi".

@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.

Giao diện VPasCode hiển thị mã PlantUML và biểu đồ UML được tạo ra cho thấy Khách hàng đã đăng ký là trường hợp tổng quát hóa của Người dùng và Cổng thanh toán tương tác với Cửa hàng trực tuyến.

@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.

Giao diện VPasCode hiển thị mã PlantUML và biểu đồ UML được tạo ra cho thấy vai trò Khách hàng với các mũi tên tổng quát hóa chỉ về trường hợp sử dụng Thực hiện thanh toán.

@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ế:

Sơ đồ quy trình hiển thị bảy bước để tạo biểu đồ trường hợp sử dụng PlantUML trong VPasCode, bao gồm xác định phạm vi, soạn thảo mã và xác thực với các bên liên quan.

  1. 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.

  2. 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.

  3. 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.

  4. 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ế.

  5. 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.”

  6. 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.

  7. Lưu nguồn. Giữ lại .puml vă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

Infographic minh họa sáu lỗi phổ biến trong biểu đồ trường hợp sử dụng UML, bao gồm định nghĩa vai trò (actor) sai, đặt tên và mũi tên mối quan hệ.

  • 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:

Danh sách kiểm tra xem lại biểu đồ trường hợp sử dụng liệt kê tám điểm xác thực bên cạnh một ví dụ biểu đồ cho thấy Khách hàng tương tác với Hệ thống mua sắm trực tuyến.

  • 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 繁體中文.