유스케이스 다이어그램이란? |
- 액터(Actor) : 시스템의 사용자
- 기능(Use Case) : 시스템이 제공하는 기능
유스케이스 다이어그램이란 사용자를 위한 다이어그램이며 사용자의 요구를 추출하고 분석하는데 사용한다.
즉 객체지향분석(OOA)를 할때 사용하며 소프트웨어 요구사항 명세서(SRS)에 기록한다.
사용자와 시스템의 상호작용을 다이어그램으로 표현한 것이며 사용자의 관점에서 시스템의 기능과 관계를 보여준다.
시스템의 상황에 대한 청사진이며 시스템의 세부 정보를 나타내지는 않는다.
구성 요소 |
- 시스템
- 액터
- 유스케이스
- 관계
1) 시스템
시스템은 큰 직사각형으로 표시하며 시스템의 명칭을 안쪽 상단에 작성한다.
상황에 따라 전체 프로그램을 의미할 수도 있고 단일 기능만을 의미할 수도 있다.
시스템의 밖에 있는 액터가 시스템을 사용한다.
2) 액터(Actor)
액터는 시스템과 관련이 있는 사용자일수도 있고, 외부의 시스템일수도 있다.
액터는 유스케이스를 단계별로 시작시킨다.
액터는 사람모양의 그림으로 표시하며 위나 아래에 액터의 역할을 작성한다.
3) 유스케이스(Use Case)
유스케이스는 사용자 입장에서 바라본 시스템의 기능이자 사용자의 요구사항이다.
모든 액터는 하나 이상의 유스케이스에 연결되어 시스템과 상호작용을 한다.
유스케이스는 타원형 모양안에 유스케이스명을 작성하되 주로 ~한다 형태의 동사로 많이 쓴다.
4) 관계(Relationships)
액터와 유스케이스간의 사용 관계를 나타낸다.
화살표로 표시하며 주고 액터에서 유스케이스로 향하는 방향으로 나타낸다.
관계의 종류로는 연관, 일반화, 의존(include, extend)가 있다.
연관관계는 액터와 유스케이스간에 상호작용이 있음을 표현하며 실선으로 표시한다.
아래의 경우 사용자가 글을 등록한다라는 기능과 상호작용이 있음을 의미한다.
일반화관계는 유사한 유스케이스를 모아 추상화한 유스케이스, 또는 유사한 액터들을 모아 그룹을 만드는 관계에 사용한다.
아래의 경우는 글을 검색한다를 글쓴이로 검색한다, 날짜로 검색한다로 좀 더 구체화한것을 나타낸다.
include는 필수적으로 필요한 기능을 의미한다.
예를들어 하나의 유스케이스가 다른 유스케이스의 실행을 전제로할때 사용한다.
선행되는 유스케이스를 가리키며 실선으로 <<include>>로 표기한다.
아래의 경우는 글을 등록하기 위해서는 반드시 로그인이 선행되어야 한다는 것을 뜻한다.
extend는 부가적으로 필요한 기능을 의미한다.
아래의 경우처럼 글을 등록한다만 사용해도 되는데 파일을 첨부한다의 기능을 부가적으로 사용할 수 있다.
부가적으로 사용되는 유스케이스에서 기본적으로 사용되는 유스케이스를 실선으로 가리키며 <<extend>>라고 표기한다.
관련 용어 |
1) 도메인 분석
주어진 문제/도메인에 대해 분석하는 단계
기존시스템, 개발인력, 지식, 이론, 기술 등을 바탕으로 해당 도메인에 관한 정보를 찾아서 구조화하는 단계이다.
도메인분석을 통해 유스케이스 다이어그램을 작성한다.
2) 시나리오(Scenario)
처음부터 마지막 단계까지 유스케이스를 거치는 하나의 전체 경로이다.
유스케이스는 여러개의 시나리오를 갖지만 시나리오는 항상 같은 사용자 목표를 가진다.
- 메인 시나리오(Main Success Scenario)
메인 시나리오라고 생각하면 될듯하다.
유스케이스의 핵심 성공 시나리오이며 시스템이 정상적으로 잘 동작할때 발생하는 일 및 흐름을 보여준다.
- 대체 시나리오(Alternative Scenarios)
주 경로에서 벗어나는 상황이나 선택적인 동작 또는 대체할 방법을 나타내는 단계이다.
즉 사용자가 어떤 선택을 하거나 시스템이 특정 상태에 들어가는 경우 발생한다.
주 경로에 추가된 단계, 또는 완전히 다른 경로이지만 마찬가지로 목적을 달성하기 위한 단계이다.
- 예외 시나리오(Exception Scenarios)
예외적인 상황이나 오류 조건이다.
시스템이 정상적인 상황에서 벗어나거나 예상치 못한 상황에 처했을때 어떻게 처리하는지 설명한다.
사용자가 잘못된 입력을 하거나, 시스템이 오류를 일으키는 상황에 대응하는 방법이다.
※ 참고 문헌
https://bloodstrawberry.tistory.com/1381