2017년 3월 16일 목요일

SW 기능안전 필요성

현대 사회에서 자동차 , 철도 , 항공우주 , 원자력 원자력 , 국방 등의 다양한 분야에서 대부분의 장치들이 소프트웨어를 내장하고 , 제어용 소프트웨어 시스템이 탑재됨에 따라 소프트웨어의 안전성에 안전성에 대한 중요도가 높아지고 높아지고 있다 . 소프트웨어 소프트웨어 중심 사회가 되어가면서 대부분의 국가기반시설 및 대단위 산업분야에서 소프트웨어를 이용한 제어가 이루어지고 , 금융 , 자동차 , 항공 , 전력 , 국방 , 의료 , 교육 등 대부분 분야에서 소프트웨어 의존도가 높아짐에 따라 이의 오류로 인한 사고의 피해 범위와 규모가 확대되고 있다 .

다양한 산업 분야에 소프트웨어가 사용되면서 소프트웨어에 의한 사고의 위협도 높아지기 때문에 소프트웨어 오동작에 의한 안전성 위협이 큰 이슈로 떠오르게 되었다 . 경미하거나 사소한 소프트웨어 오류가 오류가 사람의 생명을 앗아가거나 막대한 경제적 피해를 초래 한다. 안전의 관점에서 심각한 경제적 물질적 피해를 초래하거나 인간의 생명에 막대한 위협이 되는 경우에는 경우에는 보다 거시적이고 , 체계적인 대응이 필요하다 . 소프트웨어의 소프트웨어의 안전을 확보하는 일은 소프트웨어에 기능적 기능적 오류나 고장 을 방지하려는 예방 과 오류나 오류나 고장 발생을 사전에 사전에 감지하여 적절한 대응을 하고 , 오류 상황이 발생했을 경우에는 경우에는 그 피해를 최소화하는 최소화하는 노력 이 복합적으로 복합적으로 필요하 다. 모든 산업 분야 를 막론하고 소프트웨어 기능안전 관련 사고가 발생하지 않도록 개발과정에 안전한 상태를 확보할 수 있는 조치를 취하는 것이 중요하다 .

소프트웨어의 사고는 사용자의 오조작에 의해서 의해서 발생할 수도 있지만 있지만 근본적으로 개발 초기 과정에서의 과정에서의 안전성에 대한 고려와 검증이 제대로 제대로 이루어지지 않아 발생하게 된다 . 소프트웨어에 소프트웨어에 의한 사고를 예방하기 위해서는 소프트웨어 소프트웨어 안전성에 대한 면밀한 고려가 소프트웨어 개발 단계에서 단계에서 매우 중요 하게 다루어져야한다 . 소프트웨어 시스템 은 외부의 잘못된 입력으로부터 시스템을 안전하게 지켜주고 , 재난 발생을 막기 위한 통제를 통제를 수행할 수 있는 가에 대한 고려에서 출발한다 . 때문에 소프트웨어 안전성 을 만족하기 위해서는 제품개발의 수명주기에 수명주기에 기반한 적절한 안전성 확보 활동의 도입이 필수적이고 , 이를 제품개발의 전단계에 전단계에 적용하는 의지와 노력이 필요하다 .

여타의 소프트웨어 품질활동과 품질활동과 마찬가지로 안전성 확보활동의 결과는 산출물 형태의 문서로 기록되어야하고 기록되어야하고 안전성 확보가 필요하다고 필요하다고 파악된 기능항목은 테스트 단계에서 단계에서 반드시 검증되어야한다 검증되어야한다 . 기능안전성과 기능안전성과 관련된 사고를 사고를 줄이기위해 시스템과 장비를 생산하는 단계에서 안전과 관련된 기능에 대한 위험을 평가하고 무결성을 확보하는 방안이 세계적으로 다양한 산업분야에서 진행되어 왔다 .

전기 , 전자 , 또는 프로그램이 가능한 전자 (E/E/PE: Electric, Electronic or Programmable Elecronic) 시스템 및 제품 에 대한 포괄적 기능안전성 표준 IEC61508을 시작으로 , 철도 , 항공 , 에너지 , 의료 등 주요 산업분야에서 산업분야에서 분야 특성을 고려한 기능안전성 표준을 정의해왔다 . 하지만 이러한 기존 표준 및 지침들은 표준문서의 특성상 기능안전성을 확보에 대한 목표 와 확인 기준만을 명세 하고 있으며 , 목표와 기준을 달성하기 위한 도구 등 구체적 방안에 대한 내용은 다루고 있지 않다 . 특히 소프트웨어 기능안전성에 대해서는 더욱 부족한 상황이다 . 즉, 산업분야를 막론하고 소프트웨어 기능안전성 기능안전성 도입하 기 위해서는 기본적으로 안전성에 대한 이해와 표준에서 제시하는 목적을 달성하기 위한 적절한 활동이 수반되어야한다 .

