본문 바로가기
Study/UML

[UML] 순차 다이어그램(Sequence Diagram)

by 스테디코디스트 2023. 10. 5.
반응형

<순차 다이어그램>

- 시스템이 전달하는 메시지의 시간적 흐름을 나타내려고 하는 상호작용 다이어그램이다.

- 객체간의 동적 상호작용을 시간적 개념을 중심으로 모델링하는 과정이다.

- 객체가 서로 긴밀하게 일을 분담하여 처리함으로써 주어진 문제를 해결하는 방식이 전제되는 체계이다.

- 다이어그램의 수직방향이 시간의 흐름을 나타낸다.

 

<특징>

- 객체 간의 관계, 메시지의 시간적 순서 강조 표현

- UseCase 시나리오를 시간과 순서에 따라서 묘사 및 도식화

- 복잡한 시나리오나 실시간 명세 표현, 메시지의 명시적인 순서 표현

 

<구성요소>

1) 객체(Object)

- 활동의 주체

- 직사각형으로 표현

2) 생명선(Lifeline)

- 시간의 경과를 의미

- 객체에서 이어지는 점선으로 표현

3) 활성 박스(Activation Box)

- 현재 객체가 어떤 활동을 하고 있음을 의미

- 활성(Activation)이라고도 불림

- 생명선상에서 기다란 직사각형으로 표현

4) 메시지(Message)

- 인스턴스 간 주고 받은 데이터

- 일반적으로 요청과 응답을 표현함

 

4-1) 동기 메시지(Synchronous message)

- 요청을 보낸 후 결과가 올 때까지 기다림

- 프로그램 내 일반적인 함수 호출과 동일한 동작방식의 메시지를 표현

4-2) 비동기 메시지(Async message)

- 요청을 보낸 후 결과가 올 때까지 기다리지 않음

- 전송 객체의 호출만을 표시

- 보통 개별 스레드 간의 통신 및 새 스레드 생성에 사용

4-3) 자체 메시지(Self message)

- 자신에게 보낸 메시지

- 결과로 생성된 실행 발생이 전송 실행 위에 나타남

4-4) 반환 메시지(Reply/Return message)

- 이전 호출의 반환을 기다리는 객체에게 다시 반환되는 메시지

- 동기 메시지와 같이 요청에 대한 결과를 반환함

5) 가드(Guard)

- 단일 메시지에 대한 조건을 명시할 수 있음

- 메시지 앞쪽에 대괄호 []로 감싼 조건을 명시

- [조건] [메시지]

6) 프래그먼트(Fragment)

- 범위를 명시하기 위한 표현

- 여러 생명선과 활성을 포괄적으로 감싸는 박스형태로 표현되며, 반복이나 대안 등을 설정 가능

 

6-1) 옵션(Option)

- opt로 줄여서 사용

- 조건문을 가드를 이용해 표시 -> 해당 조건에 부합하지 않으면 opt로 감싸져있는 범위를 넘어감

- 가드와 달리 여럿을 처리할 수 있음

6-2) 반복(Loop)

- 반복문을 표현

- 해당 조건이 부합할 동안 하위 조건을 반복 처리

6-3) 대안(Alternative)

- alt로 줄여서 사용

- 가드를 이용해 if/else문 처럼 사용됨

- 조건에 따라 선택 사항이 여러 개일 경우 사용

6-4) 병렬(Parallel)

- par로 줄여서 사용

- 두 작업을 동시에 처리함

6-5) 참조(Reference)

- ref로 줄여서 사용

- 외부에서 정의된 시퀀스 다이어그램을 포함

 

<크로스 체크>

- 일반적으로 시퀀스 다이어그램은 클래스 다이어그램 기반으로 작성되기 때문에 작성 후 클래스 다이어그램과 크로스 체크가 필요하다.