1291.13 상태 머신의 유지보수성 한계
1. 유지보수성의 정의
소프트웨어 유지보수성(maintainability)은 시스템의 결함 수정, 기능 개선, 환경 변화에 대한 적응을 수행하는 데 필요한 비용과 노력의 역수로 정의된다. ISO/IEC 25010 품질 모델에서 유지보수성은 모듈성(modularity), 재사용성(reusability), 분석 용이성(analysability), 수정 용이성(modifiability), 테스트 용이성(testability)의 하위 특성으로 구성된다.
유한 상태 머신(FSM) 기반 행동 제어 시스템에서 유지보수성은 상태와 전이의 구조적 결합, 상태 공간의 규모, 전이 규칙의 분산적 정의 등 FSM 고유의 구조적 특성에 의하여 제약을 받는다.
2. 결함 수정의 어려움
2.1 결함 국소화의 난이도
FSM에서 시스템 오동작의 원인을 국소화(localize)하기 위해서는 오동작이 발생한 상태, 해당 상태에서의 전이 규칙, 그리고 해당 상태에 도달하게 된 선행 경로를 모두 분석해야 한다. 결함이 특정 상태의 행동이 아닌 전이 조건의 오류에 기인하는 경우, 해당 전이와 관련된 원본 상태와 대상 상태를 모두 검토해야 하며, 이는 결함 검색 범위를 확대시킨다.
상태 수가 n이고 전이 수가 t인 FSM에서 결함 국소화를 위한 탐색 공간의 크기는 O(n + t)이며, 밀접하게 연결된 FSM에서 t \approx O(n^2)이므로 탐색 공간은 상태 수의 제곱에 비례한다.
2.2 수정의 비국소성
FSM에서 결함을 수정하기 위하여 전이 규칙을 변경하면, 변경된 전이를 포함하는 모든 실행 경로의 올바름이 재검증되어야 한다. 하나의 전이 수정이 다른 전이 경로에 간접적 영향을 미칠 수 있으므로, 수정의 영향 범위를 한정하기 어렵다. 이는 “수정이 새로운 결함을 유발하는” 회귀 오류(regression error)의 발생 위험을 높인다.
3. 기능 추가의 비용
기존 FSM에 새로운 기능(행동, 상태, 이벤트)을 추가할 때의 비용을 분석한다.
3.1 새로운 상태 추가
새로운 상태 q_{\text{new}}를 추가할 때, q_{\text{new}}로의 진입 전이, q_{\text{new}}로부터의 퇴출 전이, q_{\text{new}}에 대한 긴급 전이를 모두 정의해야 한다. 추가 비용은 O(n \cdot |\Sigma|)에 비례하며, FSM의 규모가 클수록 하나의 상태를 추가하는 비용도 비례적으로 증가한다.
3.2 새로운 이벤트 추가
새로운 이벤트 \sigma_{\text{new}}를 입력 알파벳에 추가할 때, 기존의 모든 상태에서 \sigma_{\text{new}}에 대한 반응—전이 발생 또는 이벤트 무시—을 정의해야 한다. 이는 n개의 상태에 대하여 n개의 전이 규칙(또는 무시 규칙)을 추가하는 것을 요구한다.
3.3 상태 변수 추가
새로운 상태 변수를 도입하면 상태 공간이 곱적으로 확장된다. 기존 n개의 상태에 k개의 값을 가지는 새로운 변수를 추가하면 상태 수가 n \times k로 증가하며, 모든 기존 전이가 새로운 변수의 각 값에 대하여 유효한지 재검토되어야 한다.
4. 환경 적응의 제약
로봇 시스템의 운용 환경이 변경되면—예를 들어, 새로운 유형의 센서가 추가되거나, 임무 프로토콜이 개정되거나, 안전 규정이 강화되면—FSM을 이에 맞추어 적응시켜야 한다. 이러한 적응에는 다음 작업이 수반된다:
- 상태 재정의: 변경된 환경에 맞추어 기존 상태의 행동을 수정하거나 상태를 세분화한다.
- 전이 조건 갱신: 새로운 센서 데이터나 환경 변수에 기반한 전이 조건을 갱신한다.
- 새로운 전이 경로 검증: 변경된 전이 규칙에 의한 새로운 실행 경로의 올바름을 검증한다.
이러한 적응 작업의 비용은 FSM의 규모에 비례하며, 대규모 FSM에서는 환경 변화에 대한 적응이 실질적으로 시스템의 전면 재설계를 요구할 수 있다.
5. 유지보수 비용의 장기적 추이
소프트웨어 생명주기 관점에서 FSM 기반 시스템의 유지보수 비용은 시스템의 규모가 증가함에 따라 초선형적(superlinearly)으로 증가하는 경향이 있다. 이는 다음과 같은 피드백 루프에 기인한다:
- 기능 추가 요청에 의하여 상태와 전이가 증가한다.
- 증가된 상태와 전이는 후속 수정의 영향 범위를 확대한다.
- 확대된 영향 범위는 수정 비용을 증가시킨다.
- 증가된 수정 비용은 설계 타협(design compromise)을 유발하여 시스템의 구조적 품질을 저하시킨다.
- 저하된 구조적 품질은 후속 유지보수의 비용을 더욱 증가시킨다.
이러한 자기 강화(self-reinforcing) 패턴은 FSM 기반 시스템이 일정 규모를 초과하면 유지보수가 사실상 불가능해지는 “유지보수 한계점(maintenance threshold)“에 도달하게 만든다.
6. 행동 트리의 유지보수 용이성
행동 트리에서 유지보수 비용은 FSM에 비하여 구조적으로 제한된다. 노드의 추가, 제거, 수정은 해당 노드의 직접적 부모와 자식에만 영향을 미치므로, 수정의 파급 범위가 O(1 + \text{children}(v))로 제한된다. 새로운 행동의 추가는 적절한 위치에 새 노드를 삽입하는 것으로 완료되며, 기존 노드의 전이 규칙을 재정의할 필요가 없다. 이러한 구조적 국소성은 행동 트리 기반 시스템의 장기적 유지보수 비용이 시스템 규모에 대하여 선형적으로 증가하게 하며, FSM의 초선형적 증가와 대비된다.
7. 참고 문헌
- Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- ISO/IEC 25010:2011. “Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models.”
- Lehman, M. M. (1980). “Programs, Life Cycles, and Laws of Software Evolution.” Proceedings of the IEEE, 68(9), 1060–1076.
v0.1.0