본문 바로가기
UML

[UML] 시퀀스 다이어그램 구성 및 작성법

by TJobim 2019. 3. 16.
반응형

먼저 UML이란, Unified Modeling Lanauge의 줄임말로

 

보통 소프트웨어 시스템을 모델링하여 시각화하는데 사용되며 여기에는 해당 시스템의 구조/설계 등이 포함되게 됩니다.

 

UML 다이어그램으로는 class diagram, use case diagram, sequence diagram, timing diagram

 

UML 자체에 대한 자세한 내용은 생략하겠습니다.

(UML에 대한 spec이 별도로 존재하고 이는 OMG(Object Management Group)에서 관리하고 있습니다.)

 


 

시퀀스 다이어그램(Sequence Diagram)이란

UML 다이어그램중 하나로, 생명선들 사이에서 전달되는 메세지들에 중점을 두고 그 순서를 나타내는 다이어그램입니다.

 

 

 

시퀀스 다이어그램 구성 요소

아래 예시는 시퀀스 다이어그램을 구성하는 주요 요소들을 보여주고 있습니다.

Major elements of UML sequence diagram.

 

 

 

Lifeline

Lifeline은 시퀀스 다이어그램 상의 독립적인 참여자를 나타냅니다. 여러 구성 요소들과 달리 lifeline은 2개 이상 다중으로 존재할 수 없는, 각각이 단 하나의 상호 작용 주체입니다.

 

Lifeline의 symbol은 아래와 같이 사각형 형태에 수직선이 연결되어 있는 모습이며, 사각형 안에 lifeline(참여자)에 대한 정보를 나타내고 수직선은 해당 참여자의 생명선을 나타냅니다.

 

 

 

Gate

Gate는 (시퀀스 다이어그램 내부)Message의 끝으로, 시퀀스 다이어그램으로 보여지는 범위 외부의 message에 대한 연결점으로,

이를 사용하는 목적은 모든 message에 대한 발신자와 수신자를 구체화하기 위함입니다.

 

 

Interaction Fragment

시퀀스 다이어그램의 대부분 요소들이 여기에 속하며,

이에 대한 공통적인(?) 표기법은 없고 각각의 subclass들이 스스로의 표기법을 갖습니다.

interation fragment에 해당하는 요소는 occurrence, execution, state invariant, combined fragment, interaction use 입니다.

 

 

Occurrence  

message나 execution의  시작/끝을 나타내는 요소로, 해당 이벤트(시작 또는 끝)의 시점을 보여주는 interation fragment입니다.
즉 occurrences의 순서에 따라 상호 작용이 나타내질 것이므로, occurrence는 상호 작용의 기본 단위라고 볼 수 있습니다.
 

이러한 occurrence는 별다른 표기법을 가지고 있는 것은 아니며, message의 시작/끝 또는 execution의 시작/끝을 가리키는 직선 화살표로 표현합니다.

 

Message Occurrence

각각의  message occurrence는 signal이나 operation call 발생 등을 보내거나 받는 것 같은 이벤트들을 나타냅니다.

 

Execution Occerrence

ececution occurrence는 action/behavior의 시작이나 끝에 대한 순간(시점)을 나타내는 occurrence입니다.

 

Execution

execution specification(또는 activation)을 뜻하며 lifeline에서 특정 기간을 나타내는 interation fragment입니다.
이 기간동안, 수행하게될 행동이나 활동 / 다른 lifeline으로 전달한 signal / 다른 lifeline으로 부터 응답을 기다리는 상태를 표현합니다.
 
물론, 아래 이미지와 같이 동일한 lifeline안에서 사각형이 겹쳐지는 형태로 execution specifications이 중복될 수 있습니다.

 

State Invariant

상호작용하는 과정에서 runtime 조건을 나타내는 interaction fragment로 

속성 값이나 변수 내/외부 상태 등등 다양한 종류가 명시될 수 있습니다.

 

다음 차례의 ccurrence specification 수행 바로전에 해당 조건이 평가(판단)되며, 조건을 만족할 경우에만 그 trace가 유효하게 됩니다.

state invariant는 보통 왼쪽 이미지와 같이 lifeline 상의 중괄호로 표현합니다.(오른쪽 이미지처럼 특정 symbol로 나타내기도 합니다.)

Attribute t of Task should be equal to complete.

                          

Task should be in Finished state.

 

 

Combined Fragment

interaction fragment들의 조합을 표현하는 interaction fragment로, 여러가지 interaction operator들과 각각에 해당하는 operands가 사용됩니다. 
interaction operator들은 아래와 같습니다.
 

Alternatives

alt라고 표현하며 단일 조건문과 같이, 특정 조건이거나 그 외 일때로 나누어지는 경우에 주로 사용됩니다. 
Interaction operator alt example.
 

Option

opt는 alt에서 처럼 조건을 통해 결정되지만 alt와 달리 else일 경우를 따로 정의하지 않고,
해당 행위가 발생하거나 아무것도 발생하지 않거나인 경우에 사용됩니다.
Interaction operator opt example.
 

Loop

말그대로 loop를 나타낼 때 사용하는 combined fragment입니다. loop operand를 통해 반복 횟수를 나타내며,
loop [ '(' min-int [ ',' max-int ] ')' ]  이러한 형태로 사용됩니다.
즉 operand 없이(무한 loop), loop(min-int), loop(min-int,max-int) 총 3가지 형태로 사용될 수 있습니다.
(min-int는 일반적으로 양수 값으로 사용합니다.)
Potentially infinite loop.         Loop to execute exactly 10 times.         Loop will execute minimum 5 times max 10 times unless guard is false.
 

Break

break는 자신이 포함되어 있는 interaction fragment 도중에 break하거나 예외 상황을 나타낼 때 사용합니다.
이를 위해 break operand가 사용되며, 해당 조건이 false일 땐 break를 무시합니다. 
Break enclosing loop if y>0.
 
 

Parallel

각 operand들이 병렬로 수행될 수 있음을 나타내는 interaction operator로 par이라 표현합니다.

여기에 포함된 operand들은 어떠한 순서로든 병렬로 실행될 수 있습니다.

Search Google, Bing and Ask in any order, possibly parallel.

 

 

 

- 원본 및 참고

  1. https://www.uml-diagrams.org/
  2. https://www.ibm.com/developerworks/rational/library/3101.html

 

 

반응형

댓글