UML 유스케이스 다이어그램

김태현·2023년 10월 4일
post-thumbnail

UML이란?

UML은 Unified Modeling Language의 약자로 소프트웨어 및 시스템 개발을 위한 표준회된 시각화 언어입니다. UML은 객체지향 소프트웨어 개발에서 자주 사용되며, 시스템의 구조, 동작 및 아키텍처를 모델링하고 문서화하기 위한 도구로 활용됩니다.

UML 구성요소

다이어그램(Diagram)

UML은 다양한 종류의 다이어그램으로 표현할 수 있습니다. 각각의 다이어그램은 시스템 여러가지 측면을 표현합니다. 대표적으로 클래스 다이어그램, 시퀀스 다이어그램, 유스케이스 다이어그램 등이 있습니다.
여러가지 다이어그램들 중 유스케이스 다이어그램을 활용하여 현재 진행중인 프로젝트 구조를 시각화했습니다.

요소(Element)

UML 다이어그램에서 사용되는 객체, 클래스, 인터페이스, 관계, 메시지 등의 요소를 정의합니다.

관계(Relationship)

UML은 객체 간의 관계를 표현하기 위한 다양한 관계 유형을 제공한다. 연관관계, 일반관계, 의존성 관계 등이 있습니다.

액터(Actor)

유스케이스 다이어그램에서 시스템 외부에서 시스템과 상호작용 하는 역할을 나타내는 요소이다. 사용자, 외부 시스템 등이 액터로 표현됩니다.

유스케이스(Use Case)

사용자 또는 시스템의 행동을 정의하고 설명하는 요소이다. 시스템의 기능적인 측면을 모델링하는 데 사용됩니다.

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

유스케이스 다이어그램은 사용자(Actor)의 관점에서 시스템의 기능, 인터렉션을 표현합니다.

유스케이스 다이어그램의 목적

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

유스케이스 다이어그램 구성요소

유스케이스 다이어그램의 구성요소로 시스템(System), 액터(Actor), 유스케이스(Use Case), 관계(Relation)가 있습니다.

시스템(System)

시스템은 개발하는것 그 자체입니다. 쉽게말해 애플리케이션 또는 웹 등이 시스템이 될 수 있습니다.
시스템의 범위를 정의하여 흐름이 일어나는 영역에 대한 경계를 정의해야합니다.
아래 이미지에서 빨간색 주황색 범위 안에 있는 흐름은 시스템 안에서만 일어나야 하고, 범위 밖에 있는 흐름은 시스템 내부에서 일어나면 안됩니다.
사각형의 형태로 표시하고 상단에 시스템의 이름을 정의합니다.

액터(Actor)

시스템 외부에서 시스템과 상호작용하며 특정한 목적을 취하는 객체를 의미합니다.
액터는 사람이 될 수도 있고, 회사, 다른 시스템 등이 될 수 있습니다.
액터는 반드시 하나 이상의 유스케이스와 상호작용 해야합니다.

Actor의 종류

액터에는 두 가지 종류가 있습니다.
1. 프라이머리 액터(Primary Actor): 시스템을 직접 사용하는 객체입니다. 시스템의 왼쪽에 위치합니다.
2. 세컨더리 액터(Secondary Actor): 프라이머리 액터의 목적을 달성하기 위해 도움을 주는 액터이며, 사각형 박스에 <<actor>>를 입력하여 표기할 수 있습니다. 보통 시스템의 오른쪽에 위치합니다.

유스케이스(Use Case)

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

관계(Relation)

액터와 유스케이스, 유스케이스와 유스케이스 등의 관계를 나타냅니다.
관계는 연관(Assosiation), 의존(Dependency), 일반화(Generalization)가 있으며, 의존 관계는 다시 포함(Include)와 확장(Extend)로 나뉩니다.

연관관계

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

포함관계

특정 유스케이스는 다른 유스케이스가 실행되었다는 것이 전제가 되어야 합니다. 해당 프로젝트를 예시로 들면 상품 등록 유스케이스는 사용자 인증 유스케이스가 반드시 실행되어야 상품 등록을 할 수 있습니다.

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

해당 프로젝트에서 화살표는 생략했습니다.

확장관계

확장기능 유스케이스와 확장대상 유스케이스 사이에 형성되는 관계입니다. 즉 특정 유스케이스에 부가적인 유스케이스를 실행할 수 있을 때의 관계입니다. 해당 프로젝트를 예시로들면, 상품목록조회 유스케이스에서 부가적으로 상품상세조회 기능을 확장할 수 있기 때문에 확장관계로 표시할 수 있습니다.

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

해당 프로젝트에서 화살표는 생략했습니다.

일반화관계

추상화된 액터나 유스케이스를 그룹화시켜 이해도를 높이기 위해 사용하는 관계입니다.

구체적인 유스케이스에서 추상적인 유스케이스 방향으로 실선화살표를 연결합니다.

해당 프로젝트에서 화살표는 생략했습니다.


상품목록조회상품검색에서 상품상세조회를 부가적으로 실행할수 있기 때문에 확장관계로 표기했습니다. 확장하는 상품 상세 조회 유스케이스에서 대상 유스케이스 방향으로 점선을 연결하고 <<extend>>라고 표기합니다.

상품주문, 결제, 장바구니 상품담기, 장바구니 상품 삭제, 찜목록 상품 담기, 찜목록 상품 삭제가 실행되기 위해서는 사용자 인증 실행이 전제되어야 합니다. 즉 사용자인증 유스케이스가 다른 유스케이스를 포함하는 것이고, 포함하는 유스케이스에서 포함되는 유스케이스 방향으로 점선 화살표를 연결하고 <<include>>라고 표기했습니다.

profile
안녕하세요. Java&Spring 기반 백엔드 개발자 김태현입니다.

0개의 댓글