상태 분해를 사용하여 배타적 모드 및 병렬 모드 정의하기
모든 상태(또는 차트)는 상태(또는 차트)에 포함될 수 있는 하위 상태의 유형을 지시하는 분해를 가집니다. 상위 상태의 모든 하위 상태는 상위 상태 분해와 동일한 유형이어야 합니다. 상태 분해는 배타적(OR) 또는 병렬(AND)일 수 있습니다.
배타적(OR) 상태 분해
테두리가 실선인 하위 상태는 배타적(OR) 상태 분해를 나타냅니다. 이 분해를 사용하여 상호 배타적인 동작 모드를 기술할 수 있습니다. 상태에 배타적(OR) 분해가 있으면 한 번에 하나의 하위 상태만 활성화할 수 있습니다.
예를 들어 다음 차트에서는 상태 A
나 상태 B
중 하나만 활성화될 수 있습니다. 상태 A
가 활성화되어 있는 경우 상태 A1
이나 상태 A2
중 하나만 주어진 시간에 활성화될 수 있습니다.
병렬(AND) 상태 분해
테두리가 파선인 하위 상태는 병렬(AND) 분해를 나타냅니다. 이 분해를 사용하여 동시 동작 모드를 기술할 수 있습니다. 상태에 병렬(AND) 분해가 있으면 모든 하위 상태가 동시에 활성화됩니다.
다음 예제에서 상태 A
가 활성화되어 있으면 A1
과 A2
가 동시에 활성화됩니다.
다음 예제에서 보여주듯이 병렬 상태 내의 활동은 기본적으로 독립적입니다.
다음 예제에서 상태 A
가 활성화되면 상태 B
와 C
가 동시에 활성화됩니다. 상태 C
가 활성화되면 상태 C1
또는 상태 C2
중 하나만 활성화될 수 있습니다.
하위 상태 분해 지정하기
분해를 설정하여 상위 상태에 병렬(AND) 상태를 포함할지 배타적(OR) 상태를 포함할지를 지정합니다. 활성화되면 모든 하위 상태가 활성화되는 상태는 병렬(AND) 분해를 갖습니다. 활성화되면 하나의 하위 상태만 활성화되는 상태는 배타적(OR) 분해를 갖습니다.
상태의 분해를 변경하려면 상태를 선택하고 마우스 오른쪽 버튼으로 클릭하여 분해 상황별 메뉴를 표시한 다음 메뉴에서 배타적(OR) 또는 병렬(AND)를 선택합니다.
차트의 상태 분해도 지정할 수 있습니다. 이 경우 Stateflow® 차트는 최상위 상태를 하위 상태로 간주합니다. 차트는 배타적 분해를 사용하여 상태를 만듭니다. 차트의 분해를 지정하려면 선택한 객체를 선택 취소하고 차트를 마우스 오른쪽 버튼으로 클릭하여 분해 상황별 메뉴를 표시한 다음 메뉴에서 배타적(OR) 또는 병렬(AND)를 선택합니다.
하위 상태의 모양은 상위 상태의 분해를 나타냅니다. 배타적 하위 상태는 테두리가 실선으로 표시되고 병렬 하위 상태는 파선으로 표시됩니다. 병렬 하위 상태는 오른쪽 상단 코너에 번호도 있습니다. 번호는 형제 하위 상태를 기준으로 하위 상태의 활성화 순서를 나타냅니다.