<순차 다이어그램>
- 시스템이 전달하는 메시지의 시간적 흐름을 나타내려고 하는 상호작용 다이어그램이다.
- 객체간의 동적 상호작용을 시간적 개념을 중심으로 모델링하는 과정이다.
- 객체가 서로 긴밀하게 일을 분담하여 처리함으로써 주어진 문제를 해결하는 방식이 전제되는 체계이다.
- 다이어그램의 수직방향이 시간의 흐름을 나타낸다.
<특징>
- 객체 간의 관계, 메시지의 시간적 순서 강조 표현
- 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로 줄여서 사용
- 외부에서 정의된 시퀀스 다이어그램을 포함
<크로스 체크>
- 일반적으로 시퀀스 다이어그램은 클래스 다이어그램 기반으로 작성되기 때문에 작성 후 클래스 다이어그램과 크로스 체크가 필요하다.