시퀀스 다이어그램 작성

Welcome to Seoyun Dev Log·2022년 5월 23일
0

다이어그램

목록 보기
2/2

https://gitmind.com/kr//

💡시퀀스 다이어그램이란?

: 회의실에서 그리고 코드를 분석할 때 사용.
타인의 코드를 분석할 때 더 중요하게 사용되며, 클래스 다이어그램보다 그릴일이 많다.

: 특정 행동에 대한 순서, 상호작용등을 표현할 수 있으며
현재 존재하는 시스템이 어떠한 시나리오로 움직이는지 알 수 있다.
(로직 모델링)

💡작성하는 방법

1) lifeline

: 네모와 점선으로 그린다.

네모는 관점에 따라 두 가지로 볼 수 있는데

  • 클래스 관점 : 클래스
  • 서비스 관점 : 컴포넌트

점선은 시간의 경과를 나타낸다.
(위에서 아래로 갈 수록 시간의 경과를 의미)

2) Activation

: 직사각형의 막대로 lifeline 점선 가운데 그린다.

lifeline의 인스턴스가 다른 인스턴스와 상호 작용을 하며 활성화 되어 있는것을 나타낸다.
(현재 객체가 어떤 활동을 하고 있음)

3) Message

: 인스턴스 간 주고 받은 데이터를 나타낸다.
일반적으로 요청과 응답(HTTP 통신 기준)

동기 메시지(Sync message)

: 요청을 보낸 후 반환이 올때까지 대기
요청을 보낸 후, 결과가 올 때까지 기다린다.

  • 실선과 꽉 찬 화살표로 그린다.

비동기 메시지 (Async message)

: 요청을 보낸 후 반환을 기다리지 않고 다른 작업을 수행
요청을 보낸 후, 결과를 기다리지 않는다.

  • 실선과 선으로 이뤄진 화살표로 그린다.

자체 메시지(Self message)

: 자기 자신에게 메시지를 보냄

  • 본인의 lifeline으로 회귀하는 화살표를 그린다.

반환 메시지(Reply/Return message)

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

  • 점선과 선으로 이뤄진 화살표로 그린다.

4) 흐름제어

: 로직에서 if, for, while과 같은 흐름을 제어하는 표현식이 있다.
시퀀스 다이어그램은 시간 순으로 인스턴스 간 상호작용을 표현하기 때문에 흐름을 제거하는 표현들이 필요할 수 있다.

  • Guard
  • Sequence Fragment

Guard

: 단일 메시지에 대해 조건을 명시

  • 메시지 앞에 [ ]대활호로 감싼 후 조건 명시
    ex) 상품가격 10,000원 이상이면 무료배송(미만이면 해당 메시지 호출되지 않음)

Sequence Fragment

: 범위로 조건을 명시
특정 부분에 대해 메시지를 반복하거나 조건을 명시할 때 사용

 alternative (alt)
 : 조건문 if/else 표현
 (A라면 B한다.)
 조건에 따라 선택 사항이 어려개일 때 사용
 
 ex) 만약 가격이 10,000원 이상 -> 무료배송
 아닌경우 배송비 -> 유로배송
 

option (opt)
: 조건에 따라 선택 사항이 단 한개일 때 사용
(A라면/ B도 하고 C도 하고 D도 하고 등등을 한다.)
ex) 만약 가격이 10,000원 이상 -> 무료배송
+ 고객이 추가 할인 쿠폰 요청 -> 다음 쿠폰 제공

	loop
    : 반복문 for, while 표현
    ex) 2020-08-01보다 작을 때 반복문 실행
    그 하위 조건으로 처리
    

	parallel(par)
    : 병렬 처리
    ex) 상품 주문이 들어 왔을 때, 상품 확인과 배송 여부 확인을 병렬로 진행하는 것 표현
    


WA(Web Application), API server, DB(Database), Operation server

MVC 패턴과 비교하면 WA 객체가 Controller, API server 객체가 Model, DB 객체가 DAO와 Database를 합친것

profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글