본문 바로가기

💻 개발IT/UML

5. Statechart Diagram

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