시퀀스 다이어그램의 주요 용어와 요소 정리

2024. 7. 8. 20:47·Programming/Etc
728x90
반응형

오늘은 소프트웨어 설계에서 중요한 역할을 하는 시퀀스 다이어그램의 다양한 용어와 요소들에 대해 알아보겠습니다. 시퀀스 다이어그램은 객체 간의 상호작용을 시간의 흐름에 따라 표현하는 도구로, 시스템의 동작을 시각적으로 이해하는 데 큰 도움이 됩니다.

1. 시퀀스 다이어그램이란?

시퀀스 다이어그램은 UML(Unified Modeling Language)의 일종으로, 객체 간의 상호작용을 시간 순서대로 나타낸 것입니다. 이 다이어그램은 주로 객체 간의 메시지 전달을 통해 시스템의 동작을 설명합니다.

2. 주요 구성 요소

객체(Actors and Objects)

  • 액터(Actor): 시스템 외부의 사용자나 다른 시스템을 나타냅니다.
  • 객체(Object): 시스템 내에서 상호작용하는 요소들을 나타냅니다.

생명선(Lifeline)

  • 객체의 수명을 나타내며, 객체의 생명선 위에 점선으로 표현됩니다.

활성 상자(Activation Bar)

  • 객체가 활성화되어 실행 중인 상태를 나타냅니다. 생명선 위에 직사각형으로 표현됩니다.

메시지(Messages)

  • 객체 간의 상호작용을 나타내며, 화살표로 표현됩니다.
    • 동기 메시지(Synchronous Message): 호출 후 응답을 기다리는 메시지로, 일반적인 화살표로 표시됩니다.
    • 비동기 메시지(Asynchronous Message): 호출 후 응답을 기다리지 않는 메시지로, 열린 화살표로 표시됩니다.
    • 반환 메시지(Return Message): 호출에 대한 응답을 나타내며, 점선 화살표로 표시됩니다.

자기 호출(Self-Call)

  • 객체가 자기 자신에게 메시지를 보내는 경우를 나타냅니다.

3. 제어 구조(Control Structures)

alt(Alternative)

  • 조건에 따라 다른 시나리오를 실행하는 제어 구조를 나타냅니다. 각 시나리오는 alt 블록 내에 조건과 함께 표현됩니다.

opt(Optional)

  • 특정 조건이 충족될 때만 실행되는 단일 시나리오를 나타냅니다.

loop(Loop)

  • 반복되는 행동을 나타내며, loop 블록 내에 반복 조건을 포함합니다.

par(Parallel)

  • 병렬로 실행되는 시나리오를 나타내며, 각 병렬 시나리오는 par 블록 내에 표현됩니다.

ref(Reference)

  • 다른 시퀀스 다이어그램을 참조하는 경우 사용되며, 재사용성을 높입니다.

break(Break)

  • 특정 조건이 충족되면 다이어그램의 나머지 부분을 건너뛰고 종료하는 제어 구조입니다.

critical(Critical Region)

  • 병렬 실행 중에도 한 번에 하나의 스레드만 실행될 수 있는 임계 영역을 나타냅니다.

4. 시퀀스 다이어그램 예제

간단한 시퀀스 다이어그램

[Actor] -> [Object1]: 메시지1
[Object1] -> [Object2]: 메시지2
[Object2] -> [Object1]: 반환 메시지
[Object1] -> [Actor]: 반환 메시지

제어 구조 예제

alt 블록 예제

alt
  [조건1]
    [Object1] -> [Object2]: 메시지1
  [조건2]
    [Object1] -> [Object3]: 메시지2
end

시퀀스 다이어그램은 객체 간의 상호작용을 시각적으로 표현하여 시스템의 동작을 명확히 이해하는 데 매우 유용합니다. 이번 글에서는 시퀀스 다이어그램의 주요 용어와 구성 요소들에 대해 알아보았습니다.

728x90
반응형
저작자표시 (새창열림)

'Programming > Etc' 카테고리의 다른 글

GitHub 기본 라벨에 대해 알아보기  (0) 2024.08.01
프론트엔드에서 어떤 프레임워크를 사용하는게 좋을까?  (0) 2024.07.31
Mac PC 에서 sleep 해제 방법  (0) 2024.07.06
REST API camal vs snake 어떤거를 쓰는게 좋을까?  (0) 2024.07.04
폰트 파일 확장자 정보에 대하여  (1) 2024.06.13
'Programming/Etc' 카테고리의 다른 글
  • GitHub 기본 라벨에 대해 알아보기
  • 프론트엔드에서 어떤 프레임워크를 사용하는게 좋을까?
  • Mac PC 에서 sleep 해제 방법
  • REST API camal vs snake 어떤거를 쓰는게 좋을까?
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
    250x250
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      이슈 트래킹
      마이크로서비스
      java8
      C# WPF
      분산 메시징 시스템
      투자전략
      XAML
      자바스크립트 트릭
      ES6
      WPF
      협업 도구
      서버 관리
      투자
      데이터 바인딩
      javascript
      재테크
      웹 개발
      Apache Kafka
      클라우드 네이티브
      소프트웨어 개발
      rest api
      주식투자
      클라우드 컴퓨팅
      dynamicresource
      데이터베이스 성능
      DevOps
      docker
      데이터 파이프라인
      Kubernetes
      Java
    • 최근 댓글

    • 최근 글

    이프로그
    시퀀스 다이어그램의 주요 용어와 요소 정리
    상단으로

    티스토리툴바