관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램) 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램)

Xerath(제라스) 2022. 10. 27. 03:42

목차

    728x90
    반응형

    State Machine Diagram

    : 상태 혹은 상태의 변화에 대한 행위를 나타내는 다이어그램

     

    - 주로 전체 시스템이나 서브 시스템, 객체가 타깃이 될 수 있음.

    - 객체 지향 개발에서는 객체가 타깃임.

    상태 머신 다이어그램 예시

    State

    - state: 일정 시간동안 타깃이 차지하는 특정 조건을 나타냄.

    - current state: 현재 타깃이 남아있는 state로 단 하나만이 될 수 있음.(한번에 여러 state에 위치 불가능.)

    Transition

    : 현재 state의 변화. Event에 의해서 발생함.

     

    Transition의 3요소

    1) Event

    : Transition을 실행하기 위한 트리거.(ex. 속도 증가 버튼 클릭)

    2) Guard

    :  Transition을 실행하기 위한 Boolean 조건(ex. 현재 속도가 최대가 아님(즉, 증가시켜도 됨))

    3) Effect

    : Transition이 실행되면 일어나는 optional 행위(ex. 속도 5km/h 증가)

    Transition 구성도
    State Machine Diagram 간단한 예시

    State 구성요소

    - entry: 해당 state에 들어왔을 때 실행하는 행위

    - do: 해당 state에서 실행하는 행위

    - exit: 해당 state에서 나갈 때 실행하는 행위

     

    Composite State(합성 State)

    : 내부에 substate들이 여럿 있는 State.

    Composite State 예시

    Fork & Join

    - Fork: 들어오는 Transition을 다수개의 Transition으로 나눔.

    Fork 예시

    - Join: 나가는 Transition들을 merge하여 하나로 합침.

    Join 예시

    Class Diagram과 State Machine Diagram 간의 일치성

    : 클래스 다이어그램에서의 Operation과 SMD의 Event는 동일한 역할을 한다.

    SMD 그리는 과정

    step 1. SMD로 그리려는 타깃 결정

    step 2. 모든 State 결정

    step 3. 모든 Event 결정

    step 4. 관련된 State간의 Transition에 Event를 작성

    step 5. State compartment, guard, effect 작성

    step 6. 클래스 다이어그램과 STD 간에 일치하는지 확인

     

    728x90
    반응형