June 5, 2017 Founder's article on IEC 61508 - June, 2004
  Articles Written by our Founder
Founder's Articles on IEC 61508 and ISO 9000
Published in June, 2004


Software development processes - Article #9

This is the ninth in a series of short articles on IEC 61508. IEC 61508 is required whenever a computer-based system is used to carry out a safety function. The purpose of these articles is to give the reader an appreciation for this international standard.

IEC 61508-3, clause 7, requires an understanding of the development processes of the Electrical/Electronic/Programmable Electronic System (E/E/PES) software lifecycle. The objectives of IEC 61508-3, clause 7, are:

    1. define the processes of the E/E/PES software development to achieve the required functional safety
    2. document all information relevant to the functional safety of the E/E/PES software development

IEC 61508-3 parts ways with IEC 61508-2 here. IEC 61508-3 additionally requires quality assurance as specified in IEC 61508-3, subclause 7.1.2.2. 7.1.2.2. also requires safety assurance procedures. IEC 61508-3, subclause 7.1.2.4 requires the notorious V-model. IEC 61508-3, subclause 7.1.2, spells out other systematic requirements for software. For consistency, all the requirements specified in IEC 61508-3, subclause 7.1.2, should also apply to IEC 61508-2, subclause 7.1.1. A functional safety management system requires all of these. Future revisions of IEC 61508 should include more consistency between IEC 61508-2 and IEC 61508-3.

This article addresses the software safety development processes in item 1 above. The next article in this series will address the software safety development documentation required to support these processes in item 2 above. The software safety development processes are required to reduce the likelihood of systematic failures in the delivered E/E/PES. The software safety development processes are: software requirements process, software design process, software implementation process, software integration process, software verification process, and software validation process. These are virtually the same processes as the E/E/PES.

The software safety development processes are sometimes referred to as the waterfall approach. This is often done to attack the software safety development processes with the accusation that all of one process, the independent process, must be completed before the next consecutive dependent process can be started. The software safety development processes are not a waterfall approach. Transition criteria are established between each software safety development process and its next consecutive dependent process. This means that a consecutive dependent process can be started before its independent process is completed. The transition criteria require just enough completion of the independent process to permit entering the next consecutive dependent process. Good judgment and understanding of the software safety development processes are prerequisites for determining transition criteria. Brief explanations of the software safety development processes follow.

The software requirements process traces to IEC 61508-3, subclause 7.2. The input to this process is the E/E/PES Safety Requirements Specification. The software requirements process develops software requirements in accordance with IEC 61508-3, subclause 7.2.2.6 and the chosen requirements method. IEC 61508-3, Annex A, Tables A.1, A.2, and A.4, determine the required techniques and measures described in IEC 61508-7 to meet the Safety Integrity Level (SIL) for the software requirements process. The output from this process is the Software Safety Requirements Specification. The required techniques and measures during this process reduce the likelihood of errors being introduced into the Software Safety Requirements Specification. As the defined and planned transition criteria are met, the software design process can be invoked. The software requirements process is re-entered as necessary from other software development processes to address detected errors found in those processes that are a result of the software requirements process and manifested in the Software Safety Requirements Specification. The software requirements process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the Software Safety Requirements Specification, and reports the results to management.

The software design process traces to IEC 61508-3, subclause 7.4. The input to this process is the Software Safety Requirements Specification. The software design process develops the software design per IEC 61508-3, subclause 7.4.2.2 and the chosen design method. IEC 61508-3, Annex A, Tables A.2 and A.4, determine the required techniques and measures described in IEC 61508-7 to meet the SIL for the software design process. The output from this process is the Software Design Document. The required techniques and measures during this process reduce the likelihood of errors being introduced into the Software Design Document. As the defined and planned transition criteria are met, the software implementation process can be invoked. The software design process is re-entered as necessary from other software safety development processes to address detected errors found in those processes that are a result of the software design process and manifested in the Software Design Document. The software design process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the Software Design Document, and reports the results to management.

