Skip to content

Safety Integrity Level

Purpose

Recently heard again about SIL in a conversation and wanted to document here for future reference.
I asked Gemini about SIL and found some information about it.

What is It

A Safety Integrity Level (SIL) is a relative measure of risk reduction provided by a safety function. It is a key concept in functional safety standards like IEC-61508, which dictates how to develop safety-related systems. SILs range from SIL 1 to SIL 4, with SIL 4 representing the highest level of risk reduction. For software, achieving a specific SIL isn't about a single test; it's a comprehensive, systematic approach throughout the entire software development lifecycle. This starts with a hazard analysis and continues with specific development and verification techniques. (wikipedia)

Safety Function: Functionality & Safety Integrity

sil-functional-safety.svg

Enforcing

A Safety Integrity Level (SIL) is a relative measure of risk reduction provided by a safety function. It is a key concept in functional safety standards like IEC 61508, which dictates how to develop safety-related systems. SILs range from SIL 1 to SIL 4, with SIL 4 representing the highest level of risk reduction. For software, achieving a specific SIL isn't about a single test; it's a comprehensive, systematic approach throughout the entire software development lifecycle. This starts with a hazard analysis and continues with specific development and verification techniques.

Enforcing SIL 1 on software in development is a process-oriented activity, not a single action. It requires a developer to implement and document specific techniques and practices to demonstrate that the software meets the required integrity level. Here's how it's done:

β€’ Hazard and Risk Analysis

Before writing any code, a thorough hazard analysis and risk assessment are performed on the entire system. This process identifies potential hazards and determines the level of risk reduction needed to mitigate them. This analysis is what ultimately assigns a SIL, like SIL 1, to a specific safety function that the software will perform. For example, a system with a low-to-moderate risk of causing minor injury might be assigned a SIL 1.

β€’ Requirements Traceability

From the initial safety requirements derived from the risk analysis, a requirements' traceability matrix is created and maintained. This matrix ensures that every safety requirement is carried through the entire development processβ€”from design to coding to testing. For SIL 1, traceability is a recommended practice to prove that the final software fulfills all specified safety functions.

β€’ Software Development Process

The development process itself must be structured and well-defined, often following a V-model:

sil-v-model.svg

This model emphasizes that for every stage of development (requirements, design, coding), there is a corresponding verification or validation stage (testing, integration testing, system testing). For SIL 1, a formal V-model is recommended to ensure all steps are followed and documented.

β€’ Coding and Design Standards

Developers must adhere to specific, predefined coding and design standards. This helps eliminate common programming errors and promotes code consistency. While highly recommended for higher SILs, it's also a key part of the process for SIL 1 to ensure the software is built on a solid, reliable foundation. A common standard used is MISRA C and MISRA C++.

AUTOSAR (Motor Industry Software Reliability Association) and MISRA prepared a set of coding guidelines to enable safe and secure programming using C++17.
This published document is MISRA C++ 2023.

β€’ Verification and Validation

Throughout the development lifecycle, various verification and validation activities are performed to demonstrate compliance. For SIL 1, this includes:

  • Static Analysis: Automated tools scan the code to identify potential bugs, adherence to coding standards, and other vulnerabilities without executing the program.
  • Unit and Component Testing: Individual software modules are tested in isolation to ensure they function as intended.
  • Integration and System Testing: The different components are tested together, and the entire system is tested to verify it meets all safety requirements. The rigor and completeness of these tests increase with the assigned SIL.