Một UML sơ đồ trường hợp sử dụng là hình thức chính của yêu cầu hệ thống/phần mềm cho một chương trình phần mềm mới đang được phát triển. Các trường hợp sử dụng chỉ ra hành vi mong đợi (cái gì) của một hệ thống, chứ không phải phương pháp chính xác để thực hiện nó (làm thế nào). Một bộ hoàn chỉnh các trường hợp sử dụng chỉ ra tất cả các cách khác nhau để sử dụng hệ thống và do đó định nghĩa tất cả hành vi được yêu cầu của hệ thống, giới hạn phạm vi của hệ thống.
Một khái niệm chính của mô hình hóa trường hợp sử dụng là nó giúp chúng ta thiết kế một hệ thống từ góc độ người dùng cuối. Đây là một kỹ thuật hiệu quả để giao tiếp hành vi hệ thống bằng ngôn ngữ của người dùng bằng cách chỉ ra tất cả hành vi hệ thống ngoại vi có thể nhìn thấy.
Tổng quan về Sơ đồ Trường hợp Sử dụng
Một dạng tiêu chuẩn của sơ đồ trường hợp sử dụng được định nghĩa trong Ngôn ngữ Mô hình hóa Thống nhất như được thấy trong ví dụ Sơ đồ Trường hợp Sử dụng bên dưới:

Trường hợp sử dụng là gì?
- Một trường hợp sử dụng là một tập hợp các chuỗi tương tác có thể xảy ra giữa hệ thống đang thảo luận và các diễn viên bên ngoài của nó liên quan đến một mục tiêu cụ thể.
- Mỗi trường hợp sử dụng là một chuỗi sự kiện hoàn chỉnh trong hệ thống từ góc độ người dùng.
- Các trường hợp sử dụng sau khi được chỉ ra có thể được chỉ ra cả bằng văn bản và biểu diễn trực quan (tức là sơ đồ trường hợp sử dụng).
- Các trường hợp sử dụng là phương pháp được cộng đồng thành phần và đối tượng ưa chuộng để chỉ ra yêu cầu và thậm chí để điều khiển toàn bộ quá trình phát triển phần mềm.
- Các trường hợp sử dụng thường dính vào các nhiệm vụ khá lớn; chúng không cần phải được viết cho mọi hành động người dùng có thể thực hiện.
Lợi ích của Phương pháp tiếp cận Trường hợp Sử dụng
Các trường hợp sử dụng cung cấp nhiều lợi ích ngoài việc định nghĩa yêu cầu người dùng. Các trường hợp sử dụng có thể được sử dụng để:
- Các trường hợp sử dụng giúp thu thập yêu cầu chức năng của một hệ thống.
- Các trường hợp sử dụng có thể theo dõi được.
- Các trường hợp sử dụng có thể phục vụ như cơ sở để ước tính, lập lịch và xác thực công việc.
- Các trường hợp sử dụng có thể phát triển ở mỗi lần lặp lại từ một phương pháp thu thập yêu cầu, đến hướng dẫn phát triển cho lập trình viên, đến trường hợp kiểm thử và cuối cùng là tài liệu người dùng.
- Các trường hợp sử dụng đường dẫn thay thế thu thập hành vi bổ sung có thể cải thiện độ bền vững của hệ thống.
- Các trường hợp sử dụng đã được chứng minh là dễ hiểu bởi người dùng kinh doanh, và do đó đã chứng minh là một cây cầu tuyệt vời giữa nhà phát triển phần mềm và người dùng cuối.
- Xác định các lớp miền kinh doanh và các đối tác của chúng
Diễn viên
- Ai đó tương tác với trường hợp sử dụng (chức năng hệ thống).
- Được đặt tên bằng danh từ.
- Diễn viên đóng một vai trò trong doanh nghiệp
- Tương tự như khái niệm người dùng, nhưng một người dùng có thể đóng nhiều vai trò khác nhau
- Ví dụ:
- Một giáo sư có thể là giảng viên và cũng là nhà nghiên cứu
- đóng 2 vai trò với hai hệ thống
- Diễn viên kích hoạt trường hợp sử dụng.
- Diễn viên có trách nhiệm với hệ thống (đầu vào), và Diễn viên có kỳ vọng từ hệ thống (đầu ra).

Trường hợp sử dụng
- Chức năng hệ thống (quy trình — tự động hoặc thủ công)
- Được đặt tên bằng động từ + Danh từ (hoặc Cụm danh từ).
- tức là Làm điều gì đó
- Mỗi Diễn viên phải được liên kết với một trường hợp sử dụng, trong khi một số trường hợp sử dụng có thể không được liên kết với các diễn viên.

Liên kết Giao tiếp
- Sự tham gia của một diễn viên trong một trường hợp sử dụng được thể hiện bằng cách kết nối một diễn viên với một trường hợp sử dụng bằng một liên kết rắn.
- Các diễn viên có thể được kết nối với các trường hợp sử dụng bằng các mối liên hệ, cho thấy rằng diễn viên và trường hợp sử dụng giao tiếp với nhau bằng các tin nhắn.

Ranh giới của hệ thống
- Ranh giới hệ thống tiềm năng là toàn bộ hệ thống như được định nghĩa trong tài liệu yêu cầu.
- Đối với các hệ thống lớn và phức tạp, mỗi mô-đun có thể là ranh giới hệ thống.
- Ví dụ, đối với một hệ thống ERP cho một tổ chức, mỗi mô-đun như nhân sự, bảng lương, kế toán, v.v.
- có thể hình thành một ranh giới hệ thống cho các trường hợp sử dụng cụ thể cho mỗi chức năng kinh doanh này.
- Toàn bộ hệ thống có thể bao gồm tất cả các mô-đun này, mô tả ranh giới hệ thống tổng thể
6 Bước Phân tích Trường hợp Sử dụng
Khi phát triển các trường hợp sử dụng, bạn nên bắt đầu với một phân vùng chức năng — một danh sách các danh mục chức năng chính của hệ thống đích. Điều này sẽ giúp xác định các khu vực cần tập trung.
Bước 1 — Xác định Diễn viên: Xác định ai sẽ sử dụng trực tiếp hệ thống. Đó là các Diễn viên.
- Một trong những thành phần chính của phát triển trường hợp sử dụng là các diễn viên.
- Một diễn viên là một vai trò cụ thể do người dùng hệ thống đóng và đại diện cho một loại người dùng có hành vi tương tự khi sử dụng hệ thống.
- Các diễn viên có thể là con người hoặc các hệ thống máy tính.
- Một diễn viên chính là người có mục tiêu cần sự trợ giúp của hệ thống.
- Một diễn viên phụ là người mà hệ thống cần sự trợ giúp để đáp ứng mục tiêu của mình.
- Một trong những diễn viên được chỉ định là hệ thống đang thảo luận.
- Một người có thể đóng nhiều vai trò và do đó đại diện cho nhiều diễn viên, chẳng hạn như người điều hành hệ thống máy tính hoặc người dùng cuối.
Bước 2: Chọn một trong những Diễn viên đó.
- Để xác định trường hợp sử dụng của hệ thống đích, chúng ta xác định các diễn viên của hệ thống.
- Một điểm khởi đầu tốt là kiểm tra thiết kế hệ thống và xác định ai sẽ được hỗ trợ.
Bước 3 — Xác định Trường hợp Sử dụng: Định nghĩa những gì Diễn viên đó muốn làm với hệ thống. Mỗi điều mà diễn viên muốn làm với hệ thống trở thành một Trường hợp Sử dụng.
- Những gì diễn viên muốn làm với hệ thống trở thành mục tiêu.
- Mục tiêu là kết quả cuối cùng của các hành động của người dùng. Có hai loại mục tiêu. Loại đầu tiên là mục tiêu cứng.
- Mục tiêu này phải được đáp ứng hoàn toàn và mô tả yêu cầu tối thiểu của hệ thống đích.
- Để xác định các trường hợp sử dụng, chúng ta có thể đọc thông số kỹ thuật yêu cầu từ góc độ diễn viên và tiếp tục thảo luận với những người dùng sẽ hoạt động như các diễn viên.
- Bằng cách định nghĩa tất cả những gì mọi diễn viên có thể làm khi tương tác với hệ thống, chức năng hoàn chỉnh của hệ thống được định nghĩa.
Bước 4 — Xác định Kịch bản Trường hợp Sử dụng Bình thường: Đối với mỗi Trường hợp Sử dụng đó, quyết định con đường thông thường nhất khi Diễn viên đó sử dụng hệ thống. Điều gì thường xảy ra.
- Một trường hợp sử dụng có một quá trình cơ bản và nhiều quá trình thay thế.
- Quá trình cơ bản là quá trình đơn giản nhất, quá trình mà một yêu cầu được giao mà không gặp bất kỳ khó khăn nào.
- Có thể có các quá trình thay thế mô tả các biến thể của quá trình cơ bản và các lỗi có thể xảy ra.
- Chúng được ghi lại như là các phần mở rộng của trường hợp sử dụng.
Bước 5 — Phát triển Mô tả Trường hợp Sử dụng: Mô tả quá trình cơ bản đó trong mô tả cho trường hợp sử dụng.
- Kịch bản sử dụng được viết từ góc độ người dùng bằng ngôn ngữ dễ hiểu.
- Các bước cần thiết để đạt được mục tiêu đã xác định được viết ra, được gọi là dòng sự kiện.
Bước 6 — Phát triển Đường dẫn Thay thế của Trường hợp Sử dụng: Khi bạn hài lòng với quá trình cơ bản, bây giờ hãy xem xét các lựa chọn thay thế và thêm chúng như là các trường hợp sử dụng mở rộng.
Các Kịch bản Thay thế của một Trường hợp Sử dụng
Một trường hợp sử dụng cũng mô tả cách hệ thống nên phản hồi khi mọi thứ không đi theo kế hoạch hoặc đi theo kế hoạch, nhưng không phải theo cách chúng ta mô tả trong kịch bản thành công chính. Chúng ta gọi những tình huống đó là các phần mở rộng.
- Có hai loại: những ngoại lệ và những lựa chọn thay thế.
- Những ngoại lệ là các điều kiện lỗi (điều gì đó đã sai).
- Những lựa chọn thay thế chỉ là một cách khác để mọi thứ đi đúng.
Các Cấp độ Chi tiết của Trường hợp Sử dụng
Độ chi tiết trường hợp sử dụng liên quan đến cách thức thông tin được tổ chức trong các thông số kỹ thuật trường hợp sử dụng, và ở một mức độ nào đó, mức độ chi tiết mà chúng được viết. Đạt được mức độ chi tiết trường hợp sử dụng thích hợp sẽ giúp giao tiếp giữa các bên liên quan và nhà phát triển dễ dàng hơn và cải thiện quy hoạch dự án.
Alastair Cockburn trong cuốn Writing Effective Use Cases đã cho chúng ta một cách dễ dàng để hình dung các cấp độ mục tiêu khác nhau bằng cách nghĩ về biển:

Lưu ý rằng:
- Trong khi một trường hợp sử dụng có thể đào sâu vào nhiều chi tiết về mọi khả năng, một sơ đồ trường hợp sử dụng thường được sử dụng cho một cái nhìn tổng quan hơn về hệ thống như các bản thiết kế.
- Viết các trường hợp sử dụng ở mức độ chi tiết thô hơn với ít chi tiết hơn khi không cần thiết là có lợi.
Hy vọng bây giờ bạn có thể trả lời câu hỏi “trường hợp sử dụng là gì” và có thể áp dụng trường hợp sử dụng trong dự án của mình. Nếu bạn muốn tìm hiểu thêm về các loại sơ đồ UML khác, vui lòng xem hướng dẫn UML: Tổng quan về 14 Loại Sơ đồ UML.
Tài liệu tham khảo
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.