- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다.
- https://en.wikipedia.org/wiki/Use_case#Cockburn_style
- 유스 케이스 다이어그램
UML의 유스케이스 다이어그램이 유용하긴 하지만 필수적인 것은 아니다. 따라서 유스케이스 작업에 필요이상으로 몰두하면 본질을 넘어서 tool 사용에 집착하는것이 된다. 그러므로 유스케이스 다이어그램보다는 유스케이스 내용의 텍스트 작업에 정성을 쏟아야 한다.
유스케이스 다이어그램은 시스템의 영역을 나타내고 외부 세계와의 교류를 보여준다.
유스케이스 다이어그램에는 액터와 유스 케이스가 있으며 이 둘의 관계는 다음과 같다.
- 어떤 액터가 어떤 유스 케이스를 수행하는가?
- 어떤 유스케이스가 다른 유스 케이스를 포함하는가?
위 다이어그램에서 <<include>>로 표기된 부분은 해당 유스케이스를 포함한다는것이다. 위험분석이 평가를 포함(include)한다는것은 위험분석을 하기 위해서 평가기능이 반드시 동작 되어야 한다는 것을 나타낸다.
반면 포함 관계를 넘어서는 <<extend>>가 있는데, A가 B를 향하여 화살표를 향하고 extend 가 되어있다면 B 기능 수행시 A를 선택적으로 할 수 있다는 말이 된다. 하지만 마틴 파울러는 어떤 유스케이스 관계를 사용할지 옥신각신하는것은 에너지 낭비라서 extend를 깔끔히 무시하라고 하고 있다.
결국 이런 <<include>>, <<extend>> 관계를 잘 사용하는것보다 텍스트에 집중하여 유스케이스를 잘 기술해야 한다.
- 유스 케이스의 수준
사용자와 시스템의 교류에 너무 집중하다보면 문제 해결에 있어서 업무 절차를 변경하는게 더 간단한 경우가 있는데도 이를 떠올리지 못한다. 유스케이스의 종류에는 시스템 유스케이스와 비즈니스 유스케이스가 있다.
- 시스템 유스 케이스: 소프트웨어의 교류
- 비즈니스 유스 케이스: 고객이나 이벤트에 대해서 비즈니스가 어떻게 반응하는지를 나타낸것
Cockbum 은 유스 케이스 수준의 틀을 제안하였다. 아래 그림은 위키피디아 Use case 에 있는 그림이다. 아이콘을 생각해보면 수준을 쉽게 외울 수 있다. 구름 - 연 - 해수면 - 물고기 - 조개 순으로 점점 바다 깊은곳으로 들어간다.
보통 핵심 유스 케이스는 해수면 수준(sea-level) 이다. 각 수준에 따라 무엇을 의미하는지 알아보자.
- 연 수준(kite-level): 폭 넓은 수준의 비즈니스 교류에 대응, 비즈니스 유스 케이스
- 해수면 수준(sea-level): 주 액터와 시스템 간의 불연속적인 교류, 시스템 유스 케이스
- 물고기 수준(fish-level): 해수면 수준의 유스케이스가 포함하는 유스 케이스, 시스템 유스 케이스
각 수준에 따른 예시는 아래를 참고하면 더 쉽게 이해할 수 있다.
우리가 그려야하는 대부분의 유스 케이스는 해수면(sea-level) 수준의 유스 케이스 여야 한다.
'Concepts > UML' 카테고리의 다른 글
UML - 상태 기계 다이어그램 (0) | 2021.02.11 |
---|---|
UML - 유스 케이스 - 기능(스토리) (0) | 2021.02.11 |
UML - 유스 케이스 - 개요와 내용 (0) | 2021.02.10 |
UML - 배치 다이어그램 (0) | 2021.02.10 |
UML - 패키지 다이어그램 - 구현 (0) | 2021.02.10 |
댓글