User Story và Use Case

Trước khi đi tìm câu trả lời cho câu hỏi trên hãy cùng nhìn lại một chút về nguồn gốc của User Story. Vì User Story là một ví dụ tuyệt vời cho cách mà Agile đã thay đổi thế giới phần mềm.

Các lập trình viên thường có thói quen đi vào dự án và bắt đầu lập trình ngay. Họ nói với người dùng của mình rằng: “Tôi biết tất cả những gì mà bạn cần” khi nghe người dùng nói về yêu cầu của họ.

Những phương pháp Agile chỉ ra rằng đó là một cái bẫy cho các lập trình viên. Agile cũng cho thấy những nhà phát triển phải làm việc với người dùng trong suốt dự án để hiểu người dùng cần gì nếu muốn tránh bẫy lỗi lập trình.

Đó là lý do tại sao User Story là một trong những công cụ tốt nhất để triển khai theo phương pháp Agile.

1. User Story là gì?

Khái niệm User Story

User Story còn được một số người gọi với cái tên là Scenario (kịch bản) để mô tả một yêu cầu từ người dùng.

Hầu hết User Story được viết bằng ngôn ngữ của người dùng. Vì thế, bất kì người dùng nào cũng có thể đọc và hiểu ngay. User story thường gần gũi với từ ngữ thường ngày của người dùng.

User Story thường được viết trên Card, giấy note, tài liệu Words, Excels… tùy dự án.

2. Use Case là gì?

Khái niệm Use Case

Use case cũng có vài điểm gần giống như một User Story nhưng nó sẽ mô tả cách tương tác giữa người dùng và phần mềm. Use Case là một mô tả đầy đủ về tất cả những trường hợp mà người dùng sử dụng phần mềm sẽ gặp phải.  

Qua đó, giúp người lập trình nắm bắt những cách giúp người dùng tương tác với phần mềm để đạt kết quả mong muốn. Đồng thời, loại bỏ những thao tác sai khiến người dùng không đạt kết quả khi sử dụng phần mềm.

3. Sự giống và khác nhau giữa User Story và Use Case
3.1 Giống nhau:

Các User Story thường được bắt đầu giống như các Use Case. Mỗi User Story sẽ mô tả một cách sử dụng phần mềm, tập trung vào kết quả và đều được viết bằng ngôn ngữ người dùng.

Cả User Story và Use Case đều sử dụng ngôn ngữ tự nhiên của của doanh nghiệp và chỉ kể một phần chứ không phải tất cả.

3.2 Khác nhau:

Mặc dù User Story và Use Case được định nghĩa khá giống nhau chúng vẫn có những khác biệt. Đảm nhận những vai trò khác nhau trong một dự án phần mềm và giúp dự án được vận hành tốt hơn.

Để hiểu được sự khác nhau giữa Use Case và User Story hãy cùng xem qua ví dụ sau:

“Tính năng tìm kiếm và thay thế trong trình soạn thảo văn bản”

Hãy so sánh một User Story cho chức năng tìm kiếm và thay thế bằng một Use Case với cùng tính năng sẽ giúp bạn hiểu được sự khác nhau.

Không khó để tìm ra User Story cho ví dụ trên. Có rất nhiều cách để tìm ra User Story bạn có thể bắt đầu bằng cách viết ra một tấm thẻ (card) như sau:

Ví dụ về chức năng tìm kiếm và thay thế User Story (Serch and Replace)

Bây giờ, nếu bạn không quen với User Story, bạn có thể nghĩ rằng: “chức năng tìm kiếm và thay thế trong trình soạn thảo của tôi cần nhiều hơn thế”.Thông thường User Story sẽ không đủ thông tin để giúp người dùng hiểu được phần mềm sẽ cần gì.

Còn đây là ví dụ về Use Case để bạn có thể hiểu được cách mà Use Case hoạt động:

 

 

Nếu tôi là một nhà phát triển và đang xây dựng một trình soạn thảo, tôi có thể viết một chức năng tìm kiếm và thay thế theo một Use Case cụ thể như trên.

Một vài điểm thú vị của Use Case đó là trong khi bạn đọc về ví dụ trên hẳn bạn đang nghĩ về thứ gì đó giống như khung tìm kiếm và thay thế (Replace dialog) trong Notepad hoặc Microsoft Word.

Chức năng tìm kiếm và thay thế của Microsoft Word

