늦은 프로그래밍 이야기
Use Case Diagram (유스케이스) 본문
ㅈUse Case Diagram
- 사용자(Actor)의 관점에서 시스템의 기능, 상호작용과 관계를 표현
목적
- 제품과 상호작용 하여 얻을 수 있는 목표를 자세히 설명
- 시스템의 요구사항을 요약하고 정의
- 시스템 이벤트의 기본적인 흐름을 모델링
구성요소
시스템 (Systems)
- 개발하고자 하는 것 그 자체
- 웹사이트, 소프트웨어 컴포넌트, 애플리케이션 등 다양한 시스템이 될 수 있다.
- 시스템 범위를 정의하며 흐름이 일어나는 영역의 경계를 정의
- 사각형의 형태로 표시하고, 상단에 시스템의 이름을 정의
액터 (Actors)
- 시스템 외부에서 시스템과 상호작용하여 특정한 목적을 취하는 객체
- 사람이 될 수도 있고, 회사, 다른 시스템, 외부 장비가 될 수도 있다.
- 반드시 하나 이상의 유스케이스들과 상호작용해야 한다.
- 액터 이름은 개인적이거나 무언가를 특정해서 지정하면 안 된다.
- 프라이머리 액터 (Primary Actor)
- 시스템을 사용하고 효용을 보는 액터이며 졸라맨으로 표기.
- 보통 시스템의 왼쪽에 표시
- 세컨더리 액터 (Secondary Actor)
- 프라이머리 액터가 목적을 달성하기 위해 도움을 주는 액터
- 사각형 박스에 <<actor>>를 입력하여 표기
- 보통 시스템의 오른쪽에 표시
유스케이스 (Use Cases)
- 시스템 내에서 일련의 작업을 수행하기 위한 행위
- 타원형으로 표기
관계 (Relationships)
- 선 또는 화살표로 나타내며, 이어진 2개의 액터 또는 유스케이스들이 서로 상호작용함을 나타냄
- 연관 관계 (Association)
- 유스케이스와 액터 사이에 상호작용이 있다는 뜻
- 실선으로 표시

- 포함 관계 (Include)
- 두개의 유스케이스 간의 의존성을 나타낸다
- 하나의 유스케이스가 실행될 때 포함관계에 있는 유스케이스가 반드시 실행되어야 한다
- 기존의 유스케이스에서 포함된 유스케이스 방향을 가리키는 점선 화살표를 그리고, <<include>>를 화살표 중앙에 표시

- 확장 관계 (Extend)
- 유스케이스 간의 확장성을 나타낸다
- 하나의 유스케이스가 실행될 때 포함관계에 있는 유스케이스가 특정 상황에서만 실행된다는 뜻
- 확장된 유스케이스에서 기존의 유스케이스 방향을 가리키는 점선 화살표를 그리고, <<extend>>를 화살표 중앙에 표시

- 일반화 관계 (Generalization)
- 부모 유스케이스와 자식 유스케이스들 간의 상속관계
- 특정 유스케이스들이 하나의 유스케이스의 특수화된 유스케이스라는 뜻
- 자식 유스케이스에서 부모 유스케이스 방향으로 삼각형 실선 화살표를 그린다
- 자식 유스케이스들은 부모의 속성들을 물려받기 때문에, 부모 유스케이스가 해당된 모든 포함, 확장 관계를 만족해야 한다.

작성 순서
시스템 정의
- 시스템 영역과 이름을 정의한다.
액터 정의
- 사용자 (Primary Actor)를 정의한다.
- 시스템과 상호작용하는 외부 시스템 (Secondary Actor)를 정의한다.
유스케이스 정의
- 액터가 요구하는 서비스를 식별한다.
- 액터들이 시스템과 상호작용하는 행위를 식별한다.
관계 정의
- 액터와 액터 사이의 관계를 정의한다.
- 액터와 유스케이스 사이의 관계를 정의한다.
- 유스케이스 간의 관계를 정의한다.
유스케이스 구조화
- 두개 이상의 유스케이스의 공통된 서비스를 추출하여 일반화 시킨다.
출처 : https://devjaewoo.tistory.com/15
[UML] 유스케이스 다이어그램 (Use-case Diagram)
아래의 영상과 글을 참고하여 작성하였습니다. https://m.blog.naver.com/ljh0326s/221001892737 https://www.youtube.com/watch?v=zid-MVo7M-E https://gnaseel.tistory.com/22 유스케이스 다이어그램이란? 사용자(Actor)의 관점에서
devjaewoo.tistory.com