기술 칼럼

MathWorks 인사이트

모델 기반 설계를 활용한 EN 50716 준수 철도 애플리케이션 개발


저자:

  • Mohammad Abu-Alqumsan, MathWorks
  • Tom Erkkinen, MathWorks

읽는 시간: 9분

요약

  • EN 50128 및 EN 50657을 대체하는 EN 50716은 선로변 애플리케이션과 차량 탑재 철도차량 애플리케이션 모두의 소프트웨어 개발을 규율하는 단일하고 통합된 유럽 표준을 제공합니다.
  • 모델 기반 설계를 통해 팀들이 EN 50716 요구사항을 효율적이고 효과적으로 충족할 수 있습니다.
  • 모델 기반 설계를 활용해 개발팀은 종단간 추적성을 확보하고, 견고하고 안전하며 검증 가능한 소프트웨어 솔루션을 제공할 수 있습니다.

CENELEC가 발표한 EN 50716:2023은 선로변 및 철도차량 탑재 애플리케이션의 소프트웨어 개발을 위한 단일 통합 유럽 표준을 제공합니다. 2023년 11월에 발표된 이 표준은 현대 철도 시스템 전반에 사용되는 안전 필수 및 운영 소프트웨어에 대한 통합 요구사항을 규정합니다.

EN 50716 이전에는 이러한 영역이 EN 50128(통신, 제어 및 보호 시스템용)과 EN 50657(철도차량 소프트웨어용)에서 각각 별도로 다루어졌습니다. EN 50716은 이전 표준을 명시적으로 대체하여 일관성을 확보하고 중복을 줄이며 철도 애플리케이션 전반에 걸쳐 프로세스를 정렬합니다.

EN 50716에 따르면, 요구되는 소프트웨어 무결성 수준은 시스템 SIL(안전 무결성 수준)과 시스템 내에서 소프트웨어 사용과 관련된 위험을 기반으로 시스템 수준에서 결정 및 평가됩니다. (EN 50126) 소프트웨어 무결성은 기본 무결성(가장 낮음)부터 SIL 4(가장 높음)까지 5단계로 구분됩니다.

열차, 선로변 장비, 그리고 서로 다른 세 가지 철도 표준에 대한 레이블을 보여주는 도표.

그림 1. EN 50716과 이전 표준인 EN 50218(선로변 애플리케이션) 및 EN 50657(차량 탑재 애플리케이션) 간의 관계.

EN 50716 규정 준수를 위해 모델 기반 설계가 이상적인 선택인 이유

EN 50128 및 EN 50657과의 연속성을 유지하면서 EN 50716은 철도 부문 소프트웨어 공학 기대치의 상당한 현대화를 반영하는 요소들을 도입했습니다.

  • 개발 과정에서 시뮬레이션 모델의 역할 확대
  • 정형 기법을 모든 SIL 레벨(이전 표준처럼 SIL 3 및 SIL 4에만 국한되지 않음)에 대해 '강력 권장(HR)' 등급으로 상향 조정
  • AI/머신러닝에 대한 명시적인 고려 사항
  • 시스템 및 사이버 보안 영역과의 더욱 명확한 연계

모델 기반 설계는 이러한 영역들을 완벽하게 다룹니다. 모델 기반 설계는 본질적으로 EN 50716의 취지를 뒷받침합니다. 이 시스템은 모델을 주요 엔지니어링 산출물로 취급하여 요구사항 수집 및 아키텍처, 컴포넌트 설계, 코드 생성, 검증, 통합 및 유지 관리를 지원합니다. 모델 기반 설계는 시스템 및 소프트웨어 라이프사이클 전반에 걸쳐 의사소통, 추적성, 반복성 및 증거 생성을 개선하는 동시에 정형 기법의 실질적인 도입을 가능하게 합니다.

IEC Certification Kit(IEC 61508, EN 50716 및 관련 표준용)는 이러한 지원에 대한 자세한 내용을 제공하며 국제 인증 기관인 TÜV SÜD의 툴 인증서 및 평가 보고서를 제공합니다.

모델 기반 설계가 EN 50716을 지원하는 방법

