Functional Safety Viewpoint
Purpose
The Functional Safety Viewpoint focuses on ensuring that the software design is based on the recommended techniques in the functional safety standards and avoids non-recommended techniques and methods for the desired safety integrity level.
Design Views
This design viewpoint consists of the following views:
Recommendation Levels
Functional safety standards make recommendations about techniques and measures to be applied at different safety integrity levels. The following table harmonizes the recommendation levels across standards: IEC 61508, ISO 26262, and IEC 62303:| Recommendation Level | IEC 61508 | ISO 26262 | IEC 62304 |
|---|---|---|---|
| Highly recommended | HR | "++" | Advised for Class B, Mandatory for Class C |
| Recommended | R | "+" | Advised for Classes B/C |
| Neutral / optional | — | "o" | Optional for Classes B/C |
| Not recommended | NR | "-" | Discouraged for Class B, Not allowed for Class C |
The following Table SDS-TBL-A4 provides a structured, SIL-dependent set of recommendations for software design and development techniques that help prevent, detect, or control systematic faults in safety-related software. It is part of the Annex A technique tables (A.1A.5), which collectively guide developers toward achieving the required Systematic Capability (SC) for a given Safety Integrity Level (SIL 3 in this case).| Technique/Measure(*) | IEC 61508 Ref. | SIL 3 | Specs for QP Framework | |
|---|---|---|---|---|
| 1a | Structured methods | C.3.1 | HR | see choice 1b(*) & (**) |
| 1b | Semi-formal methods | Table B.7 | HR | SDS_QP_TECH_01B |
| 1c | Formal design and refinement methods | B.2.2 C.2.4 | R | see choice 1b(*) |
| 2 | Computer-aided design tools | B.3.5 | R | not used |
| 3 | Defensive programming | C.2.5 | HR | SDS_QP_TECH_03 |
| 4 | Modular approach | Table B.9 | HR | SDS_QP_TECH_04 |
| 5 | Design and coning standards | C.2.5 Table B.1 | HR | SDS_QP_TECH_05 |
| 6 | Structured programming | C.2.7 | HR | SDS_QP_TECH_06 |
| 7 | Use of trusted/verified software elements (if available) | C.2.10 | HR | SDS_QP_TECH_07 |
| 8 | Forward traceability between the software safety requirements specification and software design | C.2.11 | HR | SDS_QP_TECH_08 |
QP/C Framework shall apply semi-formal methods.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply defensive programming.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply modular approach.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply design and coning standards.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply structured programming.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall use of trusted/verified software elements.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply forward traceability between the software safety requirements specification and software design.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
The following Table SSRS-TBL-B7 provides a SIL-dependent set of recommendations for software verification techniques, specifically focusing on dynamic testing methods used during software integration, validation, and functional testing. It is part of Annex B, which contains the normative/informative technique tables (B.1B.7) that guide developers in selecting appropriate software verification and testing techniques to achieve the required Systematic Capability (SC) for SIL 3 in this case.| Technique/Measure(*) | IEC 61508 Ref. | SSIL 3 (#) | Requirements for QP/C Framework component | |
|---|---|---|---|---|
| 1 | Logic/function block diagrams | see NOTE 1 | HR | SDS_QP_SFM_01 |
| 2 | Sequence diagrams | see NOTE 2 | HR | SDS_QP_SFM_02 |
| 3 | Data flow diagrams | C.2.2 | R | not used |
| 4a | Finite state machines/state transition diagrams | B.3.2 | HR | SDS_QP_SFM_04A |
| 4b | Timed Petri nets | B.3.3 | HR | see choice 4a(*) |
| 5 | Entity-relationship-attribute data models | B.2.4.4 | R | not used |
| 6 | Message sequence charts | C.2.14 | R | see 2 "Sequence diagrams" |
| 7 | Decision/truth tables | C.6.1 | HR | SDS_QP_SFM_07 |
| 8 | UML | C.3.12 | R | SDS_QP_SFM_08 |
QP/C Framework specification shall apply semi-formal method: logic/function block diagrams.
Description
Logic/function block diagrams (Table B.7 row 1) are a graphical method used to represent control logic by interconnecting standardized function blocks. Each block performs a specific operation (e.g., logic, arithmetic, timing, or control), and the diagram shows how data flows between them.
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework applies various types of logic/function block diagrams in the following figures:
QP/C Framework specification shall apply semi-formal method: sequence diagrams.
Description
Sequence diagrams (Table B.7 row 2) are a semi-formal graphical method used to represent the temporal order of operations and interactions within a control system. They describe how actions, events, or function blocks are executed step by step, showing the sequence and dependencies between them. This makes them useful for specifying control flows, verifying timing behavior, and ensuring deterministic execution in safety-related applications.
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework applies various types of logic/function block diagrams in the following figures:
QP/C Framework specification shall support semi-formal method: state machine diagrams.
Description
Finite State Machines (FSMs) or state machine diagrams (Table B.7 row 4a) are a semi-formal graphical method for modeling the discrete states of a control system and the transitions between them. They represent how a system behaves depending on its current state and external events, with transitions triggered by defined conditions. This approach makes system dynamics explicit, supports deterministic control, and is widely used in safety-related applications to ensure predictable behavior.
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework applies state machine diagrams in the following figures:
QP/C Framework specification shall support semi-formal method: decision trees.
Description
Row 7 of Table B.7 lists "decision/truth tables" as the HR (highly recommended) technique that should be applied by compliant software. QP/C implements decision logic via closely related decision trees (for guard conditions in state machines), which provide the same systematic capabilities when supported by process constraints that enforce completeness, consistency, and testability.
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework specification shall apply semi-formal method: UML.
Description
Unified Modeling Language (UML) is recognized as a semi-formal graphical modeling method that can complement IEC 61131-3 control specifications. UML provides standardized diagram types (e.g., class, sequence, state, activity, and timing diagrams) to describe system structure and behavior. In the context of functional safety standards, UML can be used to model software structure (package and class diagrams), event flows (sequence diagrams), state transitions (discrete behavior), and timing (timing diagrams), supporting clarity and consistency due to well-defined, formal semantics.
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework applies the UML notation throughout its documentation. Examples include the following figures:
The following Table SDS-B9 lists the recommended techniques and measures for software design required by [IEC 61508-3:2010] Table B.9 to achieve SIL 3. The last two columns of the table define how these techniques shall be applied (or avoided) in the design of the QP/C Framework and QP Applications.| Technique/Measure(*) | IEC 61508 Ref. | SIL 3 | Specs for QP Framework component | |
|---|---|---|---|---|
| 1 | Software module size limit | C.2.9 | HR | SDS_QP_MOD_01 |
| 2 | Software complexity control | C.5.13 | HR | SDS_QP_MOD_02 |
| 3 | Information hiding/encapsulation | C.2.8 | HR | SDS_QP_MOD_03 |
| 4 | Parameter number limit / fixed number of subprogram parameters | C.2.9 | R | SDS_QP_MOD_04 |
| 5 | One entry/one exit point in subroutines and functions | C.2.9 | HR | SDS_QP_MOD_05 |
| 6 | Fully defined interface | C.2.9 | HR | SDS_QP_MOD_06 |
QP/C Framework shall apply software module size limit.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply software complexity control.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply information hiding/encapsulation.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply parameter number limit / fixed number of subprogram parameters.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply one entry/one exit point in subroutines and functions.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply fully defined interface.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
The following Table SDS-G2 lists the recommended techniques and measures for object-oriented software design by [IEC 61508-7:2010] Table G.2 to achieve SIL 3. The last two columns of the table define how these techniques shall be applied (or avoided) in the design of the QP/C Framework component.| Recommendation | SIL 3 | Specs for QP Framework component | |
|---|---|---|---|
| G2.1 | Classes should have only one objective | HR | SDS_QP_OO_01 |
| G2.2 | Inheritance used only if the derived class is a refinement of its base class | HR | SDS_QP_OO_02 |
| G2.3 | Depth of inheritance limited by the coding standard | HR | SDS_QP_OO_03 |
| G2.4 | Overriding of operations (methods) under strict control | HR | SDS_QP_OO_04 |
| G2.5 | Multiple inheritance used only for interface classes | HR | SDS_QP_OO_05 |
| G2.6 | Inheritance from unknown classes | NR | SDS_QP_OO_06 |
| G2.7 | Verification that the reused object-oriented libraries meet the recommendations of this table | HR | SDS_QP_OO_07 |
QP/C Framework classes should have only one objective.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall use inheritance only if the derived class is a refinement of its base class.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply limited depth of inheritance.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply overriding of operations (methods) under strict control.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall not use multiple inheritance.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall not inheritance from unknown classes.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall not use any object-oriented libraries.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
The following Table SDS-B1 provides a SIL-dependent set of recommendations for software architecture design methods. It is the first table in Annex B, which contains the normative/informative technique tables (B.1B.7) that guide developers in selecting appropriate software design, analysis, and verification techniques to achieve the required Systematic Capability (SC) for SIL 3 in this case.| Technique/Measure(*) | IEC 61508 Ref. | SIL 3 | Specs for QP Framework component | |
|---|---|---|---|---|
| 1 | Use of coding standards to reduce likelihood of errors | C.2.6.2 | HR | SDS_QP_DCS_01 |
| 2 | No dynamic objects | C.2.6.3 | HR | SDS_QP_DCS_01 |
| 3a | No dynamic variables | C.2.6.3 | R | see choice 3b(*) |
| 3b | Online checking of the installation of dynamic variables | C.2.6.4 | R | SDS_QP_DCS_03B |
| 4 | Limited use of interrupts | C.2.6.5 | HR | — |
| 5 | Limited use of pointers | C.2.6.6 | HR | SDS_QP_DCS_05 |
| 6 | Limited use of recursion | C.2.6.7 | HR | SDS_QP_DCS_06 |
| 7 | No unstructured control flow in programs in higher level languages | C.6.2 | HR | SDS_QP_DCS_07 |
| 8 | No automatic type conversion | C.2.6.2 | HR | SDS_QP_DCS_08 |
QP/C Framework shall use of coding standards to reduce likelihood of errors.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall use no dynamic objects.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply online checking of the installation of dynamic variables.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall limit the use of pointers.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall limit the use of recursion.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall not use unstructured control flow in programs in higher level languages.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall not use automatic type conversion.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
The following Table SDS-B5 provides a SIL-dependent set of recommendations for software modelling and simulation techniques. It is part of Annex B, which contains technique tables (B.1B.7) that guide developers in selecting appropriate design, analysis, modelling, and verification techniques to achieve the required Systematic Capability (SC) for SIL 3 in this case.| Technique/Measure(*) | IEC 61508 Ref. | SIL 3 | Specs for QP Framework component | |
|---|---|---|---|---|
| 1 | Data flow diagram | C.2.2 | R | — |
| 2a | Finite state machines | B.2.3.2 | HR | SDS_QP_MDL_02A |
| 2b | Formal methods | B.2.2, C.2.4 | R | see choice 2a(*) |
| 2c | Time Petri nets | B.2.3.3 | HR | see choice 2a(*) |
| 3 | Performance modeling | C.5.20 | HR | SDS_QP_MDL_03 |
| 4 | Prototyping/animation | C.5.17 | R | — |
| 5 | Structure diagrams | C.2.3 | R | — |
QP/C Framework shall provide support for state machines to QP/C Application.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))
QP/C Framework shall apply performance modeling.
Description
Backward Traceability
Forward Traceability (truncated to 2 level(s))