본문 바로가기

소프트웨어 공학

(UML) Sequence Diagram

훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com

 

Sequence Diagram


sequence diagram
시퀀스 다이어그램은 시간 순서로 정렬된 객체 상호작용을 보여준다. 
- 위키백과 -

 

class diagram이 데이터와 정적인 것들 간 관계를 표현한 것이었다면 sequence diagram은 그 반대입니다.

소프트웨어의 동작, 논리의 흐름에 관한 것입니다.

 

Use Case Diagram에 대해서 배워본 적이 있었죠?(링크)

Use Case Diagram의 각 Use Case마다 Use Case Description을 써야 한다고 말씀드렸었는데요,

UCD를 참고하여 Sequence Diagram까지 만들어주면 됩니다.

 

정리하면, Use Case Description과 Class Diagram을 참고하여 Sequence DIagram을 만들고,

이를 코드로 옮기면 됩니다.


Sequence Diagram 예제

출처 : velog.io/@kbj7227

sequence diagram 예제



 

구성요소


Message - 함수 호출을 의미 (반환값, 매개변수까지)
Actor

1. Active Actor
-> Message 호출의 주체

2. Passive Actor
-> Message 호출 당하는 존재
Controller Object

한 로직 안에서 Message의 흐름을 관리하는 존재
Y축으로 내려갈수록 작업의 흐름

Controller Object는 Message의 흐름을 관리할 뿐만 아니라 Actor로부터 입력을 받아 Passive Actor나 Participating Object로 보내는 일, 그들로부터 받은 결과를 다시 Workflow로 가져오는 일을 한다.

Actor - Object간 직접 소통이 아니라 Controller Object를 두는 이유는
의존성을 낮추기 위해서이다.
의존성을 낮추면 로직 변경사항에 대처하기 쉬워진다.
Participating Object

로직을 실행하는데 필요한 협력 객체들

미리 그려놓았던 Class Diagram에서 가져온다.
Workflow

작업의 흐름

미리 써놓았던 Use Case Description을 참고하면 된다.
Combined Fragment

작업 단위.

아래에서 자세히 설명

 

 

 

Combined Fragment

출처 : 학부 수업

Combined Fragment 예제

 

위의 Sequence Diagram에서 심심치 않게 보이는 네모 상자의 정체입니다.

이것은 특정 로직 (조건, 분기 등)을 적용하는 구성단위입니다.

 

Interaction Operator

1. alt - choice -> switch와 같음

2. opt - if

3. loop - while [guard] 넣어서 탈출 조건 만들 수 있음. min-int 최소 반복 max-int 최대 반복

4. break - 조건 만족하면 break 실행하고 끝냄

5. par은 멀티 프로세스 sub-task가 동시에 이뤄짐 여러 장점이 있으나 설계에 신중해야 함.

- thread

-process

-process core

-processor

-node

 


 

Sequence Diagram 만드는 방법


1. Active Actor을 가장 왼쪽 1 column에 위치시킨다.

2. Message Controller을 2 column에 위치시킨다.

3. Class Diagram을 참고하여 PO들을 오른쪽 칼럼들에 위치시킨다.

4. Passive Actor은 적절한 곳에 위치시킨다.

5. UCD(Description)을 참고하여 workflow를 Message에 따라 정의한다.