반응형

제목: 철도 수송 분야의 고안전 시스템(Safety-Critical Systems in Rail Transportation)

저자: John A. Carbone, Express Logic, 미국

문서유형: 업체 브로셔( 5페이지)

 

상용 RTOS 업체의 솔루션(특정 안전성 규제 표준에서 요구하는 문서를 상용 RTOS를 사용하는 조직이 직접 준비할 필요가 없도록 제공해 주는 서비스)을 기술한 문서



철도 수송 시스템

  • 기차, 전차 등의 수송 시스템에서 기존의 기계적 또는 수동으로 통제되던 부분에 전자 시스템 사용이 확대됨
  • 이러한 전자 통제/모니터링 시스템이 많은 이점을 제공하지만 열차 시스템의 안전성(safety)을 위해서는 해당 전자 시스템의 하드웨어와 소프트웨어 개발에 있어 산업 표준을 준수하였고 충분한 테스팅과 문서화를 거쳤는지 규제(regulations)의 필요성도 커짐


철도 전자 시스템 장애 사례: 1995Altona Railway 시스템 장애

  • 독일 철도(the German Railway)Hamburg-Altona역의 오래된 철로 스위치 타워(railway switch tower)Siemens에서 개발한 완전 컴퓨터화된 시스템으로 교체하려 시도
  • 새로운 시스템을 시작하자마자 중앙 컴퓨터(the central computer)에 장애 발생
  • Siemens의 전문가들이 여러 시간 동안 문제 원인을 찾지 못하자 독일 철도는 역 전체를 폐쇄하기로 결정. 수천 명의 승객이 역에서 25 킬로미터 떨어진 곳까지 가도록 만듬
  • 매우 드문 결함이었기 때문에 원인을 찾아내는 작업이 어려웠음. 이틀 후에야 전문가들은 특정 조건에서 스택 오버플로우(a stack overflow)가 발생한다는 것을 알아냄
  • 스택 오버플로우를 처리해야 하는 루틴을 조사해보니 프로그래밍 에러로 인해 해당 루틴이 데드루프(a deadloop)에 빠진 것을 발견
  • 기자 회견에서 Siemens 책임자는 이 숨은 결함이 찾기가 어려운 문제였고 Siemens 전문가들은 스택 오버플로우를 처리하는 루틴이 사용될 일이 절대 없다고 가정했다고 답변


철도 시스템 안전성 규제 표준  

  • 전자 시스템의 안전한 운영이 매우 중요시되므로 다양한 정부 지원 기관 및 독립적인 기술 표준 단체에서 고안전 시스템(safety-critical systems)에 대한 표준을 정의하고 준수하도록 규제
  • IEC(The International Electrotechnical Commission)는 전기 전자 분야의 표준화(standardization) 문제에 관여하는 국제 조직. IEC-61508은 전기, 전자 시스템의 안전성 관련 국제 표준으로, 요구되는 안전성 무결성 레벨(safety integrity level: SIL)을 달성하도록 시스템이 설계, 구현, 운영, 유지보수 되도록 하기 위한 요구사항들을 명시한다.
  • 유럽에서는 CENELEC(the European Committee for Electrotechnical Standardization)가 유럽 철도 표준을 관장한다. CENELEC 표준인 EN 50126, EN 50128, EN 50129가 시스템의 안전성 정의에 적용된다.
    - EN 50126:
    철도 시스템 전체의 신뢰성(Reliability), 가용성(Availability), 유지보수성(Maintainability), 안전성(Safety)을 다룬다.
    - EN 50129:
    안전성 관련 전자 통제 및 보호 시스템에 적용
    - EN 50128:
    철도 통제 및 보호 시스템의 안전성 관련 소프트웨어에 적용



고안전 시스템 표준의 공통 규제 요소(Common Regulatory Elements)

