먼저 include의 경우는. 한 유스케이스가 다른 유스케이스의 내용을 반드시 포함할 때 사용합니다.
예를 들어.
"로그인" 이라는 유스케이스와 "사용자 확인" 이라는 유스케이스가 있다고 합시다.
"로그인"은 말그대로 사용자가 자신의 ID와 Passwd를 입력하고.
시스템을 사용할 수 있는 상태가 되게 하는 유스케이스 이며.
"사용자 확인" 유스케이스는 입력된 ID와 Passwd를 이용하여
사용이 승인된 사용자인지를 검증하는 유스케이스라고 합시다.
이 경우 "로그인"이라는 유스케이스가 실행되는 도중에는
반.드.시. "사용자 확인" 이라는 유스케이스가 실행되어야 합니다.
이런 경우에 "로그인"과 "사용자 확인" 유스케이스는 include 관계에 있으며
"로그인" 유스케이스에서 "사용자 확인" 유스케이스 방향으로 association을 연결하고
<<include>> 스테레오 타입을 사용해야 합니다.
다음으로 extend는. include와 유사하지만.
반.드.시 실행되는 것은 아니지만 특정 조건에 의해서 실행될 수 있는 유스케이스를 연결할 때에 사용합니다.
앞에서 들었던 "로그인" 유스케이스의 경우 로그인 정보가 잘못되었을 경우에만
"에러처리" 유스케이스가 실행된다면
"로그인" 유스케이스에서 "에러처리" 유스케이스 방향으로 association을 연결하고
<<extend>> 스테레오 타입을 사용해야 합니다.
다시한번 정리 드리자면
1. 한 유스케이스가 실행될 때 중간에 반드시 같이 실행되어야 하는 유스케이스는 include 관계
2. 한 유스케이스가 실행될 때 조건에 의해 실행되는 유스케이스는 extend 관계