Trong môi trường phát triển phần mềm nhanh chóng, những giả định là kẻ thù của việc giao hàng. Khi các đội ngũ đoán những gì người dùng thực sự cần, các tính năng thường không đạt đúng mục tiêu, dẫn đến các vòng phát triển bị lãng phí và các bên liên quan thất vọng. Đây chính là lúc Sơ đồ Trường hợp sử dụngtrở thành một công cụ thiết yếu. Nó cung cấp một hợp đồng trực quan giữa mục tiêu kinh doanh và triển khai kỹ thuật.
Đối với các đội ngũ Agile, sự rõ ràng là đồng tiền. Một sơ đồ được xây dựng tốt không chỉ đơn thuần mô tả các tương tác; nó còn đồng thuận toàn đội về phạm vi công việc trước khi viết bất kỳ dòng mã nào. Hướng dẫn này khám phá cách xây dựng các sơ đồ này một cách hiệu quả mà không cần dựa vào các công cụ độc quyền phức tạp hay các phương pháp cứng nhắc.

Các phương pháp Agile ưu tiên khả năng phản hồi thay đổi, nhưng điều đó không có nghĩa là bỏ qua yêu cầu. Nguy cơ nằm ở khoảng trống ‘giải thích’. Khi người sở hữu sản phẩm mô tả một tính năng bằng lời nói, các nhà phát triển hiểu theo cách khác so với các nhà thiết kế, và các kiểm thử viên QA lại hiểu theo cách khác nữa.
Một Sơ đồ Trường hợp sử dụnghành động như một ngôn ngữ chung. Nó buộc đội ngũ phải xác định ai đang làm gì và tại sao, trước khi công việc bắt đầu. Điều này giảm tải nhận thức cho các nhà phát triển, giúp họ tập trung vào logic thay vì phải suy đoán ý định.
Sơ đồ Trường hợp sử dụng là một sơ đồ hành vi mô tả các tương tác giữa một hệ thống và các tác nhân bên ngoài. Nó tập trung vào điều gìhệ thống làm, chứ không phải cách thứcnó làm điều đó. Sự phân biệt này rất quan trọng để duy trì mức độ trừu tượng cần thiết trong lập kế hoạch cấp cao.
Để xây dựng một sơ đồ rõ ràng, bạn phải hiểu các yếu tố ký hiệu chuẩn:
Khi các yếu tố này được sắp xếp đúng cách, sơ đồ sẽ trở thành bản đồ về khả năng của hệ thống. Nó trả lời câu hỏi: “Nếu tôi là người này, tôi có thể đạt được điều gì với phần mềm này?”
Một số đội xem tài liệu là một mẫu phản tác dụng trong Agile. Họ cho rằng phần mềm hoạt động có giá trị hơn tài liệu toàn diện. Tuy nhiên, tài liệu nhẹ nhàng như sơ đồ trường hợp sử dụng phục vụ một mục đích khác. Nó không nhằm mục đích tạo ra một tài liệu đặc tả khổng lồ; mà là tạo ra một mô hình tinh thần chung.
Khi một đội ngồi lại để lập kế hoạch Sprint, họ thường gặp khó khăn khi chia nhỏ các epic lớn thành các câu chuyện có thể quản lý được. Sơ đồ Trường hợp sử dụng giúp hình dung rõ luồng hoạt động.
Việc tạo sơ đồ từ đầu có thể khiến người ta cảm thấy choáng ngợp. Để duy trì sự rõ ràng và tính chính đáng, hãy tuân theo một quy trình có cấu trúc. Điều này đảm bảo tính nhất quán giữa các sơ đồ khác nhau và giữa các thành viên trong đội.
Bắt đầu bằng cách liệt kê tất cả những người tương tác với hệ thống. Đừng làm phức tạp hóa điều này. Hãy tự hỏi: “Ai tương tác với phần mềm này?”
Mẹo:Nếu một tác nhân không có mục tiêu cần đạt được, có thể nó không cần xuất hiện trên sơ đồ. Hãy giữ cho sơ đồ tập trung vào giá trị.
Với mỗi tác nhân, hãy liệt kê các mục tiêu họ muốn đạt được. Sử dụng cụm từ động từ-danh từ để rõ ràng hơn.
Đảm bảo mỗi trường hợp sử dụng đều mang lại giá trị. Nếu một bước không giúp người dùng đạt được mục tiêu của họ, có thể đó là một quy trình hỗ trợ phù hợp hơn để sử dụng trong sơ đồ trình tự sau này.
Vẽ một hình chữ nhật bao quanh các trường hợp sử dụng. Tất cả những gì bên trong là một phần của phạm vi hiện tại của bạn. Tất cả những gì bên ngoài là môi trường. Điều này giúp ngăn chặn việc mở rộng phạm vi trong quá trình phát triển.
Vẽ các đường nối giữa các tác nhân và các trường hợp sử dụng mà họ khởi tạo. Một đường liền thể hiện mối quan hệ liên kết. Điều này cho thấy mối quan hệ trực tiếp.
Các hệ thống phức tạp đòi hỏi hơn là những đường đơn giản. Để ghi lại sự tinh tế của các tương tác, hãy sử dụng các mối quan hệ sau.
Sử dụng điều này khi một trường hợp sử dụngphảigọi một trường hợp sử dụng khác để hoàn thành nhiệm vụ của nó. Đây là một mối phụ thuộc bắt buộc.
Sử dụng điều này cho hành vi tùy chọn. Trường hợp sử dụng được mở rộng chỉ chạy dưới các điều kiện cụ thể.
Sử dụng điều này khi các tác nhân hoặc trường hợp sử dụng chia sẻ các đặc điểm chung.
| Loại mối quan hệ | Ký hiệu | Ý nghĩa | Trường hợp sử dụng |
|---|---|---|---|
| Liên kết | Đường liền | Giao tiếp cơ bản | Diễn viên khởi tạo một trường hợp sử dụng |
| Bao gồm | Mũi tên gạch nối (< |
Bắt buộc bao gồm | Chức năng chung được yêu cầu bởi nhiều trường hợp sử dụng |
| Mở rộng | Mũi tên gạch nối (< |
Hành vi tùy chọn | Các trường hợp đặc biệt hoặc xử lý lỗi |
| Tổng quát hóa | Mũi tên tam giác đặc | Mối quan hệ cha-con | Các tác nhân hoặc chức năng chuyên biệt kế thừa đặc điểm |
Ngay cả các đội có kinh nghiệm cũng mắc sai lầm khi mô hình hóa. Hãy tránh những sai lầm này để duy trì sự rõ ràng của sơ đồ.
Không vẽ các nút cụ thể hay bố cục màn hình. Sơ đồ Trường hợp sử dụng nói về hành vi của hệ thống, chứ không phải giao diện người dùng. Tránh viết “Nhấn nút Gửi” như một trường hợp sử dụng. Thay vào đó, hãy dùng “Gửi biểu mẫu”.
Nếu bạn có hơn 10 tác nhân, sơ đồ sẽ trở nên khó đọc. Hãy nhóm chúng một cách hợp lý. Ví dụ, nếu bạn có “Quản trị viên”, “Quản lý” và “Giám sát viên”, hãy cân nhắc xem liệu chúng có thể được nhóm lại dưới “Nhân viên” nếu các trường hợp sử dụng của họ giống nhau hay không.
Phần mềm hiện đại phụ thuộc rất nhiều vào API và các dịch vụ bên thứ ba. Hãy coi những thành phần này như các tác nhân. Nếu hệ thống của bạn gửi dữ liệu đến một CRM, thì CRM đó chính là một tác nhân. Việc không ghi chép điều này sẽ dẫn đến lỗi tích hợp sau này.
Những tên như “Xử lý” hay “Quản lý” quá mơ hồ. Luôn sử dụng cấu trúc Động từ + Danh từ. “Xử lý Dữ liệu” tốt hơn “Xử lý”.
Sau khi sơ đồ được tạo, nó phải tồn tại trong quy trình làm việc. Nó không được là một tài liệu tĩnh được lưu trong thư mục. Nó cần trở thành một phần của nhịp độ hàng ngày.
Xem xét sơ đồ cùng với Người sở hữu Sản phẩm. Xác minh rằng mỗi trường hợp sử dụng đều có các câu chuyện người dùng tương ứng. Nếu một trường hợp sử dụng không có câu chuyện nào, có thể đó là một yêu cầu ảo. Nếu một câu chuyện không có trường hợp sử dụng, có thể nó nằm ngoài phạm vi.
Giữ sơ đồ dễ tiếp cận trên bảng trắng hoặc không gian làm việc kỹ thuật số của đội. Khi một nhà phát triển gặp phải sự mơ hồ trong quá trình lập trình, hãy tham khảo sơ đồ. Đường đi hiện tại có phù hợp với tương tác đã định nghĩa hay không?
Nếu đội phát hiện ra các yêu cầu mới trong giữa Sprint, hãy cập nhật sơ đồ. Tài liệu hình ảnh này giúp hiểu rõ cách phạm vi đã phát triển và lý do tại sao những quyết định nhất định được đưa ra.
Khi phần mềm phát triển, một sơ đồ duy nhất trở nên không thể đọc được. Điều này được gọi là “sự lan rộng sơ đồ”. Để quản lý điều này, hãy sử dụng gói hoặc hệ thống con.
Kết nối các gói này với nhau bằng các nhân vật chính. Điều này giúp duy trì cái nhìn cấp cao được gọn gàng, đồng thời cho phép xem chi tiết cho các lĩnh vực cụ thể.
Việc xây dựng các sơ đồ này hiếm khi là công việc đơn độc. Kết quả tốt nhất đến từ sự hợp tác. Dưới đây là cách tiếp cận điều đó cùng đội ngũ.
Cách tiếp cận hợp tác này đảm bảo rằng sơ đồ phản ánh sự đồng thuận, chứ không chỉ là cách hiểu của một người.
Làm sao bạn biết sơ đồ thực sự đang giúp ích? Hãy tìm những dấu hiệu sau.
Khi công cụ phát triển, các nguyên tắc cốt lõi vẫn giữ nguyên. Dù bạn dùng công cụ dựa trên văn bản đơn giản, bảng trắng hay môi trường mô hình hóa kỹ thuật số, mục tiêu vẫn là giao tiếp. Ngành công nghiệp đang chuyển hướng sang phát triển dựa trên mô hình, nơi mã nguồn được tạo ra từ mô hình. Dù điều này chưa phải là tiêu chuẩn cho mọi đội, nhưng kỷ luật xác định các tình huống sử dụng từ sớm sẽ chuẩn bị cho bạn cho tương lai đó.
Ngay cả khi bạn chưa bao giờ sinh mã từ một sơ đồ, hành động mô hình hóa buộc bạn phải suy nghĩ một cách nghiêm túc. Nó phơi bày những lỗ hổng logic trước khi chúng trở thành lỗi tốn kém. Trong bối cảnh Agile, đây chính là sự khác biệt giữa việc lặp lại đúng điều và lặp lại sai điều.
Xây dựng phần mềm không chỉ là viết mã; đó là giải quyết vấn đề cho con người. Một sơ đồ tình huống sử dụng đặt những con người đó vào trung tâm của quá trình thiết kế. Nó nhắc nhở đội ngũ rằng mỗi tính năng tồn tại để phục vụ mục tiêu của một người dùng.
Bằng cách tuân theo các bước được nêu trong hướng dẫn này, đội của bạn có thể rời xa việc đoán mò và bắt đầu xây dựng với sự rõ ràng. Đừng tiếp tục giả định rằng bạn biết người dùng cần gì. Hãy vẽ ra, xác minh và thực hiện với sự tự tin.
Hãy nhớ, sơ đồ là một tác phẩm sống động. Nó cần thay đổi theo sự phát triển của sản phẩm của bạn. Hãy giữ cho nó được cập nhật, hiển thị rõ ràng và luôn hữu ích. Đó chính là dấu hiệu của một thực hành kỹ thuật trưởng thành.
Áp dụng cách tiếp cận này sẽ củng cố quy trình Agile của bạn và đảm bảo sản phẩm cuối cùng thực sự đáp ứng nhu cầu người dùng mà không cần phải suy đoán.