Số 42, ngõ 178 Thái Hà, Đống Đa, Hà Nội
0985 136 895

Use case là gì? Tổng quan về Use case

Use Case là rất quan trọng, nó giúp chúng ta hiểu yêu cầu, kiến trúc chức năng của hệ thống và chi phối tất cả các bản vẽ còn lại. Trong bài này chúng ta sẽ tìm hiểu về các thành phần cấu tạo nên bản vẽ này, cách xây dựng và sử dụng nó.

Use case là gì?

Use case là đối tượng người dùng muốn nhận được từ hệ thống. Nó được đặt tên giống động từ hoặc động từ + cụm danh từ. Tên Use case thường ngắn gọn, rõ ràng, cụ thể và miêu tả đủ nghĩa của đối tượng người dùng. Những động từ như “do”, “perform”, các danh từ như ”data”, “information” nên tránh nếu có thể.

Người dùng sử dụng Use case để đại diện cho các nghiệp vụ trong hệ thống. Lấy “hệ thống order đồ uống quán cafe” làm ví dụ: thì chức năng “Order” là một Use case rõ ràng nhất mà người dùng muốn nhận được từ hệ thống. Chức năng ”tìm kiếm” đồ uống trên bản menu trực tuyến cũng có thể là chức năng mà người dùng cần, tuy nhiên nó không phải là một Use case vì nó cũng chỉ là một phần của quá trình xử lí đặt đồ uống thay vì một đối tượng.

Một vài phân tích cố gắng tạo ra Use case để diễn tả yêu cầu người dùng như hỗ trợ nhiều Look and feel, load in background, ready server, construct database … Tất cả chúng đều sai và sẽ không giúp bạn xác định được đối tượng người dùng muốn nhận về, do dó chức năng của hệ thống có thể được giải phóng.

Các thành phần của use case

1. Actor

  • Actor được dùng để chỉ người sử dụng hoặc một đối tượng nào đó bên ngoài tương tác với hệ thống chúng ta đang xem xét. Lưu ý, chúng ta hay bỏ quên đối tượng tương tác với hệ thống, ví dụ như Bank ở trên.
  • Để nhận diện các Actor, trả lời các câu hỏi sau:-  Tác nhân chính sử dụng hệ thống là gì?-  Người sẽ cần sự hỗ trợ của hệ thống để thực hiện những tác vụ hàng ngày của họ là ai?-  Các tác nhân phụ cần quản trị, bảo trì cho hệ thống hoạt động là ai?-  Hệ thống sẽ phải xử lý và làm việc với những trang thiết bị phần cứng nào?-  Hệ thống cần phải tương tác với các hệ thống khác nào?

–   Ai hay cái gì quan tâm đến kết quả (giá trị) mà hệ thống sẽ sản sinh ra?

2. Use Case

  • Use Case là chức năng mà các Actor sẽ sử dụng.
  • Để tìm các Use Case, bắt đầu với các Actor được xác định trước, trả lời các câu hỏi sau:-  Actor này cần những chức năng nào từ hệ thống? Hành động chính của Actor là gì ?.-  Actor có cần phải đọc, phải tạo, phải hủy bỏ, phải sửa chữa, hay là lưu trữ một loại thông tin nào đó trong hệ thống?-  Actor có cần phải báo cho hệ thống biết về những sự kiện nào đó? Những sự kiện như thế sẽ đại diện cho những chức năng nào?-  Hệ thống có cần phải thông báo cho Actor về những thay đổi bất ngờ trong nội bộ hệ thố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 mới trong hệ thống (thường đây là những chức năng tiêu biểu chưa được tự động hóa trong hệ thống)?-  Use Case có thể được gây ra bởi các sự kiện nào khác?

    –  Hệ thống cần những thông tin đầu vào/đầu ra nào? Những thông tin đầu vào/đầu ra đó từ đâu tới và sẽ đi đâu?

    –  Khó khăn và thiếu hụt chính trong hệ thống hiện thời nằm ở đâu (thủ công /tự động hóa)?

