CS/소프트웨어공학

[소프트웨어공학] Use Case Diagram - Generalization, Include, Extend Relation

@~@ 2024. 4. 14. 17:47

1. Use Case

2. Relation - Generalization

화살표 방향: 구체적인 actor or use case -> 추상적인 actor or use case

 

(1) actor간 Generalization

- 자식 actor는 부모 actor의 동작과 모든 use case를 상속 받는다.

- 하위 actor는 특정한 하나 이상의 use case가 있다.(상위 actor한테 상속 받은 use case가 있을 테니까)

 

(2) use case간 Generalization

- base use case는 구현되지 않는다. (-> 대신 구체화된, 파생된 use case가 있음)

- Substituability(대체 가능성):  runtime에서 base use case는 파생된 use case 중 하나로 변환된다.

 

- Pay: base use case

- Pay by Credit Card, Pay in Cash: 파생된 use case

- 위 그림은 Pay 방법을 신용카드 결제와 현금 결제로 구체화한 것을 나타낸다.

 

3. Relation - Include

화살표 방향: A -> B

A가 B를 포함한다. A를 실행하기 위해서는 B가 반드시 먼저 실행되어야 한다.

 

- Include는 여러 use case에서 공통된 action을 재사용하기 때문에, 혹은 복잡한 action을 단순화하기 위해 사용한다.

- 여러 base use case 중에 공통된 action을 포함하는 use case를 정의한다.

- base use case는 항상 포함된 use case를 호출한다.

 

- Check Out, Add Driver action을 수행하기 위해서는 Driver License 검사가 반드시 선행되어야 한다.

- 즉, 위 그림에서 Check Out, Add Driver는 Validate Driver License를 포함한다. 

 

4. Relation - Extend

화살표 방향: A(확장 대상, extended) <- B(확장 기능, extending)

B extend A

B(확장 기능)는 A(확장 대상)를 확장한다. 

A를 수행할 때 특정 조건에 따라 B를 수행한다.

 

- 확장 기능 use case(B)는 특정 조건이 충족 되는 상황에서만 호출된다. 

- A를 수행할 때 특정 조건에 따라 B를 수행한다.

- B는 선택적으로 수행된다.

- A는 그 자체로 의미있어야 한다.

 

위 그림에서 Return Car(A)를 수행할 때, 만약 사용 시간을 초과했다면 사용자는 추가금을 내야할 것이고 Pay Additional Fee(B)가 수행될 것이다. 즉, A를 수행할 때 B를 선택적으로 수행한다.