시퀀스 다이어그램 📚

차차·2021년 9월 18일
0

프로그래밍/ 기타

목록 보기
1/5

시퀀스 다이어그램

문제 해결을 위한 객체를 정의하고 객체간의 상호작용 메시지 시퀀스를 시간의 흐름에 따라 나타내는 다이어그램

Lifieline

모델링 되는 인스턴스를 나타낸다. Lifeline 은 네모와 점선으로 이루어져 있으며 네모가 객체의 관점으로 표현했다면 클래스이고, 서비스 관점으로 표현했다면 컴포넌트가 된다.

Activation

Activation은 Lifeline의 인스턴스가 다른 인스턴스와 상호작용을 하며 활성화 되어있는 것을 나타낸다. Activation은 직사각형의 막대로 Lifeline 점선 가운데에 표시된다

Message

메시지는 인스턴스 간 주고 받은 데이터를 의미한다. 일반적으로 요청과 응답으로 나타낸다.
메시지는 아래와 같은 유형을 가진다.

유형내용
동기메시지요청을 보낸 후 반환이 올때까지 대기
비동기 메시지요청을 보낸 다음 반환을 기다리지 않고 다른 작업을 수행
자체 메시지자기 자신에게 요청을 보냄
반환 메시지요청에 대해 메시지를 반환

동기메시지

동기 메시지는 실선과 꽉 찬 화살표로 표현한다. 동기 메시지이므로 요청을 보낸 후 결과가 올때까지 기다린다

비동기메시지

비동기 메시지는 실선과 선으로 이루어진 화살표로 표현한다. 비동기 메시지 이므로 요청을 보낸 후, 결가ㅗ를 기다리지 않는다

자체 메시지

자체적으로 작업을 처리할 때 자체메시지를 사용한다. 자체 메시지는 본인의 Lifeline으로 회귀하는 화살표를 그린다

반환메시지

동기 메시지에서 표현했떤 것과 같이 요청에 대한 결과를 반환한다. 점선과 선으로 이루어진 화살표로 표현한다. (req -> res)

흐름제어

로직에서 if, for, while과 같은 역할. 인스턴스간 상호작용을 표현하기 위해 흐름을 제어하는 표현들이 필요하다. 여기서 사용하는 요소가 Guard 와 Sequence Fragment 이다

Guard

단일 메시지에 대한 조건을 명시할 수 있는 방법이다. 사용법은 메시지의 앞쪽에 [] 대괄호로 감싼 후 조건을 명시한다.
예를 들면 [price>10000] 배송비 무료처리 라고 명시한다. 만약 가격이 10000원 미만이라면 해당 메시지는 호출되지 않는다.

Sequence Fragment

범위로 조건을 명시한다. alternative, option, loop 등이 있으며 각각 if-else, if , for 와 같은 역할을 한다.

profile
개발하는 돌멩이🙄🙄👻

0개의 댓글