Support Safety Analysis by Fault Simulation
Meta-Information
Origin: Sven Sieverding, Omar Kacimi, Eckard Böde / all OFFIS
Written: November 2014
Purpose: The intent is to avoid re-running an analysis technique that could be expensive in terms of execution time. After running the model-based safety analysis on an implementation model, a fault combination leading to a system failure is generated. This CEX is the starting point for this A&T pattern.
The MBSA should normally be run again to assess whether the safety mechanism mitigates the given fault combination. Since the MBSA can be quite time costly to run, the pattern proposes to make use of the generated counter-example. The pattern suggests to perform a simulation of the counter-example generated by the MBSA on a system model injected with faults. Hence, if the modifications introduced to the system are not sufficient for reaching the safety goal, this can be discovered prior to running the MBSA another time.
Context/Pre-Conditions: safety analysis, requirements.
To consider: This pattern requires the involvement of a safety engineer. Also, the execution of the MBSA might be fairly time and resources consuming. Furthermore, the execution of the counter-examples on the system requires the use of fault injection techniques during simulation.
.
Structure
(1) Model Creation:
(1.1) Engineering models creation:
(1.2) Link creation:
(2) MBSA Workflow:
(6,8) Faults Simulation:
Participants and Important Artefacts
Experts:
V&V Experts:
– Safety engineer
– Analysis and test execution expert
Development Experts:
– System engineer
– Developers
Tools:
Safety analysis tools:
– Fault injection tool
– Failure modes definition tool
– The model-based safety analysis
– Fault simulation tool
System and requirements design tools:
– Implementation model design tool
– Requirements formalization tool
Data:
Safety Requirements:
– In the form of contracts
– In a form of an RSL (requirements specification language, e.g. the OFFIS RSL)
Implementation Model (In the StateFlow modelling language)
Failure Modes (Modelling of possible failure behaviour):
– Variable stuck-at a value
– Variable changing its value randomly
– Specific fault behaviour defined by the user
.
Actions / Collaborations
(1) The engineering models are created on the basis of natural language requirements.
(2) The MBSA workflow is performed and the outcomes of the analysis are generated.
(3) The safety engineer assesses the results for safety requirements violation (caused by the injected faulty/dysfunctional behavior).
(4) The system designer will modify the system according to the analysis results, e.g., by introducing new safety mechanisms.
(5) Faults are extracted from the counter-examples generated by the MBSA and are injected in the system model.
(6) A fault-simulation of the extended system model is performed.
(7) If the fault-simulation shows that the introduced changes are not effective and the top level event can still be triggered by the CEX, step 4 needs to be repeated.
(8) If the faults simulation results in a failure start from 7 again. Otherwise, the test is successful and the MBSA can be run on the updated system.
.
Discussion
Benefits:
– The pattern reduces the analysis effort by supporting it with faults simulation.
– It saves regression analysis efforts by testing first whether applied correction fixes the found problem.
Limitation:
– It does not reduce the analysis effort for new injected faults.
Comment:
– The pattern supports the static analysis of the effects of a set of malfunctions on fufilling a safety property. In case additional malfunctions need to be analyzed, the pattern should be re-applied.
.
Relations to other Patterns
Pattern Name | Relation* |
Model and Refinement Checking | Could be used for MBSA-CEX if model is too fine-grained |
MBSA with Fault Injection | This pattern can use that pattern (for injecting faults) |
Requirements Formalization | Could be used for task “Formalize requirements” |
Target MBT to Suspect Areas Identified by Static Code Analysis | Also generates test cases (test vectors) from analysis |
* “this pattern” denotes the pattern described here, “that pattern” denotes the related pattern