활동 다이어그램(Activity Diagram)
활동 다이어그램이란? |
어떤 Activity의 흐름으로 시스템이 진행되는지 표현하는 다이어그램
로직, 절차, 흐름을 기술하며 플로우 차트와 굉장히 유사하다.
업무 흐름이나 코드 실행 흐름을 표현할때 주로 사용한다.
또는 레거시코드를 분석할때 활동 다이어그램으로 코드가 어떤식으로 진행되는지 그려가면서 분석하기도 한다.
활동 다이어그램(Activity Diagram)과 굉장히 유사하기 때문에 잘 구분해야 한다.
상태 다이어그램은 말 그대로 상태가 어떻게 변하는지 보는데 집중한다.
활동 다이어그램은 어떤 활동들을 순서로 진행하는지 보는데 집중한다.
유스케이스 다이어그램의 유스케이스들간의 순서도라고 볼 수도 있다.
그래서 유스케이스들과 액티비티들의 목록이 대응된다.
구성 요소 |
- 시작점(Initial State)
- 마침점(Final State)
- 활동(Activity)
- 전이(Transition)
- 선택점(Decision)
- 구획면(Swim lane) : 파티션이라고도 부름
- 오브젝트 노드
상태 다이어그램과 워낙 유사하기 때문에 예시를 보며 추가된 점이나 차이점만 설명한다.
상태다이어그램 : https://smallpants.tistory.com/304
1) 시작점, 마침점
먼저 시작점, 마침점의 경우 상태 다이어그램과 동일하다.
2) 활동
활동의 경우 상태가 들어가던 칸에 행동이 들어간다.
3) 전이
전이의 경우 활동의 순서에 따른 방향을 가리킨다.
4) 선택점
선택점의 경우 분기 처리를 표현할 수 있다.
마름모 모양으로 분기를 표현하며 결정 노드(decision node)와 병합 노드(merge node)라고 부르고
아래의 결정노드에서 조건에 따라 분기되고 병합노드에서 병합된다.
5) 구획면
구획면은 파티션이라고도 부른다.
실행의 주체를 나누기 위해 파티션을 나눌 수 있다.
6) 오브젝트 노드
오브젝트 노드는 한 액티비티에서 다른 액티비티로 전해지는 정보를 나타낸다.
오브젝트 노드는 각진 사각형으로 표현하며
오브젝트 노드의 흐름은 실선 화살표로 표시한다.
예를들어 아래의 활동 다이어그램의 경우 첫번째 액티비티 후 Appt Request Info정보가 실선 화살표가 가리키는 액티비티로 전해진다는 뜻이다.
7) 포크와 조인
마찬가지로 포크와 조인도 가능하다.
많은 면에서 상태다이어그램과 비슷하다.
8) 확장노드와 확장영역
확장 노드는 어떤 목록을 받고 해당 목록의 내용들을 확장영역에 전달하며
아래 사진은 확장노드에 있는 목록을 반복해서 돌면서 데이터 전송을 한다는 뜻이다.
※ 참고 문헌
https://youtu.be/oLhlWX8Don4?si=b7nTSCnuDvbEn01I