2017년 4월 14일 금요일

수명주기별 안전성 관리

가. 수명주기 개요 

안전관련 시스템에 의해 수행되는 안전기능에 대해 필요한 안전무결성 수준을 달성하기 위한 모든 활동을 체계적인 방법으로 다루기 위하여, IEC 61508 에서는 기술 프레임워크로서 전체 안전수명주기를 제시하고자 한다. 전체 안전수명주기는 이 표준 준수를 위한 객관적 참조물로 제시되고, 각 단계의 목적과 요구사항에 충족된다면, 다른 SW 개발 안전수명주기를 이용할 수 있다.

소프트웨어 개발을 위한 안전수명주기는 IEC 61508 에 따라 전체 시스템 개발계획에 안전계획이 결정되고 명시되어야 한다. 표준에서 요구하는 사항을 만족시키는 안전수명주기 모델은 본 가이드에서 참조 가능하도록 상세하게 제시하였으며, 프로젝트나 조직의 특정한 구체적 요구에 맞추어 적절하게 조정하여 사용할 수 있다. 다음은 IEC 61508 에서 제시하는 수명주기 관련 요구사항은 다음과 같다.


  • 품질과 안전 보증 절차는 안전수명주기의 각 활동들과 통합되어야 한다. 
  • 소프트웨어 안전수명주기의 각 단계는 적용범위를 갖는 기초 활동과 각 단계를 위해 명시된 입력과 그 결과물인 산출물로 구분되어야 한다. 
  • SW 수명주기 단계에 관한 자세한 정보는 ISO/IEC 12207 을 참조한다. 
  • IEC 61508-1 의 안전수명주기 단계별 산출물들이 포함되어야 한다. 
  • 산출물은 E/E/PE 안전관련 시스템의 개발마다 때로는 몇 개가 병합되기도 하고 세분화되어 나누어진 별개의 문서로 제공될 수도 있다.  
  • 핵심적인 요구사항은 모든 안전수명주기 단계들의 산출물은 그 의도된 목적에 적합해야 한다는 것이다. 간단한 개발에서는 일부 안전수명주기 단계들이 병합될 수 있다. 
  • 소프트웨어 안전수명주기가 IEC61508 에서 요구하는 사항을 만족시킨다면, V 모델 단계들의 정도, 수, 작업규모를 안전무결성 및 프로젝트의 복잡성을 고려하여 일부 절차 및 활동은 조정할 수 있다. 
  • 표준에서 제시하는 수명주기 단계들의 전체 리스트는 대체로 규모가 크고 새로 개발된 시스템에 적합하다. 예를 들면 소규모 시스템에서는 소프트웨어 시스템 설계 및 아키텍처 설계 단계를 병합하는 것이 적합할 수도 있다. 
  • 표준의 모든 목적과 요구사항을 만족한다면, 다르게 소프트웨어 프로젝트를 관리할 수 있다(즉, 다른 소프트웨어 안전수명주기 모델 이용 가능). 
  • 각 안전수명주기 단계에서 SW 안전성 보증을 위해 적절한 기법과 수단이 이용되어야 한다.  
  • 소프트웨어 안전수명주기에서의 활동 결과들은 문서화되어야 한다. 


나. 수명주기 개발 참조 관련 규격 및 문헌 
  • IEC 61508-1:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems – Part 1: General requirements 
  • IEC 61508-2:2010, Functional safety of electrical/electronic/programmable electronic safetyrelated systems – Part 2: Requirements for electrical/electronic/programmable electronic safety-related systems 
  • IEC 61508-3:2010, Functional safety of electrical/electronic/programmable electronic safetyrelated systems – Part 3: Software requirements 
  • IEC 61508-4:2010 Functional safety of electrical/electronic/programmable electronic safetyrelated systems – Part 4: Definitions and abbreviations 
  • IEC 61508-5:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems – Part 5: Examples of methods for the determination of safety integrity levels 
  • IEC 61508-6:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems – Part 6: Guidelines on the application of IEC 61508-2 and IEC 61508-3 
  • IEC 61508-7:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems – Part 7: Overview of techniques and measures 
  • KS C IEC61508-1:2010 전기/전자/프로그램 가능 전자식 안전관련 시스템의 기능 안전성 - 제 1 부: 일반 요구사항 
  • KS C IEC61508-3:2010 전기/전자/프로그램 가능한 전자장치 안전관련 시스템의 기능안전성-제 3 부:소프트웨어 요구사항 
  • 철도 소프트웨어 안전 기준 및 체계 구축 연구보고서, 2008 
  • NUREG CR-6430 UCRL-ID-122514 SW Safety Hazard Analysis, NRC, USA 
  • NUREG IA-0145 RELAP5 Assessment Against - Revision 1, NRC, USA 
  • IEEE730 A guide to writing successful SQA plans 
  • IEEE829:2008 SW test documentation 
  • IEEE1016:2009 Software design description 
  • IEEE1012:2004 Standard for Software Verification and Validation 
  • IEEE1228:1994 IEEE Standard for Software Safety Plans 
  • IEEE1540:2001 Software Engineering Risk Management: Measurement-Based Life Cycle Risk Management 
  • ISO12207:2004 Systems and software engineering - Software life cycle processes 
  • SIL4 인증문서 한글 표준양식(템플릿) 적용사례 연구, 한국철도학회 
  • 소프트웨어 개발 프로세스에서의 안전성 분석 및 관리 활동의 적용방안, 중소기업융합학회 
  • 기능안전 적용을 위한 소프트웨어 개발 가이드라인, KTL 
 
