State Machine (Statechart) Diagram
이름 그대로 상태(State)를 모델링하는 다이어그램
각각의 상태가 어떤 events로 transition 되었는지 보여준다.
if ) e3 이벤트 발생
S1 Entry "a3" → S1.1 Entry "a4" → S1.1 Exit "a6" → S1 Exit "a5"
→ e3 이벤트 "a2" → Se Entry "a1"
Guard Condition 만족하면 다른 State로 전환되며
넘어갈(Transition) 때 Action 수행
(Action 없이 Guard Condition만 있는 경우도 있다.)
event1 발생 state1 exit 하면서 Activity2 실행
이어서 Activity3 수행 후 state1 entry 하면서 Activity1 실행
(순서: Activity2 → Activity3 → Activity1)
① x= 4로 Entry
② Guard [x==4] 만족하니 exit 할 수 있음
③ exit 할 때 x++ 되어 x = 5
④ Transition 되면서 x*2 되어 x = 10
⑤ S2 Entry 하면서 x++ 되어 x = 11
StateChart 종류
• Composite State
• Orthogonal State
• Submachine State
• History State
Composite State
• State안에 State가 있는 형태
• State는 한번에 한개만 active되어야 한다.
Orthogonal State
• 점선으로 Region 구분
• State가 active 되면 Region 들이 동시에 Active
• 어디로 들어오든 다 Active
• 끝나면 다른 Region이 끝나길 기다려다가 같이 exit
Submachine State
• 안경 모양 같은 표
• 안에 State Chart가 더 있는데 간단하게 표현한 것
History State
• [H] Shallow history (마지막 Active State에서 같은 레벨의 Init State로 이동)
• [H*] Deep(Strong) History (Level 제한 없이 마지막 Active State로 이동)
• 이전 수행한 곳에 돌아가는데 어떤 Hierarchy 돌아갈지 다르다.
• 이전 상태 없다면 H, H* 연결된 선으로 이동
Event 순서 | init → e1 → e2 → e10 → e9
e1) S5 → S4 entry → S1 Entry → S1.1 Entry
e2) S1.2 Entry
e10) S5 Entry
e9) [H] 같은 Level에 있는 S1 Entry → S1.1 Entry
만약에 e9가 아닌 e8 발생하였다면
[H*]로 S1.2 Entry 하게 된다.
'까망 동네 > OOAD & UML' 카테고리의 다른 글
[OOAD] UP - Elaboration 단계 (1) | 2024.10.13 |
---|---|
[UML] Sequence Diagram (2) | 2024.10.12 |
[OOAD] UP(Unified process) 무엇인가? (0) | 2024.10.11 |
[UML] Use Case Diagram (0) | 2024.10.10 |
[UML] Activity Diagram (0) | 2024.10.07 |
댓글