UML, 시퀀스 다이어그램은 정보처리기사를 준비할 때 이미 수없이 외웠던 개념이다. 하지만 설명하라면 제대로된 개념을 말할 수 없는, 암기식의 습득이었다. UML에는 구조적 다이어그램 행위적 다이어그램이 있는데 그 중 시퀀스 다이어그램은 행위적 다이어그램, 그걸 외우는 "유시커상활타"중 "시"였다. 에프랩에서 멘토링을 하면서 내가 이때까지 헤매며 거쳐온 쓸모없다고 생각한 잊혀질 경험들을 다시금 되내이게 하면서 쓸모없는 것은 없다고 말해주는 든든함을 느끼고 있다. 직접 깊게 공부하고 적용해보게 해줄 수 있는 경험이 값지다.
시퀀스 다이어그램 Sequence Diagram
통합 모델링 언어(UML, Unified Modeling Language)는 소프트웨어 공학에서 시스템 설계를 시각화하는 표준 방법을 제공하기 위한 범용 모델링 언어이다. UML은 시스템 상호작용, 업무 흐름, 객체간의 메시지 전달, 컴포넌트 관계 등을 표현할 수 있는 다이어그램으로 구성되어 있다. 그 중 시퀀스 다이어그램은 가장 일반적으로 사용된다.
정의
시퀀스 다이어그램은 문제 해결을 위한 객체를 정의하고 시간의 흐름에 따라 객체들이 메시지를 주고받는 상호 작용을 명세히 나타내는 다이어그램이다.
- 원하는 결과를 얻을 수 있는 이벤트 시퀀스를 정의하고 메시지가 발생하는 순서에 집중한다.
- 시스템이 어떻게 작동할지 예측, 새로운 시스템을 모델링하는 과정에서 클래스가 수행해야할 책임을 파악하는 데 도움을 준다.
- 2차원 형태로 표기
- 가로축: 메시지가 전송되기 위해 사용되는 객체 간의 호출
- 세로축: 발생 호출 및 메시지 전달 순서
장점
- 실시간 명세를 표현하는 데에 적합
- 시스템 흐름을 시각화하여 절차, 기능, 작업 로직을 모델링
- 개체와 구성 요소가 서로 어떻게 상호 작용하고 프로세스를 완료하는지 확인
- 기존 혹은 새로운 시스템의 복잡한 시나리오를 기획하고 이해하기 쉬워짐.
구성 요소
시퀀스 다이어그램은 라이프라인으로 표시되는 객체, 객체와 상호작용 중 시간이 지남에 따라 객체가 교환하는 메시지 그룹으로 이루어진다.
- 액터 - Actor
시스템으로부터 서비스를 요청하는 외부 요소로 사람이나 외부 시스템을 의미.
- 활성 객체 - Object
객체는 메시지를 주고받는 주체이며 유효한 객체는 라이프라인을 가집니다. 박스 안에 객체 이름을 표시하고 박스 아래로 뻗어 수직 점선으로 생명선을 표시한다.
- 생명선 - Lifeline
생명선은 객체의 생성, 소멸, 활성화 상태를 표현하여 객체가 얼마나 오래 존재하는지를 알 수 있습니다.
객체 소멸(X)가 표시된 기간까지 존재한다.
- 실행 (상자) - Activation
실행은 객체가 다른 객체와 상호작용하며 활성화되고 있음을 나타냄. 생명선 위에 직사각형으로 표시하며 직사각형 길이가 길수록 수행 기간이 길다는 걸 의미. 직사각형에 화살표로 연결하여 다른 객체와 주고받는 메시지 등을 표시함.
- 메시지 - Message
객체 간 상호 작용은 메시지 교환으로 이루어진다. 요청(Request)과 응답(Respond)으로 구분되며 요청 메시지는 실선, 응답 메시지는 점선으로 화살표 표시한다.
- 객체 소멸
X형태. 해당 객체가 더이상 메모리에 존재하지 않음을 표현한 것.
- 프레임
다이어그램의 전체 또는 일부를 묶어 표현한 것
메시지 유형
- 동기 메시지 Synchronous Message:
꽉찬 화살표 + 실선, 요청을 보낸 뒤 응답이 올 때까지 기다린다. 프로그램 내 일반적인 함수 호출과 동일한 동작 방식의 메시지를 표현.
- 비동기 메시지 Asynchronous Message:
빈 화살표 + 실선, 요청을 보낸 뒤 응답을 기다리지 않는다. 전송 객체의 호출만을 표시하며 일반적으로 개별 스레드간 통신 혹은 새로운 스레드 생성에 사용.
- 자체 메시지 Self Message:
생명선으로 회귀하는 화살표를 그림. 자신에게 보내는 메시지. 자체적으로 동작을 처리할때.
- 반환 메시지 Reply/Return Message:
빈화살표 + 점선 이전 호출의 반환을 기다리는 객체에 다시 반환되는 메시지.
더욱 다양한 메시지
예제
온라인 쇼핑 장바구니 시퀀스 다이어그램
은행 ATM 시스템 시퀀스 다이어그램
병원 관리 시스템 시퀀스 다이어그램
어떻게?
작성 순서
- 유스케이스 정의서 분석을 통한 참여 객체 파악
- 엑터와 참여 객체를 X축에 나열
- 객체의 메시지를 정의하고 메시지 호출을 시간 순서에 따라 표시
TCP/IP와 OAuth 프로토콜을 시각화하여 올려볼 예정이다.
참조 ✅