Hỏi đáp công nghệ

Use Case là gì? Các ví dụ dễ hiểu về Use Case

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Table of Contents

Dưới đây là một số câu hỏi thường xuyên được hỏi trong giới UML là: Use case là gì? Tại sao lại cần đến sơ đồ Use case? Một số người không biết Use case là gì, trong khi một số đánh giá thấp về tính hữu dụng của Use case trong việc phát triển một sản phẩm phần mềm. Hy vọng trong bài viết này của Hỏi đáp công nghệ, bạn sẽ tìm được câu trả lời cho mình.

Use case là gì?

Use case là gì?
Use case là gì?

Use case là một phương pháp được sử dụng trong phân tích hệ thống để xác định, làm rõ và tổ chức các yêu cầu hệ thống. Use case được tạo thành từ tập hợp của các chuỗi tương tác có thể xảy ra giữa hệ thống và người dùng trong một môi trường cụ thể và liên quan đến một mục tiêu cụ thể. Phương pháp này tạo ra một tài liệu đặc tả tất cả các bước người dùng thực hiện để hoàn thành một hoạt động nào đó.

Các use case thường được viết bởi các nhà phân tích kinh doanh và có thể được sử dụng trong một số giai đoạn phát triển phần mềm, ví dụ như lập kế hoạch yêu cầu hệ thống, xác thực thiết kế, kiểm tra phần mềm và tạo outline cho trợ giúp trực tuyến và hướng dẫn sử dụng. Tài liệu use case có thể giúp nhóm phát triển xác định và hiểu những lỗi có thể xảy ra trong quá trình giao dịch để họ có thể hiểu và nhanh chóng giải quyết chúng.

Đặc điểm của Use case

Các use case mô tả các yêu cầu chức năng của hệ thống từ góc độ của người dùng cuối, tạo ra một chuỗi sự kiện tập trung vào mục tiêu, dễ dàng cho người dùng và nhà phát triển theo dõi. Một use case hoàn chỉnh sẽ bao gồm một luồng chính và nhiều luồng thay thế khác nhau. Luồng thay thế, còn được gọi là use case mở rộng, mô tả các biến thể thông thường đối với quy trình cơ bản cũng như các tình huống bất thường.

Một use case nên thể hiện các đặc điểm sau:

  • Tổ chức các yêu cầu chức năng.
  • Mô hình hóa các mục tiêu của các tương tác giữa hệ thống và người dùng.
  • Ghi lại các con đường – được gọi là các kịch bản (Scenarios) – từ các sự kiện triggers đến các mục tiêu.
  • Mô tả một luồng sự kiện chính và các luồng thay thế khác nhau.
  • Đa cấp độ, để một use case có thể sử dụng chức năng của các use case khác.

Các thành phần chính trong Use Case

Mọi use case đều chứa ba yếu tố thiết yếu:

  • Tác nhân (Actor): Người dùng hệ thống – đây có thể là một người hoặc một nhóm người tương tác với quy trình.
  • Mục đích (Goal): Kết quả mà người dùng muốn hoàn thành trên hệ thống.
  • Hệ thống (System): Quá trình và các bước thực hiện để đạt được mục tiêu cuối cùng, bao gồm các yêu cầu chức năng cần thiết và các hành vi dự kiến ​​của chúng.

Cách xác định actor (tác nhân)

Những câu hỏi sau có thể giúp bạn xác định các tác nhân của hệ thống (Schneider và Winters – 1998):

  • Ai là người sử dụng hệ thống?
  • Ai là người cài đặt hệ thống?
  • Ai sẽ khởi động hệ thống?
  • Ai sẽ duy trì hệ thống?
  • Ai sẽ tắt hệ thống?
  • Có hệ thống nào khác sẽ sử dụng hệ thống này không?
  • Ai lấy thông tin từ hệ thống này?
  • Ai cung cấp thông tin cho hệ thống?
  • Có điều gì tự động xảy ra vào thời điểm hiện tại không?

Cách xác định các use case

