Include và Extends là hai khái niệm cơ bản của UserCase Diagram. Theo đó thì:
Extend được sử dụng khi mà có một Usercase được mở rộng từ một Usercase gốc nào đó. Hay nói cách khác, khi Usercase A được thực hiện khi Usercase B hoàn thành thì Usercase A được gọi là Extend của Usercase B.
Ví dụ:
■ Để đổi được password của diễn đàn, ngầm định là không có nút changepassword ở ngoài màn hình sử dụng:
Login > View profile > Change password
Có nhiều cách viết cho bộ ba Usercase kia:
Cách thứ nhất:
・ View profile Extend Login
・ Change password Extend View profile
Cách thứ hai:
・ Login là precondition của View profile
・ Login là precondition của Change password và Change password Extend View profile
Cách viết thứ ba:
・ Login là Usercase dùng để phân role.
・ View profile là Usercase của những người dùng Inherit nhóm User
・ Change password là Usercase của những người dùng Inherit nhóm User và Change password Extend View profile
Cách viết thứ tư:
・ Change password chẳng Extend thằng nào hết, nó đơn giản là liệt kê tuần tự các bước để thay đổi được password thôi.
=> Cách viết thứ nhất thường thấy trong tài liệu Spec.
Cách viết thứ hai thường thấy trong tài liệu Detail design
Cách viết thứ ba thường thấy trong tại liệu hướng dẫn mô tả chi tiết.
Cách viết thứ tư cho thấy ý nghĩa của Extend.
Include thường được sử dụng để mô tả việc phân nhỏ một Usercase thành nhiều bản sao nhỏ. Một Usercase được vẽ là Include thì không thể được hoàn thành khi các Usercase còn của nó chưa được hoàn thành.
Ví dụ:
■ Login bao gồm 4 Usercase nhỏ là Validate data, Authen data, Create session token và Redirect.
Theo đó ta có:
・ Validate data là Include của Login
・ Authen data là Include của Login
・ Create session token là Include của Login
・ Redirect thì chả là cái gì của Login
Nhờ có Include, ta Work break down đầu việc ra nhỏ hơn, dễ plan hơn, dễ đòi tiền khách hàng hơn blad blad…