3. Các quan hệ trong Use Case

Quan hệ  hay còn gọi là conntector được sử dụng để kết nối giữa các đối tượng với nhau tạo nên bản vẽ Use Case. Có các kiểu quan hệ cơ bản sau:

  • Association

Association thường được dùng để mô tả mối quan hệ giữa Actor và Use Case và giữa các Use Case với nhau.

  •  Generalization

Generalization được sử dụng để thể hiện quan hệ thừa kế giữa các Actor hoặc giữa các Use Case với nhau.

  •  Include

Include là quan hệ giữa các Use Case với nhau, nó mô tả việc một Use Case lớn được chia ra thành các Use Case nhỏ để dễ cài đặt (module hóa) hoặc thể hiện sự dùng lại.

Use case là gì

  • Extend

Extend dùng để mô tả quan hệ giữa 2 Use Case. Quan hệ Extend được sử dụng khi có một Use Case được tạo ra để bổ sung chức năng cho một Use Case có sẵn và được sử dụng trong một điều kiện nhất định nào đó.

Các bước xây dựng Use Case Diagram

Chúng ta đã nắm được các ký hiệu của bản vẽ Use Case. Bây giờ là lúc chúng ta tìm cách lắp chúng lại để tạo nên bản vẽ hoàn chỉnh. Thực hiện các bước sau để xây dựng một bản vẽ Use Case:

 Bước 1: Tìm các Actor

Trả lời các câu hỏi sau để xác định Actor cho hệ thống:

–          Ai sử dụng hệ thống này?

–          Hệ thống nào tương tác với hệ thống này?

Xem xét ví dụ về ATM ở trên chúng ta thấy:

–          Ai sử dụng hệ thống?  -> Customer, ATM Technician

–          Hệ thống nào tương tác với hệ thống này? -> Bank

Như vậy có 03 Actor: Customer, ATM Technician và Bank

 Bước 2: Tìm các Actor

Trả lời câu hỏi các Actor sử dụng chức năng gì trong hệ thống? chúng ta sẽ xác định được các Use Case cần thiết cho hệ thống.

Xem xét ví dụ ở trên ta thấy:

  • Customer sử dụng các chức năng: Check Balance, Deposit, Withdraw và Transfer
  • ATM technician sử dụng: Maintenance và Repair
  • Bank tương tác với tất cả các chức năng trên.

Tóm lại, chúng ta phải xây dựng hệ thống có các chức năng: Check Balance, Deposit, Withdraw, Transfer, Maintenance và Repair để đáp ứng được cho người sử dụng và các hệ thống tương tác.

 Bước 3: Xác định các quan hệ

Phân tích và các định các quan loại hệ giữa các Actor và Use Case, giữa các Actor với nhau, giữa các Use Case với nhau  sau đó nối chúng lại chúng ta sẽ được bản vẽ Use Case.

Sử dụng UseCase Diagram

Use case là gìNhư chúng ta đã biết Use Case Diagram có một vai trò đặc biệt quan trọng trong quá trình phân tích, thiết kế và phát triển hệ thống. Dưới đây chúng tôi liệt kê một số ứng dụng tiêu biểu của Use Case Diagram.

–          Phân tích và hiểu hệ thống

–          Thiết kế hệ thống.

–          Làm cơ sở cho việc phát triển, kiểm tra các bản vẽ như Class Diagram, Activity Diagram, Sequence Diagram, Component Diagram.

–          Làm cơ sở để giao tiếp với khách hàng, các nhà đầu tư.

–          Giúp cho việc kiểm thử chức năng, kiểm thử chấp nhận.

Kết luận

Đến đây, chúng ta đã tìm hiểu được bản vẽ đầu tiên và rất quan trọng use case. Các bạn cần tiếp tục thực hành để nắm rõ hơn về bản vẽ này cũng như cách xây dựng và sử dụng chúng trong quá trình phát triển sản phẩm phần mềm.

 

Xem thêm

>>>>> Design patterns là gì?– Tại sao phải học Design pattern

 

 

 

Leave a comment