철도 시스템에 관련된 안전 표준

철도 시스템에 관련된 안전 표준에는 다음의 네 가지가 존재하고 있다.

  • IEC 62278(EN 50126) : RAMS
  • IEC 62279(EN 50128) : 소프트웨어
  • IEC 62425(EN 50129) : 안전성 인증
  • IEC 62280(EN 50159) : 통신



위의 네 가지 표준은 일반산업 분야에 있어서 컴퓨터제어기능을 대상으로 한 안전 표준인 IEC 61508을 기초로 해서 UIC(French: Union Internationale des Chemins de fer or International Union of Railways : 국제철도연합)의 기술지침과 유럽 각 국의 철도 시스템의 기술요구사항을 통합하였다. 





IEC 61508에서는 안전성 활동 생명주기의 범위를 개념설계에서 폐기까지 모든 단계를 포함하였으며 안전성 요구수준에 맞는 기술요구사항을 정하는 SIL, 이 두 가지의 개념을 도입하였다. 이는 생명주기의 각 단계를 엄밀히 구분하고 관리함으로써 불안전한 요소를 제거하는 동시에 요구되는 안전성 수준에 맞추어 다른 안전성 기준을 결정할 수 있도록 하였다. 이들 개념에 기초한 안전성 관리의 개념이 철도를 포함하
여 많은 분야에 있어서 향후 주류가 될 것으로 여겨진다.

철도 시스템 RAMS 관리 원칙을 제공하는 국제 표준, IEC 62278 표준 개요

IEC 62278(또는 EN 50126)은 Railway application-specification of demonstration of
reliability, availability, maintainability and safety(RAMS)에 관한 기술적 내용을 다
루며 철도 시스템 RAMS 관리 원칙을 제공하는 국제 표준이다. 표준은 개념설계부
터 폐기까지 생명주기 모든 단계에서 안전성과 신뢰성 등을 확보하기 위한 각 단
계별 과정과 절차에 대해 다룬다. 본 표준은 철도 차량 뿐만 아니라 전력설비 등
철도 시스템 전반을 대상으로 하여 다음과 같은 기본적인 개념을 다룬다.


  • 생명주기 각 단계에서 RAMS 관리를 위한 절차와 실시항목을 규정한다.
  • RAMS 요구사항과 그 요구사항이 충족되는 것을 확인하는 절차를 규정한다. 이를 위하여 필요한 분석, 작성해야 할 문서를 규정한다.
  • 대상 장치 시스템이 안전에 미치는 영향을 평가하는 위험 분석을 규정한다. 단, 위험 분석을 수행할 것을 요구하고는 있으나 수치에 대해서는 규정하지 않는다.
  • RAMS 관리를 위한 일련의 과정에 있어서 관련 조직과 관계자의 역할 및 자격 등에 대해서는 유럽의 체제를 전제로 한다.

따라서 철도용 전기 설비의 개발 시 표준에서 제시한 RAMS 요구사항을 충족하는 개발 프로세스의 가이드라인을 준수해야 한다. 본 가이드의 적용 범위는 생명주기 상에서 시스템 수용 단계까지이며 시스템 개량, 폐기는 범위에서 제외된다.


그림 1. 철도 안전과 RAMS

철도 RAMS 활동은 크게 안전성(Safety)과 가용성(Availability) 그리고 유지보수성(Maintainability) 영역으로 나뉘게 된다. 철도 RAMS 관리의 목표는 철도 안전성 및 가용성 확보 및 향상이다. 안전성과 가용성은 신뢰성, 유지보수성, 운영 및 유지보수 활동에 의해 좌우됨을 [그림 1]을 통해서 알 수 있다.



철도 시스템의 안전성과 RAM의 활동 및 관리

철도 시스템은 RFP 또는 시스템 설계 시 다른 성능 목표와 함께 RAMS 목표를 구
체적으로 정의하고 하부 시스템에 할당해야 한다. RAMS 관리는 철도 운영 시 발
생 가능한 시스템 장애와 인명사고 및 물적 손실을 초래할 수 있는 부품고장 및
위험요소들을 식별한다. 이후 이를 적절한 수준으로 관리하기 위하여 철도 시스템
의 계획부터 설계, 제작, 시험 및 운영단계에 이르기 까지 전 생명주기에 걸쳐 적
용되는 프로세스 및 단계별 활동을 의미한다. 이러한 관점에서 RAMS 활동을 통해
안전성 활동 영역과 RAM 관리 영역이라는 두 가지 관점의 총체적 관점에서 바라
볼 수 있으며 [그림 2]에 정리하였다.


