Việc tạo ra các mô hình trực quan rõ ràng và hiệu quả là nền tảng của thiết kế hệ thống vững chắc. Khi các bên liên quan và nhà phát triển xem xét một sơ đồ, họ cần hiểu chức năng của hệ thống mà không có sự mơ hồ. Sơ đồ Trường Hợp Sử Dụng phục vụ mục đích này bằng cách ghi lại các tương tác giữa các tác nhân và hệ thống. Tuy nhiên, việc tạo ra các sơ đồ này thường dẫn đến sự nhầm lẫn nếu logic nền tảng không hợp lý. Hướng dẫn này cung cấp một cách tiếp cận có cấu trúc để đảm bảo các sơ đồ của bạn chính xác, dễ đọc và có giá trị.

🛠️ Giai đoạn 1: Xác định ranh giới hệ thống
Trước khi vẽ bất kỳ hình hộp hay nhân vật dạng que nào, bạn phải xác định phạm vi. Ranh giới hệ thống xác định những gì nằm bên trong hệ thống và những gì nằm bên ngoài. Sự phân biệt này rất quan trọng vì nó xác định các thành phần nào thuộc về yêu cầu chức năng và những thành phần nào là ảnh hưởng từ bên ngoài.
- Xác định Hệ thống Chính:Nhãn rõ ràng cho hình chữ nhật đại diện cho hệ thống. Tránh các nhãn mơ hồ như “Hệ thống”. Sử dụng tên cụ thể, chẳng hạn như “Mô-đun Xử lý Thanh Toán” hoặc “Hệ thống Quản lý Kho Hàng.”
- Ghi chú Các Entiti Bên Ngoài:Mọi thứ nằm ngoài hình chữ nhật là một tác nhân hoặc một hệ thống bên ngoài. Đảm bảo chúng không được vẽ bên trong ranh giới trừ khi chúng là các hệ thống con.
- Làm rõ Luồng Dữ Liệu:Mặc dù sơ đồ trường hợp sử dụng không hiển thị rõ luồng dữ liệu, nhưng ranh giới hệ thống ngụ ý nơi dữ liệu đi vào và rời khỏi logic chức năng.
Không có ranh giới rõ ràng, các tác nhân có thể dường như tương tác với chi tiết bên trong thay vì các dịch vụ được cung cấp. Điều này dẫn đến mô hình quá chi tiết và khó duy trì.
👥 Giai đoạn 2: Xác định Các Tác Nhân Đúng Cách
Các tác nhân đại diện cho các vai trò do con người hoặc hệ thống thực hiện khi tương tác với hệ thống trường hợp sử dụng. Chúng là người khởi xướng hành động hoặc người nhận đầu ra. Việc xác định đúng các tác nhân thường là nguồn lỗi phổ biến nhất khi vẽ sơ đồ.
Tác nhân là gì?
Một tác nhân là một vai trò, không nhất thiết là một người cụ thể. Một người có thể đảm nhận nhiều vai trò, và một vai trò có thể do nhiều người đảm nhận. Ví dụ, một “Quản lý” là một tác nhân, chứ không phải “John Smith”. Ngoài ra, một tác nhân có thể là một hệ thống khác, chẳng hạn như một API bên ngoài hoặc một cơ sở dữ liệu cũ.
- Các Tác Nhân Chính:Chúng khởi xướng tương tác để đạt được một mục tiêu cụ thể. Chúng là người dùng của hệ thống.
- Các Tác Nhân Phụ:Chúng là các hệ thống hoặc dịch vụ mà hệ thống chính tương tác để hoàn thành một nhiệm vụ. Chúng cung cấp dữ liệu hoặc dịch vụ nhưng không khởi xướng trường hợp sử dụng.
- Tổng quát so với Cụ thể:Tránh liệt kê các cá nhân cụ thể. Sử dụng tên dựa trên vai trò như “Khách hàng”, “Quản trị viên” hoặc “Dịch vụ Bên Thứ Ba”.
Những Sai Lầm Phổ Biến Khi Xác Định Tác Nhân
| Cách Tiếp Cận Sai Lầm | Cách Tiếp Cận Đúng Đắn |
|---|---|
| Đặt nhãn “John Doe” | Đặt nhãn “Người Dùng Đã Đăng Ký” |
| Đặt các tác nhân bên trong ranh giới hệ thống | Đặt các tác nhân bên ngoài ranh giới hệ thống |
| Tạo các tác nhân cho mỗi màn hình | Tạo các tác nhân cho các vai trò chức năng |
| Bỏ qua các tác nhân hệ thống sang hệ thống | Bao gồm các API bên ngoài như các tác nhân |
Bằng cách tuân theo cách đặt tên theo vai trò và vị trí đúng đắn, sơ đồ vẫn giữ được sự ổn định ngay cả khi nhân sự thay đổi.
🎯 Giai đoạn 3: Xác định các trường hợp sử dụng
Một trường hợp sử dụng đại diện cho một đơn vị chức năng hoàn chỉnh cung cấp giá trị cho một tác nhân. Nó không phải là một hành động đơn lẻ mà là một chuỗi các hành động nhằm đạt được mục tiêu. Quy tắc đặt tên cho các trường hợp sử dụng rất quan trọng để đảm bảo sự rõ ràng.
Quy tắc đặt tên
Tên các trường hợp sử dụng nên là cụm động từ mô tả hành động từ góc nhìn của tác nhân. Chúng cần ngắn gọn nhưng đủ mô tả để có thể hiểu rõ độc lập.
- Định dạng Động từ-Đối tượng:Ví dụ bao gồm “Xử lý Đơn hàng”, “Tạo Báo cáo” hoặc “Cập nhật Hồ sơ”. Tránh dùng danh từ như “Xử lý Đơn hàng” trừ khi nó ám chỉ một tài liệu cụ thể chứ không phải một hành động.
- Hướng đến mục tiêu:Hãy tự hỏi bản thân, “Tác nhân muốn đạt được điều gì?” Nếu câu trả lời là “Trả hóa đơn”, thì trường hợp sử dụng là “Trả hóa đơn”, chứ không phải “Màn hình Trả hóa đơn”.
- Tính nhất quán về phạm vi:Đảm bảo tất cả các trường hợp sử dụng đều ở cùng một mức độ trừu tượng. Không nên trộn các mục tiêu cấp cao (“Quản lý Tài khoản”) với các bước cấp thấp (“Nhập Mật khẩu”).
Kiểm tra độ chi tiết
Nếu một trường hợp sử dụng quá rộng, nó sẽ trở nên mơ hồ. Nếu quá hẹp, sẽ gây lộn xộn. Một quy tắc phổ biến là một trường hợp sử dụng nên có thể được thực hiện bởi tác nhân trong một phiên duy nhất hoặc đại diện cho một giao dịch kinh doanh riêng biệt. Các quy trình phức tạp nên được chia nhỏ thành các trường hợp sử dụng nhỏ hơn, liên kết với nhau bằng các mối quan hệ.
🔗 Giai đoạn 4: Bản đồ các mối quan hệ
Sức mạnh của sơ đồ trường hợp sử dụng nằm ở các mối quan hệ giữa các tác nhân và các trường hợp sử dụng, cũng như giữa chính các trường hợp sử dụng với nhau. Những đường nối này truyền tải logic của hệ thống.
Liên kết
Đường liền nối giữa một tác nhân và một trường hợp sử dụng cho thấy tác nhân tương tác với chức năng đó. Mỗi tác nhân nên có ít nhất một liên kết, và mỗi trường hợp sử dụng nên có ít nhất một tác nhân.
- Hướng kết nối: Mặc dù thường được vẽ theo hai chiều, luồng logic thường bắt đầu từ tác nhân khởi tạo yêu cầu.
- Nhiều tác nhân: Một trường hợp sử dụng duy nhất có thể liên kết với nhiều tác nhân. Ví dụ, “Xem Báo cáo” có thể liên kết với “Quản lý viên” và “Kiểm toán viên”.
Mối quan hệ Bao gồm
Mối quan hệ Bao gồm cho thấy một trường hợp sử dụng luôn tích hợp hành vi của một trường hợp sử dụng khác. Trường hợp sử dụng được bao gồm là cần thiết để trường hợp sử dụng cơ sở hoàn thành mục tiêu của nó. Hãy hình dung đây như một hàm con.
- Khi nào nên dùng:Dùng điều này cho các chức năng chung được chia sẻ giữa nhiều trường hợp sử dụng. Ví dụ, “Xác thực Người dùng” có thể được bao gồm trong “Đăng nhập”, “Đặt lại Mật khẩu” và “Thay đổi Thông tin xác thực”.
- Ký hiệu: Thường được thể hiện bằng một mũi tên đứt đoạn với nhãn “<<include>>” chỉ từ trường hợp sử dụng cơ sở đến trường hợp được bao gồm.
Mối quan hệ Mở rộng
Mối quan hệ mở rộng cho thấy hành vi tùy chọn. Trường hợp sử dụng mở rộng thêm chức năng vào trường hợp sử dụng cơ bản trong các điều kiện cụ thể. Điều này hữu ích cho xử lý lỗi hoặc các tính năng tùy chọn.
- Khi nào nên sử dụng:Sử dụng điều này cho các ngoại lệ hoặc biến thể. Ví dụ, “Gửi thông báo” có thể mở rộng “Đặt hàng” chỉ khi thanh toán thất bại.
- Điều kiện:Luôn xác định rõ điểm mở rộng hoặc điều kiện. Trường hợp sử dụng cơ bản hoạt động mà không cần mở rộng.
Tổng quát hóa
Tổng quát hóa được sử dụng cho kế thừa. Một tác nhân hoặc trường hợp sử dụng chuyên biệt kế thừa hành vi từ một tác nhân hoặc trường hợp sử dụng tổng quát hơn. Điều này giúp giảm sự trùng lặp trong sơ đồ.
- Kế thừa tác nhân: Nếu “Người dùng Premium” kế thừa từ “Người dùng đã đăng ký”, bạn không cần vẽ lại tất cả các mối liên kết cho “Người dùng đã đăng ký”.
- Kế thừa trường hợp sử dụng: Nếu “Tạo báo cáo hàng tháng” là một loại cụ thể của “Tạo báo cáo”, bạn có thể sử dụng tổng quát hóa để thể hiện thứ bậc.
🚫 Giai đoạn 5: Tránh các sai lầm phổ biến
Ngay cả những người mô hình hóa có kinh nghiệm cũng mắc sai lầm. Dưới đây là danh sách kiểm tra các lỗi phổ biến và cách khắc phục để đảm bảo chất lượng sơ đồ.
| Sai lầm | Tác động | Giải pháp |
|---|---|---|
| Các tác nhân chồng lấn | Sự nhầm lẫn về ai làm gì | Tách biệt các tác nhân rõ ràng; sử dụng tổng quát hóa nếu vai trò tương tự nhau |
| Các phụ thuộc vòng lặp | Các vòng lặp logic làm gián đoạn luồng | Xem xét lại logic include/extend; đảm bảo các trường hợp sử dụng cơ bản là độc lập |
| Quá nhiều mối quan hệ | Sơ đồ trở nên khó đọc | Tổng hợp các hành vi chung; sử dụng ghi chú để thể hiện logic chi tiết |
| Thiếu tác nhân | Chế độ xem hệ thống chưa đầy đủ | Xem xét lại tất cả các yêu cầu chức năng; đảm bảo mỗi trường hợp sử dụng đều có người khởi tạo |
| Sự nhầm lẫn về giao diện | Trộn lẫn giao diện người dùng với logic | Giữ cho sơ đồ tập trung vào chức năng, không phải bố cục màn hình |
| Các trường hợp sử dụng không dùng đến | Mã chết trong mô hình | Xem xét định kỳ; loại bỏ các trường hợp sử dụng không có tác nhân hoặc phụ thuộc |
🔍 Giai đoạn 6: Danh sách kiểm tra xác nhận
Trước khi hoàn thiện sơ đồ, hãy đi qua danh sách kiểm tra này. Điều này đảm bảo mô hình vững chắc và sẵn sàng cho các đội phát triển.
- Đầy đủ:Mỗi trường hợp sử dụng có ít nhất một tác nhân không?
- Nhất quán:Các tên tác nhân có nhất quán với từ điển không?
- Rõ ràng:Biên giới hệ thống có được ghi nhãn rõ ràng không?
- Độ chính xác:Các mối quan hệ (bao gồm/mở rộng) có hợp lý với yêu cầu không?
- Dễ đọc:Bố cục có sạch sẽ không? Các đường có giao nhau một cách không cần thiết không?
- Khả năng mở rộng:Có thể thêm các trường hợp sử dụng mới mà không làm hỏng cấu trúc hiện tại không?
- Phù hợp:Sơ đồ có phù hợp với các mục tiêu kinh doanh cấp cao không?
- Tài liệu:Các trường hợp sử dụng phức tạp có được ghi chú hoặc mô tả trong tài liệu không?
🔄 Giai đoạn 7: Quản lý thay đổi theo thời gian
Yêu cầu thay đổi theo thời gian. Phần mềm hiếm khi là tĩnh. Sơ đồ trường hợp sử dụng phải được coi là tài liệu sống, phản ánh trạng thái hiện tại của hệ thống. Việc duy trì tài liệu này quan trọng như việc tạo ra nó.
Kiểm soát phiên bản
Theo dõi các thay đổi. Khi một trường hợp sử dụng được thêm, sửa đổi hoặc xóa, hãy cập nhật phiên bản sơ đồ. Điều này giúp kiểm toán và hiểu rõ quá trình phát triển của hệ thống.
Phân tích tác động
Khi một yêu cầu thay đổi, hãy phân tích tác động của nó đến sơ đồ. Nếu một tác nhân mới được giới thiệu, hãy kiểm tra xem các trường hợp sử dụng hiện tại có cần được sửa đổi không. Nếu một trường hợp sử dụng bị xóa, hãy đảm bảo không có trường hợp sử dụng nào khác phụ thuộc vào nó thông qua mối quan hệ bao gồm.
Xem xét từ bên liên quan
Xem xét sơ đồ định kỳ cùng các bên liên quan. Họ có thể xác định xem mô hình vẫn phù hợp với mô hình tâm lý của họ về hệ thống hay không. Vòng phản hồi này đảm bảo sơ đồ luôn có giá trị.
📏 Bước 8: Đảm bảo sự rõ ràng và nhất quán
Tính nhất quán về hình ảnh giúp dễ hiểu hơn. Nếu sơ đồ trông lộn xộn, logic đằng sau nó có thể bị nhận xét là lộn xộn.
- Căn chỉnh:Căn chỉnh các tác nhân và các trường hợp sử dụng. Sử dụng các đường lưới hoặc khoảng cách để tạo bố cục có cấu trúc.
- Sử dụng màu sắc:Mặc dù tránh sử dụng kiểu CSS là bắt buộc đối với HTML thuần túy, nhưng trong các công cụ mô hình hóa thực tế, hãy cân nhắc sử dụng màu sắc để phân biệt giữa các tác nhân chính và phụ, hoặc để làm nổi bật các trường hợp sử dụng đã lỗi thời.
- Nhãn:Đảm bảo tất cả nhãn đều dễ đọc. Tránh dùng viết tắt trừ khi đó là các thuật ngữ tiêu chuẩn trong ngành.
- Khoảng cách:Dành đủ khoảng trống xung quanh các thành phần để tránh các đường kẻ chồng lên văn bản.
🧩 Tích hợp với các mô hình khác
Sơ đồ trường hợp sử dụng hiếm khi được sử dụng riêng lẻ. Chúng hoạt động tốt nhất khi được tích hợp với các kỹ thuật mô hình hóa khác.
- Sơ đồ tuần tự:Sử dụng sơ đồ tuần tự để chi tiết luồng tương tác bên trong một trường hợp sử dụng cụ thể.
- Sơ đồ lớp:Sử dụng sơ đồ lớp để xác định các đối tượng tham gia vào các trường hợp sử dụng.
- Sơ đồ trạng thái:Sử dụng sơ đồ trạng thái để hiển thị vòng đời của một đối tượng tham gia vào một trường hợp sử dụng.
Bằng cách liên kết các mô hình này, bạn tạo ra cái nhìn toàn diện về hệ thống mà không làm rối sơ đồ trường hợp sử dụng. Sơ đồ trường hợp sử dụng vẫn là điểm khởi đầu để hiểu chức năng, trong khi các sơ đồ khác cung cấp chi tiết triển khai.
🏁 Các bước kiểm tra cuối cùng
Trước khi phân phối sơ đồ, hãy thực hiện kiểm tra cuối cùng về tính hợp lý.
- Đọc từng nhãn to lên để đảm bảo chúng hợp lý về mặt ngữ pháp.
- Xác minh rằng không có tác nhân nào bị tách biệt mà không có kết nối.
- Kiểm tra xem các mối quan hệ include/extend có đang được dùng thay thế cho nhau hay không.
- Đảm bảo ranh giới hệ thống bao gồm tất cả chức năng được dự định.
- Xác nhận rằng sơ đồ vừa vặn trên một trang duy nhất hoặc được chia trang một cách hợp lý.
Việc tuân theo danh sách kiểm tra có cấu trúc này đảm bảo rằng sơ đồ của bạn không chỉ là những bức tranh, mà còn là công cụ chức năng để giao tiếp. Chúng tạo nên cầu nối giữa nhu cầu kinh doanh và triển khai kỹ thuật. Bằng cách tập trung vào vai trò, mục tiêu và mối quan hệ, bạn tạo ra các mô hình có thể vượt qua thử thách của thời gian và sự thay đổi.
Hãy nhớ, mục tiêu là sự rõ ràng. Nếu một bên liên quan có thể nhìn vào sơ đồ và hiểu được hệ thống làm gì, bạn đã thành công. Hãy duy trì sự tập trung vào giá trị, giữ cấu trúc hợp lý, và cập nhật sơ đồ khi yêu cầu thay đổi.











