임석우
(Seok-Woo Lim)
*iD
원찬희
(Chan-Hee Won)
*iD
김재문
(Jae-Moon Kim)
*iD
강정원
(Jeong-Won Kang)
†iD
-
Dept. of Transportation System Engineering, Korea National University of Transportation,
Korea. E-mail : seok-woo.lim@tuv.com, josa409@naver.com, goldmoon@ut.ac.kr
Copyright © The Korean Institute of Electrical Engineers
Key Words
Railway Signaling Software, Safety Requirements, Requirements Structuring, Boilerplate, Rule-Based Verification, Traceability Matrix
1. 서 론
철도 안전 소프트웨어는 오작동 한 건이 열차 탈선이나 충돌로 이어질 수 있다는 점에서, 다른 산업 영역의 소프트웨어와 근본적으로 다른 위치에 놓여
있다. 자동열차보호(ATP: Automatic Train Protection), 자동열차운전(ATO: Automatic Train Operation),
자동열차감시(ATS: Automatic Train Supervision)를 비롯한 열차 신호제어 소프트웨어는 이 같은 안전 필수 특성을 직접 구현하는
핵심 구성요소로서, 국제 기능 안전 소프트웨어 표준인 EN 50128 또는 EN 50716이 정하는 엄격한 개발·검증 절차를 준수해야 한다 [1][2].
표준이 요구하는 내용은 적지 않다. EN 50128은 소프트웨어 안전 무결성 수준(SIL: Safety Integrity Level)을 0단계에서
4단계까지 구분하는데, SIL 3~4에 해당하는 안전 핵심 소프트웨어는 요구사항 명세 단계에서부터 정형화된 표현과 완전성, 일관성, 추적성 확보를
의무화한다. 현실 상황의 업무에서는 소프트웨어 표준이 정확하게 적용되지 않는다. 여러 이해관계자에게서 수집된 요구사항은 대부분 자연어 그대로 문서화되며,
이렇게 만들어진 비정형 명세에는 모호성, 중복, 누락과 같은 결함이 다수 포함된다 [3].
이 문제를 정면으로 다룬 연구가 없지는 않다. 임혜선·이석원(2017)은 표준문안(Boilerplate)과 GSN(Goal Structuring Notation)을
결합해 요구사항 명세 단계에서 결함을 식별하고 안전 적합성을 논증하는 방법을 제시하였다 [4]. Entity, Precondition, Condition, Transition, Exception, Emergency의 6요소로 구성된 표준문안을
적용하면 구조화된 명세의 94.1% 이상에서 모호성이 제거되고 추적 링크가 완전히 연결됨을 실험으로 시연했다는 점에서 의미 있는 성과이다. 다만 이
방법의 한계도 분명하다. 표준문안 작성과 GSN 모델화를 모두 사람이 직접 수행해야 하므로, 수백 건에서 수천 건에 이르는 실무 요구사항을 처리하기엔
시간과 인력 부담이 지나치게 크다 [4].
국내 상황을 보면 비정형 명세의 결함 문제는 더욱 심각하다. 한국철도표준(KRS: Korean Railway Standards)은 지상자동열차보호장치(WATP:
Wayside Automatic Train Protection), 차상자동열차보호장치(OATP: Onboard Automatic Train Protection),
차상자동열차운전장치(OATO: Onboard Automatic Train Operation), 열차자동감시장치(ATS: Automatic Train
Supervision), 승강장 안전문(PSD: Platform Screen Door), 전자연동장치(EIS: Electronic Interlocking
System) 등 철도 신호시스템의 핵심 기능을 한국어 자연어로 기술하고 있다. 그러나 이 요구사항들을 표준문안 구조로 변환하고, 규칙 기반 검증·상태
모델 생성·테스트 케이스 도출·추적성 분석까지 일관되게 처리하는 자동화 체계는 아직 마련되어 있지 않다.
이러한 결함을 자동으로 탐지하고 구조화하는 기술적 가능성의 측면에서는 최근 몇 년간 상황이 빠르게 바뀌었다. GPT, Claude, Gemini 계열로
대표되는 대규모 언어 모델(LLM: Large Language Model)은 자연어 이해와 구조화 능력에서 눈에 띄는 도약을 이루었고, 소프트웨어
요구사항 분석 영역에도 본격적으로 진입하기 시작했다. [5][6]. 그렇다고 해서 LLM을 안전 판정자로 바로 투입할 수 있는 것은 아니다. 비결정론적 출력 특성과 환각 현상은 재현성과 신뢰성을 보장해야 하는 안전
시스템에서 근본적인 걸림돌이 된다 [7]. LLM의 강점인 자연어 이해와 구조화 역량은 요구사항 초안 생성에 한정하여 활용하고, 최종 안전 판정은 결정론적 규칙 엔진과 형식 모델 검증기에
맡기는 하이브리드 아키텍처가 필요하다.
지금까지 논의한 사항을 검토하여, 본 논문은 이러한 구상을 실제로 구현한 4단계 반자동 프레임워크를 제안한다. 설계에서 지킨 원칙은 세 가지다. 첫째,
LLM은 요구사항 구조화와 초안 생성에만 관여하고 안전 판정 권한을 갖지 않는다. 둘째, 최종 검증 판정은 결정론적 규칙 엔진, 상태 모델 검증기,
테스트 커버리지 분석기가 담당하여 재현성과 설명 가능성을 확보한다. 셋째, 모든 검증 결과는 요구사항-테스트 추적 매트릭스에 연결함으로써 EN 50128
소프트웨어 안전 표준에서 요구하는 추적성 요건을 충족시킨다.
본 논문의 기여는 두 가지로 구성된다. 첫째(3장), KRS-SG-0069에 수록된 94건의 기능 요구사항을 대상으로 표준문안 변환을 저해하는 자연어
결함 유형을 체계적으로 분류하고, 이를 EN 50128 7.2.4절 위반 조항에 대응시킴으로써 프레임워크 설계의 근거를 마련하는 문제 진단을 수행한다.
둘째(4장), 이 분석 결과를 토대로 LLM 기반 요구사항 구조화와 결정론적 검증을 결합한 4단계 반자동 프레임워크의 아키텍처를 제안한다. 5장은
이 두 기여를 실제로 구현하는 근거 자료를, 6장은 결론과 함께 정량적 성능 평가를 포함한 향후 연구 방향을 제시한다.
2. 관련 연구
2.1 철도 안전 소프트웨어 요구사항 명세
EN 50128은 철도 제어 및 보호 시스템용 소프트웨어 개발을 위한 국제 기능 안전 표준으로, 요구사항 명세 단계에서 완전성, 일관성, 명확성,
추적성을 의무 요건으로 규정한다 [1]. 특히 SIL 3~4에 해당하는 안전 핵심 소프트웨어에 대해서는 요구사항이 위험원 분석 및 위험성 평가(HARA: Hazard Analysis and
Risk Assessment) 결과와 양방향으로 추적 가능해야 하며, 소프트웨어 요구사항 명세(SRS: Software Requirement Specification)가
독립 평가(Independent Assessment)의 핵심 감사 대상임을 명시한다. 2023년에는 EN 50128과 EN 50657을 통합한 EN
50716이 제정됨으로써, 철도 소프트웨어 개발 전 주기에 걸친 양방향 추적성 확보 요건이 더욱 강화되었다 [2].
실무 현장에서 EN 50128 요구사항 명세를 어떻게 구현할 것인가에 대한 경험 연구도 보고되고 있다. Provenzano와 Hänninen(2017)은
Bombardier Transportation의 철도 프로젝트를 대상으로, 자연어로 작성된 안전 요구사항을 EN 50128 표준에 부합하는 시나리오,
시퀀스 다이어그램, 유스케이스, 상태 기계 다이어그램으로 변환하는 방법을 도입한 경험을 보고하였다 [8]. 이 연구는 구조화된 요구사항 표현이 자연어 대비 명확성과 정밀성을 향상시키는 반면, 새로운 작성 방식의 도입이 조직 내 작업 절차 변경 저항 등
실질적인 도전을 수반함을 지적하였다.
형식 검증(Formal Verification) 관점에서는 Iliasov 외(2023)가 SafeCap 툴셋을 이용하여 영국 주요 철도 연동 시스템(Solid
State Interlocking) 26개에 대한 산업 규모의 형식 안전 검증을 수행한 결과를 IEEE Transactions on Dependable
and Secure Computing에 보고하였다 [9]. 이 연구는 SafeCap 툴셋이 실제 철도 신호 프로젝트에서 확장 가능하고 자동화된 형식 검증을 제공하며, 안전성 향상과 개발 효율 개선에 실질적인
산업적 가치를 가지고 있음을 실증하였다.
Chen 외(2024)는 통신기반열차제어시스템(CBTC: Communication-Based Train Control)을 대상으로 시스템 이론적 프로세스
분석(STPA: Systems-Theoretic Process Analysis)을 적용하여 계층적 안전 요구사항 도출 방법론을 제안하고, 안전 요구사항에서
서브시스템 아키텍처까지의 추적성 링크를 체계적으로 설정하는 방법을 Heliyon에 발표하였다 [10]. 이 연구에서 WATP, ATO, ATS 등 CBTC 주요 기능 블록의 요구사항이 전통적인 위험원 분석 기법만으로는 현대 철도 신호 시스템의 소프트웨어
관련 결함을 충분히 식별하기 어렵다는 한계를 지적하고, 요구사항의 계층적 구조화와 추적성 확보의 중요성을 강조하였다.
이들 연구는 EN 50128 준수 요구사항 명세의 중요성을 실증적으로 뒷받침하지만, 한국어 KRS 기반 철도 신호 요구사항을 표준문안 구조로 자동화하여
변환하고, 변환 결과를 결정론적으로 검증하는 엔드-투-엔드 체계를 제시한 연구는 아직 존재하지 않는다.
2.2 요구사항 자동 분석 및 구조화
자연어 처리(NLP: Natural Language Processing) 기반 요구사항 자동 분석 연구의 현황을 파악하기 위해 Zhao 외(2021)는
404편의 관련 연구를 분석한 체계적 매핑 연구를 ACM Computing Surveys에 발표하였다 [11]. 이 연구는 NLP를 요구사항 공학에 적용하는 연구(NLP4RE) 분야가 결함 탐지, 요구사항 분류, 추적성 링크 생성, 모호성 탐지의 네 가지
주요 과제를 중심으로 발전해 왔음을 확인하였다. 그러나 동시에 실험 재현 가능성과 산업 현장 적용성이 여전히 미흡하며, 대부분의 연구가 소규모 데이터셋에
의존하고 도메인 특화 지식을 충분히 반영하지 못한다는 한계를 지적하였다.
안전이 필수적인 철도 분야에서의 요구사항 결함 자동 탐지 연구도 진전을 보이고 있다. Ferrari 외(2018)는 이탈리아 철도 신호 제조업체의
자연어 요구사항 문서 1,866건을 대상으로, GATE 텍스트 처리 프레임워크 기반의 NLP 패턴 규칙 집합을 개발하여 모호성, 불완전성, 중복 등
복수의 결함 유형을 자동으로 탐지하는 산업 사례 연구를 Empirical Software Engineering에 보고하였다 [12]. 더 최근의 연구로 Veizaga 외(2024)는 제어된 자연어(CNL: Controlled Natural Language) 문법 기반의 Paska
도구를 개발하여, 수동태, 불특정 수량어, 복합 조건 등 요구사항 스멜(Requirement Smell)을 자동으로 탐지하고 수정 권고를 생성하는
방법을 IEEE Transactions on Software Engineering에 발표하였다 [13]. 금융 도메인의 13개 시스템, 2,725개 요구사항을 대상으로 한 산업 사례 연구에서 Paska는 요구사항 품질 문제를 높은 정밀도로 탐지하였으며,
도메인 독립적으로 적용 가능함을 입증하였다.
표준문안 기반 요구사항 구조화 연구로는 Mavin 외(2009)의 EARS(Easy Approach to Requirements Syntax)가 대표적이다
[14]. EARS는 Rolls-Royce의 항공기 엔진 제어 시스템 요구사항 명세 경험을 바탕으로, 5가지 요구사항 유형 패턴과 WHILE–WHEN–SHALL의
표준 절 구조를 정의하여, 모호성·복잡성·불완전성 등 8가지 공통 요구사항 문제를 구조적으로 해소한다. 임혜선·이석원(2017)은 안전 필수 시스템에
특화된 표준문안(6개 요소)을 설계하고, GSN 모델과 결합함으로써 요구사항 명세 단계에서부터 결함을 식별하고 안전 증거와의 연결을 통해 안전 적합성을
증명하는 방법을 제안하였으나, 자동화를 위한 후속 연구의 필요성을 제시하였다 [4].
이상의 연구들은 NLP와 구조화 문법을 결합하면 자연어 요구사항의 품질을 자동으로 높일 수 있음을 보여 주지만, 한국어로 작성된 KRS 기반 철도
신호 요구사항처럼 도메인 특화 의무 표현과 복합 조건이 혼재하는 환경에 직접 적용하기 위한 체계적인 방법론은 아직 부재한 실정이다.
2.3 LLM의 소프트웨어 공학 적용
GPT-5, Claude Opus, Claude Sonnet, Gemini 등 대규모 언어 모델(LLM)의 소프트웨어 공학 분야 적용 연구가 급증하고
있다. Hou 외(2024)는 2017년부터 2024년 1월까지 발표된 395편의 연구를 대상으로 LLM의 소프트웨어 공학 적용에 관한 체계적 문헌
고찰을 수행하여, LLM이 요구사항 공학, 소프트웨어 설계, 코드 생성, 테스트, 유지보수의 전 생명주기에 걸쳐 활용되고 있음을 확인하였다 [15]. White 외(2023)는 소프트웨어 공학 작업에서 ChatGPT와의 효과적인 상호작용을 위한 프롬프트 패턴 카탈로그를 체계화하였다 [16].
안전 필수 시스템에서의 LLM 활용 연구도 진전을 보이고 있다. Nouri 외(2024)는 자율주행 시스템을 대상으로 LLM 기반 HARA 자동화
파이프라인 프로토타입을 개발하고, LLM이 안전 요구사항 도출을 수일에서 1일 이내로 단축할 수 있음을 보고하였으나, LLM 출력의 환각과 비결정론적
특성으로 인해 전문가 검증이 필수적임을 명시하였다 [17]. Greshake, Abdelnabi 외(2023)는 외부 데이터 소스와 연동된 LLM 통합 애플리케이션이 간접 프롬프트 인젝션 공격에 취약함을
실증하였다 [18]. 이러한 연구들은 공통적으로 LLM 출력의 비결정성과 신뢰성 한계를 지적하며, 안전 필수 도메인에서는 LLM을 최종 판정자가 아닌 보조 도구로 제한해야
할 필요성을 보여준다.
2.4 상태 전이 모델 기반 테스트 케이스 생성
상태 전이 모델(STM: State Transition Model) 기반 테스트 케이스 자동 생성은 철도 제어 소프트웨어 검증에서 오랫동안 활용되어
온 핵심 방법론이다. Kurian 외(2023)는 SCADE로 개발된 철도 임베디드 소프트웨어에 대해 기호 실행(Symbolic Execution)을
적용하여 테스트 케이스를 자동 생성하는 TECS(Test Engine for Critical Software) 도구를 개발하고, 기호 실행이 무작위
탐색 기반 방법 대비 높은 모델 커버리지를 달성함을 실증하였다 [19]. Bucaioni 외(2022)는 Bombardier Transportation의 Aventra 전동차 소프트웨어 제품 라인을 대상으로 메타 모델링과
모델 변환을 결합하여 제품 변형별 테스트 스크립트를 자동으로 생성하는 접근법을 보고하였다 [20].
Ferrari 외(2022)는 철도 신호 시스템 설계에 활용되는 형식 검증 도구들을 대상으로 체계적인 평가 및 사용성 분석을 수행하고, 요구사항 명세에서
검증 가능한 상태 모델을 도출하는 엔드-투-엔드 접근법의 필요성을 강조하였다 [21]. 그러나 이들 연구는 자연어 요구사항의 구조화 단계와 상태 전이 모델 생성 단계를 연결하는 파이프라인을 제시하지 않는다.
2.5 기존 연구와의 차별성
2절에서 고찰한 관련 연구들을 종합하면, 각 연구 흐름은 본 논문이 다루는 문제의 일부를 해결하고 있으나 이를 통합하는 접근은 이루어지지 않고 있다.
2.3절에서 검토한 LLM의 비결정성·환각 관련 연구들[17][18]은 LLM을 요구사항 구조화 보조 도구로 한정하고 최종 안전 판정을 결정론적 규칙 엔진에 위임하는 본 논문의 하이브리드 아키텍처 설계 원칙을 뒷받침한다.
또한 2.4절에서 검토한 상태 전이 모델 기반 검증 연구들 [19][20][21]이 제시하지 못한 자연어 요구사항 구조화-상태 모델 생성 간 연결 고리는, 본 논문이 LLM으로 구조화한 표준문안 요구사항에서 상태 전이 모델을 추출하고
결정론적 엔진으로 검증하는 파이프라인을 제안함으로써 보완한다.
요구사항 자동 분석 측면에서 Zhao 외(2021) [11]와 Ferrari 외 (2018) [12]는 자연어 요구사항의 자동 품질 분석 가능성을 실증하였으나, 분석 결과를 표준문안 구조로 변환하는 자동화 체계를 제시하지 않는다.
Veizaga 외(2024)의 Paska 도구 [13]는 영어 자연어를 대상으로 하며, 한국어 KRS 표준과 같이 의무 표현 구조가 상이한 비영어권 도메인 특화 요구사항에 대한 적용 방법은 제시되지 않는다.
Zadenoori 외(2025)의 체계적 문헌고찰 [22]도 대부분의 연구가 GPT 기반 모델에 의존하고 통제된 실험 환경에서만 평가되며 실무 도메인 통합이 제한적임을 지적하였다.
LLM 기반 안전 요구사항 명세 측면에서 Nouri 외(2024)의 [17]는 자율주행 ISO 26262 도메인을 대상으로 하였으나 전문가 검증이 필수적임을 강조하였다. 가장 직접적으로 관련된 선행 연구인 Oțelea 외(2025)는
GPT-4, Claude, Gemini를 대상으로 철도 신호 요구사항을 구조화된 제품 요구사항과 테스트 케이스로 변환하는 LLM 능력을 평가하였으나,
단일 LLM 직접 생성에 의존하고 결정론적 검증 단계를 포함하지 않아 EN 50128이 요구하는 재현성과 추적성 확보에 한계가 있다 [23]. 상태 전이 모델 기반 테스트 케이스 생성 측면에서 Kurian 외(2023) [19]와 Bucaioni 외(2022) [20]는 철도 도메인에서의 모델 기반 테스트 자동화 가능성을 입증하였으나, 자연어 요구사항 구조화 단계와 연결된 엔드-투-엔드 파이프라인을 제시하지는 않는다.
이러한 맥락에서 본 논문의 차별점은 세 가지로 요약된다. 첫째, 한국어 KRS 표준 요구사항을 대상으로 도메인 특화 표준문안 구조로 자동 변환하는
LLM 기반 체계를 제안한 최초의 연구로, 비영어권 안전 필수 표준 환경에서의 LLM4RE 적용 공백을 채운다. 둘째, LLM을 요구사항 구조화 초안
생성에만 활용하고 최종 안전 판정은 결정론적 규칙 엔진과 형식 모델 검증기에 위임하는 하이브리드 아키텍처를 통해, 기존 LLM 단독 적용 연구가 해결하지
못한 재현성과 추적성 요건을 충족한다. 셋째, 요구사항 구조화부터 상태 전이 모델 생성, 테스트 케이스 도출, 추적성 매트릭스 생성까지의 엔드-투-엔드
파이프라인 아키텍처를 제안한다.
3. KRS 요구사항 결함 체계화 및 EN 50128 표준 대응
본 장은 본 논문의 첫 번째 기여에 해당한다. KRS-SG-0069에 수록된 94건의 기능 요구사항 전체를 대상으로 자연어 결함 유형을 체계적으로
분류하고, 이를 EN 50128 7.2.4절의 구체적 위반 조항에 정밀하게 대응시킴으로써, 4장·5장에서 제시하는 규칙 기반 검증 엔진 설계의 표준
근거를 마련한다.
3.1 KRS 표준 체계 개요
한국철도표준은 국토교통부 산하 철도기술심의위원회가 제정하고 관리하는 기술 표준 체계이다. 철도 노선·차량·신호·통신·전기·토목을 아우르며 수백 종의
문서로 구성되어 있는데, 신호 분야에서는 KRS-SG 시리즈가 중심축을 이룬다. 그 가운데 KRS-SG-0069는 도시철도 무선 통신 기반 열차제어
시스템의 기능 요구사항을 정의한 문서로, 본 연구가 분석 대상으로 삼은 핵심 표준이다.
KRS-SG-0069는 WATP, OATP, OATO, ATS, EIS, PSD라는 여섯 개의 기능 블록으로 짜여 있다. 각 기능 블록은 수십에서
수백 개에 이르는 한국어 자연어 요구사항으로 기술되며, 안전 무결성 수준은 블록에 따라 0단계에서 4단계까지 분포한다. 표 1은 본 연구에서 분석한 기능 블록별 요구사항 현황을 정리한 것이다. 개별 요구사항 식별자(WATP-F-01 등) 전체 목록은 부록 A.1에 수록하였다.
표 1 KRS-SG-0069 기능 블록별 요구사항 현황
Table 1 KRS-SG-0069 Status of Requirement by Function Block
|
기능 블록
|
요구사항 건수
|
KRS 출처절
|
비고
|
|
WATP (지상 ATP)
|
27건
|
4.3.2.2
|
SIL4 포함
|
|
ATS (자동열차감시)
|
17건
|
4.3.3.2
|
운영자·주컴퓨터 등 복수 주체 병립
|
|
EIS (전자연동장치)
|
5건
|
4.3.4.2
|
진로·쇄정·현시 연쇄 구조
|
|
OATP (차상 ATP)
|
32건
|
4.3.5.2
|
SIL4, 결함 건수 최다
|
|
OATO (차상 ATO)
|
13건
|
4.3.5.3
|
상태 기계 중심 자동 운전
|
|
합계
|
94건
|
-
|
KRS-SG-0069 기능 요구사항 전체
|
3.2 KRS 표준 요구사항의 자연어 특성 분석
본 절은 제안 프레임워크의 설계 근거를 마련하기 위한 문제 진단으로, 프레임워크의 성능을 실험적으로 측정하는 것이 아니라 KRS-SG-0069 요구사항이
가진 자연어 결함의 유형과 분포를 체계적으로 파악하는 것을 목적으로 한다. 분석 대상은 KRS-SG-0069에 수록된 기능 요구사항 전체 94건으로,
임의 표본 추출이나 부분 선정이 아닌 표준 문서 전체 대상 분석이다. 각 요구사항을 원문 KRS 텍스트와 대조하면서 임혜선·이석원(2017)이 제안한
표준문안 6요소로의 구조적 변환을 저해하는 자연어 특성을 분류한 결과, 일곱 가지 결함 유형이 반복적으로 확인되었다.
표 2 KRS-SG-0069 기반 SRS 기능 요구사항 결함 유형 분석 결과
Table 2 Result of the Analysis of Defect Types in SRS Functional Requirements Based
on KRS-SG-0069
|
결함
|
WATP
|
ATS
|
EIS
|
OATO
|
OATP
|
|
D1 Entity 누락
|
1건 (3.7%)
|
8건 (47.1%)
|
1건 (20.0%)
|
1건 (7.7%)
|
9건 (28.1%)
|
|
D2 Precondition 불명확
|
16건 (59.3%)
|
17건 (100%)
|
5건 (100%)
|
13건 (100%)
|
32건 (100%)
|
|
D3 Condition 트리거 불명확
|
5건 (18.5%)
|
5건 (29.4%)
|
2건 (40.0%)
|
3건 (23.1%)
|
11건 (34.4%)
|
|
D4 Exception 미정의
|
17건 (63.0%)
|
9건 (52.9%)
|
5건 (100%)
|
12건 (92.3%)
|
32건 (100%)
|
|
D5 Transition 모호성
|
3건 (11.1%)
|
3건 (17.7%)
|
1건 (20.0%)
|
7건 (53.8%)
|
8건 (25.0%)
|
|
D6 Emergency 미분류
|
3건 (11.1%)
|
1건 (5.9%)
|
-
|
-
|
3건 (9.4%)
|
|
D7 복합 요구사항 미분리
|
10건 (37.0%)
|
11건 (64.7%)
|
5건 (100%)
|
7건 (53.8%)
|
13건 (40.6%)
|
결함 유형은 다음과 같이 정의된다. Entity 누락(D1)은 기능을 수행하는 주체 또는 수신 대상 시스템이 문장에 명시되지 않은 경우이다. ATS는
복수의 주체가 병립하는 구조여서 원문이 주체를 생략하는 경향이 두드러진다. Precondition 불명확(D2)은 기능 발동의 선행 조건이 정량적으로
특정되지 않은 경우로, 일곱 유형 중 발생 건수가 가장 많다(88.3%). Condition 트리거 불명확(D3)은 기능 발동을 촉발하는 이벤트가
정성적으로만 기술된 경우로, 상태 전이 모델 생성 단계에서 Guard Condition을 특정할 수 없게 만든다. Exception 미정의(D4)는
비정상 상황 대응이 기술되지 않은 경우로, 두 번째로 높은 발생 건수(79.8%)를 보인다. Transition 모호성(D5)은 상태 전이의 완료
조건이 수치 기준 없이 기술된 경우로, OATO에서 가장 높은 비율(53.8%)을 보인다. Emergency 미분류(D6)는 비상 기능이 일반 기능과
구분 없이 기술된 경우로, 발생 빈도는 가장 낮으나(7.4%) SIL 배정 근거를 흐리는 파급 효과가 크다. 복합 요구사항 비분리(D7)는 독립적으로
검증되어야 할 기능이 하나의 문장에 결합된 경우로, EIS는 전체 요구사항이 해당된다(100%).
분석 결과를 종합하면 네 가지가 두드러진다. 첫째, Precondition 불명확(88.3%)과 Exception 미정의(79.8%)가 나란히 높은
비율을 차지하며, 두 결함 모두 서브시스템 간 연동 흐름에서 비롯되는 경우가 많아 단순한 문장 교정으로는 해소하기 어렵다. 둘째, Condition
트리거 불명확(27.7%)은 OATP에 집중되며 상태 전이 모델 생성 단계의 파싱 오류로 직결된다. 셋째, 복합 요구사항 미분리(48.9%)도 절반에
근접하는 결함률을 보인다. 넷째, 결함 유형의 서브시스템별 분포가 고르지 않다. OATO는 Transition 모호성 비율이 가장 높고, OATP는
총 결함 건수와 D3 발생 건수가 모든 서브시스템 중 가장 높아 요구사항 재작성 우선순위를 높여야 할 서브시스템으로 식별된다.
3.3 EN 50128 소프트웨어 요구사항 명세 요건
EN 50128 표준의 7.2.4절은 소프트웨어 요구사항 명세 단계에서 준수해야 할 요건을 7.2.4.1부터 7.2.4.15까지 15개 조항으로 규정한다.
이 절에서는 3.2절에서 식별한 일곱 가지 결함 유형 각각이 7.2.4절의 어느 조항을 위반하는지를 규정하고, 그 구조적 함의를 M3 규칙 엔진 설계(5.3절)와
연결한다.
3.3.1 본 연구 결함 유형과의 대응 관계
본 연구에서 최초로 직접 인용하는 7.2.4.4(a) 조항 원문은 SIL 수준에 따라 SRS가 완전하고, 명확하고, 정확하고, 모호하지 않고, 검증가능하고,
시험가능하고, 유지보수가능하고, 실현가능해야 한다고 규정한다. 이 여덟 가지 품질 속성 가운데 결함 유형에 따라 위반되는 속성이 달라진다.
D1(Entity 누락) 및 D2(Precondition 불명확) 결함은 비모호성과 명확성을 위반한다. D2 결함 중 선행 조건 자체가 아예 없는
사례는 완전성 속성도 함께 훼손된다. D3(Condition 트리거 불명확) 결함은 정확성과 검증가능성을 위반하며, 상태 전이 모델 생성 단계에서
Guard Condition 특정 불가로 이어져 M4 파싱 오류를 직접 유발한다. D7(복합 요구사항 미분리) 및 D5(Transition 모호성)
결함은 검증가능성·시험가능성·정확성을 위반한다. D4(Exception 미정의) 결함은 7.2.4.8의 위반으로 귀결된다. 이 조항은 프로그래머블
전자장치의 고장 동작을 SRS에 문서화하도록 요구한다. D6(Emergency 미분류) 결함은 7.2.4.13의 위반에 해당한다. 이 조항은 SIL
달성과 관련된 기능들을 SRS에 명확히 식별하도록 규정한다.
표 3 결함 유형별 EN 50128 7.2.4절 위반 조항 매핑
Table 3 Mapping of Violations of EN 50128 Section 7.2.4 by Defect Type
|
결함 유형
|
위반 조항
|
위반 근거 요지
|
|
D1 Entity 누락
|
7.2.4.4(a)
|
행위 주체 생략 → 비모호성·명확성 위반
|
|
D2 Precondition 불명확
|
7.2.4.4(a)
|
정성적 선행조건 → 비모호성 위반, 부재 시 완전성도 위반
|
|
D3 Condition 트리거 불명확
|
7.2.4.4(a)
|
정성적 트리거 → 정확성·검증가능성 위반, M4 파싱 오류 유발
|
|
D4 Exception 미정의
|
7.2.4.8
|
고장 동작 미문서화
|
|
D5 Transition 모호성
|
7.2.4.4(a)
|
수치기준 부재 → 정확성·비모호성 위반, Action 완료판정 불가
|
|
D6 Emergency 비분류
|
7.2.4.13
|
SIL 관련 기능 식별 의무 위반
|
|
D7 복합 요구사항 미분리
|
7.2.4.4(a)
|
독립 검증 불가 → 검증가능성·시험가능성 위반
|
SRS 작성 기법 측면에서는 7.2.4.15가 Table A.2의 기법 및 조치 적용을 요구한다. 임혜선·이석원(2017)의 표준문안 구조[4]는 이 조항의 요구에 부합하는 구조화 기법이며, 본 연구에서 채택한 6요소 체계 역시 7.2.4.15의 기법·조치 요건을 충족하도록 설계되었다.
3.3.2 7.2.4.4 (a) 중심의 검증 전략
표에서 확인할 수 있듯, D1·D2·D3·D5·D7 다섯 가지 결함 유형은 모두 7.2.4.4 (a)로 귀결된다. 이는 KRS 자연어 요구사항의 결함이
대부분 단일 요구사항의 표현 품질에서 비롯됨을 의미한다. 반면 D4와 D6은 각각 7.2.4.8와 7.2.4.13이라는 별도 조항으로 귀결되어, 표현
품질과는 성격이 다른 구조적·안전성 차원의 결함임을 보여준다.
이 구분은 M3 규칙 엔진의 검증 계층 설계(5.3절)에도 직접 반영된다. 7.2.4.4(a) 위반 결함 (D1·D2·D3·D5·D7)은 표준문안
요소별 형식 검증 규칙으로 자동 탐지가 가능하다. 반면 7.2.4.8 위반(D4)과 7.2.4.13 위반(D6)은 기능 블록 전체의 의미적 완전성과
SIL 배정 정합성을 확인해야 하므로, 도메인 지식에 의존하는 의미 검증 계층에서 처리한다.
4. LLM-결정론적 검증 하이브리드 아키텍처
본 장은 본 논문의 두 번째 기여에 해당한다. 3장에서 식별한 결함 유형과 표준 위반 조항을 근거로, LLM은 자연어 요구사항의 초안 구조화에만 관여하고
최종 안전 판정은 결정론적 규칙 엔진과 형식 모델 검증기가 전담하는 하이브리드 아키텍처를 제안한다. 이 설계는 재현성이 필수적인 안전 필수 소프트웨어
도메인에 LLM을 안전하게 도입하기 위한 구조적 해법이다.
4.1 전체 아키텍처 개요
제안 프레임워크는 KRS 표준 자연어 요구사항을 EN 50128 준수 표준문안 구조로 변환하고, 규칙 기반 검증과 형식 모델 검증을 거쳐 테스트 케이스와
추적성 매트릭스를 자동 생성하는 4단계 반자동 파이프라인이다. M1에서 M4까지 네 개의 처리 모듈이 단방향으로 연결되며, 각 모듈의 출력이 다음
모듈의 입력으로 흘러 들어가는 데이터 파이프라인 형태를 취한다.
그림 1 제안 프레임워크 전체 아키텍처
Fig. 1 Overall Architecture of the Proposed Framework
파이프라인의 입구인 M1(전처리 및 요구사항 분류)은 KRS-SG-0069 원문 문서에서 기능 요구사항을 추출하고 서브시스템별로 분류한다. 의무적
표현("~하여야 한다" 등)을 기준으로 요구사항 문장을 식별하고, 절 번호 접두사와 키워드 매칭을 결합하여 각 요구사항을 5개 기능 블록에 귀속시키며,
언어적 복잡도 점수를 산출해 후속 처리의 우선순위를 결정한다(구현 세부는 5.2절 및 부록 A.1 참조).
M2(LLM 기반 표준문안 구조화)는 자연어 요구사항을 6요소 표준문안으로 변환하는 파이프라인의 핵심 단계다. Chain-of-Thought(CoT)
방식의 프롬프트 템플릿으로 LLM API를 호출하고, 복수의 Temperature 설정으로 반복 실행한 뒤 다수결로 결과를 통합하는 앙상블 전략을
적용한다. 각 표준문안 요소에는 신뢰도 점수가 부여되며, 이 점수에 따라 정상 경로·전문가 검토 플래그 유지·수동 처리 요청의 세 가지 처리 경로가
결정된다. 이 단계의 산출물은 검증을 거치지 않은 초안으로 명시적으로 표시되며, M3의 점검 없이 후속 단계로 넘어가는 일은 없다(5.2절).
M3(규칙 기반 검증 및 형식화)는 M2가 생성한 초안을 결정론적 규칙 엔진이 점검하는 단계다. 완전성 검사(L1)·형식 일관성 검사(L2)·도메인
의미 검사(L3)·상호 요구사항 일관성 검사(L4)의 네 계층이 순차적으로 작동하며, 상위 계층을 통과하지 못한 요소는 하위 계층으로 넘기지 않아
오류 중첩을 방지한다. 검증이 완료된 명세에는 EN 50128 7.2.4절 15개 조항별 준수 여부를 기록한 준수 매트릭스를 함께 산출한다. 이 단계의
판정은 어떠한 경우에도 규칙 엔진이 수행하며 LLM이 개입할 여지는 없다(5.3절).
파이프라인의 출구인 M4(자동 검증 아티팩트 생성)는 M3가 승인한 표준문안 명세를 재료로 세 가지 검증 아티팩트를 자동으로 생성한다. Precondition을
초기 상태, Condition을 전이 트리거, Transition을 행동 및 후속 상태로 매핑하여 상태 전이 모델을 생성하고, NuSMV 모델 검증기를
통해 네 가지 CTL(Computation Tree Logic) 속성을 검증한다. 이어서 STM의 전이 그래프에서 All-Transition 커버리지
기준의 테스트 케이스를 도출하고, 요구사항-시험 추적 매트릭스(RTM)를 생성한다(5.4절).
4.2 설계 원칙: LLM의 역할 제한과 결정론적 검증 위임
이 프레임워크를 설계하면서 가장 먼저 확정한 원칙은 역할 분리다. LLM은 자연어 요구사항을 표준문안 구조로 변환하는 초안 생성에만 관여하고, 안전
판정은 전적으로 결정론적 규칙 엔진과 형식 모델 검증기가 담당한다. Nouri 외(2024)[17]와 Greshake 외(2023)[18]가 지적한 것처럼 LLM의 환각과 비결정론적 출력 특성은 재현성이 의무화된 안전 시스템에서 수용할 수 없는 위험이기 때문이다.
이 원칙을 아키텍처 수준에서 강제하기 위해 세 가지 메커니즘을 구현한다. 첫째, M2에서 각 표준문안 요소가 생성될 때마다 신뢰도 점수를 산출하고,
임계값 이하 요소에는 전문가 검토 플래그를 자동 부착한다. 둘째, 검증 게이트(Verification Gate)로서, M2 출력물은 반드시 M3 규칙
엔진의 4개 계층 점검을 통과해야만 Verified 상태를 얻으며, 이를 우회하는 경로는 구조적으로 존재하지 않는다. 셋째, 감사 추적(Audit
Trail)으로서, LLM 프롬프트 입력·원시 출력·규칙 엔진 판정 결과를 모두 타임스탬프와 함께 로그 데이터베이스에 저장하여 사후 재현성과 설명
가능성을 확보한다. 이 세 메커니즘이 완화할 수 있는 범위와 그렇지 못한 한계는 5.2.3절에서 별도로 논의한다.
4.3 데이터 흐름 및 인터페이스
파이프라인 전체의 데이터 흐름은 단방향이다. KRS 표준 문서가 입력으로 들어오면 M1→M2→M3→M4를 순차적으로 통과하며 최종적으로 요구사항-시험
추적 매트릭스가 산출된다. 각 모듈 간 경계에서 주고받는 데이터는 JSON 형식으로 직렬화하여 저장하므로, 특정 단계만 독립적으로 재실행하거나 중간
결과를 직접 검토하는 것이 가능하다.
M1→M2 경계에서는 요구사항 기본 속성과 언어적 복잡도 점수가 전달된다. M2→M3 경계에서는 6요소 표준문안 초안이 요소별 값·신뢰도 점수와 함께
전달되며, 신뢰도가 0.4 미만인 요소는 자동 처리가 중단되고 0.4~0.7 구간은 규칙 엔진 통과 후에도 전문가 검토 플래그가 유지된다. M3→M4
경계에는 4개 계층을 모두 통과한 표준문안 명세와 EN 50128 조항별 준수 매트릭스만 포함되며, 검증을 마치지 못한 항목은 이 경계를 넘지 못한다.
M4의 최종 산출물은 NuSMV 모델 파일, 테스트 케이스 집합, 요구사항-시험 추적 매트릭스 세 가지로, 모든 중간 산출물에는 타임스탬프와 처리
모듈 ID가 포함되어 사후 감사 추적이 가능하다(세부 스키마는 부록 A 참조).
4.4 확장성 및 유지보수성
프레임워크는 모듈 간 느슨한 결합 원칙에 따라 설계되었다. 각 모듈이 JSON 인터페이스만을 통해 연결되므로 모듈 내부 변경이 다른 모듈에 파급되지
않는다. KRS 표준이 개정될 경우 M3의 규칙 엔진과 KRS 용어 사전만 갱신하면 나머지 모듈은 그대로 재사용할 수 있다. LLM 모델을 교체할
경우 M2의 프롬프트 템플릿과 출력 파서를 수정하는 것으로 충분하며, M3·M4의 결정론적 엔진은 변경 없이 유지된다. 변경의 파급 범위가 항상 단일
모듈 안에서 멈춘다는 것이 이 설계의 유지보수성 핵심이다.
5. 구현 근거
본 장은 3장·4장에서 제시한 두 기여를 실제로 재현·구현하기 위한 근거 자료다. 각 절은 "설계 논리"를 먼저 서술하고 "구현 세부"는 요약 후
부록 A로 위임한다. 라이브러리 버전·정규표현식 전문·프롬프트 전문·의사코드는 모두 부록 A에 수록하였다.
5.1 M1: 전처리 및 요구사항 분류
KRS-SG-0069는 HWP와 PDF 두 형식으로 배포된다. 파서는 두 형식을 구분한 뒤 각각 별도 경로로 텍스트를 추출하고(HWP: pyhwp,
PDF: Apache Tika/PyMuPDF), 절 번호·의무 표현을 기준으로 요구사항 문장을 식별하며, 절 번호 접두사와 키워드 매칭을 결합해 5개
기능 블록에 귀속시킨다. 이어 절 수·의존성 깊이·모호성 지시자·조건 중첩도·수치 속성 수의 다섯 지표를 가중 합산하여 언어적 복잡도 점수를 산출하고,
임계값(0.7)을 초과하는 요구사항은 전문가 검토 대상으로 자동 분류한다. M1 자체는 표준 NLP 전처리 기법의 조합으로, 본 논문의 신규 기여는
아니며 M2~M4의 입력을 준비하는 역할에 한정된다. 라이브러리 버전, 6단계 파이프라인, 복잡도 점수 산출 공식 등 정규표현식 전문은 부록 A.1에
수록하였다.
5.2 M2: LLM 기반 표준문안 구조화
5.2.1 설계 논리
M2 설계에서 해결해야 했던 문제는 두 가지였다. 첫째, LLM이 6요소를 빠짐없이, 도메인 맥락에 맞게 추출하도록 유도하는 프롬프트 구조가 필요했다.
이를 위해 역할 정의→도메인 컨텍스트 주입→분석 순서 지정→출력 형식 지정의 4단계 CoT 템플릿을 설계하였다. 둘째, LLM 출력의 비결정성을 완화해야
했다. 이를 위해 동일 요구사항에 대해 Temperature를 달리하여(0.0·0.4·0.7) 3회 실행하고, 2회 이상 일치하는 값을 다수결로 채택하는
앙상블 전략을 적용하였다.
각 표준문안 요소에는 LLM 자체 보고 신뢰도, 앙상블 일치도, KRS 용어 사전 매칭률, 문법적 완결성 네 지표의 가중 평균으로 신뢰도 점수(0~1)를
부여한다. 0.7 이상은 정상 경로로 M3에 전달되고, 0.4~0.7 구간은 규칙 엔진을 통과해도 전문가 검토 플래그가 해제되지 않으며, 0.4 미만은
자동 처리가 중단되고 전문가 수동 입력이 요청된다.
5.2.2 구현 세부
Claude Sonnet API를 대상으로 CoT 프롬프트를 호출하며, max_tokens 2,048, top_p 1.0의 설정을 사용한다. 프롬프트에는
도메인 전문가 2인이 독립 작성 후 합의한 Few-Shot 예시 2~3건을 기능 블록별로 포함한다. 앙상블 충돌 해결 알고리즘, 신뢰도 점수 산출
공식, 프롬프트 전문은 부록 A.2에 수록하였다.
5.2.3 재현성에 대한 한계
본 연구가 채택한 CoT 기반 LLM 호출 방식은 재현성 측면에서 근본적인 한계를 지닌다. Claude Sonnet API는 비공개 모델로, 내부
추론 과정이 공개되지 않으며 제공자 측 모델 버전 갱신에 따라 동일한 프롬프트에 대해서도 시간이 지나면 출력이 달라질 수 있다. 다만 본 프레임워크의
안전 판정 재현성은 LLM 출력 자체의 재현성에 의존하지 않는다. M2의 산출물은 검증을 거치지 않은 초안으로 명시적으로 표시되며, 최종 판정은 결정론적
규칙 엔진(M3)과 형식 모델 검증기(M4)가 전담한다(4.2절). 따라서 동일한 초안이 주어지면 M3·M4의 판정 결과는 LLM 실행 시점과 무관하게
항상 동일하다. 다만 LLM 출력의 변동성은 전문가 검토로 회부되는 항목의 수에 영향을 미칠 수 있으므로, 이 변동 폭을 측정하는 것은 후속 연구의
과제로 남긴다(6장).
5.3 M3: 규칙 기반 검증 및 형식화
5.3.1 설계 논리
M3는 성격이 다른 네 개의 검사 계층을 순차적으로 배치한 게이트 구조로 설계하였다. L1(완전성)은 필수 요소 존재 여부를, L2(형식 일관성)는
요소별 표기 형식을, L3(도메인 의미)는 용어·수치의 KRS 정합성을, L4(상호 요구사항 일관성)는 요구사항 집합 전체의 정합성을 검사한다. 이
4계층 구분은 3.3.2절에서 확인한 것처럼 D1·D2·D3·D5·D7(7.2.4.4(a) 위반)은 L1·L2에서, D4·D6(7.2.4.8, 7.2.4.13
위반)은 L3에서 각각 처리하도록 대응시킨 것이다.
5.3.2 구현 세부
L1은 필수 요소 존재와 SIL 3 이상 요구사항의 Exception/Emergency 존재를 검사하는 2개 규칙, L2는 요소별 표기 형식을 검사하는
5개 규칙, L3은 용어 사전 매칭·수치 범위·SIL 정합성을 검사하는 3개 규칙, L4는 기능 블록 내 충돌·중복을 검사하는 2개 규칙으로 총 12개
규칙을 구성한다. 검증이 완료된 명세에는 EN 50128 7.2.4절 15개 조항별 준수 매트릭스가 함께 산출된다. 규칙별 정규표현식 전문과 자동
수정 코드는 부록 A.3에 수록하였다.
5.3.3 규칙 커버리지의 한계
M3의 규칙 엔진과 정규표현식 패턴은 본 연구가 분석한 KRS-SG-0069의 94건 요구사항에서 식별된 7가지 결함 유형을 근거로 설계되었다. 예를
이 규칙 집합은 분석 대상 코퍼스에 대한 내적 타당성은 확보하였으나, KRS 표준 전체에 대한 외적 타당성, 즉, 일반화 가능성은 검증되지 않았다.
예상하지 못한 표현이 입력되면 규칙이 결함을 탐지하지 못하는 거짓 음성으로 이어질 수 있으며, 이를 정량적으로 평가하려면 전문가가 별도로 라벨링한
정답 데이터셋을 대상으로 정밀도와 재현율을 측정해야 한다. 이는 6장에서 제시하는 향후 연구의 핵심 과제 중 하나다.
5.4 M4: 자동 검증 아티팩트 생성
5.4.1 설계 논리
M4 설계의 핵심은 표준문안 6요소와 상태 전이 모델 구성요소 간의 대응 규칙이다. Precondition은 초기 상태(S_init)로, Condition은
Guard Condition으로, Transition은 행동(Action)과 후속 상태로, Exception과 Emergency는 각각 예외 전이와
비상 전이로 대응시켰다. 검증 속성으로는 EN 50128 요건과 직접 대응되는 네 가지 CTL 속성-도달 불가능 상태 없음(VP-01), 비결정성
없음(VP-02), 비상제동 도달 가능성(VP-03), 안전 불변식(VP-04)-을 선정하였다. 테스트 케이스 생성 기준으로는 All-State 기준
대신 All-Transition 커버리지를 채택하였다.
표 4 NuSMV CTL 검증 속성 및 EN 50128 7.2.4절 요건의 대응 관계
Table 4 Correspondence Between NuSMV CTL Verification Attributes and the Requirements
of EN 50128 Section 7.2.4
|
속성 ID
|
명칭
|
대응 EN 50128 조항
|
|
VP-01
|
도달 불가능 상태 없음
|
7.2.4.4(a) 검증가능성 (verifiable)
|
|
VP-02
|
비결정성 없음
|
7.2.4.4(a) 정확성 (precise)
|
|
VP-03
|
비상제동 도달 가능성
|
7.2.4.13 SIL 관련 기능 식별
|
|
VP-04
|
안전 불변식 (가속-제동 조합)
|
7.2.4.4(a) 완전성 (complete)
|
5.4.2 구현 세부
개별 요구사항의 STM을 생성한 후 동일 기능 블록 내 STM을 병합하며, 병합된 STM은 SMV Language로 변환되어 NuSMV에 입력된다.
테스트 케이스는 STM 전이 그래프에서 DFS(Depth-First Search)로 최소 커버 경로를 탐색해 도출하고, 요구사항-테스트 추적 매트릭스(RTM)는
4계층 추적 링크를 포함한다. CTL 수식 전문, STM 매핑 규칙, 테스트케이스 생성 알고리즘은 부록 A.4에 수록하였다.
5.4.3 검증 속성의 대표성과 범위
VP-01~VP-04 상태 전이 모델이 내적으로 정합적인지 확인하는 구조적 검증으로, 생성된 STM 자체가 논리적으로 일관됨을 의미하는 필요조건이며,
그 STM이 원본 KRS 요구사항의 의도를 정확하게 반영했음을 보장하는 충분조건은 아니다. 이러한 의미적 충실성에 대한 검증은 본 프레임워크의 범위를
벗어나며, 원문 요구사항과 STM 간의 의미적 등가성을 전문가가 대조·평가하는 절차를 마련하는 것은 후속 연구의 과제다.
6. 결론 및 향후 연구
본 논문은 KRS-SG-0069 철도 신호 소프트웨어 요구사항을 대상으로 자연어 결함 유형의 체계화와 EN 50128 대응(3장), 그리고 LLM은
초안 생성만 담당하고 안전 판정은 결정론적 규칙 엔진과 형식 모델 검증기가 전담하는 하이브리드 아키텍처 제안(4장)이라는 두 기여를 제시하였다. 다만
LLM 초안 생성 과정의 재현성, 규칙 엔진의 KRS 문장 다양성 커버리지, NuSMV 검증 속성의 의미적 대표성이라는 세 가지 타당성 위협이 남아
있으며(5.2.3·5.3.3·5.4.3절), 현재 원고는 정량적 실효성이 아니라 재현 가능한 아키텍처 제안 수준에 있다. 이 세 위협에 대응하기 위해서는
KRS-SG-0069 기능 블록별 전문가 검토 기반 정답 데이터셋 구축을 전제로, LLM 반복 실행 시 신뢰도·검토회부율 변동을 측정하는 재현성 평가,
정밀도·재현율을 측정하는 규칙 커버리지 평가, 원문-상태모델 간 의미 충실도 평가가 후속 연구로 필요하며, 이와 함께 타 철도 표준(ETCS, CBTC
등)으로의 적용성 검증과 SPIN·HARA/FMEA 연계를 통한 다층 추적성 강화가 향후 과제로 남는다.
References
"EN 50128:2011, “Railway applications – Communication, signalling and processing systems
– Software for railway control and protection systems,”," CENELEC, European Committee
for Electrotechnical Standardization, 2020.

