Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 147 additions & 0 deletions score/component_example/docs/safety_analysis/dfa.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,156 @@ DFA (Dependent Failure Analysis)
- Adjust ``status`` to be ``valid``
- Adjust ``safety`` and ``tags`` according to your needs

The DFA for the component [Component Name] is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the
following tables. For all applicable failure initiators, the DFA has to be performed.

Dependent Failure Initiators
----------------------------

Shared resources
^^^^^^^^^^^^^^^^

The dependent failure initiators related to shared resources are not applicable for the component. The shared resources
will be considered in the platform DFA.

Communication between the two elements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Receiving function is affected by information that is false, lost, sent multiple times, or in the wrong order etc. from the sender.

.. list-table:: DFA communication between elements
:header-rows: 1
:widths: 10,20,10,20

* - ID
- Violation cause communication between elements
- Applicability
- Rationale
* - CO_01_01
- Information passed via argument through a function call, or via writing/reading a variable being global to the two software functions (data flow)
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_02
- Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_03
- Insertion / sequence of information
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_04
- Corruption of information, inconsistent data
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_05
- Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same information
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_06
- Information from a sender received by only a subset of the receivers
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - CO_01_07
- Blocking access to a communication channel
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>

Shared information inputs
^^^^^^^^^^^^^^^^^^^^^^^^^

Same information input used by multiple functions.

.. list-table:: DFA shared information inputs
:header-rows: 1
:widths: 10,20,10,20

* - ID
- Violation cause shared information inputs
- Applicability
- Rationale
* - SI_01_02
- Configuration data
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - SI_01_03
- Constants, or variables, being global to the two software functions
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - SI_01_04
- Basic software passes data (read from hardware register and converted into logical information) to two applications software functions
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - SI_01_05
- Data / function parameter arguments / messages delivered by software function to more than one other function
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>

Unintended impact
^^^^^^^^^^^^^^^^^

Unintended impacts to function due to various failures.

.. list-table:: DFA unintended impact
:header-rows: 1
:widths: 10,20,10,20

* - ID
- Violation cause unintended impact
- Applicability
- Rationale
* - UI_01_01
- Memory miss-allocation and leaks
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_02
- Read/Write access to memory allocated to another software element
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_03
- Stack/Buffer under-/overflow
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_04
- Deadlocks
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_05
- Livelocks
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_06
- Blocking of execution
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_07
- Incorrect allocation of execution time
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_08
- Incorrect execution flow
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_09
- Incorrect synchronization between software elements
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_10
- CPU time depletion
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_11
- Memory depletion
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>
* - UI_01_12
- Other HW unavailability
- <yes | no>
- <Rationale if not applicable, otherwise link to filled out DFA>

DFA
===
For all identified applicable failure initiators, the DFA is performed in the following section.

.. code-block:: rst

.. comp_saf_dfa:: <Title>
Expand Down
Loading