본문 바로가기
까망 동네/OOAD & UML

[UML] State Chart Diagram

by 까망 하르방 2024. 10. 5.
반응형

State Machine (Statechart) Diagram

이름 그대로 상태(State)를 모델링하는 다이어그램

각각의 상태가 어떤 events로 transition 되었는지 보여준다.

State Chart 란예시



if ) e3 이벤트 발생
S1 Entry "a3" → S1.1 Entry "a4" → S1.1 Exit "a6" → S1 Exit "a5" 
→ e3 이벤트 "a2" → Se Entry "a1"





State Chart 무엇인가State Chart 예시


Guard Condition 만족하면 다른 State로 전환되며
넘어갈(Transition) 때 Action 수행
(Action 없이 Guard Condition만 있는 경우도 있다.)

event1 발생 state1 exit 하면서 Activity2 실행
이어서 Activity3 수행 후 state1 entry 하면서 Activity1 실행
(순서: Activity2 → Activity3 → Activity1)



State Chart 란State Chart 예시


① 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되어야 한다.

Composite State 예시



Orthogonal State

• 점선으로 Region 구분
• State가 active 되면 Region 들이 동시에 Active
• 어디로 들어오든 다 Active
• 끝나면 다른 Region이 끝나길 기다려다가 같이 exit

Orthogonal State 예시Orthogonal State 키보드



Submachine State

• 안경 모양 같은 표
• 안에 State Chart가 더 있는데 간단하게 표현한 것

Submachine State



History State 

[H] Shallow history (마지막 Active State에서 같은 레벨의 Init State로 이동)

• [H*] Deep(Strong) History (Level 제한 없이 마지막 Active State로 이동)
• 이전 수행한 곳에 돌아가는데 어떤 Hierarchy 돌아갈지 다르다.
• 이전 상태 없다면 H, H* 연결된 선으로 이동

Statue Chart 예시


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

댓글