UML의 상태 머신 다이어그램 및 상태 차트 다이어그램
상태 머신 다이어그램이란 무엇입니까?
상태 다이어그램 소프트웨어 시스템의 동작을 캡처하는 데 사용됩니다. UML 상태 머신 다이어그램은 클래스, 하위 시스템, 패키지 또는 전체 시스템의 동작을 모델링하는 데 사용할 수 있습니다. 상태 차트(Statechart) 또는 상태 전환 다이어그램(State Transition Diagram)이라고도 합니다.
상태차트 다이어그램이란 무엇입니까?
상태 차트 다이어그램은 외부 엔터티 및 시스템 내에서 발생하는 상호 작용이나 통신을 모델링하는 효율적인 방법을 제공합니다. 이러한 다이어그램은 이벤트 기반 시스템을 모델링하는 데 사용됩니다. 객체의 상태는 이벤트를 통해 제어됩니다. 상태 차트 다이어그램은 애플리케이션 시스템 내 엔터티의 다양한 상태를 설명하는 데 사용됩니다.
UML에는 총 두 가지 유형의 상태 머신 다이어그램이 있습니다.
1. 행동 상태 머신 다이어그램
- 시스템에 존재하는 엔터티의 동작을 캡처합니다.
- 요소의 특정 구현을 나타내는 데 사용됩니다.
- 시스템의 동작은 OOAD의 동작 상태 머신 다이어그램을 사용하여 모델링할 수 있습니다.
2. 프로토콜 상태 머신 다이어그램
- 이러한 다이어그램은 프로토콜의 동작을 캡처하는 데 사용됩니다.
- 이벤트와 관련하여 프로토콜 상태가 어떻게 변경되는지를 나타냅니다. 또한 시스템의 해당 변경 사항을 나타냅니다.
- 이는 요소의 특정 구현을 나타내지 않습니다.
왜 상태 머신 다이어그램인가?
상태 차트 다이어그램은 시스템의 동적 측면을 캡처하는 데 사용됩니다. 상태 머신 다이어그램은 애플리케이션의 동작을 나타내는 데 사용됩니다. 객체는 수명 동안 다양한 상태를 거칩니다. 객체의 수명은 프로그램이 종료될 때까지 유지됩니다. 개체는 개체 내에서 발생하는 이벤트에 따라 여러 상태에서 변경됩니다. 각 상태는 개체에 대한 고유한 정보를 나타냅니다.
상태 차트 다이어그램은 내부 또는 외부 이벤트에 응답하는 대화형 시스템을 설계하는 데 사용됩니다. UML의 상태 차트 다이어그램은 개체의 한 상태에서 다른 상태로의 실행 흐름을 시각화합니다.
객체가 생성되는 순간부터 객체가 파괴되거나 종료될 때까지의 객체 상태를 나타냅니다.
상태 차트 다이어그램의 주요 목적은 대화형 시스템을 모델링하고 객체의 모든 상태를 정의하는 것입니다. 상태 차트 다이어그램은 애플리케이션 시스템의 동적 동작을 캡처하도록 설계되었습니다. 이러한 다이어그램은 시스템 및 시스템 내의 엔터티의 다양한 상태를 나타내는 데 사용됩니다.
상태 머신 다이어그램(Statechart Diagram)에 대한 표기 및 기호
다음은 주 차트 다이어그램 전체에서 사용되는 다양한 표기법입니다. 이러한 모든 표기법을 합치면 단일 다이어그램이 됩니다.
초기 상태
초기 상태 기호는 상태 기계 다이어그램의 시작을 나타내는 데 사용됩니다.
최종 상태
이 기호는 상태 기계 다이어그램의 끝을 나타내는 데 사용됩니다.
결정 상자
조건이 포함되어 있습니다. 평가된 보호 조건의 결과에 따라 프로그램 실행을 위한 새 경로가 선택됩니다.
전이
전이(transition)는 어떤 사건 때문에 발생하는 한 상태에서 다른 상태로의 변화이다. 전환은 객체의 상태를 변경합니다.
상태 상자
이는 개체의 수명 중 특정 순간입니다. 이는 분류자 본문 내의 일부 조건이나 명령문을 사용하여 정의됩니다. 이는 정적 상황뿐만 아니라 동적 상황을 나타내는 데 사용됩니다.
모서리가 둥근 직사각형을 사용하여 표시됩니다. 둥근 사각형 안에는 주의 이름이 적혀 있습니다.
상태의 이름은 사각형 밖에도 배치할 수 있습니다. 이는 복합 또는 하위 머신 상태의 경우에 가능합니다. 상태의 이름을 사각형 안에 배치하거나 사각형 밖에 표 상자로 배치할 수 있습니다. 동시에 두 가지를 수행할 수는 없습니다.
상태는 활성 또는 비활성일 수 있습니다. 상태가 작업 모드에 있으면 활성화되고, 실행을 중지하고 다른 상태로 전환하자마자 이전 상태는 비활성화되고 현재 상태는 활성화됩니다.
상태 유형
통합 모델링 언어는 세 가지 유형의 상태를 정의합니다.
- 단순 상태
- 하위 주(substate)가 없습니다.
- 복합 상태
- 이러한 유형의 상태에는 하나 이상의 하위 상태가 있을 수 있습니다.
- 두 개 이상의 하위 상태로 구성된 복합 상태를 직교 상태라고 합니다.
- 하위 기계 상태
- 이러한 상태는 의미상 복합 상태와 동일합니다.
- 복합 상태와 달리 하위 시스템 상태를 재사용할 수 있습니다.
Statechart 다이어그램을 그리는 방법은 무엇입니까?
상태 차트 다이어그램은 객체가 통과하는 다양한 상태를 설명하는 데 사용됩니다. 한 상태에서 다른 상태로의 전환은 일부 트리거된 이벤트로 인해 발생합니다. 상태도를 그리려면 UML, 특정 개체의 가능한 모든 상태를 식별해야 합니다.
이 목적은 UML 다이어그램 시스템의 상태를 표현하는 것입니다. 상태는 상태 전이 다이어그램에서 중요한 역할을 합니다. 다이어그램을 구현하기 전에 모든 필수 개체, 상태 및 상태 내에서 변화를 일으키는 이벤트를 먼저 분석해야 합니다.
주 차트 다이어그램을 그릴 때는 다음 규칙을 고려해야 합니다.
- 상태 전환의 이름은 고유해야 합니다.
- 상태 이름은 쉽게 이해할 수 있어야 하며 상태의 동작을 설명해야 합니다.
- 객체가 여러 개인 경우 필수 객체만 구현해야 합니다.
- 각 전환 및 이벤트에 대한 적절한 이름이 제공되어야 합니다.
상태 머신 다이어그램은 언제 사용하나요?
상태 다이어그램은 실제 작업 모델과 객체 지향 시스템을 심층적으로 구현하는 데 사용됩니다. 이러한 다이어그램은 시스템의 동적 동작을 캡처하여 시스템의 동적 특성과 정적 특성을 비교하는 데 사용됩니다.
상태 차트 다이어그램은 처음부터 끝까지 시스템의 다양한 엔터티의 변경 사항을 캡처하는 데 사용됩니다. 이벤트가 시스템의 여러 상태 내에서 변경을 촉발할 수 있는 방법을 분석하는 데 사용됩니다.
상태 문자 다이어그램이 사용됩니다.
- 시스템의 객체를 모델링합니다.
- 대화형 시스템을 모델링하고 구현합니다.
- 상태 내에서 변경을 트리거하는 이벤트를 표시합니다.
상태 머신의 예
다음 상태 다이어그램 예제 차트는 사용자 인증 프로세스를 나타냅니다.
총 두 가지 상태가 있으며, 첫 번째 상태는 OTP를 먼저 입력해야 함을 나타냅니다. 그 후, OTP가 결정 상자에서 체크되고, 올바르면 상태 전환만 발생하고, 사용자는 검증됩니다. OTP가 올바르지 않으면 전환이 발생하지 않고, 위의 상태 머신 다이어그램 예에서와 같이 사용자가 올바른 OTP를 입력할 때까지 다시 시작 상태로 돌아갑니다.
상태 머신 다이어그램과 흐름도
다음은 Statechart Diagram과 Flowchart의 주요 차이점입니다.
상태 머신 다이어그램 | 흐름도 |
---|---|
시스템의 다양한 상태를 나타냅니다. | 순서도는 프로그램 실행 흐름을 보여줍니다. |
상태 머신에는 WAIT 개념이 있습니다. 즉, 작업이나 이벤트를 기다립니다. | 순서도는 개념을 기다리는 것을 다루지 않습니다. |
상태 머신은 실시간 실행 시스템에 사용됩니다. | 순서도는 시스템의 분기 시퀀스를 시각화합니다. |
상태 머신은 모델링 다이어그램입니다. | 순서도는 시퀀스 흐름 또는 DFD 다이어그램입니다. |
상태 머신은 시스템의 다양한 상태를 탐색할 수 있습니다. | 순서도는 경로와 제어 흐름을 다룹니다. |
제품 개요
- 상태 차트 다이어그램은 상태 머신 다이어그램이라고도 합니다.
- 이러한 다이어그램은 이벤트 기반 시스템을 모델링하는 데 사용됩니다.
- 엔터티의 상태는 이벤트의 도움으로 제어됩니다.
- 상태 머신 다이어그램에는 총 두 가지 유형이 있습니다. 1) 행동 상태 머신 다이어그램 2) 프로토콜 상태 머신 다이어그램
- 상태 차트 다이어그램은 시스템의 동적 측면을 캡처하는 데 사용됩니다.
- 상태는 객체 수명의 특정 순간입니다.