안전관련 시스템에 의해 수행되는 안전기능에 대해 필요한 안전무결성 수준을 달성하기 위한 모든 활동을 체계적인 방법으로 다루기 위하여, 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 운영 단계