1291.12 Statecharts의 한계와 실용적 문제
1. Statecharts의 위치와 기여
Statecharts는 Harel (1987)이 제안한 시각적 형식론(visual formalism)으로, 유한 상태 머신(FSM)의 근본적 한계인 상태 폭발, 동시성 표현 불능, 추상화 부재를 해결하기 위하여 세 가지 핵심 메커니즘—계층적 상태 중첩(hierarchy), 직교 영역(orthogonality), 이력 상태(history)—을 도입하였다. Statecharts는 UML(Unified Modeling Language)의 상태 기계 다이어그램(State Machine Diagram)에 채택되어 소프트웨어 공학과 임베디드 시스템 분야에서 널리 활용되고 있다.
그러나 Statecharts가 FSM의 주요 한계를 완화하였음에도 불구하고, 자율 로봇 시스템의 복합 임무 제어에 적용할 때 다수의 잔존 한계와 실용적 문제가 드러난다.
2. 형식적 의미론의 비일관성
Statecharts의 가장 근본적인 문제 중 하나는 형식적 의미론(formal semantics)이 단일한 표준으로 합의되지 않았다는 점이다. Von der Beeck (1994)은 Statecharts의 20가지 이상의 상이한 의미론적 변종(semantic variant)이 존재함을 체계적으로 분석하였다. 이러한 비일관성은 다음 영역에서 실질적 문제를 유발한다:
- 동시 이벤트 처리: 동일 시각에 발생하는 복수 이벤트의 처리 순서와 결합 방식이 의미론에 따라 상이하다. 일부 의미론은 동시 이벤트의 순차적 처리를 가정하고, 다른 의미론은 완전 동시 처리를 가정한다.
- 전이 우선순위: 상위 복합 상태와 하위 상태에서 동일 이벤트에 대한 전이가 동시에 적용 가능할 때, 어떤 전이가 우선하는지에 대한 규칙이 의미론마다 다르다.
- 진입/퇴출 행동의 실행 시점: 전이 실행 중 행동(transition action)과 진입/퇴출 행동의 상대적 실행 순서가 의미론마다 상이하다.
이러한 의미론적 비일관성은 동일한 Statecharts 정의가 상이한 도구에서 상이한 행동을 생성할 수 있음을 의미하며, 이는 이식성(portability)과 상호 운용성(interoperability)을 저해한다.
3. 구현 복잡도
Statecharts의 완전한 의미론적 구현은 상당한 소프트웨어 공학적 노력을 요구한다. 구현에서 다루어야 하는 핵심 과제는 다음과 같다:
3.1 최소 공통 조상 판정
계층 횡단 전이에서 퇴출/진입 체인을 결정하기 위하여 원본 상태와 대상 상태의 최소 공통 조상(Lowest Common Ancestor, LCA)을 판정하는 알고리즘이 필요하다. 이 알고리즘의 정확한 구현은 계층 구조의 동적 변경이 가능한 환경에서 특히 주의가 요구된다.
3.2 이벤트 전파 메커니즘
직교 영역 간, 계층 수준 간의 이벤트 전파(event propagation) 메커니즘이 구현되어야 한다. 이벤트의 전파 범위(scope)—현재 복합 상태 내에서만 전파되는지, 상위 수준으로 전파되는지—에 대한 규칙이 필요하며, 이벤트 전파의 재귀적 특성이 구현 복잡도를 증가시킨다.
3.3 직교 영역 간 순서 결정
복수의 직교 영역이 동시에 전이를 실행할 때, 영역 간의 실행 순서를 결정하는 규칙이 필요하다. 이상적으로는 순서 독립적(order-independent)이어야 하나, 영역 간 이벤트 전파가 존재하면 순서에 의한 부작용이 발생할 수 있다.
4. 로봇공학 도구 지원의 제한
로봇공학 분야에서 Statecharts의 완전한 기능을 지원하는 실용적 도구는 제한적이다.
4.1 SMACH의 한계
ROS(Robot Operating System)의 SMACH (Bohren & Cousins, 2010) 라이브러리는 HSM의 기본 기능을 Python으로 제공하나, 직교 영역의 완전한 지원, 이력 상태, 깊은 전이 등 Statecharts의 고급 기능을 완전하게 구현하지 않는다. SMACH의 Concurrence 컨테이너가 직교 영역의 일부 기능을 제공하나, 영역 간 동기화와 이벤트 전파의 세밀한 제어가 제한적이다.
4.2 FlexBE의 접근
FlexBE (Schillinger et al., 2016)는 ROS 기반의 행동 실행 엔진으로, HSM의 기능을 웹 기반 시각적 편집기와 함께 제공한다. 그러나 FlexBE 역시 Statecharts의 완전한 의미론을 구현하지는 않으며, 실시간 반응성 측면에서 행동 트리에 비하여 제약이 존재한다.
4.3 산업용 도구의 영역 불일치
MATLAB/Simulink의 Stateflow, IBM Rhapsody 등 상업용 Statecharts 도구는 완전한 의미론적 구현을 제공하나, 로봇공학의 ROS2 생태계와의 직접적 통합이 용이하지 않으며, 라이선스 비용과 학습 곡선이 장벽으로 작용한다.
5. 확장성과 유지보수의 실무적 문제
5.1 계층 구조의 경직성
Statecharts에서 한번 정의된 계층 구조를 변경하는 것은 광범위한 파급 효과를 수반한다. 복합 상태의 경계를 재설정하면, 해당 경계를 통과하는 모든 전이, 이력 상태 참조, 진입/퇴출 행동이 재정의되어야 한다. 이는 요구사항 변경에 대한 설계의 적응성을 저하시킨다.
5.2 디버깅의 어려움
계층적 상태 중첩과 직교 영역에 의하여 시스템의 현재 상태는 복수의 활성 상태의 튜플로 표현되며, 이 튜플의 변화를 추적하는 것은 평탄화된 FSM에서의 단일 상태 추적보다 인지적으로 복잡하다. 특히 복수의 직교 영역에서 동시에 전이가 발생하는 경우, 각 영역의 상태 변화와 영역 간 상호작용을 동시에 파악해야 하므로 디버깅의 난이도가 크게 증가한다.
6. 행동 트리의 대안적 단순성
행동 트리는 Statecharts가 해결하고자 한 동일한 문제들—계층적 분해, 동시성 표현, 반응성—을 보다 단순한 메커니즘으로 처리한다. 행동 트리의 의미론은 단일하게 정의되어 있으며, Tick 기반 깊이 우선 순회라는 직관적 실행 모델에 의하여 모든 행동이 결정된다. 이는 Statecharts의 복수 의미론적 변종에 의한 혼란을 원천적으로 배제하며, 구현과 검증의 일관성을 보장한다 (Colledanchise & Ögren, 2018).
7. 참고 문헌
- Bohren, J., & Cousins, S. (2010). “The SMACH High-Level Executive.” IEEE Robotics & Automation Magazine, 17(4), 18–20.
- Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Harel, D. (1987). “Statecharts: A Visual Formalism for Complex Systems.” Science of Computer Programming, 8(3), 231–274.
- Schillinger, P., Kohlbrecher, S., & von Stryk, O. (2016). “Human-Robot Collaborative High-Level Control with Application to Rescue Robotics.” IEEE International Conference on Robotics and Automation (ICRA), 2796–2801.
- Von der Beeck, M. (1994). “A Comparison of Statecharts Variants.” Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT), Lecture Notes in Computer Science, Vol. 863, 128–148.
v0.1.0