Sequence 다이아그램
태그 :
- 개념
- - 문제 해결에 필요한 객체를 정의하고 객체간 주고받는 메시지의 순서를 시간의 흐름에 따라 보여주는 다이어그램
Ⅰ. 시간의 흐름에 따라 표현하는 시퀸스 다이어그램(Sequence Diagram)
가. 시퀸스 다이어그램(Sequence Diagram)의 정의
- 문제 해결에 필요한 객체를 정의하고 객체간 주고받는 메시지의 순서를 시간의 흐름에 따라 보여주는 다이어그램
나. 시퀸스 다이어그램의 특징
- Use Case 시나리오를 시간과 순서에 따라서 묘사 및 도식화
- 객체간 동적 상호작용을 시간적 개념을 중시하여 모델링
- 객체의 오페레이션과 속성을 상세히 정의
- 프로그래밍 사양 정의
- 여러 개의 객체들 사이의 동적인 협력사항 표현
- 객체들 간의 관계성은 표현 안 함
- 복잡한 시나리오나 실시간 명세 표현, 메시지의 명시적인 순서를 나타내기에 좋음
Ⅱ. 시퀸스 다이어그램의 구성요소 및 예시
가. 시퀸스 다이어그램의 구성요소
구성요소 |
내용 |
활성 객체 |
시스템의 행위자이거나 시스템 내의 유효한 객체 |
메시지(Message) |
서로 다른 활성 객체간의 의사소통 |
제어사각형 |
객체가 제어를 가지고 있다는 것, 어떤 종류의 정보를 처리하고 있다는 것 또는 다른 정보를 기다리고 있다는 것을 표시 |
나. 시퀀스 다이어그램 구성요소 설명
- 활성 객체
- 시스템의 행위자이거나 시스템 내의 유효한 객체
- 왼쪽에서 오른쪽으로 표현되며 객체는 생명선은 가지고 있음
2) 메시지
- 서로 다른 활성 객체간의 의사소통을 묘사하는데 이용
- 호출 활성화 객체이 생면선으로부터 비호출 객체의 생명선까지 화살표로 그리지며, 화살표 위에는 보내지는 메시지가 위치
3) 의사소통을 위한 메시지 사용 방법
종 류 |
내 용 |
동기(Synchronous)` |
- 메시지가 완료될 때 비로소 흐름이 중단되며, 메시지로부터 전송된 임의의 메시지들이 전송 완료시 중단됨을 표시 - 동기 메시지는 안이 채워진 화살표와 실선으로 모형화 |
반환(Return) |
- 제어흐름이 호출 활성화 객체로 반환됨을 보여주며, 동기 메시지가 그 임무를 완료했음을 표시 - 반환 메시지는 열려진 화살표와 점선으로 모형화 |
비동기(Asynchronous) |
- 활성 객체가 응답을 기다리지 않고 전송되는 메시지에 사용 - 비동기 메시지는 반이 열린 화살표와 굵은 선으로 모형화 |
평판(Flat) |
- 동기와 비동기의 구분이 없음 - 평판 메시지는 열린 화살표와 굵은 선으로 모형화 |
4) 제어사각형(Control Rectangles)
- 객체가 제어를 가지고 있다는 것과 어떤 종류의 정보를 처리하고 있다는 것과 또는 다른 정보를 기다리고 있다는 것을 표시하기 위해서 사용
- 순차 다이어그램에서 제어 사각형은 객체의 생명선(lifelne) 위에 속이 빈 사각형으로 표시
다. 작성순서- 유즈케이스 다이어그램 정의 후부터 프로그램 코딩 전에 작성
- 유즈케이스 다이어그램 정의 후부터 프로그램 코딩 전에 작성
- 수평선상에는 서로 다른 객체를 나타내고 수직선 상에는 시간이 지나가는 것에 따라서 객체들 사이에 메시지 교환을 나타냄
- 작성대상 선정: 유즈케이스를 선정하고 유즈케이스 정의서 분석
- 액터 위치시킴: 액터는 좌측부터 위치
- 클래스 위치시킴: 유즈케이스에 참여하는 클래스 위치
- 객체간 메시지 정의: 시간 순서대로 객체간 메시지 정의
- 객체 추가정의: 요구사항 처리를 위해 필요한 객체가 정의되지 않았으면 추가
라. 시퀸스 다이어그램의 예시
- 학생 정보 조회 예시
- 행위자인 Teacher가 접속하여 학생의 정보를 성공적으로 조회하는 시퀸스 다이어그램
2. 고객 로그인 및 상품 주문 예시
- 고객이 시스템에 접속하여 상품을 주문하는 시퀸스 다이어그램
III. 시퀸스 다이어그램 작성시 주의 사항
1) 동일한 상호작용을 여러 시퀸스 다이어그램에서 중복 작성에 주의
2) 중복을 최소화 시키기 위해 UI별 시퀸스 다이어그램을 작성
3) 가독성이 좋도록 코멘트(Commnet) 사용
4) 메시지의 흐름은 액터로부터 시작하도록 작성
5) 클래스 다이어그램에 표기된 클래스명과 매핑 가능하도록 객체 이름을 표기
Seauence <-> Collaboration Diagram