EN 50716은 체계적이고 추적 가능하며 검증 가능한 개발을 위한 엄격한 프로세스를 정의합니다. 모델 기반 설계는 조직이 SIL에 맞춰 설계된 종단간 참조 워크플로를 사용하여 표준의 권장 사항을 충족할 수 있도록 하며, 이 워크플로는 전체 시스템은 물론 소프트웨어 개발, 검증 및 확인 활동까지 포괄합니다.

요구사항 정의부터 코드 생성까지 시스템 및 소프트웨어 개발과 검증을 위한 단계와 툴을 보여주는 상세한 워크플로 다이어그램.

그림 2. Simulink를 활용한 시스템 및 소프트웨어 개발 및 검증 프로세스. 이 칼럼에서는 소프트웨어 개발에 중점을 두고 있지만, 워크플로 다이어그램 왼쪽에서 볼 수 있듯이 System Composer 및 Simulink를 활용한 모델 기반 시스템 공학을 시스템 수준 활동에도 적용할 수 있습니다. (EN 50126)

이 글에서는 다음 사항에 중점을 둡니다.

  • 소프트웨어 요구사항
  • 아키텍처 및 설계
  • 컴포넌트 설계
  • 컴포넌트 구현 및 테스트
  • 통합 및 테스트
  • 소프트웨어 배포 및 유지 관리
  • 소프트웨어 보증

소프트웨어 요구사항

Requirements Toolbox™를 사용해 구조화된 방식으로 텍스트 요구사항을 정의하고 자연어 요구사항에 시뮬레이션 모델을 추가할 수 있습니다. 이러한 접근 방식을 통해 기능, 인터페이스 및 안전 요구사항을 명확하고 모호함 없이 표현할 수 있습니다.

요구사항과 모델, 모델 요소와 소스 코드, 그리고 해당 테스트 케이스 간의 강력하고 양방향적인 추적성을 보장함으로써, 조직은 소프트웨어 라이프사이클 전반에 걸쳐 투명한 문서화와 엄격한 검증에 대한 EN 50716의 요구사항을 충족할 수 있습니다.

요구사항을 요약한 스프레드시트와 속성 인스펙터 창에 표시된 선택 요구사항의 상세 속성 및 추적성 링크를 보여주는 Requirements Editor 앱의 스크린샷.

그림 3. Requirements Toolbox를 활용한 요구사항 명세 및 추적성 관리.

아키텍처 및 설계

모델 기반 설계는 계층적 아키텍처 모델링을 지원하여 팀이 복잡한 소프트웨어를 구조화된 계층으로 분해할 수 있도록 하며, 모델링 툴과 자동화된 일관성 검사를 통해 동작과 인터페이스를 조기에 검증할 수 있도록 합니다. 이러한 구조화된 접근 방식을 통해 요구사항을 컴포넌트에 할당하는 과정이 본질적으로 추적 가능하고 분석 가능해지며, 각 요구사항이 잘 정의된 아키텍처 요소(예: 소프트웨어 컴포넌트)에 연결되고 후속 테스트를 통해 체계적으로 검증될 수 있습니다.

데이터 흐름선으로 연결된 세 가지 주요 컴포넌트를 보여주는 블록 다이어그램으로, 각 컴포넌트에는 여러 개의 레이블이 지정된 입력 및 출력이 있습니다.

그림 4. System Composer를 사용해 블록 다이어그램, 활동 다이어그램 및 시퀀스 다이어그램으로 소프트웨어 아키텍처 설계를 모델링합니다.

컴포넌트 설계

상태 머신(Stateflow®), 신호 흐름도(Simulink®), MATLAB® 코드 또는 Simulink, Stateflow, MATLAB을 결합한 하이브리드 접근 방식을 사용해 소프트웨어 컴포넌트 설계를 모델링할 수 있습니다. 모델 기반 설계는 설계자가 시스템 전환, 이벤트 처리 및 결정론적 실행 동작을 정확하게 지정할 수 있도록 합니다.