"EN 50716:2023, “Railway applications – Requirements for software development,”,"
CENELEC, European Committee for Electrotechnical Standardization, 2023.

D. Zowghi, C. Coulin, "Requirements Elicitation: A Survey of Techniques, Approaches,
and Tools," Engineering and Managing Software Requirements, pp. 19-46, 2005.

Hye Sun Lim, Seok-Woo Lee, "A Method to Specify and Verify Requirements for Safety
Critical System," Journal of KIISE, vol. 44, no. 9, pp. 893-907, 2017.

W. Zhao, "A Survey of Large Language Models," arXiv preprint arXiv:2303.18223, 2023.

S.-C. Necula, F. Dumitriu, V. Greavu-Serban, "A Systematic Literature Review on Using
Natural Language Processing in Software Requirements Engineering," Electronics, vol.
13, no. 11, 2024.

Z. Ji, "Survey of Hallucination in Natural Language Generation," ACM Computing Surveys,
vol. 55, no. 12, pp. 1-38, 2023.

L. Provenzano, K. Hänninen, "Specifying Software Requirements for Safety-Critical
Railway Systems: An Experience Report," REFSQ 2017, LNCS, Springer, vol. 10153, pp.
363-369, 2017.

A. Iliasov, D. Taylor, L. Laibinis, A. Romanovsky, "Practical Verification of Railway
Signalling Programs," IEEE Trans. Dependable Secure Comput., vol. 20, no. 1, pp. 695-707,
2023.

