2017년 4월 28일 금요일

SW 계획(SP) 단계에서의 안전 활동

1. SW 안전 분석 

본 단계는 개발할 안전관련 시스템에 대한 위험분석 단계와 동시에 이루어 진다. 위험 분석에 대한 결과를 받아 소프트웨어에 반영하기 위한 준비를 한다.

전체 안전 요구사항에서는 필요한 기능안전성을 달성하기 위하여 안전관련 시스템, 기타 리스크 감소 설비에 대한 안전기능 요구사항과 안전무결성 요구사항으로 나타나는 전체 안전 요구사항 명세서를 개발한다.

전체 안전 요구사항 할당은 전체 안전 요구사항 명세(안전기능 및 안전 무결성 요구사항 모두)에 제시된 안전기능을 지정된 안전관련 시스템, 기타 리스크 감소수단에 할당하고 안전무결성 수준을 안전관련 시스템에 의해 수행될 각 안전기능에 할당한다.

2. SW 안전 계획서 작성 
SW 위험 분석 절차을 활용하여 SW 의 위험을 분석한 후 안전을 확보하기 위한 SW 안전성 위험 분석에 관한 SW 안전계획서를 작성한다. SW 안전계획서는 SW 안전성 위험 분석 방법을 상세히 기술한다. 경우에 따라 SW 안전계획서는 시스템 안전계획서 내에 포함시킬 수 있다.

IEC 61508-3 표준에 맞는 기능 안전 검증 기법(Technique/Measures)  

IEC61508-3 A.10 - Functional safety assessment 


IEC61508-3 B.4 – Failure analysis

SW 계획(SP) 단계에서의 개발과 확인 검증 활동

개발활동

1. SW 개발 계획 수립
SW 에 할당된 요구사항을 구현하기 위한 SW 개발계획서를 작성한다. SW 개발계획서는 시스템의 전체 수명주기에 참여하는 사람들이 이해 가능 하도록 표현한다.

개발계획서에는 개발 조직, 작업계획, 통제 계획 등의 기본적인 내용을 포함하고, 개발 절차, 자원 계획 등이 포함된다.


2. SW 환경 계획 수립
SW 개발 환경에 대한 계획을 수립한다. 개발 환경에는 사용언어 및 컴파일러, SW 테스트 환경 등이 포함된다. SW 환경은 SW 전체 수명주기에 걸쳐 요구되는 SW 안전 무결성 수준에 적합하게 수립한다.

SW 개발환경은 다음을 고려하여 선정한다.

  • SW 개발환경은 최종 SW 에 미치는 잠재적인 위험을 최소화하기 위해 선정한다. 
  • 자격 있는 도구 또는 도구들의 조합, SW 개발환경은 어느 한 부분에서 도입된 오류를 다른 곳에서 찾아낼 수 있는 확신의 수준을 달성하기 위해 선정된다. 
  • 잠재적인 SW 개발 환경과 관련된 오류를 최소화하기 위해 SW 안전 무결성 수준을 고려한 SW 검증 활동 또는 SW 개발 표준이 정의되어야 한다. 
  • 가능하다면 검증자 및 확인자의 니즈를 고려하여, 자동화 테스트 도구와 통합 개발 도구를 사용한다. 
  • SW 안전 무결성 수준에서 요구되는 정도까지, 선정된 프로그래밍 언어는 다음 중 하나의 조건을 만족하는 번역기 또는 컴파일러를 제공해야 한다 
    • 인정된 국내 국제 표준 규격에 대해 "확인 인증" 
    • 목적 적합성을 상세히 설명한 평가 보고서 
    • 변환 오류 검출을 제공하는 중복 서명 통제 기반의 프로세스. 
  • 선정된 언어는 다음의 요구사항을 반드시 만족해야 한다. 
    • 선정된 언어는 프로그래밍 오류 식별을 활성화하는 특성을 포함해야 한다. 
    • 선정된 언어는 설계 방법에 맞는 특성을 지원해야 한다. 
    • 위의 내용이 만족되지 않을 경우 대안으로 선택된 언어가 목적에 적합하다는 정 당성을 설명한 내용을 SW 개발계획서에 기록한다. 
  • SW 테스트 환경은 통합 단계의 결과물을 테스트하는데 사용될 방법, 도구, 절차 및 HW 를 정의한다. 테스팅은 타겟 컴퓨터, 타겟 컴퓨터 에뮬레이터 또는 호스트 컴퓨터 시뮬레이터를 사용하여 수행될 수도 있다. 이 때 에뮬레이터 또는 시뮬레이터와 타겟 시스템과의 차이점을 고려해야 한다. 

3. SW 개발 표준 수립
SW 개발 표준은 SW 개발을 위한 규칙과 제약사항을 정의한다. SW 개발표준에는 SW 요구사항 표준, SW 설계 표준, SW 코드 표준 등이 포함된다. SW 개발 표준은 검증함 수 없거나 안전 요구사항에 적합하지 않은 결과물을 생성하는 것을 방지할 수 있어야 한다.


  • 코딩 관련 표준 규격은 훌륭한 프로그래밍 프랙티스를 명시하며, 불안전한 언어 특성을 사용 금지하며, 소스 코드 문서화 절차를 설명하여야 한다. 최소한 각 SW 모듈은 소스 코드 내에 작성자, 형상 이력, 간단한 설명을 포함하여야 한다. 이러한 정보에 대한 표준 양식이 사용되는 것이 좋으며, 모든 모듈에 대하여 동일하게 적용되도록 한다. 


확인 검증 활동


1. SW 검증 계획 수립 
검증 활동이 적절히 안내되고. 특정 설계 또는 기타 검증 니즈가 적절히 제공되도록 SW 확인 검증 계획서를 생성한다. 개발 과정에서 여러 개의 작은 문서로 분할 또는 추가될 수 있다. SW 확인 검증 계획서에는 다음을 포함한다. 
  • 검증 전략 및 기법의 선정 
  • SW 테스트 장비의 선정 및 활용  
  • 검증 활동의 선정 및 문서화  
  • 검증 결과의 평가  
  • 신뢰성 요구사항의 평가 
  • 테스트 프로세스에 참여한 사람들의 역함 및 책임  
  • 테스트 커버리지 정도 
 
2. SW 개발 계획 평가 
SW 계획, SW 환경 및 SW 개발 표준이 SW 안전 무결성 수준에 적합한지 다음 항목을 사용하여 검증한다. 
  • 선정된 방법이 본 방법론의 절차를 준수하는지 여부  
  • SW 개발 방법이 일관성 있게 적용되는지 여부 각 단계에서 만들어지는 결과물이 추적될 수 있는지 여부  
  • SW 계획 단계의 결과물이 일관성 있고 표준에 따라 작성되었는지 여부 
3. 확인 검증 보고서 작성 
각 검증 활동의 종료 후에 작성하는 SW 확인 검증 보고서는 SW 검증 합격 유무 또는 불합격의 원인에 대하여 서술한다. 

신뢰 안전 SW 개발 단계

SW 안전 수명주기를 V&V 다이어그램 형태로 표현하면 그림 1 과 같다. 개발 수명주기는 시스템 개발에 관한 활등은 사전에 이루어졌으며, 시스템 중 SW 에 할당된 요구사항이 확정되어 있다고 가정한다. 따라서 본 수명주기에 포함하는 부분은 SW 계획수립에서 SW 검증 확인 단계이다.

그림1. 신뢰 안전 SW 개발 단계