본문 바로가기
Study/UML

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

by DevJaewoo 2021. 6. 18.
반응형

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

사용자(Actor)의 관점에서 시스템의 기능, 상호작용과 그들 간의 관계를 표현합니다.

 

유스케이스 다이어그램을 사용하는 이유는 다음과 같습니다.

  • 제품과 상호작용하여 얻을 수 있는 목표를 자세히 설명할 수 있습니다.
  • 시스템의 요구사항을 요약하고 정의할 수 있습니다.
  • 시스템 이벤트의 기본적인 흐름을 모델링할 수 있습니다.

구성요소

유스케이스 다이어그램 예시


시스템 (Systems)

개발하고자 하는 것 그 자체이며, 웹사이트가 될 수도 있고, 소프트웨어 컴포넌트, 애플리케이션 등 다양한 시스템이 될 수 있습니다.

 

시스템의 범위를 정의하며 흐름이 일어나는 영역의 경계를 정의합니다. 

좀 더 쉽게 설명하자면 사각형 범위 안에 있는 흐름은 시스템 안에서만 일어나고, 범위 밖에 있는 흐름은 시스템 안에서 일어나지 않습니다.

 

사각형의 형태로 표시하고, 상단에 시스템의 이름을 정의합니다.

예시에선 파란색 사각형이 시스템에 해당하는 영역입니다.


액터 (Actors)

시스템 외부에서 시스템과 상호작용하여 특정한 목적을 취하는 객체를 뜻합니다.

액터는 사람이 될 수도 있고, 회사, 다른 시스템, 또는 외부 장비가 될 수도 있습니다.

 

액터는 반드시 하나 이상의 유스케이스들과 상호작용해야 합니다.

또한 액터 이름은 개인적이거나 무언가를 특정해서 지정하면 안 됩니다.

Ex) John, Chase Bank (X) -> Customer, Bank (O)

 

 

액터에는 두 가지 종류가 있습니다.

1. 프라이머리 액터 (Primary Actor) : 시스템을 사용하고, 직접 이득을 보는 액터이며 졸라맨으로 표기합니다. 보통 시스템의 왼쪽에 표시합니다.

 

2. 세컨더리 액터 (Secondary Actor) : 프라이머리 액터가 목적을 달성하기 위해 도움을 주는 액터이며 사각형 박스에 <<actor>>를 입력하여 표기합니다. 보통 시스템의 오른쪽에 표시합니다.

 

예시의 노란색 객체에 해당합니다.


유스케이스 (Use Cases)

시스템 내에서 일련의 작업을 수행하기 위한 행위들을 나타내며, 타원형으로 표기합니다.

Ex) 은행 앱의 경우 로그인, 잔고 확인, 환전, 결제 등이 될 수 있습니다.

 

예시의 빨간색 타원들에 해당합니다.

반응형

관계 (Relationships)

선 또는 화살표로 나타내며, 이어진 2개의 액터 또는 유스케이스들이 서로 상호작용함을 나타냅니다.

 

관계는 총 4가지 종류가 있습니다.

 

1. 연관 관계 (Association)

유스케이스와 액터 사이에 상호작용이 있다는 뜻으로, 실선으로 표시합니다.

 

예시)

연관관계 예시

사용자는 로그인과 결제 모두를 수행하지만, 은행은 로그인 과정에 관여하지 않아도 됩니다.

때문에 사용자는 로그인과 결제 모두와 연관 관계를 가지며, 은행은 결제에만 연관 관계를 가집니다.

 

2. 포함 관계 (Include)

포함 관계는 두 개의 유스케이스 간의 의존성을 나타냅니다.

하나의 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 반드시 실행되어야 한다는 뜻을 가지고 있습니다.

기존의 유스케이스에서 포함된 유스케이스 방향을 가리키는 점선 화살표를 그리고, <<include>>를 화살표 중앙에 표시합니다.

 

예시)

포함관계 예시

사용자가 로그인 작업을 수행할 때마다 비밀번호를 항상 확인해야만 합니다.

이런 경우 비밀번호 확인이 로그인에 포함되었다고 볼 수 있고, 로그인 유스케이스에서 비밀번호 확인 유스케이스 방향으로 화살표를 그린 후 중앙에 <<include>>를 표시하여 포함 관계를 나타냅니다.

 

3. 확장 관계 (Extend)

확장 관계는 두개의 유스케이스 간의 확장성을 나타냅니다.

하나의 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 특정 상황에서만 실행된다는 뜻을 가지고 있습니다.

확장된 유스케이스에서 기존의 유스케이스 방향을 가리키는 점선 화살표를 그리고, <<extend>>를 화살표 중앙에 표시합니다.

 

예시)

확장관계 예시

사용자가 로그인 작업을 수행할 때마다 로그인 에러를 출력하진 않습니다.

로그인 에러 출력은 오직 잘못된 비밀번호를 입력한 상황에서만 실행됩니다.

이런 경우 로그엔 에러 출력이 로그인의 확장 관계에 있다고 볼 수 있고, 로그인 에러 출력 유스케이스에서 로그인 유스케이스 방향으로 화살표를 그린 후 중앙에 <<extend>>를 표시하여 포함 관계를 나타냅니다.

 

4. 일반화 관계 (Generalization)

일반화 관계는 부모 유스케이스와 자식 유스케이스들 간의 상속관계를 나타냅니다.

특정 유스케이스들이 하나의 유스케이스의 특수화된 유스케이스라는 뜻을 가지고 있습니다.

자식 유스케이스에서 부모 유스케이스 방향으로 삼각형 실선 화살표를 그립니다.

 

확장 관계와의 차이점

일반화 관계에 있는 자식 유스케이스들은 부모의 속성들을 물려받기 때문에, 부모 유스케이스가 해당된 모든 포함, 확장 관계를 만족해야 합니다.

반면에 확장 관계에 있는 유스케이스는 속성을 물려받은 것이 아니므로, 기존 유스케이스와 다른 유스케이스와의 관계를 만족하지 않아도 됩니다.

 

예시)

일반화관계 예시

체크카드로 결제와 무통장입금 결제는 결제 유스케이스와 특수화 관계에 있습니다.

때문에 체크카드와 무통장입금 결제는 결제 유스케이스와 일반화 관계에 있다고 볼 수 있습니다.

 

체크카드와 무통장입금은 결제와 일반화 관계에 있기 때문에 해당 유스케이스들이 실행될 시 부모 유스케이스와 포함 관계에 있는 잔액 확인 유스케이스를 실행해야만 하고, 실패 시 확장 관계에 있는 잔액 부족 알림을 실행해야 합니다.

 

하지만 잔액 부족 알림 유스케이스는 결제와 일반화 관계가 아닌 확장 관계이기 때문에, 결제와 포함 관계인 잔액 확인 유스케이스와 포함관계에 있지 않습니다.

반응형

작성 순서

1. 시스템 정의

시스템 영역과 이름을 정의합니다.

2. 액터 정의

사용자 (Primary Actor)를 정의합니다.

시스템과 상호작용하는 외부 시스템 (Secondary Actor)를 정의합니다.

3. 유스케이스 정의

Actor가 요구하는 서비스를 식별합니다.

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

4. 관계 정의

Actor와 Actor 사이의 관계를 정의합니다.

Actor와 유스케이스 사이의 관계를 정의합니다.

유스케이스 간의 관계를 정의합니다.

5. 유스케이스 구조화

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


참고자료

 

반응형

'Study > UML' 카테고리의 다른 글

[UML] UML (Unified Modeling Language) 이란?  (0) 2021.06.18