Z. Chen, "Developing CBTC system safety requirement hierarchy through STPA methodology,"
Heliyon, vol. 10, 2024.

L. Zhao, "Natural Language Processing for Requirements Engineering: A Systematic Mapping
Study," ACM Computing Surveys, vol. 54, no. 3, pp. 1-41, 2021.

A. Ferrari, "Detecting Requirements Defects with NLP Patterns: An Industrial Experience
in the Railway Domain," Empirical Software Engineering, vol. 23, pp. 3684-3733, 2018.

A. Veizaga, S. Y. Shin, L. C. Briand, "Automated Smell Detection and Recommendation
in Natural Language Requirements," IEEE Transactions on Software Engineering, vol.
50, no. 4, pp. 695-720, 2024.

A. Mavin, P. Wilkinson, A. Harwood, M. Novak, "Easy Approach to Requirements Syntax
(EARS)," pp. 317-322, Proc. 17th IEEE International Requirements Engineering Conference
(RE'09), 2009.

X. Hou, "Large Language Models for Software Engineering: A Systematic Literature Review,"
ACM Transactions on Software Engineering and Methodology, vol. 33, no. 8, pp. 1-79,
2024.

J. White, "A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT," arXiv:2302.11382;
also in Proc. 30th Conf. Pattern Languages of Programs (PLoP'23), ACM, 2023.

A. Nouri, B. Cabrero-Daniel, F. Törner, H. Sivencrona, C. Berger, "Engineering Safety
Requirements for Autonomous Driving with Large Language Models," pp. 218-228, Proc.
32nd IEEE International Requirements Engineering Conference (RE'24), 2024.

K. Greshake, S. Abdelnabi, S. Mishra, C. Endres, T. Holz, M. Fritz, "Not What You've
Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt
Injection," pp. 79-90, Proc. 16th ACM Workshop on Artificial Intelligence and Security
(AISec'23), 2023.

E. Kurian, D. Briola, P. Braione, G. Denaro, "Automatically Generating Test Cases
for Safety-Critical Software via Symbolic Execution," Journal of Systems and Software,
vol. 199, 2023.

A. Bucaioni, F. Di Silvestro, I. Singh, M. Saadatmand, H. Muccini, T. Jochumsson,
"Model-based Generation of Test Scripts Across Product Variants: An Experience Report
from the Railway Industry," Journal of Software: Evolution and Process, vol. 34, no.
11, 2022.

A. Ferrari, F. Mazzanti, D. Basile, M. H. ter Beek, "Systematic Evaluation and Usability
Analysis of Formal Methods Tools for Railway Signaling System Design," IEEE Transactions
on Software Engineering, vol. 48, no. 11, pp. 4675-4691, 2022.

M. A. Zadenoori, J. Dąbrowski, W. Alhoshan, L. Zhao, A. Ferrari, "Large Language Models
(LLMs) for Requirements Engineering (RE): A Systematic Literature Review," arXiv:
2509.11446, 2025.

I.-G. Oțelea, B. Pintea, R. V. Rughiniș, V. Tîrșu, "Evaluating LLMs for Automated
Requirement and Test Case Generation in Railway Signaling Systems," pp. 1-6, Proc.
24th RoEduNet International Conference (IEEE), 2025.

Woo Sung Jang, Young Chul Kim, "Automatic test case generation with informal korean
requirement specifications," Hongik University Graduate School, pp. 13-33, 2022.

부록 A. 구현 세부 자료
본 부록은 5장에서 요약한 세부 구현(라이브러리 버전, 정규표현식, 프롬프트 전문, 알고리즘 의사코드)를 재현 목적으로 수록한다.
A.1 M1 전처리 파이프라인 상세
표 5 각 형식에 적용되는 라이브러리와 전처리 파이프라인
Table 5 Libraries and Preprocessing Pipelines Applicable to Each Format
|
형식
|
라이브러리
|
버전
|
처리 목적
|
|
PDF
|
Apache Tika
|
2.9.x
|
텍스트·메타데이터 추출
|
|
PDF(보조)
|
PyMuPDF (fitz)
|
1.23.x
|
표 셀 경계 좌표 추출
|
|
HWP
|
pyhwp
|
0.1.x
|
HWP → 평문 변환
|
|
구문 분석
|
KoNLPy Kkma
|
0.6.x
|
한국어 의존 구문 분석
|
|
정규표현식
|
Python re stdlib
|
-
|
절 번호·의무 표현 식별
|
전처리 6단계: ① 문서 로드(Unicode NFC 정규화) ② 계층구조 복원(절 번호 정규식) ③ 표 셀 분리(PyMuPDF 좌표 + BeautifulSoup)
④ 요구사항 문장 식별(Deontic Expression) ⑤ 기능 블록 귀속(절 번호 우선, 키워드 매칭 보완) ⑥ 중간 결과 JSON 직렬화.
언어적 복잡도 점수: $CS = 0.25 \cdot n\_CC + 0.20 \cdot n\_DD + 0.20 \cdot n\_AI + 0.20 \cdot
n\_CN + 0.15 \cdot n\_NA$ ($CS \in [0.0, 1.0]$, 각 지표는 KRS-SG-0069 94건 실측 최대값으로 정규화,
$K\_CC=5 \cdot K\_DD=8 \cdot K\_AI=5 \cdot K\_CN=4 \cdot K\_NA=6$). $CS > 0.7$이면 전문가
검토 대상으로 자동 분류된다.
A.2 M2 프롬프트 및 앙상블 알고리즘
CoT 시스템 프롬프트 요지: “당신은 EN 50128:2011 7.2.4절 소프트웨어 요구사항 명세 전문가입니다. Entity/Precondition/Condition/Transition/Exception/Emergency
6요소로만 출력하며, 출력은 지정 JSON 스키마 외 텍스트를 포함하지 않습니다.”
API 호출 매개변수: 모델 Claude-Sonnet-4-6, max_tokens 2,048, Temperature 앙상블 1·2·3회차 각 0.0·0.4·0.7,
top_p 1.0, stop_sequences ["}}"]
신뢰도 점수: $CONF = 0.35 \cdot C\_LLM + 0.30 \cdot C\_ENS + 0.20 \cdot C\_KRS + 0.15 \cdot
C\_GRM$. 처리 경로: $CONF \ge 0.7$ 정상 경로 / $0.4 \le CONF < 0.7$ 전문가 검토 플래그 유지 / $CONF
< 0.4$ 자동 처리 중단.
A.3 M3 규칙 상세
표 6 M3 규칙 상세 및 대응 결함
Table 6 M3 Rule Details and Corresponding Defects
|
계층
|
규칙 ID
|
검사 내용
|
대응 결함
|
|
L1
|
COMP-001
|
Entity·Precondition·Condition·Transition 비어있지 않음
|
D1
|
|
L1
|
COMP-002
|
SIL≥3 요구사항의 Exception/Emergency 존재
|
D4
|
|
L2
|
FORM-001
|
Entity가 KRS 컴포넌트 목록에 속함
|
D1
|
|
L2
|
FORM-002
|
Condition이 조건절 종결 형식(~면/~경우/~시)
|
D3
|
|
L2
|
FORM-003
|
Condition에 정량적 트리거 포함
|
D3
|
|
L2
|
FORM-004
|
Transition이 동작 동사로 시작
|
D5
|
|
L2
|
FORM-005
|
Transition에 수치 기준 포함
|
D5
|
|
L3
|
SEM-001
|
요소 값이 KRS 용어 사전에 등록
|
D1,D5
|
|
L3
|
SEM-002
|
수치 속성이 KRS 허용 범위 내
|
D5
|
|
L3
|
SEM-003
|
Emergency 요소의 SIL 배정 정합성
|
D6
|
|
L4
|
CONS-001
|
동일 블록 내 Entity·Precondition 충돌 없음
|
D7
|
|
L4
|
CONS-002
|
동일 블록 내 Transition 중복 정의 없음
|
D7
|
자동 수정 가능 위반 3종: ① Entity 누락 → 동일 블록 최빈 Entity 후보 제안 ② Condition 형식 위반 → 패턴 변환 ③ 용어
불일치 → 코사인 유사도 최근접 용어로 대체. 자동 수정 범위를 벗어나는 위반은 전문가 오류 리포트로 전달한다.
A.4 M4 STM·NuSMV·테스트케이스·RTM 상세
표준문안→STM 매핑: Precondition→S_init, Condition→Guard Condition, Transition→Action+S_next,
Exception→예외 전이, Emergency→비상 전이.
표 7 NuSMV CTL 검증 속성의 산출 공식
Table 7 Formulas for Calculating NuSMV CTL Verification Attributes
|
속성
|
CTL 명세
|
의미
|
|
VP-01
|
AG(state ≠ DEAD_STATE)
|
모든 경로에서 도달불가 상태 없음
|
|
VP-02
|
AG(guard_i → AX(¬guard_j)), i≠j 동일 선행상태
|
동일 상태에서 두 전이 동시발화 없음
|
|
VP-03
|
EF(state = EMERGENCY_BRAKE)
|
비상제동 상태 도달 가능
|
|
VP-04
|
AG(¬(v_actual > v_permitted ∧ brake_cmd = OFF))
|
과속-제동비활성 조합 없음
|
테스트 케이스 생성 3단계: ① DFS로 All-Transition 최소 커버 경로 탐색 ② Precondition→사전조건, Condition→입력,
Transition→기대출력으로 변환 ③ Exception·Emergency 전이에 부정 테스트 케이스 추가, 수치 속성에 경계값 분석(BVA) 테스트
데이터 추가.
RTM 4계층 추적 링크: ① 표준문안 요소별 검증 규칙 ID ② STM 상태·전이 ID ③ NuSMV 검증 속성 ID ④ EN 50128 7.2.4절
준수 항목 ID. RTM 생성 후 커버리지 분석기가 미연결 요구사항·고아 테스트 케이스·EN 50128 미연결 항목의 세 가지 공백을 점검한다.
저자소개
Graduated from the Department of Information and Communication Engineering, SoongSil
University, in February 2005 (Master). March 2024-Present, Ph.D. student (coursework
completed in February 2027), Department of SMART Railway Systems, Korea National University
of Transportation.
Graduated from the Department of Railway Electrical and Signaling Engineering, Seoul
National University of Science and Technology, in February 2014 (Master). March 2022-Present,
Ph.D. student (coursework completed in February 2026), Department of SMART Railway
Systems, Korea National University of Transportation.
Graduated from Sungkyunkwan University, Department of Electrical Engineering, in 1994.
Graduated from the same graduate school (Ph.D. in Engineering) in February 2000. Professor,
Department of Railway Vehicle Electrical, Korea National Railroad College, in 2004-2012.
2013-Present, Professor, Department of Transportation System Engineering, Korea National
University of Transportation.
Graduated from Chung-Ang University (Ph.D. in Engineering) in February 2002. Postdoctoral
Researcher at the University of California, Riverside, from March 2006 to February
2007. Senior Researcher at LG Siltron from October 2007 to February 2008. Professor,
Department of Computer Engineering, Korea National University of Transportation, from
March 2008 to August 2013. September 2013-Present, Professor, Department of Transportation
System Engineering, Graduate School of Transportation, Korea National University of
Transportation.