모델 기반 설계는 모델 수준에서 정적 분석도 지원하며, Simulink Check™ 기능을 사용해 정해진 모델링 지침에 따라 모델을 검증할 수 있습니다. 이와 동시에 모델 시뮬레이션을 수행하여 기존의 논리적 오류, 잘못된 가정 및 인터페이스 불일치를 찾아낼 수 있습니다. 시뮬레이션과 정적 모델 분석을 함께 활용하면 소프트웨어 구현이나 하드웨어 프로토타입이 나오기 훨씬 전, 도입 초기 단계에서 문제를 파악할 수 있어 후속 작업량을 크게 줄이고 개발 효율성을 향상시킬 수 있습니다.

데이터 흐름도, 상태 머신, 코드 편집기를 나란히 보여주는 세 가지 화면입니다.

그림 5. 데이터 흐름도(Simulink), 상태 머신(Stateflow) 및 MATLAB 코드를 활용한 모델 기반 설계 옵션.

또한 Simulink 및 Simscape™ 의 물리적 영역 모델링을 통해 플랜트 동역학의 폐루프 시뮬레이션을 수행하여 소프트웨어 컴포넌트 모델을 적절하게 조정하거나 조정할 수 있습니다. 후속 통합 작업에서 폐루프 시뮬레이션을 통해 엔진, 제동 및 환경적 요인이 전체 시스템에 미치는 영향을 파악할 수 있습니다.

컴포넌트 구현 및 테스트

Embedded Coder®를 사용하면 Simulink의 상세한 컴포넌트 설계로부터 C/C++ 구현 코드를 간단하게 생성할 수 있으며, 이를 통해 모델의 개별적인 논리와 동작이 실제 운영 소프트웨어에 그대로 전달되도록 보장합니다. 이 자동 코드 생성 기능은 EN 50716의 T3 툴 요구사항을 충족하여 수동 코딩 작업을 줄이고 다양한 유형의 수동 코딩 오류를 제거하는 동시에 안전 필수 소프트웨어에 적합한 결정적이고 분석 가능한 구현을 생성합니다.

모델 다이어그램은 비교 및 검토를 위해 해당 소스 코드 옆에 표시됩니다.

그림 6. 모델과 생성된 코드를 나란히 표시하고, 종단간 추적성을 제공합니다.

이러한 워크플로를 보완하는 MIL(Model-in-the-Loop), SIL(Software-in-the-Loop) 및 PIL(Processor-in-the-Loop) 테스트는 모델 수준에서의 기능 검증으로 시작하여 시뮬레이션 환경에서 생성된 코드 실행으로 나아가고 최종적으로 타겟 프로세서에서 코드를 실행하는 확장 가능한 검증 전략을 제공합니다. MIL, SIL 또는 PIL 간의 전환은 최소한의 노력으로 가능하며, 테스트 케이스 재사용률을 높이고 전체 개발 라이프사이클 전반에 걸쳐 정확성과 일관성에 대한 신뢰도를 높이는 데 기여합니다. 마지막으로, HIL(Hardware-in-the-Loop) 테스트는 실제 하드웨어 구현 이후에 진행될 수 있으며, 이를 통해 폐루프 플랜트 모델을 실시간 하드웨어에서 실행할 수 있습니다.

이를 위해 Simulink Test™를 사용하여 통합 프레임워크 내에서 모든 테스트 모드를 관리하고 조율할 수 있으며, 이를 통해 MIL, SIL, PIL 및 HIL 전반에 걸쳐 테스트 정의, 실행 및 보고에 대한 일관된 접근 방식을 구현할 수 있습니다. 또한 Simulink Coverage™는 명령문, 분기 및 MC/DC 메트릭을 통해 테스트 완료에 대한 객관적인 증거로서 구조적 커버리지를 평가할 수 있도록 지원합니다.

통합 및 테스트

소프트웨어 아키텍처 수준에서 모델은 잘 구조화된 인터페이스, 실행 흐름 및 통신 패턴(순서 및 활동 다이어그램 사용)을 통해 컴포넌트 간의 상호 작용 방식을 정의함으로써 통합 시나리오를 조율합니다. 아키텍처 수준 시뮬레이션을 통해 팀은 실제 타이밍, 이벤트 처리 및 데이터 교환 조건에서 전체 애플리케이션 소프트웨어 구조를 실행하여 통합 동작을 조기에 검증할 수 있습니다. 시뮬레이션 기반 접근 방식은 설계 변경 비용을 훨씬 줄일 수 있는 초기 단계에서 아키텍처 결함, 인터페이스 불일치 및 통합 위험을 발견하는 데 도움이 됩니다.

