상태 머신

UML 모델링에서 상태 머신은 개별 클래스 오브젝트, 유스 케이스 및 전체 시스템의 동적 동작 스펙입니다. 오퍼레이션을 제외하고는, 상태 머신을 작성할 때 상태 머신을 접속하는 오브젝트가 상태 머신의 소유자가 됩니다. 오퍼레이션에 대한 상태 머신을 작성할 때에는 오퍼레이션이 상태 머신의 소유자가 됩니다. 상태 머신을 작성하면 공백 상태 머신 다이어그램이 열립니다. 상태 머신 다이어그램은 상태 변경을 유발하는 조치, 한 상태를 다른 상태로 전이하는 이벤트 및 오브젝트의 상태 시퀀스의 그래픽 표시입니다. 상태 머신에 다이어그램을 추가하여 오브젝트의 다른 동작 측면을 설명할 수 있습니다.

상태 머신을 작성하여 중요한 동작이 있는 시스템과 클래스를 설명할 수 있습니다. 모든 오브젝트에 상태 머신이 필요하지는 않습니다. 오브젝트의 동작이 기본적이거나, 단순히 데이터를 저장 또는 검색하는 경우에는 오브젝트 동작이 중요하지 않을 수 있으며 상태 머신의 필요성이 많지 않을 수 있습니다. 상태 머신은 다른 계층 상태 레벨을 나타내는 중첩된 상태를 포함할 수도 있습니다. 중첩된 상태를 사용하여 오브젝트의 복잡한 상태 변경을 검토할 수 있습니다.

상태 머신에 다이어그램을 추가하여 오브젝트 동작의 여러 다른 Perspective를 설명할 수 있습니다. 각 다이어그램은 개별 창을 열지만 동일한 모델 요소가 모든 다이어그램에 표시됩니다. 상태 머신 내의 다이어그램은 기본적으로 동기화됩니다. 프로젝트 탐색기 보기에서 영역을 변경하면 동일한 상태 머신의 다른 다이어그램에 이 변경사항이 반영되고, 다이어그램의 영역 변경사항이 프로젝트 탐색기 보기에 반영됩니다. 프로젝트 탐색기 보기에서 영역에 수행한 변경사항이 해당 상태 머신 다이어그램에 반영되지 않고, 영역의 표준 특성 값을 거짓으로 변경하여 동일한 상태 머신의 다른 다이어그램과 무관하게 영역을 편집할 수 있도록 영역의 편집 설정을 변경할 수 있습니다.

상태 머신은 동적 동작을 표시하기 때문에 실시간 또는 이벤트 구동 시스템을 개발하기 위한 유용한 모델링 지원입니다. 소프트웨어 프로젝트 및 비즈니스 모델링의 전체 단계(phase)에서 상태 머신을 개발할 수 있습니다. 다음 경우에 상태 머신을 사용할 수 있습니다.

다음 오브젝트에 대한 상태 머신을 작성할 수 있습니다.

이벤트 구동 동작

상태 머신을 사용하여 이벤트 구동 동작을 모델링할 수 있습니다. 시간, 신호 또는 오퍼레이션과 같은 이벤트는 오브젝트 상태를 변경시킬 수 있습니다. 이벤트는 지속 기간이 없으며 다른 이벤트를 앞서거나 뒤따를 수 있습니다. 이벤트 구동 동작을 모델링하는 상태는 이벤트가 도달할 때까지 동일한 상태를 유지합니다. 상태가 이벤트에 응답한 후에는 프로세스가 다음 이벤트를 수신할 준비가 된 안정 상태로 돌아갑니다.


피드백