Các câu hỏi sau có thể giúp bạn xác định các use case sau khi các tác nhân của bạn đã được xác định (Schneider và Winters – 1998):

  • Tác nhân sẽ muốn những chức năng nào từ hệ thống?
  • Hệ thống có lưu trữ thông tin không? Những tác nhân nào sẽ tạo, đọc, cập nhật hoặc xóa thông tin này?
  • Hệ thống có cần thông báo cho tác nhân về những thay đổi trong trạng thái bên trong không?
  • Có bất kỳ sự kiện bên ngoài nào mà hệ thống phải biết không? Tác nhân nào thông báo cho hệ thống những sự kiện đó?

Cách viết một use case

Có hai loại use case khác nhau: use case nghiệp vụ và use case hệ thống.

Use case nghiệp vụ là một mô tả trừu tượng hơn được viết theo cách bất khả tri về công nghệ, chỉ đề cập đến quy trình nghiệp vụ được mô tả và các tác nhân tham gia vào hoạt động. Use case nghiệp vụ xác định chuỗi các hành động cần được thực hiện bởi doanh nghiệp để dẫn đến một kết quả mong muốn, có thể quan sát được cho người dùng cuối.

Use case hệ thống, mặt khác, được viết chi tiết hơn, đề cập đến các quy trình cụ thể phải xảy ra trong các phần khác nhau của hệ thống để đạt được mục tiêu người dùng cuối cùng. Sơ đồ use case hệ thống sẽ trình bày chi tiết các thông số chức năng, bao gồm các yếu tố phụ thuộc, các tính năng hỗ trợ nội bộ cần thiết và các tính năng nội bộ tùy chọn.

Khi viết một use case, phạm vi thiết kế (design scope) cần được xem xét để xác định tất cả các yếu tố nằm trong và ngoài ranh giới của các quy trình. Bất cứ điều gì cần thiết cho use case nhưng nằm ngoài ranh giới của nó nên được chỉ định với một người dùng hỗ trợ hoặc bởi một use case khác. Phạm vi thiết kế có thể là một hệ thống cụ thể, một hệ thống con hoặc toàn bộ doanh nghiệp. Các use case mô tả các quy trình nghiệp vụ thường thuộc phạm vi doanh nghiệp.

Như đã đề cập, ba yếu tố cơ bản tạo nên một ca sử dụng là các tác nhân, hệ thống và mục tiêu. Các yếu tố bổ sung khác cần xem xét khi viết một use case bao gồm:

  • Các bên liên quan hoặc bất kỳ ai quan tâm hoặc đầu tư vào hệ thống.
  • Điều kiện tiên quyết hoặc các yếu tố phải đúng trước khi một use case có thể xảy ra.
  • Các trigger hoặc các event khiến use case bắt đầu.
  • Điều kiện hậu kỳ, hoặc những gì hệ thống nên hoàn thành vào cuối các bước.

Use case được viết bằng ngôn ngữ tường thuật, mô tả các yêu cầu chức năng của hệ thống từ quan điểm của người dùng cuối. Biểu đồ use case được tạo bằng một ngôn ngữ mô hình thống nhất, với mỗi bước được biểu thị bằng tên của nó trong một hình bầu dục; mỗi actor được đại diện bởi một hình cây gậy với tên của họ được viết bên dưới; mỗi hành động được thể hiện bởi một đường thẳng giữa actor và bước; và ranh giới hệ thống được biểu thị bằng một hình chữ nhật xung quanh use case.

Cách viết một use case
Use case là gì? Cách viết một use case

Quá trình viết use case bao gồm các bước sau:

  1. Xác định tất cả người dùng hệ thống và tạo hồ sơ cho từng người. Điều này bao gồm mọi vai trò của người dùng tương tác với hệ thống.
  2. Chọn một người dùng và xác định mục tiêu của họ – hoặc những gì người dùng hy vọng đạt được bằng cách tương tác với hệ thống. Mỗi mục tiêu này trở thành một use case.
  3. Mô tả tiến trình được thực hiện cho từng use case thông qua hệ thống để đạt được mục tiêu tương ứng.
  4. Xem xét mọi tiến trình thay thế của các event và mở rộng các use case – hoặc các tiến trình khác nhau có thể làm để đạt được mục tiêu.
  5. Xác định điểm chung trong các hành trình để tạo các use case và viết mô tả cho chúng.
  6. Lặp lại các bước từ hai đến năm cho tất cả người dùng hệ thống khác.

