상태 다이어그램 (State Diagram) - 하나의 객체가 생존기간동안 다른 객체와 상호작용하면서 어떻게 상태가 변해가는지를 표현하는 다이어그램 - 객체들 사이에서 발생하는 이벤트에 의해서 객체의 상태가 변화
상태 다이어그램의 용도 - 한 객체의 상태 변화를 상세히 분석 - 이벤트에 대한 객체의 반응 분석 - 객체의 속성이나 동작 검증 -> 객체의 상태는 속성값(변수)로 정의 -> 이벤트는 객체의 동작(메소드)로 정의 -> 향후 클래스 다이어그램에 정의된 클래스의 속성과 동작을 검증할 수 있음 +) 객체 다이어그램의 하나의 객체는 상태 다이어그램의 한 순간임
상태 다이어그램의 구성요소 - 시작 상태 - 종료 상태 - 상태 (state) - 상태 전환 (전이, transition) -> 상태 사이의 흐름을 화살표로 표현 - 이벤트 -> 상태 전환을 유발하는 자극 -> ' 트리거 [가드] / 액티비티 '로 표현됨 - 트리거 : 전이를 유발하는 이벤트의 이름 - 가드 : 전이가 일어나는 조건 (boolean) - 액티비티 : 전이가 일어나는 동안 수행되는 행동 - 프레임 -> 상태 다이어그램의 범위 ( 주석 처리 같은 것 -> 구현 때 도움 )
액티비티 다이어그램(Activity Diagram) - 활동 다이어그램 - 시스템이 어떻게 동작하는지 시스템의 전체적인 흐름을 모델링하기 위해 사용 - 객체들의 상호관계를 순서에 따라 도식화
액티비티 다이어그램의 용도 - 유스케이스 다이어그램의 실현화 -> 유스케이스 다이어그램에서는 알 수 없는 시간의 흐름을 액티비티 다이어그램을 통해 표현할 수 있다.
액티비티 다이어그램의 구성요소 - 시작점에서 시작하여 액티비티를 거쳐 끝나는 흐름 (기본) - 분기 : 둘 중 어떤 것을 선택할지 나누는 흐름 ( 마름모를 사용해서 분기와 병합을 표현 ) - 병렬 : 두 가지 업무가 동시에 진행됨 -> 포크 노드와 조인 노드를 이용하여 병렬을 나타냄 -> 액티비티를 실행하는 주체를 알 수 없음 - 파티션 -> 액티비티를 진행하는 객체에 따라 파티션을 나눠서 객체를 표시 -> 액티비티 다이어그램의 Swim Lane화
동적 다이어그램 비교 - 시퀀스 다이어그램 vs 액티비티 다이어그램 -> 시퀀스 다이어그램 : 객체 중심, 객체간의 어떤 메세지를 주고 받는지 -> 액티비티 다이어그램 : 액티비티 중심, 어떻게 객체들이 소통하는지