상태 다이어그램
IT 위키
State Diagram; 상태 머신 다이어그램; State Machine Diagram
객체가 살아 있는 동안 거치는 상태와, 사건에 따라 상태가 옮겨 가는 과정을 그린 UML 다이어그램
UML 2.0의 행위 다이어그램(Behavioral Diagram)에 속한다. 하나의 객체를 시간 축으로 따라가며 어떤 사건이 일어났을 때 어느 상태로 가는가를 나타낸다.
| 요소 | 표기 | 설명 |
|---|---|---|
| 상태 | 모서리가 둥근 사각형 | 객체가 특정 조건을 만족하며 머무는 구간 |
| 시작 상태 | 속이 찬 원 | 객체가 생성되는 지점. 하나만 둔다 |
| 종료 상태 | 속이 찬 원을 감싼 원 | 객체가 소멸하는 지점. 여러 개일 수 있다 |
| 전이 | 화살표 | 한 상태에서 다른 상태로의 이동 |
| 사건 | 화살표에 붙인 이름 | 전이를 일으키는 자극 |
전이에는 다음 형식으로 이름을 붙인다.
사건 [가드 조건] / 동작
- 사건(Event) : 전이를 일으키는 자극. 이것이 없으면 상태는 바뀌지 않는다.
- 가드 조건(Guard) : 사건이 일어나도 이 조건이 참일 때만 전이한다.
- 동작(Action) : 전이하면서 수행하는 일
같은 사건이 들어와도 현재 상태가 다르면 결과 상태가 달라진다. 상태 다이어그램을 읽을 때 "이 사건이면 무조건 저 상태"로 보면 틀린다. 출발 상태와 가드 조건을 함께 봐야 한다.
주문 객체라면 다음처럼 그린다.
접수 --결제완료--> 결제됨 --출고--> 배송중 --수령--> 완료 접수 --취소--> 취소됨
`배송중` 상태에서는 `결제완료` 사건이 들어와도 전이가 정의되어 있지 않으므로 상태가 바뀌지 않는다.