The software implementation process traces to IEC 61508-3, subclause 7.4. The input to this process is the Software Design Document. The software implementation process implements the software design per IEC 61508-3, subclause 7.4.6.1 and the chosen implementation method. This process is implementation at the atomic or module level. Each software module that has been identified in the Software Design Document is coded in the appropriate source code language and tested. IEC 61508-3, Annex A, Tables A.3 and A.4, determine the required techniques and measures described in IEC 61508-7 to meet the SIL for the software implementation process. The output from this process is the Software Implementation Documentation composed of the Software Source Code and the Software Object Code. The required techniques and measures during this process reduce the likelihood of errors being introduced into the Software Implementation Documentation. As the defined and planned transition criteria are met, the software integration process can be invoked. The software implementation process is re-entered as necessary from other software safety development processes to address detected errors found in those processes that are a result of the software implementation process and manifested in the implemented Software Implementation Documentation. The software implementation process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the Software Implementation Documentation, and reports the results to management.

The software integration process traces to IEC 61508-3, subclause 7.5. The input to this process is the Software Implementation Documentation. This software integration process integrates the tested software modules to build the Software Executable Object Code per IEC 61508-3, subclause 7.5.2. IEC 61508-3, Annex A, Table A.5, determines the required techniques and measures described in IEC 61508-7 to meet the SIL for the software integration process. The output from this process is the Software Integration Documentation, which is the integrated and tested Software Executable Object Code. The required techniques and measures during this process reduce the likelihood of errors being introduced into the integrated and tested Software Executable Object Code. As the defined and planned transition criteria are met, the integrated software is validated against the Software Safety Requirements Specification. The software integration process is re-entered as necessary from other software safety development processes to address detected errors found in those processes that are a result of the software integration process and manifested in the Software Integration Documentation. The software integration process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the integrated and tested Software Integration Documentation, and reports the results to management.

The software verification process traces to IEC 61508-3, subclause 7.9. The inputs to this process are the validated inputs, and procedures of all the other software safety development processes. The software verification process determines that valid inputs were used by a valid procedure to produce the software safety development process outputs per IEC 61508-3, subclause 7.9.2. IEC 61508-3, Annex A, Table A.9, determines the required techniques and measures described in IEC 61508-7 to meet the SIL for the software verification process. The output from this process is the Software Verification Results. The required techniques and measures during this process reduce the likelihood of errors being introduced into the Software Verification Results. As the defined and planned transition criteria are met, the functional safety assessment process, IEC 61508-3, clause 8, can be invoked. The software verification process is re-entered as necessary from other software lifecycle processes to address detected errors found in those processes that are a result of the software verification process and manifested in the Software Verification Results. The software verification process is also subjected to verification, so the software verification process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the Software Verification Results, and reports the results to management.

The software validation process traces to IEC 61508-3, subclause 7.7. The inputs to this process are the outputs of the verified software safety development processes. The software validation process determines that each software safety development process output is validated before it can be used as an input by the next consecutive dependent software safety development process. IEC 61508-3, Annex A, Table A.7, determines the required techniques and measures described in IEC 61508-7 to meet the SIL for the software validation process. The output from this process is the Software Validation Results. The required techniques and measures during this process reduce the likelihood of errors introduced into the Software Validation Results. As the defined and planned transition criteria are met, the functional safety assessment process, IEC 61508-3, clause 8, can be invoked. The software validation process is re-entered as necessary from other software lifecycle processes to address detected errors found in those processes that are a result of the software validation process and manifested in the Software Validation Results. The software validation process is assessed and the results are documented per an approved verification plan. Quality Assurance audits this process, reviews the Software Validation Results, and reports the results to management.

Verification and validation work together: a little verification, then some validation, and then more verification. See the third article in this series for more about verification and validation. Some safety standards consider validation a subset of verification.

This article presented the software safety development processes with their trace abilities to IEC 61508-3. The software safety development engineer should become familiar with these IEC 61508-3 subclauses to fully understand how to comply with this international safety standard. The next article in this series will address software safety development documentation (Objective 2).

Paul Bodeau is a member of the Safety Division with over 25 years of diversified engineering experience, mostly in safety firmware development for military and civilian aviation. Mr. Bodeau can be reached at (661) 260-1210, or pbodeau@WhyNotEngineering.com.

Copyright (C) 2003 Paul Bodeau. All Rights Reserved.

Why Not Engineering - All Rights Reserved