Sequence Diagram

2023. 4. 27. 10:31·📄 Document/Project 설계

Sequence Diagram

  • 객체들 사이에서 시간에 따라 발생하는 상호작용을 보여주는 다이어그램
  • 문제 해결에 필요한 객체를 정의, 객체간 송/수신 메시지의 순서를 시간의 흐름에 따라 표시
  • 일반적으로 화면 요구사항과 클래스 다이어그램 기반으로 작성
  • 시퀀스 다이어그램과 클래스 다이어그램 크로스 체크

구성요소

image-20230427101848741

1. 액터(Actor) : 시스템으로부터 서비스를 요청하는 외부 요소로 사람이나 외부시스템을 의미

2. 객체(Object) : 클래스의 객체

3. 생명선(Lifeline) : 객체의 생성, 소멸, 활성화될 때를 나타내는 선 (위 -> 아래, 점선)

4. 활성 박스(Activation Box) : 객체가 다른 객체와 상호작용하며 활성화 되고 있음을 표현 (직사각형)

5. 메세지(Message) : 객체간 주고 받은 데이터, 일반적으로 요청(request)과 응답(response)로 구성


메시지 표기법

image-20230427101933175

유형 의미
동기 메시지(Synchronous message) 메시지 전송 객체가 계속하기 전까지 동기 메시지에 대한 응답을 기다림. 프로그램 내 일반적인 함수 호출과 동일한 동작 방식의 메시지를 표현
비동기 메시지(Async message) 메시지 전송 객체가 계속하기 전까지 응답을 요구하기 않는 메시지. 전송 객체의 호출만을 표시.보통 개별 쓰레드 간의 통신 및 새 쓰레드의 생성에 사용
자체 메시지(Self message) 인스턴스간의 상호작용 뿐만 아니라 하나의 인스턴스에서 처리를 하는 방법도 종종있습니다. 이럴때는 self 메시지를 사용할 수 있습니다. self message는 본인의 lifeline으로 재귀 하는 화살표를 가지고 있습니다. 자신에게 보낸 메시지입니다. 결과로 생성된 실행 발생이 전송 실행 위에 나타남.
반환 메시지(Reply/Return message) 이전 호출의 반환을 기다리는 객체에게 다시 반환되는 메시지.

image-20230427102101200

✔️ 동기 메시지 (Synchronous message)

실선 + 내부가 채워진 화살표로 표기

리턴 받을 때까지 다른 동작없이 대기


✔️ 비동기 메시지 (As ynchronous message)

실선 + 내부가 채워지지 않은 화살표로 표기

리턴을 기다리지 않고 다른 작업을 수행


image-20230427102210097

✔️ 자체 메시지 (Self message)

본인의 Lifeline으로 회귀하는 화살표를 그림


✔️ 반환 메시지 (Reply/Return message)

점선과 선으로 이뤄진 화살표로 표현


✔️ 가드(Guard)

: guard는 단일 메시지에 대해서 조건을 명시할 수 있는 방법

조건을 명시 -> [조건] 처리메시지


가드(Guard)

img


✔️ 프래그먼트(Fragment)

guard가 한 메시지에 대해서 조건을 명시했다면, sequnce fragments는 범위로 조건을 명시할 수 있다.

즉, 특정 부분에 대해서 일정 부분의 메시지를 반복하던지 조건을 명시하던지 할때는 sequence fragments가 명확할 수 있다.

프래그먼트에는 대안(alt), 옵션(opt), 반복(loop),병렬(Par), 참조(Ref)가 있다.


img


✔️ (1) 대안(alt)

다중 조건문, else if 같은 대안이 있는 조건문

img


✔️ (2) 옵션(opt)

단일 조건문, if, switch

img


✔️ (3) 반복(loop)

반복문, for, while

img


✔️(4) 병렬(Par)

병렬처리, 분리된 몇 개의 상호작용이 동시에

img


✔️ (5) 참조(Ref)

외부에서 정의된 시퀀스 다이어그램을 포함

img


✔️ 시퀀스 다이어그램과 클래스 다이어그램 크로스 체크 필수!

일반적으로 시퀀스 다이어그램은 클래스 다이어그램 기반으로 작성되기 때문에 작성 후 클래스 다이어 그램과 크로스 체크가 필요합니다.

img

저작자표시 (새창열림)

'📄 Document > Project 설계' 카테고리의 다른 글

Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin)  (3) 2024.09.07
Agile  (0) 2023.04.30
📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)  (0) 2023.04.09
📄 개발환경 세팅 & 가이드 2 (SRS 개념)  (0) 2023.04.09
📄 개발환경 세팅 & 가이드 1 (Git)  (0) 2023.04.09
'📄 Document/Project 설계' 카테고리의 다른 글
  • Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin)
  • Agile
  • 📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)
  • 📄 개발환경 세팅 & 가이드 2 (SRS 개념)
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Sequence Diagram
    상단으로

    티스토리툴바