다. 안전 수명주기 구성 

기능 안전 표준인 IEC61508 과 SW 수명주기 표준인 ISO12207 을 참고하여 안전 수명 주기를 구성하였다. SW 안전 수명주기는 크게 세 부문으로 구성되고 각 부문에는 아래와 같이 세분화된 단계로 구성될 수 있다.
 
  • Analysis 부문 
  • 위험분석 단계 
  • Realization 부문 
  • SW 계획 단계 
  • SW 요구분석 
  • SW 설계 단계 
  • SW 구현 단계 
  • SW 통합 단계 
  • SW 확인 검증 단계 
  • Operation 부문 
  • SW 운영 단계 
Realization 부분의 SW 검증 및 확인 단계는 Realization 부문의 단계 시작 전에 계획되어 전 단계에 걸쳐 활동이 진행된다. 


그림. 전체 안전 수명주기(IEC61508) 



안전 기능과 안전 무결성

안전기능 요구사항은 위험원 분석을 통해 도출되고, 안전무결성 요구사항은 위험성 평가를 통해 도출된다. 안전 무결성(Safety Integrity)은 주어진 모든 조건하에 있는 안전관련 시스템이 주어진 시간 내에 요구되는 안전기능을 만족스럽게 수행할 수 있는 확률로 정의되고 안전무결성수준이 높을수록 해당 장비 또는 시스템의 고장 발생 가능성은 낮아진다. 그림은 안전 기능과 안전무결성의 관계를 보여준다.


그림. 안전 기능과 안전무결성 

안전무결성수준(SIL)은 전기전자프로그래머블제어기의 국제규격인 IEC61508 에 명시되어 있다. 안전무결성수준이 널리 사용되는 이유는 적용 대상이 명확하게 정의되지 않은 경우에 시스템의 안전성을 평가하여 시스템의 안전성을 상호 비교할 수 있는 방법이기 때문이다. 

예를 들어, 전자 연동 장치의 종합 안전성은 사고를 열차 충돌과 탈선으로 정의하는 경우에 전자연동장치의 출력에 의해 제어되는 선로 전환기나 신호기와 같은 장치와의 인터페이스 구조 및 전자연동장치 운영시나리오에 따라 결정된다. 따라서 연동장치가 설치될 역의 규모, 인터페이스 장치의 안전수준, 운용인력의 안전문화 등이 고려되지 않으면 열차충돌 및 탈선에 대한 안전성 확보를 평가할 수 없다. 이러한 경우 전자연동장치의 안전성을 평가하기 위해서 전자연동장치의 위험측 고장(Dangerous Failure)의 발생빈도를 평가하여 등급을 부여한 것이 안전무결성수준이다.

위험측 고장률은 위험원이라는 특별한 요건에 대한 발생빈도를 예측하고 입증하여 평가한 정량적 수치이다. 정의된 사고와 관련된 위험원을 도출하고 분석하는 단계는 위험원 관리와 같이 수행되며 위험원들의 발생빈도는 FTA(Fault Tree Analysis)와 ETA(Event Tree Analysis) 등의 기법에 의해 정량화되어 목표와 비교된다.

최종 사용자의 시스템 안전성 요구사항은 정량적 수치로 주어지기도 하지만 정성적이고 모호하게 제시되기도 한다. 이러한 경우 안전이 확보되어야 할 사고의 정의부터 위험성의 제어를 위해 필요한 안전 대책의 적용 범위도 명확히 분석되어야 한다. 시스템 개발 과정에서 공급범위를 벗어나는 안전 대책에 의해서만 위험원이 안전하게 제어되는 경우를 예측하여야 한다.

안전 요구사항의 할당은 시스템 안전성과 종합 안전성에 따라 상이하다. 시스템적 안전성만을 관리하는 경우에는 안전무결성수준과 같이 시스템에 요구되는 위험측 고장률의 목표 만족을 위한 하부 구성요소들의 위험측 고장률 목표를 설계단계에서 위험원 도출 및 분석을 통해 산출하여 배분해야 한다. 종합적 안전성의 경우 시스템적 안전성을 포함하여 설치, 테스트, 운용, 유지보수와 같이 인적요소가 가입되는 사항에 대한 안전 요구사항을 도출하여 해당 수명주기에 할당해야 한다.
 

영국의 안전성 관리 및 문서화 지침 CASS(Conformity Assessment of Safety-related Systems)

영국과 같이 안전분야의 선진국에서는 안전관련 시스템의 도입, 수정, 유지보수의 수명주기 단계별로 안전 활동을 수행하고 그 결과물을 국가가 지정한 기관에서 심사하도록 정부차원에서 강제하고 있다.

이러한 공인 기관의 심사를 위해서는 안전성 관련 요구사항 준수여부에 대한 객관적이고 효율적인 평가를 위해 공통의 양식이 필요하게 되었으며, 이러한 요구에 의한 안전성 관리 및 문서화 지침은 CASS(Conformity Assessment of Safety-related Systems)에 공유되어 많은 사업의 안전성 관리 문서화에 활용되고 있다.

그림. CASS 자료 공개 사이트(http://www.61508.org)