본문 바로가기
정보처리이론

2-5 유스케이스(Use Case) 다이어그램과 활동(Activity) 다이어그램

by 공부합시다홍아 2020. 11. 4.

유스케이스 다이어그램 ( Use Case Diagram )

기능 모델링
기능 모델링이란 사용자의 요구사항을 분석하여 개발될 시스템이 갖춰야 할 기능들을 정리한 후 사용자와 함께
정리된 내용을 공유하기 위해 표현하는 것

- 기능 모델링은 개발된 시스템의 전반적인 행태를 기능에 초점을 맞춰 표현
- UML의 기능 모델링에는 유스케이스 다이어그램과 액티비티 다이어그램이 있다.


유스케이스 다이어그램 
개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는
기능을 사용자의 관점(View)에서 표현한 것

- 외부 요소와 시스템 간의 상호 작용을 확인 가능
- 사용자의 요구사항을 분석하기 위한 도구로 사용
- 시스템의 범위를 파악 가능

구성요소
시스템 범위, 액터, 유스케이스, 관계

1. 시스템(System) / 시스템 범위(System Scope)
   시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해
   시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현
   - 사각형 안쪽 상단에 시스템 명칭을 기술

2. 액터(Actor)
   시스템과 상호작용하는 모든 외부 요소 → 사람이나 외부 시스템을 의미
   (1). 액터는 시스템에 대해 수행할 수 있는 역할을 의미
   (2). 액터 이름이 구체적 X 
        → 액터 이름이 구체적(ex : 홍길동)으로 표시된다면 해당 이름만 기능을 사용 가능
   (3). 액터에는 주액터와 부액터 존재
        - 주액터(Primary Actor) : 시스템을 사용함으로써 이득을 보는 대상 → 사람 / 간략화 표현, 왼쪽 배치
        - 부액터(Secondary Actor) : 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템
                                           → 조직이나 기관 / 오른쪽 배치, 상단에 <<Actor>> 표시

3. 유스케이스(Use Case)
   사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현한 것
   타원으로 표현, 타원 안쪽이나 아래쪽에 유스케이스 이름을 기술
   - 유스케이스 이름은 액터와 시스템 사이에서 이뤄지는 상호작용의 목적을 내포, 단순 기재
   - 기능적 요소 중심이지만 비기능적 요소 포함 가능
   - 더 이상 분할되지 않는 기능의 단위
   - 액터에 의해 수행, 액터가 관찰할 수 있는 결과를 산출
   - 하나의 유스케이스 안에서 수행되는 동작은 유스케이스 수행 시 모두 수행, 부분적 수행 X
   - 유스케이스는 분석, 설계, 테스트 등 개발 전 과정에서 이용 가능

4. 관계(Relationship)
   관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있으며, 포함 관계, 확장 관계,
   일반화 관계의 3종류가 있다.

   (1). 포함(Include) 관계 
        두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스로 만든 경우
        원래의 유스케이스와 새롭게 분리된 유스케이스와의 관계를 포함 관계라 한다.
        - <<include>> 표기

   (2). 확장(Extend) 관계
        유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때 원래의 유스케이스와 확장된 
        유스케이스와의 관계를 확장 관계라 한다.
        - <<extend>> 표기
 
   (3). 일반화(Generalization) 관계
        유사한 액터나 유스케이스를 하나의 그룹으로 묶고 싶을 때 그보다 일반적인 액터나 유스케이스를 만들어
        이들을 연결하여 표현하는 관계를 일반화 관계라고 한다.
        - 하위 액터나 유스케이스가 상위 액터나 유스케이스로 일반화하는 관계
          → 상위 액터나 유스케이스가 하위 액터나 유스케이스로 구체화되는 관계
        - 하위 액터나 유스케이스가 상위에게 역할이나 기능을 상속(Inheritance)받는 관계
        - 하위 액터나 유스케이스에서 상위 쪽으로 속이 빈 삼각형 화살표를 실선으로 연결



