From 47de215081b1621c970b01ad16d633e7f4bbce03 Mon Sep 17 00:00:00 2001 From: aschemmel-git Date: Thu, 26 Mar 2026 17:03:15 +0100 Subject: [PATCH] Improve safety status baselibs --- .../docs/architecture/index.rst | 14 + .../concurrency/docs/architecture/index.rst | 14 + .../baselibs/concurrency/docs/index.rst | 2 + .../concurrency/docs/requirements/index.rst | 7 +- .../concurrency/docs/safety_analysis/dfa.rst | 50 +++ .../concurrency/docs/safety_analysis/fmea.rst | 50 +++ .../containers/docs/architecture/index.rst | 13 + .../containers/docs/requirements/index.rst | 8 - .../baselibs/docs/safety_mgt/index.rst | 1 + .../safety_mgt/module_safety_analysis_fdr.rst | 90 ++++++ .../docs/safety_mgt/module_safety_plan.rst | 288 +++++++++++++++++- .../filesystem/docs/architecture/index.rst | 14 + .../filesystem/docs/requirements/index.rst | 2 +- .../baselibs/json/docs/architecture/index.rst | 5 + .../baselibs/json/docs/requirements/index.rst | 4 +- .../safecpp/docs/architecture/index.rst | 14 + .../baselibs/language/safecpp/docs/index.rst | 2 + .../safecpp/docs/safety_analysis/dfa.rst | 50 +++ .../safecpp/docs/safety_analysis/fmea.rst | 50 +++ .../memory_shared/docs/architecture/index.rst | 14 + .../memory_shared/docs/requirements/index.rst | 6 + .../result/docs/architecture/index.rst | 14 + .../result/docs/requirements/index.rst | 5 +- .../docs/architecture/index.rst | 16 +- .../docs/index.rst | 2 + .../docs/requirements/index.rst | 15 +- .../docs/safety_analysis/dfa.rst | 50 +++ .../docs/safety_analysis/fmea.rst | 50 +++ .../utils/docs/architecture/index.rst | 14 + docs/modules/baselibs/utils/docs/index.rst | 2 + .../utils/docs/requirements/index.rst | 3 + .../utils/docs/safety_analysis/dfa.rst | 50 +++ .../utils/docs/safety_analysis/fmea.rst | 50 +++ 33 files changed, 943 insertions(+), 26 deletions(-) create mode 100644 docs/modules/baselibs/concurrency/docs/safety_analysis/dfa.rst create mode 100644 docs/modules/baselibs/concurrency/docs/safety_analysis/fmea.rst create mode 100644 docs/modules/baselibs/docs/safety_mgt/module_safety_analysis_fdr.rst create mode 100644 docs/modules/baselibs/language/safecpp/docs/safety_analysis/dfa.rst create mode 100644 docs/modules/baselibs/language/safecpp/docs/safety_analysis/fmea.rst create mode 100644 docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/dfa.rst create mode 100644 docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/fmea.rst create mode 100644 docs/modules/baselibs/utils/docs/safety_analysis/dfa.rst create mode 100644 docs/modules/baselibs/utils/docs/safety_analysis/fmea.rst diff --git a/docs/modules/baselibs/bitmanipulation/docs/architecture/index.rst b/docs/modules/baselibs/bitmanipulation/docs/architecture/index.rst index 4dbdea47f75..61e141ad751 100644 --- a/docs/modules/baselibs/bitmanipulation/docs/architecture/index.rst +++ b/docs/modules/baselibs/bitmanipulation/docs/architecture/index.rst @@ -44,6 +44,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Bit Manipulation Static view + :id: comp_arc_sta__baselibs__bit_manipulation + :security: NO + :safety: ASIL_B + :status: valid + :fulfils: comp_req__bitmanipulation__bit_operations,comp_req__bitmanipulation__byte_operations,comp_req__bitmanipulation__bitmask_operators,comp_req__bitmanipulation__bounds_safety,comp_req__bitmanipulation__header_only + :belongs_to: comp__baselibs_bit_manipulation + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/concurrency/docs/architecture/index.rst b/docs/modules/baselibs/concurrency/docs/architecture/index.rst index e75498fe5ed..36f02c81b34 100644 --- a/docs/modules/baselibs/concurrency/docs/architecture/index.rst +++ b/docs/modules/baselibs/concurrency/docs/architecture/index.rst @@ -44,6 +44,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Concurrency Static view + :id: comp_arc_sta__baselibs__concurrency + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__concurrency__task_interface, comp_req__concurrency__task_cancellation, comp_req__concurrency__simple_task, comp_req__concurrency__task_result, comp_req__concurrency__periodic_task, comp_req__concurrency__delayed_task, comp_req__concurrency__executor_interface, comp_req__concurrency__thread_pool, comp_req__concurrency__condition_variable, comp_req__concurrency__interruptible_wait, comp_req__concurrency__notification, comp_req__concurrency__synchronized_queue, comp_req__concurrency__long_running_threads, comp_req__concurrency__memory_usage_control, comp_req__concurrency__memory_reservation, comp_req__concurrency__thread_count_reporting, comp_req__concurrency__operation_timeout, comp_req__concurrency__error_handling + :belongs_to: comp__baselibs_concurrency + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/concurrency/docs/index.rst b/docs/modules/baselibs/concurrency/docs/index.rst index eee90a4cbc2..b65f3d859d4 100644 --- a/docs/modules/baselibs/concurrency/docs/index.rst +++ b/docs/modules/baselibs/concurrency/docs/index.rst @@ -28,6 +28,8 @@ concurrency architecture/index.rst requirements/index.rst + safety_analysis/fmea.rst + safety_analysis/dfa.rst Abstract ======== diff --git a/docs/modules/baselibs/concurrency/docs/requirements/index.rst b/docs/modules/baselibs/concurrency/docs/requirements/index.rst index 7af5f5b4052..62b4c5b0d8f 100644 --- a/docs/modules/baselibs/concurrency/docs/requirements/index.rst +++ b/docs/modules/baselibs/concurrency/docs/requirements/index.rst @@ -266,6 +266,9 @@ Assumptions of Use (AoU) :status: valid Users shall implement appropriate synchronization mechanisms when sharing state between tasks, as the library only guarantees thread-safe task submission and execution scheduling. - -.. needextend:: "__concurrency" in id + +.. needextend:: "__concurrency__" in id + :+tags: baselibs + +.. needextend:: "__concurrency__" in id :+tags: concurrency diff --git a/docs/modules/baselibs/concurrency/docs/safety_analysis/dfa.rst b/docs/modules/baselibs/concurrency/docs/safety_analysis/dfa.rst new file mode 100644 index 00000000000..923f0af6092 --- /dev/null +++ b/docs/modules/baselibs/concurrency/docs/safety_analysis/dfa.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +DFA (Dependent Failure Analysis) +================================ + +.. document:: concurrency DFA + :id: doc__concurrency_dfa + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_dfa + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Dependent Failure Initiators +---------------------------- + +.. code-block:: rst + + .. comp_saf_dfa:: + :violates: <Component architecture> + :id: comp_saf_dfa__<Component>__<Element descriptor> + :failure_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> + :failure_effect: "description of failure effect of the failure initiator on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component DFA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/concurrency/docs/safety_analysis/fmea.rst b/docs/modules/baselibs/concurrency/docs/safety_analysis/fmea.rst new file mode 100644 index 00000000000..e9d5e6027a1 --- /dev/null +++ b/docs/modules/baselibs/concurrency/docs/safety_analysis/fmea.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +FMEA (Failure Modes and Effects Analysis) +========================================= + +.. document:: concurrency FMEA + :id: doc__concurrency_fmea + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_fmea + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Failure Mode List +----------------- + +.. code-block:: rst + + .. comp_saf_fmea:: <Title> + :violates: <Component architecture> + :id: comp_saf_fmea__<Component>__<Element descriptor> + :fault_id: <ID from fault model :need:`gd_guidl__fault_models`> + :failure_effect: "description of failure effect of the fault model on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component FMEA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/containers/docs/architecture/index.rst b/docs/modules/baselibs/containers/docs/architecture/index.rst index aee917240af..6f8782ce0e3 100644 --- a/docs/modules/baselibs/containers/docs/architecture/index.rst +++ b/docs/modules/baselibs/containers/docs/architecture/index.rst @@ -38,6 +38,19 @@ Static Architecture :tags: baselibs_containers :implements: logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + +.. comp_arc_sta:: Containers Static view + :id: comp_arc_sta__baselibs__containers + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__containers__dynamic_array, comp_req__containers__intrusive_list, comp_req__containers__type_safety, comp_req__containers__non_relocatable_vector, comp_req__containers__deterministic_behavior + :belongs_to: comp__baselibs_containers .. needarch:: :scale: 50 diff --git a/docs/modules/baselibs/containers/docs/requirements/index.rst b/docs/modules/baselibs/containers/docs/requirements/index.rst index 4a78a1cd2d9..2892805d74a 100644 --- a/docs/modules/baselibs/containers/docs/requirements/index.rst +++ b/docs/modules/baselibs/containers/docs/requirements/index.rst @@ -94,7 +94,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall verify sufficient capacity or handle allocation failures before insertion operations to prevent exceeding container limits and undefined behavior. @@ -104,7 +103,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall ensure that iterators are not used after operations that invalidate them and refresh iterators after modifying operations. @@ -114,7 +112,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall ensure that elements stored in containers remain valid throughout their lifetime in the container, and for intrusive containers, that element objects are not destroyed or moved while contained within the container. @@ -124,7 +121,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall implement external synchronization mechanisms when accessing or modifying container objects from multiple threads concurrently, as the library provides no internal thread safety guarantees. @@ -134,7 +130,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall ensure that all index-based access operations use valid indices within the container's current size range to prevent out-of-bounds access and undefined behavior. @@ -144,7 +139,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall verify container state before performing operations that depend on specific states, such as checking if a container is non-empty before accessing elements. @@ -154,7 +148,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall provide sufficient memory resources for all container operations. @@ -164,7 +157,6 @@ Assumptions of Use (AoU) :security: NO :safety: ASIL_B :status: valid - :tags: inspected The user shall ensure that element types are copy constructible, move constructible and destructible, and additionally for intrusive containers that they provide the required intrusive node members. diff --git a/docs/modules/baselibs/docs/safety_mgt/index.rst b/docs/modules/baselibs/docs/safety_mgt/index.rst index ba72f6019ab..faf93567548 100644 --- a/docs/modules/baselibs/docs/safety_mgt/index.rst +++ b/docs/modules/baselibs/docs/safety_mgt/index.rst @@ -22,3 +22,4 @@ Safety Management module_codeowners module_safety_plan_fdr module_safety_package_fdr + module_safety_analysis_fdr diff --git a/docs/modules/baselibs/docs/safety_mgt/module_safety_analysis_fdr.rst b/docs/modules/baselibs/docs/safety_mgt/module_safety_analysis_fdr.rst new file mode 100644 index 00000000000..df38697ba58 --- /dev/null +++ b/docs/modules/baselibs/docs/safety_mgt/module_safety_analysis_fdr.rst @@ -0,0 +1,90 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +Safety Analysis Checklist +========================= + +.. document:: Baselibs Safety Analysis Checklist + :id: doc__baselibs_safety_analysis_fdr + :status: draft + :safety: ASIL_B + :security: YES + :realizes: wp__fdr_reports + +**Purpose** + +The purpose of this Safety Analysis (DFA and FMEA) checklist template is to collect the topics to be checked during verification of the Safety Analysis. + +**Conduct** + +As described in :need:`wf__p_formal_rv`, the formal document review is performed by an "external" safety manager: + +- reviewer: <committer with safety manager skills explicitly named here> + +**Checklist** + +Please note that the "passed" column must contain "yes" or "no" for each checklist item. Additionally, the remarks column must explain why item passed or did not passed. In case of "no" an issue link to the issue tracking system has to be added in the last column. + +.. list-table:: Safety Analysis Checklist + :header-rows: 1 + :widths: 10,10,30,30,20 + + * - ID + - Safety analysis activity + - Compliant to ISO 26262? + - Reference + - Comment + + * - 1 + - Is it plausible that each potential identified dependent failure that has been identified, will lead to a dependent failure which cause a violation of FFI? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_742>` + - <Rationale for result> + + * - 2 + - Are the failure initiators :need:`[[title]] <gd_guidl__dfa_failure_initiators>` / fault models :need:`[[title]] <gd_guidl__fault_models>` applied? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_744>` + - <Rationale for result> + + * - 3 + - Are measures defined to resolute the identified potential dependent failures? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_746>`, :need:`[[title]] <std_req__iso26262__analysis_747>` + - <Rationale for result> + + * - 4 + - Is the result of the safety analysis indicate if the safety requirements are complied? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_842>` + - <Rationale for result> + + * - 5 + - Are for all not complied safety requirements mitigations defined to resolute the non-compliance? The mitigations shall have a direct influence on the violation by prevention, detection or mitigation to reduce the risk to an acceptable level. + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_843>` + - <Rationale for result> + + * - 6 + - Are the mitigations effective and implemented? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_844>` + - <Rationale for result> + + * - 7 + - Are the templates for DFA and/or FMEA used? See :need:`gd_temp__comp_saf_dfa` and :need:`gd_temp__comp_saf_fmea` + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_748>`, :need:`[[title]] <std_req__iso26262__analysis_849>`, :need:`[[title]] <std_req__iso26262__analysis_8410>` + - <Rationale for result> diff --git a/docs/modules/baselibs/docs/safety_mgt/module_safety_plan.rst b/docs/modules/baselibs/docs/safety_mgt/module_safety_plan.rst index 01f87aadaf9..d7e3d17ad2f 100644 --- a/docs/modules/baselibs/docs/safety_mgt/module_safety_plan.rst +++ b/docs/modules/baselibs/docs/safety_mgt/module_safety_plan.rst @@ -93,12 +93,12 @@ Module Work products List * - :need:`wp__fdr_reports` (module's Safety Analyses & DFA) - :need:`gd_chklst__safety_analysis` - :ndf:`copy('status', need_id='gd_chklst__safety_analysis')` - - <Link to WP> + - :need:`doc__baselibs_safety_analysis_fdr` * - :need:`wp__audit_report` - performed by external experts - n/a - - <Link to WP> + - see platform safety plan * - :need:`wp__module_safety_manual` - :need:`gd_temp__safety_manual` @@ -182,6 +182,72 @@ Component bitmanipulation Work products List - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - component integration not needed (no sub-components and units are independent) +Component concurrency Work products List +---------------------------------------- + +.. list-table:: Component concurrency Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__requirements_comp` + - :need:`gd_temp__req_comp_req` + - :ndf:`copy('status', need_id='gd_temp__req_comp_req')` + - :need:`doc__concurrency_requirements` + + * - :need:`wp__requirements_comp_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - :need:`doc__concurrency_requirements` + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - <Link to WP> + + * - :need:`wp__component_arch` + - :need:`gd_temp__arch_comp` + - :ndf:`copy('status', need_id='gd_temp__arch_comp')` + - :need:`doc__concurrency_architecture` + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__sw_component_fmea` + - :need:`gd_temp__comp_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')` + - :need:`doc__concurrency_fmea` + + * - :need:`wp__sw_component_dfa` + - :need:`gd_temp__comp_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')` + - :need:`doc__concurrency_dfa` + + * - :need:`wp__sw_implementation` + - :need:`gd_guidl__implementation` + - :ndf:`copy('status', need_id='gd_guidl__implementation')` + - `concurrency .h/.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/concurrency>`_, `concurrency/design <https://github.com/eclipse-score/baselibs/tree/main/score/concurrency/design>`_ + + * - :need:`wp__verification_sw_unit_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - `concurency/test.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/concurrency>`_ + + * - :need:`wp__sw_implementation_inspection` + - :need:`gd_chklst__impl_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__verification_comp_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - component integration not needed (no sub-components and units are independent) + Component containers Work products List --------------------------------------- @@ -380,6 +446,204 @@ Component result Work products List - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - component integration not needed (no sub-components and units are independent) +Component SafeCpp Work products List +------------------------------------ + +.. list-table:: Component SafeCpp Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__requirements_comp` + - :need:`gd_temp__req_comp_req` + - :ndf:`copy('status', need_id='gd_temp__req_comp_req')` + - :need:`doc__safecpp_requirements` + + * - :need:`wp__requirements_comp_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - :need:`doc__safecpp_requirements` + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - <Link to WP> + + * - :need:`wp__component_arch` + - :need:`gd_temp__arch_comp` + - :ndf:`copy('status', need_id='gd_temp__arch_comp')` + - :need:`doc__safecpp_architecture` + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__sw_component_fmea` + - :need:`gd_temp__comp_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')` + - :need:`doc__safecpp_fmea` + + * - :need:`wp__sw_component_dfa` + - :need:`gd_temp__comp_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')` + - :need:`doc__safecpp_dfa` + + * - :need:`wp__sw_implementation` + - :need:`gd_guidl__implementation` + - :ndf:`copy('status', need_id='gd_guidl__implementation')` + - `safecpp .h/.cpp <https://github.com/eclipse-score/baselibs/blob/main/score/language/safecpp>`_, `safecpp/design <https://github.com/eclipse-score/baselibs/blob/main/score/language/safecpp/Readme.md>`_ + + * - :need:`wp__verification_sw_unit_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - `safecpp/test.cpp <https://github.com/eclipse-score/baselibs/blob/main/score/language/safecpp/Readme.md>`_ + + * - :need:`wp__sw_implementation_inspection` + - :need:`gd_chklst__impl_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__verification_comp_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - component integration not needed (no sub-components and units are independent) + +Component Static Reflection Work products List +---------------------------------------------- + +.. list-table:: Component Static Reflection Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__requirements_comp` + - :need:`gd_temp__req_comp_req` + - :ndf:`copy('status', need_id='gd_temp__req_comp_req')` + - :need:`doc__static_reflect_serial_lib_req` + + * - :need:`wp__requirements_comp_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - :need:`doc__static_reflect_serial_lib_req` + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - <Link to WP> + + * - :need:`wp__component_arch` + - :need:`gd_temp__arch_comp` + - :ndf:`copy('status', need_id='gd_temp__arch_comp')` + - :need:`doc__static_refl_with_serial_arch` + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__sw_component_fmea` + - :need:`gd_temp__comp_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')` + - :need:`doc__static_reflection_fmea` + + * - :need:`wp__sw_component_dfa` + - :need:`gd_temp__comp_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')` + - :need:`doc__static_reflection_dfa` + + * - :need:`wp__sw_implementation` + - :need:`gd_guidl__implementation` + - :ndf:`copy('status', need_id='gd_guidl__implementation')` + - `static_reflection .h/.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/static_reflection_with_serialization>`_, `static_reflection/design <https://github.com/eclipse-score/baselibs/blob/main/score/static_reflection_with_serialization/serialization/ser_dser_lib.md>`_ + + * - :need:`wp__verification_sw_unit_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - `static_reflection/test.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/static_reflection_with_serialization>`_ + + * - :need:`wp__sw_implementation_inspection` + - :need:`gd_chklst__impl_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__verification_comp_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - component integration not needed (no sub-components and units are independent) + +Component utils Work products List +---------------------------------- + +.. list-table:: Component utils Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__requirements_comp` + - :need:`gd_temp__req_comp_req` + - :ndf:`copy('status', need_id='gd_temp__req_comp_req')` + - :need:`doc__utils_lib_requirements` + + * - :need:`wp__requirements_comp_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - :need:`doc__utils_lib_requirements` + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - <Link to WP> + + * - :need:`wp__component_arch` + - :need:`gd_temp__arch_comp` + - :ndf:`copy('status', need_id='gd_temp__arch_comp')` + - :need:`doc__utils_architecture` + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__sw_component_fmea` + - :need:`gd_temp__comp_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')` + - :need:`doc__utils_fmea` + + * - :need:`wp__sw_component_dfa` + - :need:`gd_temp__comp_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')` + - :need:`doc__utils_dfa` + + * - :need:`wp__sw_implementation` + - :need:`gd_guidl__implementation` + - :ndf:`copy('status', need_id='gd_guidl__implementation')` + - `utils .h/.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/utils>`_, `utils/design <https://github.com/eclipse-score/baselibs/tree/main/score/utils/design>`_ + + * - :need:`wp__verification_sw_unit_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - `utils/test.cpp <https://github.com/eclipse-score/baselibs/tree/main/score/utils>`_ + + * - :need:`wp__sw_implementation_inspection` + - :need:`gd_chklst__impl_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` + - <Link to WP> + + * - :need:`wp__verification_comp_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - component integration not needed (no sub-components and units are independent) + Component json Work products List --------------------------------- @@ -491,6 +755,14 @@ Component Requirements Status :colwidths: 25,25,25 :sort: title +.. needpie:: Requirement Status + :labels: invalid, valid, inspected + :colors: red, yellow, green + + type == 'comp_req' and 'baselibs' in tags and status == 'invalid' + type == 'comp_req' and 'baselibs' in tags and status == 'valid' and 'inspected' not in tags + type == 'comp_req' and 'baselibs' in tags and status == 'valid' and 'inspected' in tags + Component AoU Status -------------------- @@ -503,14 +775,22 @@ Component AoU Status :colwidths: 25,25,25 :sort: title +.. needpie:: AoU Status + :labels: invalid, valid, inspected + :colors: red, yellow, green + + type == 'aou_req' and 'baselibs' in tags and status == 'invalid' + type == 'aou_req' and 'baselibs' in tags and status == 'valid' and 'inspected' not in tags + type == 'aou_req' and 'baselibs' in tags and status == 'valid' and 'inspected' in tags + + Component Architecture Status ----------------------------- .. needtable:: - :filter: docname is not None and "baselibs" in docname and "architecture" in docname + :filter: docname is not None and "baselibs" in docname :style: table :types: comp_arc_sta; comp_arc_dyn - :tags: baselibs :columns: id;status;tags :colwidths: 25,25,25 :sort: title diff --git a/docs/modules/baselibs/filesystem/docs/architecture/index.rst b/docs/modules/baselibs/filesystem/docs/architecture/index.rst index a2f52544a0b..5dd3e772eb7 100644 --- a/docs/modules/baselibs/filesystem/docs/architecture/index.rst +++ b/docs/modules/baselibs/filesystem/docs/architecture/index.rst @@ -43,6 +43,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Filesystem Static view + :id: comp_arc_sta__baselibs__filesystem + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__filesystem__api_abstraction, comp_req__filesystem__path_utilities, comp_req__filesystem__directory_iterators, comp_req__filesystem__file_io, comp_req__filesystem__full_testability, comp_req__filesystem__file_utils, comp_req__filesystem__mock_fake + :belongs_to: comp__baselibs_filesystem + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/filesystem/docs/requirements/index.rst b/docs/modules/baselibs/filesystem/docs/requirements/index.rst index 6dc1ec83f98..553a9b135da 100644 --- a/docs/modules/baselibs/filesystem/docs/requirements/index.rst +++ b/docs/modules/baselibs/filesystem/docs/requirements/index.rst @@ -156,4 +156,4 @@ Assumptions of Use (AoU) Note: Filesystem operations are subject to underlying OS and storage performance. .. needextend:: "__filesystem__" in id - :+tags: baselibs + :+tags: baselibs, filesystem diff --git a/docs/modules/baselibs/json/docs/architecture/index.rst b/docs/modules/baselibs/json/docs/architecture/index.rst index 3a499af247f..5fbd695ea1d 100644 --- a/docs/modules/baselibs/json/docs/architecture/index.rst +++ b/docs/modules/baselibs/json/docs/architecture/index.rst @@ -66,6 +66,11 @@ Static Architecture :implements: logic_arc_int__baselibs__json :consists_of: comp__baselibs_json_wrapper, comp__baselibs_nlohman_json + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} .. comp_arc_sta:: JSON Static view :id: comp_arc_sta__baselibs__json diff --git a/docs/modules/baselibs/json/docs/requirements/index.rst b/docs/modules/baselibs/json/docs/requirements/index.rst index 0b1b8c8524b..5967e0e6f37 100644 --- a/docs/modules/baselibs/json/docs/requirements/index.rst +++ b/docs/modules/baselibs/json/docs/requirements/index.rst @@ -157,6 +157,8 @@ AoU Requirements Note: This can be done by the hosting process and system configuration (e.g. by using dm-verity). - .. needextend:: "__json__" in id :+tags: baselibs + +.. needextend:: "__json__" in id + :+tags: json diff --git a/docs/modules/baselibs/language/safecpp/docs/architecture/index.rst b/docs/modules/baselibs/language/safecpp/docs/architecture/index.rst index 5ce7b631c8e..efe34c7811d 100644 --- a/docs/modules/baselibs/language/safecpp/docs/architecture/index.rst +++ b/docs/modules/baselibs/language/safecpp/docs/architecture/index.rst @@ -44,6 +44,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Safecpp Static view + :id: comp_arc_sta__baselibs__safecpp + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__safecpp__aborts_upon_exception, comp_req__safecpp__safe_math, comp_req__safecpp__scoped_guards, comp_req__safecpp__nullstring, comp_req__safecpp__safe_atomic, comp_req__safecpp__coverage_termination + :belongs_to: comp__baselibs_safecpp + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- .. logic_arc_int:: Aborts Upon Exception diff --git a/docs/modules/baselibs/language/safecpp/docs/index.rst b/docs/modules/baselibs/language/safecpp/docs/index.rst index 644ae243216..3f7244fc1c8 100644 --- a/docs/modules/baselibs/language/safecpp/docs/index.rst +++ b/docs/modules/baselibs/language/safecpp/docs/index.rst @@ -29,6 +29,8 @@ safecpp architecture/index.rst requirements/index.rst + safety_analysis/fmea.rst + safety_analysis/dfa.rst Abstract ======== diff --git a/docs/modules/baselibs/language/safecpp/docs/safety_analysis/dfa.rst b/docs/modules/baselibs/language/safecpp/docs/safety_analysis/dfa.rst new file mode 100644 index 00000000000..973427ab2f5 --- /dev/null +++ b/docs/modules/baselibs/language/safecpp/docs/safety_analysis/dfa.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +DFA (Dependent Failure Analysis) +================================ + +.. document:: SafeCpp DFA + :id: doc__safecpp_dfa + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_dfa + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Dependent Failure Initiators +---------------------------- + +.. code-block:: rst + + .. comp_saf_dfa:: <Title> + :violates: <Component architecture> + :id: comp_saf_dfa__<Component>__<Element descriptor> + :failure_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> + :failure_effect: "description of failure effect of the failure initiator on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component DFA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/language/safecpp/docs/safety_analysis/fmea.rst b/docs/modules/baselibs/language/safecpp/docs/safety_analysis/fmea.rst new file mode 100644 index 00000000000..99eefb07ddf --- /dev/null +++ b/docs/modules/baselibs/language/safecpp/docs/safety_analysis/fmea.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +FMEA (Failure Modes and Effects Analysis) +========================================= + +.. document:: SafeCpp FMEA + :id: doc__safecpp_fmea + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_fmea + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Failure Mode List +----------------- + +.. code-block:: rst + + .. comp_saf_fmea:: <Title> + :violates: <Component architecture> + :id: comp_saf_fmea__<Component>__<Element descriptor> + :fault_id: <ID from fault model :need:`gd_guidl__fault_models`> + :failure_effect: "description of failure effect of the fault model on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component FMEA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/memory_shared/docs/architecture/index.rst b/docs/modules/baselibs/memory_shared/docs/architecture/index.rst index 4a7ceb9c524..d26e0fdfb3c 100644 --- a/docs/modules/baselibs/memory_shared/docs/architecture/index.rst +++ b/docs/modules/baselibs/memory_shared/docs/architecture/index.rst @@ -29,6 +29,20 @@ Memory Shared Component Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Memory Shared Static view + :id: comp_arc_sta__baselibs__memory_shared + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__memory__shared_memory, comp_req__memory__offset_ptr, comp_req__memory__shared_containers, comp_req__memory__ipc_sync, comp_req__memory__bounds_check, comp_req__memory__endianness, comp_req__memory__sealed_shm, comp_req__memory__typed_memory, comp_req__memory__resource_registry, comp_req__memory__string_utils, comp_req__memory__atomic_ops, comp_req__memory__deterministic_alloc, comp_req__memory__address_independence + :belongs_to: comp__baselibs_memory_shared + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + .. logic_arc_int:: Memory Shared :id: logic_arc_int__baselibs__memory_shared :security: YES diff --git a/docs/modules/baselibs/memory_shared/docs/requirements/index.rst b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst index e127778c19c..4e4e8613522 100644 --- a/docs/modules/baselibs/memory_shared/docs/requirements/index.rst +++ b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst @@ -172,3 +172,9 @@ Non-Functional Requirements :belongs_to: comp__baselibs_memory_shared The Memory library shall ensure shared memory data structures remain valid regardless of process virtual address space mappings. + +.. needextend:: "__memory__" in id + :+tags: baselibs + +.. needextend:: "__memory__" in id + :+tags: memory diff --git a/docs/modules/baselibs/result/docs/architecture/index.rst b/docs/modules/baselibs/result/docs/architecture/index.rst index ef02b36de68..1c11695e6a1 100644 --- a/docs/modules/baselibs/result/docs/architecture/index.rst +++ b/docs/modules/baselibs/result/docs/architecture/index.rst @@ -44,6 +44,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Result Static view + :id: comp_arc_sta__baselibs__result + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__result__error_handling, comp_req__result__set_result, comp_req__result__domain_error_information, comp_req__result__type_safety, comp_req__result__std_integration, comp_req__result__deterministic_behavior, comp_req__result__exception_free_operation + :belongs_to: comp__baselibs_result + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/result/docs/requirements/index.rst b/docs/modules/baselibs/result/docs/requirements/index.rst index d705eef999b..cea078db809 100644 --- a/docs/modules/baselibs/result/docs/requirements/index.rst +++ b/docs/modules/baselibs/result/docs/requirements/index.rst @@ -168,4 +168,7 @@ Assumptions of Use (AoU) .. needextend:: "__result__" in id - :+tags: baselibs, result_library + :+tags: baselibs + +.. needextend:: "__result__" in id + :+tags: result_lib diff --git a/docs/modules/baselibs/static_reflection_with_serialization/docs/architecture/index.rst b/docs/modules/baselibs/static_reflection_with_serialization/docs/architecture/index.rst index 7692ba619a1..348cb67583d 100644 --- a/docs/modules/baselibs/static_reflection_with_serialization/docs/architecture/index.rst +++ b/docs/modules/baselibs/static_reflection_with_serialization/docs/architecture/index.rst @@ -31,7 +31,7 @@ Static Architecture ------------------- .. comp:: Static Reflection with Serialization - :id: comp__baselibs_static_reflection_with_serial + :id: comp__baselibs_static_reflection :security: YES :safety: ASIL_B :status: valid @@ -44,6 +44,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Static Reflection with Serialization Static view + :id: comp_arc_sta__baselibs__static_reflection + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__static_reflect_serial__reflect, comp_req__static_reflect_serial__visitor, comp_req__static_reflect_serial__container, comp_req__static_reflect_serial__nested, comp_req__static_reflect_serial__header_only, comp_req__static_reflect_serial__compile_eff + :belongs_to: comp__baselibs_static_reflection + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/static_reflection_with_serialization/docs/index.rst b/docs/modules/baselibs/static_reflection_with_serialization/docs/index.rst index a6bb59d8781..9e73a9bdfe5 100644 --- a/docs/modules/baselibs/static_reflection_with_serialization/docs/index.rst +++ b/docs/modules/baselibs/static_reflection_with_serialization/docs/index.rst @@ -28,6 +28,8 @@ static_reflection_with_serialization architecture/index.rst requirements/index.rst + safety_analysis/fmea.rst + safety_analysis/dfa.rst Abstract ========= diff --git a/docs/modules/baselibs/static_reflection_with_serialization/docs/requirements/index.rst b/docs/modules/baselibs/static_reflection_with_serialization/docs/requirements/index.rst index da8b489da5c..99848e85389 100644 --- a/docs/modules/baselibs/static_reflection_with_serialization/docs/requirements/index.rst +++ b/docs/modules/baselibs/static_reflection_with_serialization/docs/requirements/index.rst @@ -29,7 +29,7 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs @@ -41,7 +41,7 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__consistent_apis, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs @@ -53,7 +53,7 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs @@ -65,7 +65,7 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs @@ -77,7 +77,7 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs @@ -89,12 +89,11 @@ Requirements :security: NO :safety: ASIL_B :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety - :belongs_to: comp__baselibs_static_reflection_with_serial + :belongs_to: comp__baselibs_static_reflection :status: valid :tags: baselibs The library shall provide compile-time safety and efficiency of serialization operations with minimal runtime overhead. .. needextend:: "__static_reflect_serial__" in id - :+tags: baselibs - + :+tags: static_reflect diff --git a/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/dfa.rst b/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/dfa.rst new file mode 100644 index 00000000000..37e5dd512e4 --- /dev/null +++ b/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/dfa.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +DFA (Dependent Failure Analysis) +================================ + +.. document:: Static Reflection DFA + :id: doc__static_reflection_dfa + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_dfa + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Dependent Failure Initiators +---------------------------- + +.. code-block:: rst + + .. comp_saf_dfa:: <Title> + :violates: <Component architecture> + :id: comp_saf_dfa__<Component>__<Element descriptor> + :failure_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> + :failure_effect: "description of failure effect of the failure initiator on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component DFA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/fmea.rst b/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/fmea.rst new file mode 100644 index 00000000000..b1af61cd229 --- /dev/null +++ b/docs/modules/baselibs/static_reflection_with_serialization/docs/safety_analysis/fmea.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +FMEA (Failure Modes and Effects Analysis) +========================================= + +.. document:: Static Reflection FMEA + :id: doc__static_reflection_fmea + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_fmea + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Failure Mode List +----------------- + +.. code-block:: rst + + .. comp_saf_fmea:: <Title> + :violates: <Component architecture> + :id: comp_saf_fmea__<Component>__<Element descriptor> + :fault_id: <ID from fault model :need:`gd_guidl__fault_models`> + :failure_effect: "description of failure effect of the fault model on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component FMEA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/utils/docs/architecture/index.rst b/docs/modules/baselibs/utils/docs/architecture/index.rst index 5338606f6d3..5059efd0cef 100644 --- a/docs/modules/baselibs/utils/docs/architecture/index.rst +++ b/docs/modules/baselibs/utils/docs/architecture/index.rst @@ -43,6 +43,20 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Utils Static view + :id: comp_arc_sta__baselibs__utils + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: comp_req__utils__base64, comp_req__utils__scoped_operation, comp_req__utils__deterministic_behavior + :belongs_to: comp__baselibs_utils + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + Interfaces ---------- diff --git a/docs/modules/baselibs/utils/docs/index.rst b/docs/modules/baselibs/utils/docs/index.rst index 3cc37f124d1..f68b4b6d4c6 100644 --- a/docs/modules/baselibs/utils/docs/index.rst +++ b/docs/modules/baselibs/utils/docs/index.rst @@ -28,6 +28,8 @@ utils requirements/index.rst architecture/index.rst + safety_analysis/fmea.rst + safety_analysis/dfa.rst Abstract ======== diff --git a/docs/modules/baselibs/utils/docs/requirements/index.rst b/docs/modules/baselibs/utils/docs/requirements/index.rst index aeb84ba126b..a21387874b1 100644 --- a/docs/modules/baselibs/utils/docs/requirements/index.rst +++ b/docs/modules/baselibs/utils/docs/requirements/index.rst @@ -61,3 +61,6 @@ Non-Functional Requirements :belongs_to: comp__baselibs_utils The Utils component shall ensure that all operations complete in a predictable manner and without dynamic memory allocation. + +.. needextend:: "__utils__" in id + :+tags: baselibs, utils diff --git a/docs/modules/baselibs/utils/docs/safety_analysis/dfa.rst b/docs/modules/baselibs/utils/docs/safety_analysis/dfa.rst new file mode 100644 index 00000000000..706653173d4 --- /dev/null +++ b/docs/modules/baselibs/utils/docs/safety_analysis/dfa.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +DFA (Dependent Failure Analysis) +================================ + +.. document:: utils DFA + :id: doc__utils_dfa + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_dfa + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Dependent Failure Initiators +---------------------------- + +.. code-block:: rst + + .. comp_saf_dfa:: <Title> + :violates: <Component architecture> + :id: comp_saf_dfa__<Component>__<Element descriptor> + :failure_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> + :failure_effect: "description of failure effect of the failure initiator on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component DFA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/docs/modules/baselibs/utils/docs/safety_analysis/fmea.rst b/docs/modules/baselibs/utils/docs/safety_analysis/fmea.rst new file mode 100644 index 00000000000..d6ba8ed632f --- /dev/null +++ b/docs/modules/baselibs/utils/docs/safety_analysis/fmea.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +FMEA (Failure Modes and Effects Analysis) +========================================= + +.. document:: utils FMEA + :id: doc__utils_fmea + :status: draft + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_fmea + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + + +Failure Mode List +----------------- + +.. code-block:: rst + + .. comp_saf_fmea:: <Title> + :violates: <Component architecture> + :id: comp_saf_fmea__<Component>__<Element descriptor> + :fault_id: <ID from fault model :need:`gd_guidl__fault_models`> + :failure_effect: "description of failure effect of the fault model on the element" + :mitigated_by: <ID from Component Requirement | ID from AoU Component Requirement> + :mitigation_issue: <ID from Issue Tracker> + :sufficient: <yes|no> + :status: <valid|invalid> + +.. note:: argument is inside the 'content'. Therefore content is mandatory + +.. attention:: + The above directive must be updated according to your component FMEA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets>