1. Use Case là gì?
Use Case (Trường hợp sử dụng) là “Một kỹ thuật được dùng trong kỹ thuật phần mềm và hệ thống để nắm bắt yêu cầu chức năng hệ thống. Use Case mô tả sự tương tác đặc trưng giữa người dùng bên ngoài (Actor) và hệ thống.”
Ví dụ: Hệ thống “Đặt vé máy bay trực tuyến” có chức năng “đặt vé” là một Use Case.
Use Case mô tả sự tương tác giữa người dùng và hệ thống ở trong một môi trường cụ thể, vì một mục đích cụ thể. Môi trường nằm trong một bối cảnh, phạm vi hoặc hệ thống phần mềm cụ thể. Mục đích cụ thể là diễn tả được yêu cầu theo góc nhìn từ phía người dùng.
Sự tương tác giữa người dùng và hệ thống có 2 cách thức phổ biến:
- Cách thức mà người dùng tương tác với hệ thống.
- Cách thức mà hệ thống tương tác với các hệ thống khác.
2. Các thành phần đặc tả Use Case
Các thành phần đặc tả Use Case bao gồm: Actor (người sử dụng), Use Case (chức năng tương tác) & Relationship (các quan hệ trong Use Case).
a, Actor (Người sử dụng)
Actor là thành phần chỉ người dùng hoặc một đối tượng nào đó bên ngoài tương tác với hệ thống. Để xác nhận đó có phải là Actor hay không thì cần xem xét dựa và những câu hỏi sau:
- Ai là người sử dụng chức năng chính của hệ thống (tác nhân chính)?
- Ai sẽ là admin của hệ thống – Người cài đặt, quản lý và bảo trì hệ thống (tác nhân phụ)?
- Ai sẽ cần hệ thống hỗ trợ để thực hiện các tác vụ hằng ngày?
- Hệ thống này có cần phải tương tác với các hệ thống nào khác không?
- Ai là người input dữ liệu vào hệ thống (trường hợp hệ thống lưu trữ dữ liệu)?
- Ai hay cái gì quan tâm đến giá trị mà hệ thống sẽ mang lại?
b, Use Case (Chức năng tương tác)
Use Case là các chức năng mà các Actor sẽ sử dụng hay thể hiện sự tương tác giữa người dùng và hệ thống. Để tìm ra được các Use Case, ta cần trả lời những câu hỏi sau:
- Actor cần những chức năng nào của hệ thống?
- Actor có hành động chính là gì?
- Actor có cần đọc, thêm mới, hủy bỏ, chỉnh sửa hay lưu trữ loại thông tin nào trong hệ thống không?
- Hệ thống có cần thông báo những thay đổi bất ngờ trong nội bộ cho Actor không?
- Công việc hàng ngày của Actor có thể được đơn giản hóa hoặc hữu hiệu hóa qua các chức năng của hệ thống?
- Use Case có thể được tạo ra bởi sự kiện nào khác không?
- Hệ thống cần những thông tin đầu vào/đầu ra nào? Những thông tin đó sẽ đi từ đâu đến đâu?
- Những khó khăn và thiếu hụt của hệ thống hiện tại nằm ở đâu?
c, Relationship (Các quan hệ trong Use Case)
Các quan hệ trong Use Case gồm 3 loại: Include, Extend & Generalization.
Mối quan hệ Include trong Use Case là gì?
Include là mối quan hệ bao gồm hoặc bắt buộc phải có giữa các Use Case với nhau. Hiểu đơn giản hơn: Để Use Case A xảy ra thì phải đạt được Use Case B.
Ví dụ: Use Case A rút tiền xảy ra thì Use Case B xác thực tài khoản phải hoàn thành.
Mối quan hệ Extend
Extend biểu diễn mối quan hệ mở rộng, không bắt buộc, có thể có hoặc không giữa các Use Case với nhau.
Ví dụ: Use Case B quên mật khẩu có thể xảy ra hoặc không và nó có liên quan đến Use Case A đăng nhập hệ thống chứ không phải bất kỳ một Use Case nào khác.
Mối quan hệ extend thể hiện mối quan hệ không bắt buộc giữa các Use Case với nhau
Mối quan hệ Generalization
Generalization là mối quan hệ cha con giữa các Use Case với nhau. Generalization còn thể hiện khả năng thể hiện mối quan hệ giữa các Actor với nhau.
Ví dụ: Mối quan hệ cha – con giữa các Use Case:
- Đăng nhập (cha): Có thể thông qua số điện thoại (con) hoặc Email (con).
- Đặt hàng (cha): Có đặt hàng qua số điện thoại (con) hoặc website (con).
Ví dụ: Mối quan hệ cha – con giữa các Actor:
- Khách hàng (cha): Gồm khách hàng cũ (con) và khách hàng mới (con).