본문 바로가기
Study/UML

[UML] 유스케이스 다이어그램(Use Case Diagram)

by 스테디코디스트 2023. 10. 6.
반응형

<유스케이스 다이어그램>

- 시스템과 사용자의 상호작용을 다이어그램으로 표현한 것이다.

- 사용자의 관점에서 시스템의 서비스, 기능 및 그와 관련한 외부와의 관계를 보여준다.

- 프로젝트에 대한 요구사항을 정의하고 세부기능을 분석하여 개발 범위를 정할 때 작성한다.

 

<구성 요소>

1) 시스템(System)

- 만들고자 하는 프로그램을 나타냄

- 유스케이스들을 둘러싼 사각형 틀로 시스템 명칭을 안쪽 상단에 작성한다.

 

2) 액터(Actor)

- 시스템의 외부에 있고 시스템과 상호작용을 하는 사람(시스템의 기능을 사용하는 사람), 시스템(시스템에 정보를 제공하는 또 다른 시스템)을 말한다.

- 원과 선을 조합하여 사람모양으로 표현

- 액터명은 위나 아래에 표시하여 액터의 역할을 작성

 

3) 유스케이스(Usecase)

- 사용자 입장에서 바라본 시스템의 기능

- 시스템이 액터에게 제공해야 하는 기능으로 시스템의 요구사항을 나타낸다.

- 타원으로 표시하고 안쪽에 유스케이스명을 작성한다.(보통 "~한다"와 같이 동사로 표현한다.)

 

4)  관계(Relation)

- 액터와 유스케이스 사이의 의미있는 관계를 나타낸다.

- 종류로는 연관, 의존, 일반화가 있으며 의존관계는 포함,확장으로 나눠진다.

 

4-1) 연관관계(Association)

- 유스케이스와 액터간의 상호작용이 있음을 표현한다.

- 유스케이스와 액터를 실선으로 연결

4-2) 의존관계(Dependency)

1. 포함관계(include)

- 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계

- 포함되는 유스케이스는 포함하는 유스케이스를 실행하기 위해 반드시 실행되어야 하는 경우에 적용한다.

- 포함하는 유스케이스에서 포함되는 유스케이스 방향으로 점선으로 연결 후 <<include>> 라고 표기한다.

2. 확장관계(extend)

- 확장 기능 유스케이스와 확장 대상 유스케이스 사이에 형성되는 관계

- 확장 대상 유스케이스를 수행할 때 특정 조건에 의해서만 확장 기능 유스케이스를 수행하는 경우에 적용한다.

- 확장 기능 유스케이스에서 확장 대상 유스케이스 방향으로 화살표를 점선으로 연결하고 <<extend>> 라고 표기한다.

4-3) 일반화 관계(Generalization)

- 유사한 유스케이스나 액터를 모아 추상화한 유스케이스

- 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계

- 구체적인 유스케이스에서 추상적인 유스케이스 방향으로 끝부분이 삼각형으로 표현된 화살표를 실선으로 연결하여 표현

 

<작성 순서>

1. 시스템 정의

- 시스템 영역과 이름을 정의한다.

 

2. 액터 정의

- 사용자(Primary Actor)를 정의한다.

- 시스템과 상호작용하는 외부 시스템(Secondary Actor)을 정의한다.

 

3. 유스케이스 정의

- Actor가 요구하는 서비스를 식별한다.

- Actor들이 시스템과 상호작용하는 행위를 식별한다.

 

4. 관계 정의

- Actor와 Actor 사이의 관계를 정의한다.

- Actor와 유스케이스 사이의 관계를 정의한다.

- 유스케이스 간의 관계를 정의한다.

 

5. 유스케이스 구조화

- 두 개 이상의 유스케이스의 공통된 서비스를 추출하여 일반화시킨다.

 

<주의사항>

- 유스케이스 다이어그램은 흐름도가 아니므로 기능의 순서대로 그리면 안됨

- 모든 기능은 액터가 수행할 수 있는 개별 기능으로 봐야하고, 순서는 꼭 필요한 경우만 include, extend의 용번에 맞춰서 사용해야한다.

- inclue를 문어발처럼 사용하면 안됨

- include된 유스케이스도 기능이므로, 액터에서 뻗어나가는 기능으로도 표현할 수 있다.

- 여러 유스케이스에서 사용하는 공통적인 기능이 아니고, 액터에서 뻗어나가는 것이 가장 이상적이다.