System Engineering/SE Methodology

STPA: 시스템 안전분석 - (2) 컨트롤 스트럭처 모델링

habana4 2025. 1. 31. 03:07
반응형

시스템 안전 분석은 점점 더 복잡해지는 현대 시스템에서 필수적인 과제가 되었습니다. 특히 소프트웨어와 복잡한 상호작용을 포함하는 시스템에서는 기존의 고장 중심 접근법으로는 충분하지 않은 경우가 많습니다. 이러한 배경에서 제안된 STPA(System-Theoretic Process Analysis)는 시스템 사고(Systems Thinking)와 제어 이론(Control Theory)을 기반으로 안전을 분석하는 강력한 도구입니다.

이번 포스팅에서는 STPA의 단계별 절차와 그 특징, 그리고 이를 활용한 반복적이고 체계적인 분석 방법에 대해 알아 보겠습니다.

반응형

 

STPA의 단계별 절차

1. STPA: 시스템 안전분석 - (1) 분석 목적 정의

2. STPA: 시스템 안전분석 - (2) 컨트롤 스트럭처 모델링 (현재 글)

3. STPA: 시스템 안전분석 - (3) Unsafe Control Action(UCA) 식별

4. STPA: 시스템 안전분석 - (4) 손실 시나리오 식별

 

이 포스팅은 2018 3월, Nancy G. Leveson, John P. Thomas가 작성한 "STPA Handbook"을 한국정보통신기술협회(TTA)에서 한글로 번역한 STPA Handbook 한글판 v1.1을 참고하여 작성되었습니다.

 

컨트롤 스트럭처(Control Structure) 모델링

STPA(System-Theoretic Process Analysis)의 두 번째 단계는 컨트롤 스트럭처(Control Structure) 모델링입니다. 이 단계에서는 시스템 내의 제어 구조를 시각적으로 모델링하여, 안전 제약(Safety Constraints)이 각 구성 요소에 의해 어떻게 관리되고 유지되는지를 분석합니다. 이 과정은 시스템이 손실(Loss)을 예방하기 위해 올바르게 제어되고 있는지 확인하고, 제어 실패로 인해 발생할 수 있는 위험 요소를 파악하는 데 중점을 둡니다.

 

■ 컨트롤 스트럭처(Control Structure)란?

컨트롤 스트럭처는 제어(Controls)와 피드백(Feedback)의 흐름을 나타내는 시스템의 구조적 모델로, 시스템이 안전하게 작동하기 위해 각 구성 요소가 어떤 역할을 수행하며 상호작용하는지를 설명합니다.

 

 

 컨트롤 스트럭처의 주요 구성 요소

 

  • 컨트롤러(Controller): 시스템을 제어하는 요소(예: 소프트웨어, 사람, 자동 제어 시스템) 입니다. 이때 컨트롤 알고리즘은 컨트롤러의 의사 결정 절차를 나타냅니다. 즉, 컨트롤 액션을 제공할지 여부를 결정합니다. 또한 컨트롤러는 의사 결정에 사용되는 컨트롤러의 내부 동작 원리(internal belief)를 나타내는 프로세스 모델을 포함합니다. 
  • 제어 대상(Controlled Process): 컨트롤러가 명령을 통해 제어하는 시스템 요소(예: 차량, 기계, 프로세스).
  • 센서(Sensor): 컨트롤러가 필요한 정보를 수집하는 장치로, 시스템의 상태를 파악하는 역할을 합니다.
  • 피드백 루프(Feedback Loop): 컨트롤러가 명령의 결과를 확인하고 필요한 조정을 할 수 있도록 정보를 전달하는 루프. (컨트롤 액션과 피드백으로 구성됨)

 

 컨트롤 스트럭처 모델링 목적

  • 시스템 제어 흐름 파악: 시스템 내에서 제어 명령과 피드백이 어떻게 전달되고 상호작용하는지 명확히 이해.
  • 제어 실패 분석: 각 구성 요소가 적절히 작동하지 않을 경우 어떤 위험이 발생할 수 있는지 파악.
  • 안전 제약 통합: 식별된 위험에 대응하기 위해 각 구성 요소가 준수해야 할 안전 제약을 모델에 반영.

 

 
 

컨트롤 스트럭처 모델링 시 혼동하는 포인트

  • 컨트롤 스트럭처는 물리적 모델이 아니며, 기능적 모델입니다. 또한 컨트롤 스트럭처의 구성 요소간 연결은 컨트롤이나 피드백과 같이 전송할 수 있는 정보를 나타내며, 반드시 물리적 연결과 일치하는 것은 아닙니다. 
  • 컨트롤 스트럭처는 실행 가능한 모델이 아닙니다. 실제로 컨트롤 스트럭처에는 실행 가능한 모델이 존재하지 않는 컴포넌트(예: 사람)가 포함되는 경우가 있습니다. 
  • 컨트롤 스트럭처는 항상 지켜지는 것이라고 가정하지 않습니다. 즉, 컨트롤러가 컨트롤 액션을 전송하는 것이 실제로 그것이 항상 지켜진다는 것을 의미하지는 않습니다. 
  • 복잡성을 관리하기 위해 추상화를 사용해야 합니다. 

 

컨트롤 스트럭처 모델링 절차

1. 시스템 구성 요소 식별

