Hai quan hệ này giống nhau ở chỗ đều tách một phần hành vi ra khỏi use case gốc, nhưng khác ở tính bắt buộc và hướng phụ thuộc.
include — luôn xảy ra
Use case gốc luôn gọi tới use case được include; phần được tách ra là bước bắt buộc và thường dùng chung cho nhiều use case.
> "Đặt hàng" include "Xác thực người dùng". Không xác thực thì không đặt được.
extend — có điều kiện
Use case mở rộng chỉ chạy khi thoả một điều kiện, tại một điểm mở rộng xác định trong use case gốc. Bỏ phần mở rộng đi thì use case gốc vẫn hoàn chỉnh.
> "Đặt hàng" được extend bởi "Áp mã giảm giá" — chỉ chạy khi người dùng có nhập mã.
Hướng mũi tên: include trỏ từ use case gốc tới use case được dùng lại; extend trỏ ngược, từ use case mở rộng về use case gốc. Đây là chi tiết hay bị hỏi lại để kiểm tra bạn có thực sự vẽ hay chỉ học thuộc.
Lưu ý thực tế: lạm dụng hai quan hệ này làm sơ đồ khó đọc mà không thêm thông tin cho bên nghiệp vụ. Nhiều nhóm chỉ dùng include cho phần dùng lại rõ ràng, còn các nhánh có điều kiện thì mô tả trong luồng thay thế của đặc tả thay vì vẽ ra sơ đồ.