동적 다이어그램은 객체지향 설계에서 사용되는 UML의 정적 모델, 동적 모델, 기능 모델 중 하나로, 보통 기능 모델과 동적 모델의 다이어그램을 합쳐서 분류하기도 합니다
동적 다이어그램이란 일반적으로 기능 모델링, 정적 모델링이 끝난 후 동적 모델링 시 사용되는 다이어그램으로 객체 사이의 변화를 표현한다.
주로 제어 흐름, 상호 작용, 동작 순서에 따른 변화를 표현하며 이를 위해 상태(State), 사건(Event), 동작(Action) 등의 개념들이 사용된다.
동적 다이어그램의 종류에는 대표적으로 시퀀스(Sequence) 다이어그램, 커뮤니케이션(Communication) 다이어그램, 스테이트(State, State-Machine) 다이어그램, 인터랙션 오버뷰(Interaction Overview) 다이어그램, 타이밍(Timing) 다이어그램이 있다.
시나리오의 흐름을 순차적으로 표현함으로써 객체와 객체 간의 상호 작용을 메시지 흐름으로 표기한다.
시퀀스 다이어그램은 유스케이스(Use Case)별로 작성한다.
문장으로 서술한 메시지는 클래스 간 연산으로 바뀌게 된다.
2차원으로 표현 되는 시퀀스 다이어그램에서 수직의 축은 발생 순서로서 호출 순서를 보여주고 수평의 축은 메시지가 전송되는 객체 인스턴스를 나타낸다.
시간에 따른 명시적 흐름을 보여주며 실시간 시스템이나 복잡한 명세를 가지는 시스템에 적합하다.
가장 많이 사용되는 동적 모델링 다이어그램이다.
객체들 사이의 행위를 나타내며 객체 간 정적인 구조에 역점을 두고 표현한다.
유스케이스별로 작성하며 하나의 유스케이스에서 다양한 이벤트 흐름별로 작성한다.
객체 간 메시지에 더 초점을 맞춘다.
이 다이어그램을 통해 관계를 잘 보여줄 수 있으며 상호 작용의 패턴을 관찰하기가 용이하다.
특정 객체에서 변경 발생 시의 파급 효과를 한눈에 보기 쉽다.
(3) 스테이트(State) 다이어그램
특정 클래스의 객체가 가질 수 있는 전체 유스케이스에 걸친 상태와 상태 간의 전이를 표현하는 다이어그램이다.
스테이트 다이어그램은 특정 시점에 발생하며, 상태 전이의 원인인 이벤트와 객체가 이벤트로 인해 원래 상태에서 다음 상태로 변화되는 전이(Transition),
그리고 상태 전이 시에 특정 조건을 만족할 경우에만 전이가 이루어지도록 하기 위해 설정되는 조건인 가드 컨디션(Guard Condition) 으로 구성된다.
이 다이어그램은 객체가 가질 수 있는 모든 상태를 보여주며, 특정 개체에 대하여 발생하는 상태 전이 과정을 묘사할 수 있다.
상태 머신(State Machine) 다이어그램으로 불리기도 한다.
다이어그램 UML 2.0에서 추가된 다이어그램으로 각각의 인터액션을 하나의 모듈로 보고 이들 간의 상호 관계를 표현하는 다이어그램이다.
각 인터액션은 시퀀스, 커뮤니케이션 다이어그램으로 상세 표현이 가능하다.
상위 수준 시스템의 구성을 보여준다.
실시간 시스템과 같이 시간에 대한 제약이 중요하게 다루어져야 할 때 사용된다.
가로축에 시간을 표기하고 세로축에 상태를 표기하여 시간이 지남에 따라 구성 요소 상태의 변화를 보여줄 수 있다.
출처 : NCS SW개발 교육자료 - 동적모델설계 학습모듈