유스케이스 명세서(기술서)
유스케이스 명세서는 유스케이스 안에서의 액터나 시스템 간의 상호작용과정을 글로 자세히 표현한 것
- 유스케이스 다이어그램에 있는 모든 유스케이스에 대해 개별적으로 작성
- 각 유스케이스 명세서에 작성된 사건의 흐름을 참고하여 활동 다이어그램을 작성
- '상품 주문'에 대한 유스케이스 명세서

유스케이스명 상품 주문
액터명 ⊙ 주액터 : 회원
부액터 : 재고 시스템, 결제 시스템
목표(개요) ⊙ 상품 주문 과쟁에서 재고/결제 시스템 이용
시작 조건 ⊙ 상품 주문을 하려면, 회원 가입이 되어 있어야 함
이후 조건 ⊙ 상품 주문이 정상 완료 시, 완료 메시지를 화면에 표현
정상적인 흐름 ⊙ 회원 로그인 클릭
⊙ 회원 정보 입력 후 확인
⊙ 로그인 완료 시 주문할 상품 선택
⊙ 선택된 상품에 대한 재고 확인
⊙ 선택된 상품에 대한 결제 진행
⊙ 주문 완료

대안 흐름 ⊙ 2A : 입력된 정보가 잘못 입력된 경우
          → 재입력 요청 메시지
⊙ 4A : 선택된 상품의 재고가 없는 경우
          → 다른 상품 선택 요청 메시지
⊙ 5A : 선택된 상품에 대한 결제 실패
          → 재시도 요청
          → 결제 인증 성공 시 완료 
          → 재시도 후 실패 시 주문 불가 메시지 표시

활동(Activity) 다이어그램

활동 다이어그램
자료흐름도와 유사한 것, 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현
→ 하나의 유스케이스 안에서 혹은 유스케이스 사이에 발생하는 복잡한 처리의 흐름을 명확하게 표현 가능

※ 자료흐름도(DFD, Data Flow Diagram)
   각 절차에 따라 컴퓨터 기반의 시스템 내부를 흘러 다니는 데, 이를 자료의 흐름
   자료 흐름도는 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법

구성 요소
액션, 액티비티, 노드, 스윔레인 등

액션(Action) / 액티비티(Activity)
⊙ 액션은 더 이상 분해할 수 없는 단일 작업
⊙ 액티비티는 몇 개의 액션으로 분리될 수 있는 작업
⊙ 액션이나 액티비티 모두 테두리가 있는 둥근 사각형으로 표현
⊙ 둥근 사각형 안에 액션이나 액티비티의 명칭을 기술

제어 흐름
⊙ 실행의 흐름을 표현
⊙ 화살표로 표현

시작 노드
⊙ 액션이나 액티비티가 시작됨을 의미
⊙ 하나의 다이어그램 안에는 하나의 시작점만 존재
⊙ 검은색 원으로 표현

종료 노드
⊙ 액티비티 안의 모든 흐름이 종료됨을 의미
⊙ 하나의 다이어그램 안에 여러 개의 종료 노드가 있을 수 있으나 일반적으로 하나만 표현
⊙ 검은색 원을 포함한 원으로 표현

조건(판단) 노드
⊙ 조건에 따라 제어의 흐름이 분리됨을 표현
⊙ 마름모로 표현, 들어오는 제어 흐름은 한 개이고, 나가는 제어 흐름은 여러 개이다.

병합 노드
여러 경로의 흐름이 하나로 합쳐짐을 표현
마름모로 표현하며, 들어오는 제어 흐름은 여러 개이고 나가는 제어 흐름은 한 개

포크 노드
⊙ 액티비티의 흐름이 분리되어 수행됨을 표현
⊙ 굵은 가로선으로 표현하며, 들어오는 액티비티 흐름은 한 개이고, 나가는 액티비티 흐름은 여러 개

조인(Join) 노드
⊙ 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐을 표현
⊙ 굵은 가로선으로 표현, 들어오는 액티비티 흐름은 여러 개이고 나가는 액티비티 흐름은 한 개

스윔레인(Swim Lane)
⊙ 액티비티 수행을 담당하는 주체를 구분
⊙ 가로 또는 세로 실선을 그어 구분

728x90