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를 선택적으로 수행한다.
'CS > 소프트웨어공학' 카테고리의 다른 글
SOLID (2) | 2024.07.23 |
---|---|
No Silver Bullet - Essence and Accident in Software Engineering 논문 요약 (4) | 2024.07.23 |
[소프트웨어공학] Chapter 02 - Software Process Models (0) | 2024.04.09 |
[소프트웨어공학] Chapter 01 - Introduction to SE (1) | 2024.04.03 |