자동화된 테스트 케이스 생성 및 실행은 이러한 아키텍처 검증을 더욱 강화합니다. 요구사항(명세 모델 사용) 및 아키텍처 수준의 동작으로부터 직접 테스트를 도출함으로써 팀은 일관된 테스트 범위를 확보하고 추적성을 강화할 수 있으며, 이는 체계적인 검증을 강조하는 EN 50716의 요구사항과 일치합니다.

소프트웨어 보증

요구사항부터 아키텍처 및 상세 설계 모델, 생성된 코드, 검증 테스트 및 결과에 이르기까지 엔드 투 엔드 추적성은 엄격한 검증을 뒷받침하는 구조화된 증거 사슬을 제공합니다. 모든 요구사항이 해당 모델 요소, 구현 산출물 및 테스트 결과와 명확하게 연결되도록 함으로써 개발팀은 시스템 수준의 의도가 소프트웨어 동작에서 어떻게 구현되는지에 대한 명확하고 검증 가능한 근거를 제시할 수 있습니다. 이러한 추적성은 안전 필수 영역에서 반드시 필요합니다. 왜냐하면 이를 통해 체계적인 영향 분석, 일관된 검증, 그리고 제어된 업데이트, 변경 영향 분석, 장기적인 유지보수성을 포함한 전체 소프트웨어 라이프사이클 동안 설계 결정에 대한 투명한 정당화가 가능해지기 때문입니다.

정형 기법

EN 50716에 따르면 SIL 1부터 SIL 4 소프트웨어에 대해서는 정형 기법을 적극 권장합니다. Simulink Design Verifier™를 사용하면 모델 수준에서 정형 기법을 적용하여 안전 불변 조건, 런타임 오류 부재, 상태 전환의 정확성, 아키텍처 계약 준수와 같은 주요 속성을 수학적으로 검증함으로써 소프트웨어 보증을 강화할 수 있습니다.

이러한 검증은 시뮬레이션 및 테스트를 보완하여 테스트만으로는 얻을 수 없는 보장을 제공함으로써 코드 생성 전에 컴포넌트 설계의 정확성과 견고성에 대한 신뢰도를 높입니다. 예를 들어, 열차 제어 모드 논리 애플리케이션에서는 정형 기법을 사용하여 문이 열리는 동안 견인력이 활성화되거나 주행 중 제동 감시 기능이 우회되는 것과 같은 안전하지 않은 모드 조합이 고장 시나리오를 포함한 모든 유효한 동작 조건에서 발생할 수 없음을 수학적으로 증명할 수 있습니다. 마찬가지로, 크루즈 컨트롤 논리에 대한 정형 분석을 통해 트랙션 명령이 항상 속도 제한 및 안전 제약 조건을 준수하며, 제동, 감독 상실 또는 모드 전환과 같은 우선순위가 높은 상황이 발생할 때마다 안정적으로 억제됨을 입증할 수 있습니다.

분석 중인 모델로, 정형 검증 결과와 검증된 안전성 특성을 보여주는 패널이 포함되어 있습니다.

그림 7. Simulink Design Verifier를 사용하면 모델 수준에서 정형 기법을 적용하여 안전 속성을 증명할 수 있습니다. 이 예시는 RBC(무선 폐색 센터)에 의한 안전한 MA(이동 권한) 생성 및 전송에 대한 정형 속성 증명을 보여줍니다.

Polyspace® 제품을 사용하면 생성된 코드와 직접 작성한 코드 모두에 대해 품질, 견고성, 그리고 더 중요하게는 런타임 오류에 대한 유사한 평가를 내릴 수 있습니다.

지원 툴 및 언어

EN 50716은 철도 소프트웨어 개발에서 지원 툴 및 언어 사용에 대한 명확한 요구사항을 설정하며, 툴이 결과 소프트웨어의 안전성과 무결성에 영향을 미칠 수 있음을 인식하고 있습니다. 이 표준은 개발, 검증 및 코드 생성 툴이 잘 통합되어야 하며, 툴 선택 및 사용이 정당화되고 관리되어야 함을 요구합니다.

