본문 바로가기
Concepts/UML

UML - 액티비티 다이어그램

by ocwokocw 2021. 2. 17.

- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다.

- 액티비티 다이어그램

액티비티 다이어 그램은 순차로직, 업무절차, 워크 플로우를 기술하는 방법이다. 플로우차트와 비슷하지만 액티비티 다이어그램은 병렬 행동을 지원한다.

액티비티 다이어그램은 위의 그림처럼 생겼다. 위에서 아래의 방향으로 차례차례 요소들을 살펴보자.

 

'초기노드' 액션에서 시작하여 주문 접수 액션을 수행한다. 초기노드액션은 시작점이 되며 액션은 액티비티 다이어그램의 아주 기본적인 요소이다.

 

주문접수 액션 수행 후 '포크'라는 것을 만난다. 포크는 이름에서 유추할 수 있듯이 하나의 들어오는 플로우와 여러개의 나가는 플로우로 이어져있다. 포크에서 나가는 플로우가 만나는 주문서 작성과 주문발송 액션간에는 순서없이 병렬로 수행가능함을 의미한다. 예를 들어 주문서 작성 -> 송장발송 -> 대금수령 -> 일반배송의 순으로 액션이 수행될수도 있고, 송장발송 -> 주문서 작성 -> 일반배송 -> 대금수령의 순으로 액션이 이루어질수도 있다.

 

주문종결전 '조인' 액션이라는 것이 있다. 조인 액션으로 들어오는 여러 개의 플로우가 모두 완료되어야 그 다음 액션이 수행될 수 있음을 나타낸다. 배송이 먼저 끝났다면 대금 수령이 완료될때까지 주문 종결 액션을 수행할 수 없다.

 

'결정'은 분기에 해당하는 로직이다. 결정에서 나가는 여러개의 플로우에 []로 표시된 부분은 boolean 조건으로 표시되는 가드이다. 결정은 여러개의 플로우중 하나만 선택될 수 있다. 예를 들어 긴급 주문이면 익일 배송을 하거나 그게 아니라면 일반 배송을 한다. 익일 배송과 일반 배송을 둘 다 수행할 수 없다. '병합'은 결정으로 시작된 플로우의 끝을 나타낸다. 조인과 달리 하나의 플로우만 들어오면 다음 단계로 수행 된다.

 

'끝'은 이름 그대로 액티비티가 종료됨을 나타내는 액션이다.

댓글