본문 바로가기
개발

[개발] Use Case 다이어그램 이란??

by chan10 2021. 4. 22.

유스케이스(Use Case) 다이어그램

시스템과 사용자의 상호작용을 다이어그램으로 표현한 것으로, 사용자의 관점에서 시스템의 서비스, 기능, 외부와의 관계에 대해서 다이어그램으로 표현한 것을 말합니다.

 

사용자(액터)가 시스템 내부에 있는 기능 중에 어떤 기능을 사용할 수 있는지를 나타내는 것으로 사용자와 시스템 사이의 관계를 간략하게 표현할 수 있는 장점이 있습니다.

 

유스케이스 다이어그램은 프로젝트에 대한 요구사항을 정의하고 세부사항을 분석하여 개발 범위를 정의할 때 작성합니다. 유스케이스 작성 시 주의할 점은 설계가 아닌 분석을 위해 작성하기에 사용자의 관점 즉, 외부적 관점에서 작성되어야 합니다.

 

구성요소

1) 시스템

-   현재 개발할 프로그램을 나타내며 유스케이스들을 둘러쌓아 사각형으로 표기합니다.

 

2) 액터

1. 사용자(프라이머리) 액터

시스템을 사용하는 주체가 되는 액터이며 사람 형태의 모형으로 표기합니다. 시스템의 왼쪽에 그리며 하단 또는 상단에 액터의 역할을 작성해줍니다.

 

2. 시스템(세컨더리) 액터

시스템의 기능 수행을 위해 연동이 되는 또 다른 시스템을 말합니다. 시스템의 오른쪽에 그리며 마찬가지로 액터의 역할을 작성해줍니다.

 3) 유스케이스

사용자의 입장에서 바라본 시스템의 기능들을 정의합니다. 시스템의 요구사항을 타원형으로 표기합니다.

 4) 관계

액터와 유스케이스 사이의 관계를 나타냅니다.

관계는 연관(Association), 의존(Dependency), 일반화(Generalization)-상속관계로 나타내며 의존 관계는 포함(include), 확장(Extend)관계로 나눠집니다.

 

4-1) 연관(Association)관계

액터와 유스케이스 간의 상호작용이 있음을 나타내며 실선으로 표기합니다.

 4-2) 의존(Dependency)관계

   4-2-1 포함(include)

유스케이스와 유스케이스 사이에 정의되는 관계로 한 유스케이스의 실행이 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계입니다.

포함되는 유스케이스는 공통 서비스를 가진 존재입니다.

포함하는 유스케이스에서 포함되는 유스케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기합니다.

  4-2-2 확장(Extend)

확장 대상 유스케이스에 부가적인(확장 기능) 유스케이스를 실행할 수 있을 때의 관계로 확장 기능 유스케이스와 확장 대상 유스케이스 사이에 형성됩니다.

포함관계와 동일하게 서비스 수행을 요청하는 관계이나 서비스 수행이 필수는 아닙니다. (옵션)

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

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

클래스의 상속과 비슷한 의미로 유사한 유스케이스 또는 액터를 그룹화시켜 이해도를 높이기 위해 표현하는 관계입니다.

구체적인 유스케이스에서 추상적인 유스케이스로 화살표를 그리고 실선으로 표기합니다.

작성순서

1) 액터 식별

시스템을 사용하게 되는 모든 사용자와 상호작용하는 외부 시스템을 식별합니다.

액터를 식별을 하기 위한 질문은 다음과 같습니다.

- 누가 정보를 제공하고, 사용하고, 삭제하는가?

- 누가 또는 어떤 조직에서 개발될 시스템을 사용할 것인가?

- 누가 요구사항에 대해 관심을 가지고, 시스템이 만들어낸 결과에 관심이 있는가?

- 누가 시스템이 잘 운영될 수 있도록 유지보수 및 관리를 하는가?

- 개발될 시스템과 상호작용하는 하드웨어나 소프트웨어 시스템은 무엇인가?

 

2) 유스케이스 식별

사용자(액터)가 요구하는 서비스를 식별하고 사용자가 시스템과 상호작용하는 행위를 식별합니다.

식별한 사항을 확인하여 모두 유스케이스로 나타낼 수 있어야합니다.

유스케이스를 식별하기 위한 질문은 다음과 같습니다.

- 액터가 원하는 시스템 제공 기능은 무엇인가?

- 액터는 시스템에 어떤 정보를 생성, 수정, 조회, 삭제하고 싶어 하는가?

- 모든 기능 요구사항들을 만족할 수 있도록 유스케이스가 모두 식별되었는가?

 

3) 관계 정의

액터와 액터, 액터와 유스케이스, 유스케이스와 유스케이스 간의 관계를 정의합니다.

일반화, 연관관계를 정의하고 유스케이스 간의 포함, 확장 관계를 정의합니다.

관계를 식별하기 위한 질문은 다음과 같습니다.

- 연관 관계: 액터와 유스케이스 간에 상호 작용이 존재하는가?

- 포함 관계: 유스케이스를 실행하기 위하여 반드시 실행되어야 하는 유스케이스가 존재하는가?

- 확장 관계: 유스케이스를 실행함으로써 선택적으로 실행되는 유스케이스가 존재하는가?

- 일반화 관계: 액터 또는 유스케이스가 구체화된 다른 액터 또는 유스케이스를 가지고 있는가?

 

[참고사이트]

https://googry.tistory.com/2

https://narup.tistory.com/70

 

'개발' 카테고리의 다른 글

[개발] 기능 정의서 개요  (0) 2021.05.10
UML(Unified Modeling Language)다이어그램 이란??  (0) 2021.04.15
소프트웨어 생명 주기(Software Life Cycle)  (0) 2021.04.13
MVC패턴이란?  (0) 2021.04.07