특정 표준이나 응용 분야에 상관없이 모든 고안전 소프트웨어(safety-critical software) 표준에서 공통적으로 요구하는 것은 소프트웨어가 잘 정의되고 문서화된 계획에 부합하도록 개발되고 운영되어야 한다는 점이다. 특히, 엄격한 테스팅과 문서화를 통해 시스템이 적절하게 설계되었고 안전하게 운영될 수 있다는 것을 증명해야만 한다.

  • 프로세스(Process): 소프트웨어 설계, 개발, 테스트 프로세스가 완전하게 기술되고 일관성을 가져야 한다. 프로세스는 아래와 같은 여러 세부 카테고리로 나누어진다.
    -
    계획(Planning): 시스템 목표와 해당 목표를 달성 및 검증하기 위한 계획을 기술
    -
    설계(Design): 하드웨어, 소프트웨어, 운영 및 기타 측면을 포함한 시스템 설계 명세
    -
    개발(Development): 사용할 도구, 코드 검토 방법, 테스트 계획 및 문서화, 조직 구성원 훈련 등을 포함한 개발 프로세스 정의
    -
    요구사항(Requirements): 시스템 기능 요구사항을 식별
    -
    검증(Verification): 시스템이 명세서에 부합하고 목표를 달성하는지 보장하는 프로세스
    -
    형상관리(Configuration management): 시간 경과에 따른 점진적인 변경 버전 통제
    -
    품질보증(Quality assurance): 시스템이 목표에 맞게 개발되었고 의도한 특성 및 기능을 제공한다는 것을 보장하는 프로세스와 절차
  • 코드(Code): 개발자와 개발 도구에 의해 생성된 소스 코드(시스템 및 애플리케이션 소스 코드, 테스트 코드, 스크립트, 오브젝트 코드 포함). 코드 검토가 이루어져야 하며 시스템에 실제 사용된 코드와 일치해야 한다.
  • 테스트(Test): 코드가 올바르게 동작하고 모든 설계 목표와 시스템 요구사항을 달성하는지 확인하기 위해 수행된 여러 테스트들을 포함. 모든 프로그램 문장(program instructions)이 테스트 되었는지 확인하는 코드 커버리지 분석도 포함. 대개 단위(화이트박스) 테스팅, 통합(블랙박스) 테스팅, 최종 승인 테스팅이 포함된다.
  • 결과(Results): 단위, 통합 테스트 보고서 등으로 나타나는 모든 테스트 결과물


상용 RTOS의 안전성 규제 준수를 위한 턴키 솔루션

  • 고안전 시스템(safety-critical systems)의 복잡도가 올라가고 더 강력한 마이크로프로세서가 사용됨에 따라 상용 실시간 운영 체제 기술(commercial RTOS technology)의 사용도 증가
  • 상용 RTOS 사용 시 문제는 조직 내부에서 직접 개발한 코드와 달리 외부 타 조직에서 개발한 코드에 대해 안전성 규제 표준에서 요구하는 문서화나 테스팅 요구사항을 충족시키기 어렵다는 점이다. 상용 RTOS의 완전한 소스 코드가 고객(시스템 개발 팀)에게 제공되는 경우도 드물고, 제공된다 할지라도 이를 충분히 이해하여 문서화 및 테스팅 하는데 많은 시간이 걸려 프로젝트 일정과 비용에 영향을 미침
  • 이런 문제 때문에 일부 개발 조직은 직접 개발한 인하우스 운영 체제를 사용하지만 이 또한 단점이 있고 상용 RTOS의 장점을 활용하지 못하게 됨
  • 해결책으로 규제 기관의 승인/인증 등을 목적으로 특정 표준에서 요구하는 문서를 RTOS 개발 업체에서 완벽하게 제공해 주는 100% 턴키 솔루션 제안(본 문서를 작성한 RTOS 업체인 Express Logic에서 ‘Certification Pack’이라는 이름으로 이런 솔루션을 제공)
  • 인증팩(Certification Pack)은 특정 표준에서 요구하는 RTOS 설계, 코딩, 테스트 관련 문서를 제공한다. 아래 표는 IEC-61508 인증팩에서 일반적으로 제공하는 콘텐츠이다.

IEC-61508 Certification Pack 목록

소프트웨어 안전성 요구사항(Software Safety Requirements)

소프트웨어 안전성 확인 계획(Software Safety Validation Plan)

개발 계획(Development Plan)

형상 관리 계획(Configuration Management Plan)

품질 보증 계획(Quality Assurance Plan)

검증/테스트 계획(Verification/Test Plan)

코딩 표준(Coding Standards)

요구사항 표준(Requirements Standards)

설계 표준(Design Standards)

요구사항 명세(Requirements Specification)

설계 기술서(Design Description)

단위 테스트 절차(Unit Test Procedure)

단위 테스트 계획(Unit Test Plans)

단위 테스트 보고서(Unit Test Reports)

통합 테스트 절차(Integration Test Procedure)

통합 테스트 계획(Integration Test Plan)

통합 테스트 보고서(Integration Test Report)

추적 매트릭스(Trace Matrices)

형상 인덱스(Configuration Index)

소프트웨어 요약 보고서(Software Accomplishments Summary)

안전 매뉴얼(Safety Manual)


  • 철로 및 수송 인증 팩(Rail and Transportation Certification Packs)IEC-62679, EN-50128, IEC-61508, 49CFR236 Subpart H, TUV, CENELEC 규제의 요구사항을 충족하는 콘텐츠 제공
  • 철로 및 수송 확인 팩(Rail and Transportation Validation Suites)IEC-62679, EN-50128, IEC-61508, 49CFR236 Subpart H를 준수하는데 필요한 모든 콘텐츠(설계서, 소스 코드, 테스트 코드, 테스트 결과, 추적 매트릭스, 인증에 필요한 기타 문서) 제공


반응형

+ Recent posts