유즈케이스(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

문법 설명

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