코딩못하는사람

유스케이스 다이어그램 본문

C.S 지식정리

유스케이스 다이어그램

공부절대안함 2021. 4. 29. 07:34

유스케이스 다이어그램이란?

시스템에서 제공해야 하는 기능이나 서비스를 명세한 다이어그램.
사용자의 관점에서 시스템의 서비스 혹은 기능 및 그와 관련한 외부 요소를 보여준다.

외부에서 본 시스템의 기능을 표현하기 때문에, 실제 내부의 비즈니스 로직이 아닌, 사용자가 수행하는 기능을 파악하고 싶을 때 작성한다.

사용목적

  • 고객과 개발자가 요구사항에 대한 의견을 조율
  • 프로젝트에 대한 요구사항을 정의하고 세부기능을 분석하여 개발 범위 정립

구성요소

유스케이스 다이어그램은시스템(System), 액터(Actor), 유스케이스(Usecase), 관계(Relation)로 구성되어 있다.

 

1.System

만들고자 하는 프로그램 명칭을 나타낸다.

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

https://googry.tistory.com/2

2.Actor

Actor은 두가지 종류로 나눌 수 있다.

primary actor-시스템 외부에서 시스템과 상호작용을 하는 사람(사용자)

secondary actor-시스템에 필요한 기능을 제공하기 위해 상호작용하는 시스템(예를 들어 API)

primary actor는 졸라맨으로 표시하고 secondary actor는 <<actor>>를 기재한 박스로 나타내거나 외부시스템이라고 명시해준다.

 

3.UseCase

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

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

타원으로 표시하고 안쪽에 유스케이스명을 작성한다.

유스케이스명은 "~한다"와 같이 동사로 표현한다.

https://googry.tistory.com/2

 

4) Relation

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

종류는 연관(Association), 일반화(Generalization)이 있으며 의존관계는 포함(Include), 확장(Extend)로 나눠진다.

 

연관(Association)

연관은 Actor와 usecase간의 상호작용이 있다는 것을 의미한다.

실선으로 표기한다.

https://googry.tistory.com/2

일반화(Generalization)

우리가 생각하는 상속의 개념이다. 유사한 유스케이스나 액터를 추상화 시켜서 이해도를 높인 것이다.

구체화된 유스케이스에서 추상 유스케이스로 화살표를 실선으로 찔러 표현한다.

https://googry.tistory.com/2

포함(Include)

해당 유스케이스가 실행되기 전 반드시 전제되어야 하는 유스케이스를 표현할 때 사용된다.

전제가 필요한 유스케이스에서 전제되는 유스케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기한다.

https://googry.tistory.com/2

확장(Extend)

유스케이스에서 특정 조건이 만족될 때 추가적으로 실행되는 유스케이스이다.

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

예를들어 글을 등록할 때 이미지를 추가적으로 첨부할 수 도 있고 안해도 상관없다.

https://googry.tistory.com/2

 

작성 순서

 1. 액터 식별 2. 유스케이스 식별 3. 관계 정의.

 

고려할 점

usecase diagram을 흐름도 처럼 작성하면 안된다.

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

 

include를 문어발처럼 사용하지 말자.

include된 유즈케이스도 기능이기 때문에 액터에서 뻗어나가는 기능으로도 표현할 수 있다는 뜻이다.
여러 유즈케이스에서 사용하는 공통적인 기능이 아니고, 액터에서 뻗어나가는 것이 가장 이상적이다.

 

StarUML이라는 프로그램을 통해 UML을 편리하게 작성할 수 있다.

 

이번에 만들 프로젝트의 UseCase를 간단하게 작성해보았다.

 

공부한 곳

gnaseel.tistory.com/22

googry.tistory.com/2

'C.S 지식정리' 카테고리의 다른 글

NoSQL이란  (0) 2021.12.22
nginx로 로드밸런싱 해보기  (0) 2021.09.10
Redis란? (우아한 Redis 강연)  (0) 2021.07.31
[UML] 클래스 다이어그램  (0) 2021.04.29
서버 성능 테스트/ jmeter  (0) 2021.04.18
Comments