또한 툴이 실행 가능한 소프트웨어에 미칠 수 있는 잠재적 영향에 따라 툴을 T1, T2 및 T3 등급으로 분류합니다. 직접적 또는 간접적으로 오류를 유발할 수 있는 툴(즉, T2 및 T3 툴)은 소프트웨어 무결성 수준(기본 무결성부터 SIL 4까지)에 비례하는 문서화된 증거로 뒷받침되어야 합니다.

IEC Certification Kit(IEC 61508, EN 50716 및 관련 표준용)는 툴 분류 및 사전 검증 자료, TÜV SÜD 인증서 및 평가 보고서, 검증 테스트 모음, 그리고 프로젝트의 특정 툴 사용에 맞게 조정할 수 있는 템플릿을 제공하여 이러한 요구사항 준수를 직접적으로 지원합니다. 결과적으로 EN 50716에 따라 모델 기반 설계 개발, 코드 생성 및 검증 툴의 사용을 정당화하고 문서화하는 데 필요한 노력이 크게 줄어듭니다.

IEC Certification Kit는 EN 50716 방법 및 기법과 모델 기반 설계의 활용 사례 간의 매핑 문서를 제공합니다. 아래 표는 해당 문서에서 발췌한 것입니다.

표 A.5 – 검증 및 테스트

기법/조치 적용 가능한 모델 기반 설계 툴 및 프로세스 설명
1. 정형 증명 Simulink - 모델 검증 블록 라이브러리 모델 검증 블록은 소프트웨어 안전 요구사항 및 기타 모델 속성을 정형화하는 데 사용할 수 있습니다.
Simulink Design Verifier - 속성 증명, 설계 오류 감지 속성 증명은 정형 검증 기법을 사용하여 모델 속성을 검증하는 데 사용할 수 있습니다. 설계 오류 감지는 모델을 분석하여 정수 오버플로, 0으로 나누기, 데드 로직, 어설션 위반과 같은 일반적인 설계 오류를 감지할 수 있습니다.
Polyspace Code Prover 및 Polyspace Code Prover Server - 코드 검증 런타임 오류 감지는 C 또는 C++ 코드를 분석하여 실행 중에 발생할 수 있는 소프트웨어 오류를 식별할 수 있습니다. Polyspace Code Prover 및 Polyspace Code Prover Server는 소스 코드에서 오버플로, 0으로 나누기, 배열 범위 외 접근 및 기타 특정 런타임 오류가 없음을 증명하는 코드 검증 기능을 제공합니다. Polyspace Code Prover 및 Polyspace Code Prover Server는 정형 기법 기반의 추상 해석 기법을 사용하여 코드를 검증합니다. 
2. 정적 분석 Simulink Check – 모델 어드바이저 점검 모델 어드바이저는 모델링 표준 준수 여부를 확인하는 데 사용할 수 있습니다. 표 A.19(2) 체크리스트를 참조하십시오.

기능 안전과 사이버 보안의 조화

EN 50716은 연결된 철도 시스템에서 사이버 보안과 기능 안전 영역 간에 발생할 수 있는 복잡한 상호 작용을 인식하고 있습니다. 예를 들어, 사이버 보안 위협은 기능 안전에 직접적인 영향을 미칠 수 있으며, 사이버 보안 조치는 안전에 부정적인 결과를 초래할 수도 있습니다. 따라서 EN 50716은 안전과 보안 조치의 균형을 권장하며, 사이버 보안 문제를 다루기 위한 적절한 표준으로 IEC 62443 및 CLC/TS 50701을 제시합니다.

Simulink 및 System Composer™를 활용한 모델 기반 설계 및 모델 기반 시스템 공학은 전체 라이프사이클 동안 공유되고 실행 가능한 시스템 모델을 통해 두 영역을 통합하는 실용적인 방법을 제공합니다. 안전 관련 기능, 시스템 인터페이스 및 운영 가정은 사이버 보안 자산 및 잠재적인 사이버 보안 공격 표면과 함께 모델링될 수 있습니다. 공유 모델을 통해 상호 작용을 조기에 식별하고, 결합 또는 순차적인 위험 및 위협 분석을 지원하며, 엔지니어가 악의적인 상황을 시뮬레이션하여 안전에 미치는 영향을 평가할 수 있습니다.