Khi viết một use case, các nhà phát triển có thể sử dụng một biểu đồ trình tự – biểu đồ thể hiện cách các đối tượng phản ứng dọc theo dòng thời gian – để lập mô hình tương tác giữa các đối tượng trong một use case duy nhất. Biểu đồ trình tự cho phép các nhà phát triển xem cách mà mỗi phần của hệ thống tương tác với những phần khác để thực hiện một chức năng cụ thể cũng như thứ tự mà các tương tác này xảy ra để hoàn thành một use case.

Xem thêm >> Lập trình nhúng là gì? Top các kĩ năng cần thiết cho một kỹ sư nhúng

Lợi ích của sử dụng use case

Một use case có thể giúp các nhà phát triển bằng cách tiết lộ cách hệ thống sẽ hoạt động đồng thời giúp xác định bất kỳ lỗi nào có thể phát sinh trong quá trình.

Lợi ích của sử dụng use case
Lợi ích của sử dụng use case

Các lợi ích khác của việc phát triển use case bao gồm:

  • Danh sách các mục tiêu được tạo ra trong quá trình viết use case có thể được sử dụng để thiết lập mức độ phức tạp và chi phí của hệ thống.
  • Bằng cách tập trung vào cả người dùng và hệ thống, các nhu cầu thực sự của hệ thống có thể được xác định sớm hơn trong quá trình thiết kế.
  • Vì các use case được viết chủ yếu bằng ngôn ngữ tường thuật nên không chỉ các nhà phát triển và người thử nghiệm mà các bên liên quan, bao gồm khách hàng, người dùng và giám đốc điều hành đều dễ dàng hiểu được.
  • Việc viết các use case mở rộng và xác định các trường hợp ngoại lệ cho các use case thành công giúp tiết kiệm thời gian cho các nhà phát triển bởi nó dễ dàng xác định các yêu cầu hệ thống tinh vi.
  • Bằng cách xác định ranh giới hệ thống trong phạm vi thiết kế use case, các nhà phát triển có thể tránh được hiện tượng mất kiểm soát phạm vi dự án.
  • Có thể tránh thiết kế sơ bộ bằng cách tập trung vào những gì hệ thống nên làm hơn là cách nó nên làm.

Ngoài ra, các use case có thể dễ dàng chuyển đổi thành các test case bằng cách vạch ra tiến trình chung và các tiến trình thay thế, đồng thời thu thập dữ liệu thử nghiệm cho từng tình huống. Các trường hợp kiểm thử chức năng như thế này sẽ giúp nhóm phát triển đảm bảo tất cả các yêu cầu chức năng của hệ thống đều được đưa vào kế hoạch kiểm thử.

Hơn nữa, các use case có thể được sử dụng trong nhiều lĩnh vực phát triển phần mềm khác nhau, bao gồm lập kế hoạch dự án, tài liệu người dùng và định nghĩa test case. Chúng cũng có thể được sử dụng như một công cụ lập kế hoạch cho sự phát triển lặp đi lặp lại.

Use case và user story có giống nhau không?

Trong khi cả use case và user story đều được sử dụng để xác định người dùng hệ thống và mô tả mục tiêu của họ, nhưng hai thuật ngữ này không thể thay thế cho nhau; chúng phục vụ các mục đích khác nhau. Trong khi một use case cụ thể hơn và xem xét trực tiếp cách thức hoạt động của hệ thống, thì user story là một kỹ thuật phát triển Agile tập trung vào kết quả của các hoạt động và lợi ích của quá trình được mô tả.

Cụ thể hơn, use case – thường được viết dưới dạng tài liệu – mô tả một tập hợp các tương tác xảy ra giữa một hệ thống và một tác nhân để đạt được mục tiêu. User story lại mô tả những gì người dùng sẽ làm khi họ tương tác với hệ thống, tập trung vào lợi ích thu được từ việc thực hiện một hoạt động cụ thể.

