유즈케이스(Usecase) 다이어그램
Drawing usecase diagram
유즈케이스 다이어그램이란?
정의 및 목적
- 유즈케이스 다이어그램은 사용자 간의 상호동작(interaction)을 표현
- 사용자가 수행할 수 있는 기능
- 사용자와 시스템간의 상호동작 관계
- 기능간의 상호동작 관계
- 사용자와 다른 사용자간의 상호동작 관계
- 다른 사용자란 시스템상에서 정의된 서로 다른 타입의 사용자를 의미
- 예로, 서비스 사용자와 시스템 관리자 또는 판매자와 구매자 등을 의미
- 다른 사용자란 시스템상에서 정의된 서로 다른 타입의 사용자를 의미
유즈케이스 다이어그램
- 간단한 온라인 식물 쇼핑몰에 대한 유즈케이스 다이어그램 예제

유즈케이스 다이어그램 그리기
- Plant UML 을 이용하여 간단하게 그릴 수 있음.
사용자 및 기능 정의
- 시스템 관점에서의 사용자 타입 정의
- 각 사용자 관점에서의 기능 정의
@startuml
skinparam backgroundcolor transparent
:서비스 사용자: as user << User >>
:시스템 관리자: as adm << Admin >>
(회원가입) as su
(로그인) as si
(식물구경) as po
(식물구매) as pp
(장바구니) as bk
(식물업로드) as pu
(결제) as pay
(결제내역 확인) as pl
(배송 조회) as delivery
@enduml

문법 설명
skinparam backgroundcolor transparent
는 배경색을 투명으로 설정:사용자 타입:
콜론을 중심으로 사용자의 이름을 입력as xx
는 정의된 사용자를 뒤에서는xx
라는 키워드로 사용<< type >>
추가적인 사용자에 대한 설명skinparam
을 통해서 이 타입에 따라 스타일 적용 가능
(기능이름)
괄호 안에 기능 이름을 입력as xx
는 정의된 사용자를 뒤에서는xx
라는 키워드로 사용
기능 카테고리 정의
- 기능을 카테고리화 하여 추상화
- 전체 기능의 관계나 사용자 관점에서의 큰 그림을 잘 보기 위한 목적
@startuml
skinparam backgroundcolor transparent
:서비스 사용자: as user << User >>
:시스템 관리자: as adm << Admin >>
rectangle "사용자 관리" {
(회원가입) as su
(로그인) as si
}
rectangle "식물 관리" {
(식물구경) as po
(식물구매) as pp
(장바구니) as bk
(식물업로드) as pu
}
rectangle "주문 관리" {
(결제) as pay
(결제내역 확인) as pl
(배송 조회) as delivery
}
@enduml

문법 설명
rectangle
은 박스를 그려주며, 안에 기능을 정의할 수 있도록 함.
사용자와 기능간의 관계 정의
- 각 사용자 관점에서 어떤 기능을 사용할 수 있을지 관계 정의
@startuml
skinparam backgroundcolor transparent
:서비스 사용자: as user << User >>
:시스템 관리자: as adm << Admin >>
rectangle "사용자 관리" {
(회원가입) as su
(로그인) as si
}
rectangle "식물 관리" {
(식물구경) as po
(식물구매) as pp
(장바구니) as bk
(식물업로드) as pu
}
rectangle "주문 관리" {
(결제) as pay
(결제내역 확인) as pl
(배송 조회) as delivery
}
user --> su
user --> si
user --> pp
user --> po
user --> bk
user --> delivery
adm --> pu
adm --> pl
@enduml

문법 설명
-->
실선 화살표로 관계 정의-right->
,-left->
,-up->
,-down->
등으로 방향을 나타낼 수 있음.
기능간의 관계 정의
- 사용자 관점에서 기능을 사용할 때, 상호동작할 수 있는 기능간의 관계 정의
@startuml
skinparam backgroundcolor transparent
:서비스 사용자: as user << User >>
:시스템 관리자: as adm << Admin >>
rectangle "사용자 관리" {
(회원가입) as su
(로그인) as si
}
rectangle "식물 관리" {
(식물구경) as po
(식물구매) as pp
(장바구니) as bk
(식물업로드) as pu
}
rectangle "주문 관리" {
(결제) as pay
(결제내역 확인) as pl
(배송 조회) as delivery
}
user --> su
user --> si
user --> pp
user --> po
user --> bk
user --> delivery
adm --> pu
adm --> pl
su ..> si
bk ..> pp
su ..> si
pp ..> pay: 결제 정보
bk ..> pay: 식물 목록 및 결제 정보
pu ..> po
@enduml

문법 설명
..>
실선 화살표로 관계 정의- 동일하게 방향을 적용할 수 있음.
..>: 설명
콜론 구분자를 통해서 추가적인 설명