Nhìn lại các Use Case một lần nữa, ta thấy nó không hề đề cập đến những từ như “window”, “button”, “click”, “field”, hoặc “checkbox”. Tất cả chỉ là những hành động mà người dùng thực hiện và cách mà phần mềm hoạt động.

Và có rất nhiều cách khác nhau để bạn xây dựng phần mềm để thực hiện Use Case. Bạn đã từng sử dụng chức năng tìm kiếm và thay thế trong Word hoặc Notepad chưa? Chúng có gì khác nhau?

Chức năng tìm kiếm và thay thế của Notepad++

Có rất nhiều điểm khác biệt giữa chúng về giao diện, cách sử dụng… Tuy nhiên, nếu bạn so sánh chúng với Use Case trong ví dụ trên, bạn sẽ thấy rằng chúng đều đi theo cùng diễn biến của những sự kiện cơ bản.

Dưới đây là một vài sự khác biệt giữa User Story và Use Case có thể rút ra từ ví dụ trên:

  • User Story là những gì cần thiết:

User Story thường được viết trên Cards

Khi bạn viết một User Story, những gì bạn mô tả là nhu cầu của người dùng. Một điều gì đó mà người dùng cần để thực hiện công việc của họ mà nếu bạn không tạo ra phần mềm cho họ thì điều đó sẽ tồn tại mãi.

Chẳng hạn trong ví dụ trên là chức năng tìm kiếm và thay thế. Nếu không có phần mềm người dùng sẽ phải tìm và thay thế một cách thủ công, mất nhiều thời gian và không hiệu quả.

  • Use Case là cách mà phần mềm sẽ tương tác đối với yêu cầu của người dùng:

Một nhà phát triển phần mềm cần khả năng đọc một Use Case và hiểu phần mềm cần làm gì. Có rất nhiều chi tiết và mô tả mọi thứ mà người phát triển cần xây dựng để đáp ứng nhu cầu người dùng.

Đó là lý do tại sao Use Case cần được chi tiết, rõ ràng và không mơ hồ. Bạn có thể thấy Use Case trong ví dụ trên được viết chi tiết từng bước thao tác người dùng và cách mà phần mềm phản hồi.

  • User Story phải dễ đọc và hiểu đối với người dùng:

Cấu trúc thường có của 1 user story

Khi bạn viết một User Story, điều bạn cần tập trung là làm cách nào để bất kì ai cũng có thể đọc hiểu. User Story cần được mô tả một cách đầy đủ trong vài câu, đó là lý do vì sao User Story thường là một bảng tóm tắt và được viết trong những tấm thẻ, giấy note, ghi chú…

  • Use Case sẽ mô tả một đầy đủ về cách phần mềm tương tác với người dùng:

Khi bạn lên danh sách các Use Case, điều bạn cần làm chính là đưa ra một giải pháp về chức năng phần mềm cho nhu cầu của người dùng. Nó phải là một giải pháp mà những người phát triển có thể triển khai khi xây dựng phần mềm.

Một User Story có thể có nhiều Use Case và khi bạn tập hợp tất cả Use Case vào một tài liệu. Lúc đó, bạn sẽ có một tập hợp đầy đủ mô tả những tương tác giữa người dùng với phần mềm mà bạn sẽ làm.

Và nếu phần mềm của bạn phải tương tác với nhiều hệ thống, bạn có thể xem các hệ thống như là những người dùng trong Use Case.

Một khi bạn hiểu được sự khác nhau giữa User Story và Use Case, bạn sẽ biết chức năng của chúng trong dự án. Nếu hiện tại bạn chỉ sử dụng User Story hoặc Use Case thì trong dự án sau hãy bắt đầu thử nghiệm việc dùng cả hai nhé.

Để hiểu rõ hơn về user story và use case trong quá trình sử dụng bạn có thể tham gia khóa đào tạo phân tích nghiệp vụ phần mềm của BAC.
Nguồn:

Tham khảo bài viết: Phân biệt User Scenirio, User Story và Use Case

CÁC KHOÁ HỌC BUSINESS ANALYST BACs.VN DÀNH CHO BẠN

Khoá học Online:

Khoá học Offline:

Tại Tp.HCM:

Tại Hà Nội:

Tham khảo lịch khai giảng TẤT CẢ các khóa học mới nhất. 

BAN BIÊN TẬP NỘI DUNG BAC