소프트웨어 수준에서 모니터링, 타당성 검사, 메시지 유효성 검사, 인증 로직 및 이상 탐지와 같은 안전 및 보안 기능은 동일한 아키텍처 환경 내에서 공동 개발 및 평가될 수 있습니다. 정적 모델 및 코드 분석, 시뮬레이션, 그리고 In-the-Loop 테스트를 활용한 지속적인 검증은 설계가 발전함에 따라 안전 및 사이버 보안 요구사항이 충족되고 일관성을 유지하도록 보장하는 데 도움이 됩니다. 또한 요구사항부터 모델 및 테스트 결과에 이르기까지 통합된 추적성은 시스템, 안전 및 보안 엔지니어링 팀 간의 도메인 간 협업을 향상시킵니다.

AI 및 머신러닝 활용

모델 기반 설계는 EN 50716에서 지적된 AI 및 머신러닝 문제를 해결하기 위해 시스템 수준의 검증 및 증거 생성을 가능하게 함으로써 머신러닝 구조적 가시성의 제한성을 완화합니다. 머신러닝 컴포넌트를 실행 가능한 Simulink 모델에 통합하면 요구사항 기반 및 시나리오 기반 테스트, 시나리오 적용 범위 분석, 그리고 정의된 운행설계영역 전반에 걸친 폐루프 검증을 지원할 수 있습니다. 또한 시뮬레이션을 통해 훈련 데이터 범위를 넘어선 동작 조건을 탐색할 수 있으므로 데이터의 완전성에 대한 신뢰도를 높일 수 있습니다. 특히 견고성을 다루기 위해 Simulink Fault Analyzer™를 사용한 체계적인 섭동 분석 및 결함 주입 테스트는 적대적 입력 및 분포 변화에 대한 평가를 지원합니다.

결론

모델, 코드 생성, 정적 모델 및 코드 분석, 커버리지 테스트, 자동 테스트 케이스 생성, 그리고 정형 기법의 통합은 철도 소프트웨어 개발에 대한 EN 50716의 까다로운 요구사항을 충족하기 위한 포괄적인 접근 방식을 구성합니다. 종단간 추적성을 보장하고 고급 지원 툴을 활용함으로써 개발팀은 견고하고 안전하며 검증 가능한 소프트웨어 솔루션을 제공할 수 있습니다. 이러한 체계적인 방법론은 규정 준수를 용이하게 할 뿐만 아니라 장기적인 유지 관리성과 투명성을 향상시켜 궁극적으로 철도 시스템의 신뢰성과 안전성에 기여합니다.

2026년 기고


사용된 제품: IEC Certification Kit

저자 정보

Mohammad Abu-Alqumsan

Mohammad Abu-Alqumsan은 MathWorks의 IEC Certification Kit 제품 관리자입니다. 그는 품질, 기능 안전 및 사이버 보안에 중점을 두고 있으며 ISO 26262, IEC 61508, IEC 63404 및 EN 50716과 같은 널리 사용되는 인증 표준을 준수하는 툴 검증 및 워크플로 개발에 대해 업계 관계자들에게 컨설팅을 제공합니다. MathWorks에 합류하기 전에는 Validas AG에서 프로젝트 관리자 및 연구 소프트웨어 엔지니어로 근무했습니다. Mohammad는 Technical University of Munich에서 뇌-컴퓨터 인터페이스 및 로보틱스 박사 학위를 받았습니다.

Tom Erkkinen

Tom Erkkinen은 MathWorks의 임베디드 애플리케이션 관리자입니다. MathWorks에 합류하기 전, Tom은 NASA에서 우주왕복선 로보틱스를 포함한 다양한 제어 알고리즘과 실시간 소프트웨어를 개발했습니다. 그는 25년 이상 기업들이 임베디드 코드 생성 기능을 갖춘 모델 기반 설계를 도입하도록 지원해 왔습니다. Tom 은 Boston University에서 항공우주공학 학사 학위를, Santa Clara University에서 기계공학 석사 학위를 받았습니다.

심화 주제 탐색