컨트롤 스트럭처 모델링은 추상 컨트롤 스트럭처에서 시박하여 반복적으로 세부사항을 추가하는 형식으로 구성 요소를 식별하게 됩니다. 이를 위해 안전 제약사항을 부여하고 이전에 식별된 위험을 방지하기 위해 필요한 기본 서브 시스템을 식별하는 것도 가능한 방법중 하나입니다.

앞선 예에서 승객 하차 여부를 감지하고 차량 정차 상태를 유지해야 하는 경우, 안전 제약사항으로 승객 하자 여부를 감지하는 서브시스템과 차량 정차 상태를 유지하기 위한 브레이킹 서브 시스템, 그리고 다른 서브시스템을 고려할 수 있습니다. 

 

일단 서브 시스템이 식별되는 이들이 어떻게 제어되는지를 정의하여 컨트롤 스트럭처를 상세화할 수 있습니다. 컨트롤러가 식별되는 각 구성 요소에 책임(Responsibility)을 부여할 수 있습니다. 

 

각 서브 시스템에 부여된 책임(Responsibility)의 예:

도어 센서

  • R-1: 도어 센서는 장애물을 식별한다.

도어 컨트롤러

  • R-2: 도어 센서 정보에 따라 도어를 열고 닫는다.
  • R-3: 장애물이 있음으로 판단하면, 도어를 닫지 않는다.
  • R-4: 주행 중에는 도어를 열지 않는다.

물리적 휠 브레이크

  • R-5: 브레이크 시스템 컨트롤러의 명령에 따라 제동을 수행한다.

브레이크 시스템 컨트롤러

  • R-6: 도어 컨트롤러 정보를 수신한다.
  • R-7: 도어 컨트롤러 정보에 따라 브레이크를 작동시킨다.
  • R-8: 미끄럼 발생 시 미끄럼 방지 기능을 수행한다.

 

2. 제어 행동(Control Actions) 정의

각 컨트롤러가 다른 구성 요소에 어떤 명령을 내리는지 정의합니다. 

 

제어 행동은 안전 제약을 준수해야 하며, 잘못된 명령이 사고로 이어질 수 있습니다.

 

3. 피드백 루프(Feedback Loops) 정의

컨트롤러가 제어 대상의 상태를 지속적으로 모니터링할 수 있도록 피드백 루프를 정의합니다. 피드백이 정확하고 적시에 전달되지 않으면 제어 실패가 발생할 수 있습니다.

 
 

컨트롤 스트럭처의 일반적인 실수를 방지하는 Tip

  • 명칭이 특정 물리적 구현이 아닌, 전송된 기능적 정보를 설명하는지 확인합니다.
  • 정보의 종류를 알고 있는 경우, 단순히 "명령" 또는 "피드백"과 같이 모호하고 애매한 명칭을 사용해서는 안됩니다.
  • 모든 물리적인 컨트롤드 프로세스가 하나 이상의 컨트롤러에 의해 제어되는지 확인해야 합니다.
  • 충돌이나 차이점에 대해 책임(추적성 포함)을 검토해야 합니다.
  • 책임을 충족시키기 위해 필요한 컨트롤 액션이 포함되어 있는지 확인합니다.
  • 책임을 충족시키기 위해 필요한 피드백이 포함되어 있는지 확인합니다. (만약 피드백을 모르는 개념 개발 단계 초기에 적용한 경우, 이후 단계에서 누락된 피드백을 식별할 수 있습니다.)

 


마치며...

STPA(System-Theoretic Process Analysis)의 두 번째 단계인 컨트롤 스트럭처(Control Structure) 모델링은 시스템의 안전성을 확보하기 위한 필수적인 과정입니다. 이 단계에서는 시스템 내 각 구성 요소가 어떻게 상호작용하며, 제어 명령과 피드백이 어떤 방식으로 전달되는지를 시각적으로 모델링하여 명확히 파악할 수 있습니다.

 

컨트롤 스트럭처 모델링을 통해 시스템이 안전 제약(Safety Constraints)을 준수하고 있는지 확인할 수 있으며, 제어 실패와 피드백 오류로 인해 발생할 수 있는 위험 요소를 사전에 식별할 수 있습니다. 또한, 이 과정은 설계 초기 단계에서부터 안전성을 통합할 수 있는 기회를 제공하여, 시스템 전반의 사고 예방과 위험 관리 능력을 강화하는 데 중요한 역할을 합니다.

 

복잡하고 비선형적인 현대 시스템에서 사고는 단순히 개별 구성 요소의 고장 때문이 아니라, 시스템 간 상호작용과 제어 실패로 인해 발생하는 경우가 많습니다. 따라서 컨트롤 스트럭처 모델링은 시스템 사고(Systems Thinking) 접근법을 적용하여 이러한 위험을 효과적으로 예방할 수 있는 핵심 도구입니다.

 

궁극적으로 이 단계는 안전 중심의 설계 문화를 정착시키고, 시스템이 최악의 상황에서도 안전하게 운영될 수 있도록 설계와 운영 절차를 최적화하는 데 기여합니다. 컨트롤 스트럭처 모델링은 안전한 시스템 구축을 위한 필수적인 과정이며, 사고 발생 가능성을 최소화하는 데 중요한 역할을 수행합니다.

 


STPA의 단계별 절차

1. STPA: 시스템 안전분석 - (1) 분석 목적 정의

2. STPA: 시스템 안전분석 - (2) 컨트롤 스트럭처 모델링 (현재 글)

3. STPA: 시스템 안전분석 - (3) Unsafe Control Action(UCA) 식별

4. STPA: 시스템 안전분석 - (4) 손실 시나리오 식별

반응형