Statechart Diagram (= State machine diagram)
모든 객체의 상태(상태 변화)를 확인할 수 있는 다이어그램
State
1. States : State machine의 node들
2. 종류
3. operations
- entry / Activity(...) : 들어올 때
- exit / Activity(...) : 나갈 때
- do / Activity(...) : State에 있을 때
4. Transition
현재 상태 S에서 e라는 이벤트가 발생하는데 만약 g 조건을 만족하게 되면 T 상태로 변하게 되는데 변하면서 A action을 같이 함
예시)
1. state1에서 event1이 발생하는데, state1을 나가기 위해서 Activity2를 우선 실행되고 Activity3 실행하면서 다시 들어오면서 Activity1 실행
2. S1이 active 상태에서, x값은 4 설정 → e 발생할 때 조건 [x==4]가 만족하여 S1이 나가면서 x가 5로 설정 → S2로 변경이 발생하면서 x값이 10이 됨 → S2로 들어오면서 x는 11로 설정
Composite State
state의 hierarchy를 만드는 것 (:= OR state 내부의 많은 substate 중 반드시 1개만 active)
- state 안에 state chart가 또 존재
예시)
S3에서 e2를 받을 때 : a0 → a2 → a3 → a4
S3에서 e1을 받을 때 : a0 → a2 → a3 → a7
a3 → a4 → (e3 발생한다면) a6 → a5 → a2 → a1
(e5 발생한다면) a6 → a5 → a3 → a1
(e4 발생한다면) a6 → a7 → (e4 또 발생하면) a8 → a5 → a1
Orthogonal State
Composite state가 2개 이상의 region으로 나누어짐 (:= AND state)
- 점선으로 region을 나누는데 들어오게 되면 이 region 동시에 모두 active 됨
- 어느 방향으로 들어오든 한 state 내의 region 동시에 active
- region 모두가 end state 되어야 state 밖으로 나갈 수 있음
- parallelization node : initial node가 아닌 다른 node로 직접 들어갈 수 있음
- synchronization node : end node가 아닌 밖의 다른 node로 직접 나갈 수 있음
※ 만약 region A가 SA3 상태에서 S5가려고 기다리고 있는데, SB3에서 S5아닌 end state로 가게 된다면 deadlock 발생
* Submachine State (SMS)
node안에 또 다른 state machine diagram이 있다는 것을 의미 (안경 모양)
- notation : state:submachinState
History State
이전에 진행한 State로 다시 돌아가서 다시 시작하고 싶을 때,
1. Shallow history : composite state와 같은 level의 state로 복구
2. Deep history state : nesting depth를 넘어 마지막 active substate로 복구
예시)
만약 e9이 발생하면 state는 S1/S1.1에서 시작 (H의 level은 S1과 동일한데 S1 복구되면서 S1.1으로 들어가게됨)
만약 e8이 발생하면 state는 S1/S1.2에서 시작
※ H, H*에 있는 transition 선은 저장된 history가 없는 경우에 실행됨
정확히(?)가 문제. 시간의 순서대로 표현은 가능
'💻 개발IT > UML' 카테고리의 다른 글
7. Component Diagram (0) | 2022.02.26 |
---|---|
6. Activity Diagram (0) | 2022.02.26 |
4. Sequence Diagram (0) | 2022.02.25 |
3. Class Diagram (0) | 2022.02.25 |
2. Use Case Diagram (0) | 2022.02.25 |
1. An Introduction to UML (0) | 2022.02.08 |