[UML Distilled] 9장
9장. 유스케이스
- 유스케이스는 시스템의 기능적인 요구 사항을 잡아내기 위한 기술이다.
- 시스템과 시스템의 사용자 간의 통상적인 교류를 기술하여 시스템이 어떻게 사용되는지를 표현한다.
- 시나리오(senario) 란 사용자와 시스템 간에 일어나는 교류를 단계적으로 나타내는 것이다.
- 유스 케이스란 공통적인 사용자의 목표에 의해서 하나로 묶인 시나리오 세트이다.
- 유스 케이스에서는 사용자를 액터(actor) 라 칭한다. 액터는 사용자가 시스템에 대해 가진 역할이다.
- 액터는 유스 케이스를 수행한다. 액터는 반드시 사람일 필요는 없다.
유스 케이스의 내용
- 유스 케이스 내용을 기입하는 방법에 표준은 없다.
- 시나리오 중에 하나를 골라서 메인 성공 시나리오(main success senario) 로서 유스 케이스 작업을 시작한다.
- 유스 케이스의 본체에는 메인 성공 시나리오의 단계에 번호를 부여해서 기록한다.
- 다른 시나리오는 확장(extension) 으로 기록한다.

그림 9.1 유스케이스 내용의 예
- 유스 케이스는 서비스를 받기 위해서 시스템을 호출하는 하나의 주 액터를 가진다.
- 주 액터란 유스 케이스가 수행하려 하는 목표를 가진 액터이다.
- 유스 케이스를 수행하는 동안 시스템과 통신하는 다른 액터를 보조(secondary) 액터라고 부른다.
- 유스 케이스의 각각의 단계는 액터와 시스템 간에 일어나는 교류의 요소 하나이다.
- 각각의 단계는 단순한 문장이어야 하며, 누가 그 단계를 수행하는지 분명하게 보여 주어야 한다.
- 단계는 액터의 의도를 표현해야 하며, 액터가 하는 행동의 절차를 나타내서는 안 된다.
- 확장이란 메인 성공 시나리오에 기술된 것과 다른 반응을 일으키게 만드는 조건이다.
- 선행 조건(pre-condition) 은 시스템이 유스 케이스를 시작하기 전에 만족시켜야 하는 조건을 말한다.
- 보장(guarantee) 은 유스 케이스가 끝나면 시스템이 어떤 것을 보장하는지를 나타낸다.
- 트리거(trigger) 는 유스 케이스를 시작하도록 하는 이벤트를 기술한다.
유스 케이스 다이어그램
- 유스 케이스 다이어그램은 유스 케이스 세트의 시각적인 목차이다.
- 유스 케이스 다이어그램에는 액터와 유스 케이스가 있으며, 다음과 같이 그들 간의 관계가 있다.
- 어떤 액터가 어떤 유스 케이스를 수행하는가
- 어떤 유스 케이스가 다른 유스 케이스를 포함하는가

그림 9.2 유스 케이스 다이어그램
유스 케이스의 수준
- 유스 케이스에서 생기는 일반적인 문제는,
사용자와 시스템 간의 교류에 집중하다 보면 업무 절차(business process)를 변경하는 것이 문제를 해결하는 가장 좋은 방법일 수 있는 상황을 모르고 넘어갈 수 있다는 것이다. - 보통 시스템 유스 케이스는 소프트웨어의 교류를 뜻하고, 비즈니스 유스 케이스는 고객이나 이벤트에 대해서 비즈니스가 어떻게 반응하는지를 나타낸다.
- 해수면 수준(sea-level) 유스 케이스는 보통 주 액터와 시스템 간의 불연속적인 교류를 표현한다.
- 해수면 수준 유스 케이스가 포함하는 유스 케이스는 물고기 수준(fish level) 유스 케이스이다.
- 더 상위에는 연 수준(kite level) 유스케이스가 있는데, 이것은 더 폭넓은 비즈니스 교류에 어떻게 대응되는지 보여준다.
- 연 수준 유스 케이스가 보통 비즈니스 유스 케이스이며, 해수면 수준 유스 케이스와 물고기 수준 유스 케이스가 시스템 유스 케이스이다.
유스 케이스와 기능(또는 스토리)
- 시스템의 기능을 요구 사항을 설명하기 위해서 사용한다.
- 유스 케이스는 액터가 시스템을 어떻게 사용하는지를 서술한다.
유스 케이스를 언제 사용하는가
- 유스 케이스는 시스템의 기능적인 요구 사항을 이해하도록 도와주는 유용한 도구이다.
- 유스 케이스가 시스템의 외형(external view) 을 나타낸다는 것을 기억하는 것이 중요하다.
- 유스 케이스를 작성할 때 다이어그램보다는 텍스트에 에너지를 집중해야 한다.
Leave a comment