Ngoài ra, user story thường ít được ghi chép hơn các use case và thường bỏ qua các chi tiết quan trọng. Chúng chủ yếu được sử dụng để tạo các cuộc thảo luận bằng cách đặt câu hỏi trong các cuộc họp scrum, trong khi use case được các nhà phát triển và người kiểm tra sử dụng để hiểu tất cả các bước mà hệ thống phải thực hiện để đáp ứng yêu cầu của người dùng.

Ví dụ dễ hiểu về Use case

Ngoài việc phát triển phần mềm và hệ thống, một ví dụ có thể được sử dụng để giải thích các use case là chỉ đường lái xe.

Một người lái xe đang tìm cách đi từ Hà Nội đến Hải Phòng. Trong kịch bản này, actor là người lái xe, mục tiêu là đến Hải Phòng và system là mạng lưới đường xá và đường cao tốc mà họ sẽ thực hiện để đến đó. Có thể có một tuyến đường mà người lái xe thường đi giữa Hà Nội và Hải Phòng – đây là use case phổ biến trong tiến trình. Tuy nhiên, có nhiều đường khác với tuyến đường phổ biến kia để người lái xe đi đến Thành phố Hải Phòng. Các đường vòng và các tuyến đường khác nhau này là những use case mở rộng. Mục tiêu của việc chỉ đường lái xe là xác định từng ngã rẽ và lối ra khỏi đường cao tốc mà người lái xe phải thực hiện để đến đích cuối cùng.

Cụ thể hơn và liên quan đến phát triển phần mềm và hệ thống, một use case có thể được sử dụng để xác định cách khách hàng hoàn thành đơn đặt hàng thông qua các cửa hàng trực tuyến. Đầu tiên, use case phải được đặt tên, và các tác nhân phải được xác định. Trong trường hợp này, use case sẽ được gọi là “hoàn tất mua hàng” và các tác nhân là:

  • khách hàng;
  • hệ thống thực hiện đơn hàng; và
  • hệ thống thanh toán.

Tiếp theo, các yếu tố kích hoạt (trigger), điều kiện tiên quyết và điều kiện hậu được xác định. Trong trường hợp này, triggers là khách hàng cho biết rằng họ muốn mua các sản phẩm đã chọn của họ. Điều kiện tiên quyết cho use case là khách hàng chọn các mặt hàng cuối cùng họ muốn mua. Các điều kiện hậu bao gồm đơn hàng đang được đặt; khách hàng nhận được một ID theo dõi cho đơn đặt hàng của họ; và khách hàng nhận được ngày giao hàng ước tính cho đơn đặt hàng của họ.

Sau khi tiêu đề, tác nhân, yếu tố kích hoạt, điều kiện tiên quyết và điều kiện hậu kỳ được xác định, quy trình cơ bản – hoặc trường hợp sử dụng tiến trình phổ biến – có thể được phác thảo, bắt đầu bằng việc khách hàng cho biết họ muốn mua hàng và kết thúc bằng việc khách hàng thoát khỏi hệ thống sau khi nhận được xác nhận rằng đơn hàng của họ đã được đặt. Sau khi quy trình cơ bản được viết, tất cả các trường use case mở rộng phải được chi tiết hóa, ghi lại và đưa vào tài liệu.

Hy vọng những thông tin chia sẻ trên bài viết này đây sẽ giúp bạn đọc hiểu rõ được Use Case là gì và nắm được bí quyết để xây dựng một sơ đồ Use Case hoàn hảo. Và nếu muốn tìm hiểu thêm các thủ thuật công nghệ và những thông tin hữu ích, hãy tiếp tục đồng hành cùng Hỏi đáp Công nghệ bạn nhé!

Các bài viết liên quan

1 thought on “Use Case là gì? Các ví dụ dễ hiểu về Use Case”

  1. Pingback: Nghề Developer là gì? Tìm hiểu công việc của lập trình viên

Leave a Comment

Email của bạn sẽ không được hiển thị công khai.

Bài viết liên quan