그림 2. 철도시스템의 안전성과 RAM의 활동 및 관리 영역



철도시스템 RAMS 활동의 수행절차

앞서 생명주기상에서 안전성 분석 기법의 수행 시점을 살펴보았다. 안전성 분석기법의 수행 시점 분석과 더불어 철도시스템 RAMS 활동 또한 생명주기를 따라 수행된다. 이러한 전체적인 흐름을 [그림 3]에 나타내었다.






시스템 생명주기의 첫 단계인 개념 및 시스템 정의와 적용 조건 분석 단계에서 수행되는 RAMS 요구사항 분석 결과를 근거로 RAM 분석 업무가 시스템 생명주기에 따라 수행된다. RAMS 분석을 위한 대상 선정 및 분석 수준을 결정하기 위해 시스템분류 업무를 우선 수행한다. 만일 독립평가 기관 내 검증 팀에서 예비 위험원분석(PHA)을 통해 요구하는 특정 RAM 요구사항이 존재할 경우 설계 및 구현 단계에서 수행될 RAM 분석 업무를 위한 요구조건 분석도 가능하다. 시스템 분류를 통해 정의된 분석대상(최하위 수준)을 기준으로 FMECA를 수행해야 한다. 이후 시스템 기능도를 근거로 한 신뢰성 블록도(RBD)를 작성해야 한다. 또한 FMECA 및 신뢰성 블록도를 근거로 시스템 고유 신뢰성 및 유지보수성을 예측한다. 그리고 특정 RAM 요구 사항(목표)을 예측하기 위해 FTA를 수행하며, 정량적인 예측결과를 도출하기 위해 FMECA에서 분석된 결과를 활용해야 한다.

제작/설치 이전에 시스템 고유 신뢰성 및 유지보수성 예측결과, 그리고 특정 RAM 요구사항에 대한 예측결과가 RAM 요구사항과 부합 하는가에 대한 검증업무를 수행해야 한다. 또한 입증업무의 범위는 설계단계에서 예측된 RAM 분석 데이터와 요구 사항간의 부합성 여부 검토가 해당되며, 시운전 단계나 운영단계에서 수행되는 통계적 입증은 포함되지 않는다.

시스템 설계 생명주기의 첫 단계인 개념 및 시스템 정의와 적용 조건 분석단계에서 수행되는 RAMS 요구사항 분석결과를 근거로 안전성 분석 활동 업무를 시스템 생명주기에 따라 수행해야 한다. 독립평가기관에서 수행될 예비 위험원 분석(PHA) 결과를 근거로 대상 시스템의 위험원 관리를 계층적으로 수행해야 한다. 우선 대상 시스템의 시스템 수준의 위험원 관리를 위해 시스템 위험원 분석(SHA)을 수행한다. 수행된 시스템 위험원 분석(SHA) 결과를 근거로 대상 시스템을 구성하는 하부시스템에 대한 위험원 관리를 위해 하부시스템 위험원 분석 (SSHA)이 수행된다.

또한 하부시스템 간의 인터페이스 상에서 발생 가능한 위험원의 관리를 위해 인터페이스 위험원 분석(IHA)을 수행한다. 유지보수를 포함한 시스템 운영상의 위험원관리를 위해 운영 및 지원상의 위험원 분석(O&SHA)을 수행해야 한다.

설계 및 제작/설치단계에서 수행되는 위험원 관리는 설계 및 기타 운영조건의 변경에 따라 시스템 생명주기의 시스템 확인단계에서 수행되는 시험 및 시운전 단계 이전까지 갱신하여 관리해야 한다. 시스템 확인 단계, 즉 시험 및 시운전 단계에서는 설계 및 제작/설치단계에서 도출된 위험원 관리가 설계 및 운영절차에 반영 되었는가를 확인하는 안전성 확인 업무를 수행한다. 본 가이드에서 제외되는 내용이지만 RAMS 관리업무와는 독립적으로 수행되는 독립안전평가업무의 결과를 검토, 반영함으로써 안전성 활동 검증을 수행해야 한다. 시스템 생명주기에 따라 수행된 안전성 분석 및 RAM 분석 활동에 대한 결과를 총괄하여 종합 안전대책기술서(Safety Case)를 수립함으로써 대상 시스템에 대한 RAMS 활동을 종료하게 된다.