From 13140d36c93d1648cd57c3ce61d056edc8f041a6 Mon Sep 17 00:00:00 2001 From: aschemmel-git Date: Fri, 14 Aug 2026 15:49:09 +0200 Subject: [PATCH] Add safety documents for logging --- docs/components/datarouter/index.rst | 4 +- .../architecture/component_architecture.rst | 91 ++++++ docs/components/mw/log/architecture/index.rst | 20 ++ .../chklst_impl_inspection.rst | 115 ++++++++ .../mw/log/detailed_design/index.rst | 37 +++ docs/components/mw/log/index.rst | 58 +++- .../requirements/chklst_req_inspection.rst | 182 ++++++++++++ docs/components/mw/log/requirements/index.rst | 21 ++ .../log/{ => requirements}/requirements.rst | 8 +- .../log/safety_analysis/aou_requirements.rst | 49 ++++ .../components/mw/log/safety_analysis/dfa.rst | 48 ++++ .../mw/log/safety_analysis/fmea.rst | 121 ++++++++ docs/conf.py | 2 + .../logging/architecture/DR-001-logging.rst} | 17 +- .../architecture/chklst_arc_inspection.rst | 207 ++++++++++++++ docs/features/logging/architecture/index.rst | 84 ++++-- docs/features/logging/index.rst | 31 +++ .../logging/safety_planning/index.rst | 147 ++++++++++ docs/index.rst | 78 +++--- docs/module/index.rst | 49 ++++ docs/module/manuals/index.rst | 21 ++ docs/module/manuals/safety_manual.rst | 102 +++++++ docs/module/release/release_note.rst | 27 ++ docs/module/safety_mgt/index.rst | 22 ++ .../safety_mgt/module_safety_analysis_fdr.rst | 164 +++++++++++ docs/module/safety_mgt/module_safety_plan.rst | 263 ++++++++++++++++++ .../module_verification_report.rst | 94 +++++++ .../stats.rst | 0 28 files changed, 1975 insertions(+), 87 deletions(-) create mode 100644 docs/components/mw/log/architecture/component_architecture.rst create mode 100644 docs/components/mw/log/architecture/index.rst create mode 100644 docs/components/mw/log/detailed_design/chklst_impl_inspection.rst create mode 100644 docs/components/mw/log/detailed_design/index.rst create mode 100644 docs/components/mw/log/requirements/chklst_req_inspection.rst create mode 100644 docs/components/mw/log/requirements/index.rst rename docs/components/mw/log/{ => requirements}/requirements.rst (98%) create mode 100644 docs/components/mw/log/safety_analysis/aou_requirements.rst create mode 100644 docs/components/mw/log/safety_analysis/dfa.rst create mode 100644 docs/components/mw/log/safety_analysis/fmea.rst rename docs/{design_decisions/explicit_init.rst => features/logging/architecture/DR-001-logging.rst} (74%) create mode 100644 docs/features/logging/architecture/chklst_arc_inspection.rst create mode 100644 docs/features/logging/index.rst create mode 100644 docs/features/logging/safety_planning/index.rst create mode 100644 docs/module/index.rst create mode 100644 docs/module/manuals/index.rst create mode 100644 docs/module/manuals/safety_manual.rst create mode 100644 docs/module/release/release_note.rst create mode 100644 docs/module/safety_mgt/index.rst create mode 100644 docs/module/safety_mgt/module_safety_analysis_fdr.rst create mode 100644 docs/module/safety_mgt/module_safety_plan.rst create mode 100644 docs/verification_report/module_verification_report.rst rename docs/{logging => verification_report}/stats.rst (100%) diff --git a/docs/components/datarouter/index.rst b/docs/components/datarouter/index.rst index 87afb0d0..b0d92173 100644 --- a/docs/components/datarouter/index.rst +++ b/docs/components/datarouter/index.rst @@ -13,8 +13,8 @@ # ******************************************************************************* -Data Router Documentation -========================= +Data Router Component +===================== This section is reserved for data router-specific documentation. diff --git a/docs/components/mw/log/architecture/component_architecture.rst b/docs/components/mw/log/architecture/component_architecture.rst new file mode 100644 index 00000000..94a48036 --- /dev/null +++ b/docs/components/mw/log/architecture/component_architecture.rst @@ -0,0 +1,91 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. _component_architecture: + +Component Architecture Documentation +==================================== + +.. document:: Logging Backend Architecture + :id: doc__logging_backend_architecture + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__component_arch + +Overview +-------- + +Supports logging on several backends (file,slog,remote,custom) + +Description +----------- + + + + + + + +Rationale Behind Architecture Decomposition +******************************************* + +Mandatory: A motivation for the decomposition or reason for not further splitting it into internal components. + +.. note:: Common decisions across components / cross cutting concepts is at the higher level. + +Static Architecture +------------------- + +The components are designed to cover the expectations from the feature architecture +(i.e. if already exists a definition it should be taken over and enriched). + +A component can optional also consist of lower level components to further structure the architecture. The component and its static views can also optionally use interfaces provided by other components. + +.. comp:: Logging Backend + :id: comp__logging_backend + :security: YES + :safety: ASIL_B + :status: valid + :implements: logic_arc_int__logging__logging + :belongs_to: feat__logging + + This is the logging component library responsible for selecting the appropriate log sinks based on configuration at runtime. It can perform tasks such as log formatting, filtering, and composite backend selection based on runtime context and configuration. The logging component is designed to be extensible, allowing for custom logging backend to be added as needed. + + +.. comp_arc_sta:: Logging Backend (Static View) + :id: comp_arc_sta__log__sv + :security: YES + :safety: ASIL_B + :status: valid + :version: 1 + :belongs_to: comp__logging_backend + :fulfils: comp_req__log__local_allocation_strategy + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + +Dynamic Architecture +-------------------- + +not needed + +Interfaces +---------- + +not needed diff --git a/docs/components/mw/log/architecture/index.rst b/docs/components/mw/log/architecture/index.rst new file mode 100644 index 00000000..b0f779e4 --- /dev/null +++ b/docs/components/mw/log/architecture/index.rst @@ -0,0 +1,20 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Component Architecture +====================== + +.. toctree:: + + component_architecture diff --git a/docs/components/mw/log/detailed_design/chklst_impl_inspection.rst b/docs/components/mw/log/detailed_design/chklst_impl_inspection.rst new file mode 100644 index 00000000..545c585f --- /dev/null +++ b/docs/components/mw/log/detailed_design/chklst_impl_inspection.rst @@ -0,0 +1,115 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. document:: Logging Backend Implementation Inspection Checklist + :id: doc__logging_backend_impl_inspection + :status: draft + :version: 1 + :safety: ASIL_B + :security: YES + :realizes: wp__sw_implementation_inspection + +Implementation Inspection Checklist +=================================== + +Purpose +------- + +The purpose of this checklist is to collect the topics to be checked during implementation, +i.e. in the detailed design and the source code of the units. + +The checklist shall be agnostic to which programming language is used. Differences shall be treated +by linking to C++ or Rust specific documentation. + +Conduct +------- + +As described in the concept :need:`doc_concept__wp_inspections` the following "inspection roles" are expected to be filled: + +- content responsible (author): +- reviewer: +- moderator: + +Checklist +--------- + +It is mandatory to fill in the "passed" column with "yes" or "no" for each checklist item and additionally to add in the remarks why it is passed or not passed. +In case of "no" an issue link to the issue tracking system has to be added in the last column (if not solved in the same issue). +See also :need:`doc_concept__wp_inspections` for further information about reviews in general and inspection in particular. + +.. list-table:: Implementation Checklist + :header-rows: 1 + :widths: 10,30,50,6,6,8 + + * - Review ID + - Acceptance Criteria + - Guidance + - Passed + - Remarks + - Issue link + * - IMPL_01_01 + - Is the design according to guidelines? + - see :need:`gd_temp__detailed_design` and :need:`doc_concept__imp_concept` + (e.g. are the views done with the proposed UML diagrams) + - + - + - + * - IMPL_01_02 + - Is the implementation according to specification? + - Check if the linked component requirements are fulfilled + and detailed design also matches architecture description. + - + - + - + * - IMPL_01_03 + - Are the design decisions and constraints documented? + - Check also for plausibility of these. + - + - + - + * - IMPL_01_04 + - Are all external libraries used by the component specified in the detailed design? + - Check the automated dependency analysis. + Also make sure ASIL rated units also only use ASIL rated libraries. + - + - + - + * - IMPL_02_01 + - Are the static and dynamic code analysis reports verified for violations? + - All violations in ASIL related code must be justified. This includes the checks of coding guidelines. + - + - + - + * - IMPL_02_02 + - Do manual checks, that are derived from the coding guideline, find no safety critical error? + - Check this for the programming language used (e.g. C++ , Rust ) + - + - + - + * - IMPL_03_01 + - Do the UID of the interface in component documentation match the implemented interface names of the unit? + - Compare interface UIDs (which contains the interface name) in component architecture/detailed design documentation + with public interfaces in source code (e.g. API headers, traits, public types/functions). + - + - + - + * - IMPL_03_02 + - Are detailed design and source code consistent and is the respective traceability established ? + - Check if available static and dynamic design diagrams and the textual descriptions match the code + (e.g. naming of interfaces, units, functions/operations/messages, data types). + Check if the folder/file names of the units and its source code matches the intended functionality. + For example if a unit is named "communication" it should not contain code for "data processing". + - + - + - diff --git a/docs/components/mw/log/detailed_design/index.rst b/docs/components/mw/log/detailed_design/index.rst new file mode 100644 index 00000000..39354704 --- /dev/null +++ b/docs/components/mw/log/detailed_design/index.rst @@ -0,0 +1,37 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Detailed Design +############### + +.. attention:: + + The detailed design document is optional and should be created if the design of the component is complex and cannot be easily understood from the architecture documentation and interface documentation alone. + But the inspection checklist for the implementation is mandatory. + + +Detail design +------------- + +`DD mw/log `_ + +Inspection Checklist +-------------------- + +The checklist for verification of the detailed design and code can be found here: + +.. toctree:: + + chklst_impl_inspection diff --git a/docs/components/mw/log/index.rst b/docs/components/mw/log/index.rst index 2742b25c..6353122c 100644 --- a/docs/components/mw/log/index.rst +++ b/docs/components/mw/log/index.rst @@ -13,24 +13,54 @@ # ******************************************************************************* -Logging Documentation -===================== +Logging Backend Component +######################### -This section is reserved for middleware-specific documentation. - -.. comp:: Logging Component - :id: comp__mw_logging - :security: YES +.. document:: Logging Backend + :id: doc__logging_backend + :status: draft + :version: 1 :safety: ASIL_B - :status: valid - :implements: logic_arc_int__logging__logging - :belongs_to: feat__logging + :security: NO + :realizes: wp__cmpt_request + +Abstract +======== + +Supports logging on several backends (file,slog,remote,custom) + + +Specification +============= + +see :need:`doc__logging_backend_requirements` + + +How to Teach This +================= + +[How to teach users, new and experienced, how to apply the CR to their work.] + +.. note:: + For a CR that adds new functionality or changes behaviour, it is helpful to include a section on how to teach users, new and experienced, how to apply the CR to their work. + +Footnotes +========= + +[A collection of footnotes cited in the CR, and a place to list non-inline hyperlink targets.] + + +Further Documentation of the component can be found in the following sections: - This is the logging component library responsible for selecting the appropriate log sinks based on configuration at runtime. It can perform tasks such as log formatting, filtering, and composite backend selection based on runtime context and configuration. The logging component is designed to be extensible, allowing for custom logging backend to be added as needed. +Component Detail Information +============================ .. toctree:: - :titlesonly: :maxdepth: 1 - :glob: - * + architecture/index + detailed_design/index + requirements/index + safety_analysis/dfa + safety_analysis/fmea + safety_analysis/aou_requirements diff --git a/docs/components/mw/log/requirements/chklst_req_inspection.rst b/docs/components/mw/log/requirements/chklst_req_inspection.rst new file mode 100644 index 00000000..d8c0537c --- /dev/null +++ b/docs/components/mw/log/requirements/chklst_req_inspection.rst @@ -0,0 +1,182 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +.. document:: Logging Backend Requirements Inspection Checklist + :id: doc__logging_backend_req_inspection + :status: draft + :version: 1 + :safety: ASIL_B + :security: YES + :realizes: wp__requirements_inspect + + +Requirement Inspection Checklist +================================ + +Purpose +------- + +The purpose of this requirement inspection checklist is to collect the topics to be checked during requirements inspection. + +Conduct +------- + +As described in the concept :need:`doc_concept__wp_inspections` the following "inspection roles" are expected to be filled: + +- content responsible (author): +- reviewer: +- moderator: +- test expert: + +Checklist +--------- + +It is mandatory to fill in the "passed" column with "yes" or "no" for each checklist item and additionally to add in the remarks why it is passed or not passed. +In case of "no" an issue link to the issue tracking system has to be added in the last column (if not solved in the same issue). +See also :need:`doc_concept__wp_inspections` for further information about reviews in general and inspection in particular. + +.. list-table:: Component Requirement Inspection Checklist + :header-rows: 1 + :widths: 10,30,50,6,6,8 + + * - Review ID + - Acceptance Criteria + - Guidance + - Passed + - Remarks + - Issue link + * - REQ_01_01 + - Is the requirement formulation template used? + - see :need:`gd_temp__req_formulation`, this includes the use of "shall". + - + - + - + * - REQ_02_01 + - Is the requirement description *comprehensible* ? + - If you think the requirement is hard to understand, comment here. + - + - + - + * - REQ_02_02 + - Is the requirement description *unambiguous* ? + - Especially search for "weak words" like "about", "etc.", "relevant" and others (see the internet documentation on this). This check shall be supported by tooling. + - + - + - + * - REQ_02_03 + - Is the requirement description *atomic* ? + - A good way to think about this is to consider if the requirement may be tested by one (positive) test case or needs more of these. The requirement formulation template should also avoid being non-atomic already. Note that there are cases where also non-atomic requirements are the better ones, for example if those are better understandable. + - + - + - + * - REQ_02_04 + - Is the requirement description *feasible* ? + - If at the time of the inspection the requirement has already some implementation, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_impl` shows this. In case the requirement has no implementation at the time of inspection (i.e. not implemented at least as "proof-of-concept"), a development expert should be invited to the Pull-Request review to explicitly check this item. + - + - + - + * - REQ_02_05 + - Is the requirement description *independent from implementation* ? + - This checkpoint should improve requirements definition in the sense that the "what" is described and not the "how" - the latter should be described in architecture/design derived from the requirement. But there can also be a good reason for this, for example we would require using a file format like JSON and even specify the formatting standard already on stakeholder requirement level because we want to be compatible. A finding in this checkpoint does not mean there is a safety problem in the requirement. + - + - + - + * - REQ_03_01 + - Is the *linkage to the parent requirement* correct? + - Linkage to correct levels and ASIL attributes is checked automatically, but it needs checking if the child requirement implements (at least) a part of the parent requirement. + - + - + - + * - REQ_04_01 + - Is the requirement *internally and externally consistent*? + - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. Is the description of the requirement consistent with all its attributes (if not already part of another check, e.g. does the title fit?). + - + - + - + * - REQ_05_01 + - Do the software requirements consider *timing constraints*? + - This checkpoint encourages to think about timing constraints even if those are not explicitly mentioned in the parent requirement. If the reviewer of a requirement already knows or suspects that the code execution will be consuming a lot of time, one should think of the expectation of a "user". + - + - + - + * - REQ_06_01 + - Does the requirement consider *external interfaces*? + - The SW platform's external interfaces (to the user) are defined in the Feature Architecture, so the Feature and Component Requirements should determine the input data use and setting of output data for these interfaces. Are all output values defined? + - + - + - + * - REQ_07_01 + - Is the *safety* attribute set correctly? + - Derived requirements are checked automatically, see :need:`gd_req__req_linkage_safety`. But for the top level requirements (and also all AoU) this needs to be checked manually for correctness. + - + - + - + * - REQ_07_02 + - Is the attribute *security* set correctly? + - For component requirements this checklist item is supported by automated check: "Every requirement which satisfies a feature requirement with security attribute set to YES inherits this". But the component requirements/architecture may additionally also be subject to a :need:`wp__sw_component_security_analysis`. + - + - + - + * - REQ_08_01 + - Is the requirement *verifiable*? + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give their opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. + - + - + - + * - REQ_08_02 + - Is the requirement verifiable by design or code review in case it is not feasibly testable? + - In very rare cases a requirement may not be verifiable by test cases, for example a specific non-functional requirement. In this case a requirement analysis verifies the requirement by design/code review. If such a requirement is in scope of this inspection, please check this here and link to the respective review record. A test expert is invited to the inspection to confirm their opinion that the requirement is not testable. + - + - + - + * - REQ_09_01 + - Do the requirements that define a safety mechanism specify the error reaction leading to a safe state? + - Alternatively to the safe state there could also be "repair" mechanisms. Also do not forget to consider REQ_05_01 for these. + - + - + - + * - REQ_10_01 + - Is the requirement description *complete* ? + - For every requirement in the inspection, follow to its parent (feature) requirement(s) and then check if this/these are fulfilled completely by its/their linked children (component requirements, including those which are not in scope of the inspection). + - + - + - + +.. attention:: + The above checklist entries must be filled according to your component requirements in scope. + +Note: If a Review ID is not applicable for your requirement, then state ""n/a" in status and comment accordingly in remarks. + +The following requirements in "valid" state and with "inspected" tag set are in the scope of this inspection: + +.. needtable:: + :filter: "logging_backend" in docname and "requirements" in docname and docname is not None and status == "valid" + :style: table + :types: comp_req + :tags: logging_backend + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +And also the following AoUs in "valid" state and with "inspected" tag set (for these please answer the questions above as if the AoUs are requirements, except question REQ_03_01): + +.. needtable:: + :filter: "logging_backend" in docname and "requirements" in docname and docname is not None and status == "valid" + :style: table + :types: aou_req + :tags: logging_backend + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title diff --git a/docs/components/mw/log/requirements/index.rst b/docs/components/mw/log/requirements/index.rst new file mode 100644 index 00000000..9eea1fc7 --- /dev/null +++ b/docs/components/mw/log/requirements/index.rst @@ -0,0 +1,21 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Requirements +############ + +.. toctree:: + + requirements + chklst_req_inspection diff --git a/docs/components/mw/log/requirements.rst b/docs/components/mw/log/requirements/requirements.rst similarity index 98% rename from docs/components/mw/log/requirements.rst rename to docs/components/mw/log/requirements/requirements.rst index 35bdd451..8322cc2b 100644 --- a/docs/components/mw/log/requirements.rst +++ b/docs/components/mw/log/requirements/requirements.rst @@ -12,11 +12,11 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -mw::log Component Requirements -############################### +Component Requirements +###################### -.. document:: Logging Component Requirements - :id: doc__logging_requirements +.. document:: Logging Backend Component Requirements + :id: doc__logging_backend_requirements :status: valid :safety: ASIL_B :security: YES diff --git a/docs/components/mw/log/safety_analysis/aou_requirements.rst b/docs/components/mw/log/safety_analysis/aou_requirements.rst new file mode 100644 index 00000000..6d34d584 --- /dev/null +++ b/docs/components/mw/log/safety_analysis/aou_requirements.rst @@ -0,0 +1,49 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +AoU Component Requirements Template +=================================== + +.. document:: Logging Backend Component AoU + :id: doc__logging_backend_comp_aou + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__requirements_comp_aou + + +Component AoU +------------- + +.. code-block:: rst + + .. aou_req:: Next Title + :id: aou_req__mod_temp_component_name__next_title + :reqtype: Process + :security: YES + :safety: ASIL_B + :status: invalid + + The Component User shall do xyz to use the component safely/securely + + .. aou_req:: Another Title + :id: aou_req__mod_temp_component_name__another + :reqtype: Process + :security: YES + :safety: ASIL_B + :status: invalid + :tags: environment + + The Component shall only be used in a xyz environment to ensure its proper functioning. diff --git a/docs/components/mw/log/safety_analysis/dfa.rst b/docs/components/mw/log/safety_analysis/dfa.rst new file mode 100644 index 00000000..d9f081ab --- /dev/null +++ b/docs/components/mw/log/safety_analysis/dfa.rst @@ -0,0 +1,48 @@ +.. + # ******************************************************************************* + # 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:: Logging Backend DFA + :id: doc__logging_backend_dfa + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_dfa + +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/components/mw/log/safety_analysis/fmea.rst b/docs/components/mw/log/safety_analysis/fmea.rst new file mode 100644 index 00000000..3d0cdae5 --- /dev/null +++ b/docs/components/mw/log/safety_analysis/fmea.rst @@ -0,0 +1,121 @@ +.. + # ******************************************************************************* + # 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:: Logging Backend FMEA + :id: doc__logging_backend_fmea + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__sw_component_fmea + +Failure Mode List +----------------- + +.. list-table:: Fault Models for sequence diagrams + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Failure Mode + - Applicability + - Rationale + * - MF_01_01 + - message is not received (is a subset/more precise description of MF_01_05) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_02 + - message received too late (only relevant if delay is a realistic fault) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_03 + - message received too early (usually not a problem) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_04 + - message not received correctly by all recipients (different messages or messages partly lost). Only relevant if the same message goes to multiple recipients. + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_05 + - message is corrupted + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_06 + - message is not sent + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - MF_01_07 + - message is unintended sent + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - CO_01_01 + - minimum constraint boundary is violated + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - CO_01_02 + - maximum constraint boundary is violated + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_01 + - Process calculates wrong result(s) (is a subset/more precise description of MF_01_05 or MF_01_04). This failure mode is related to the analysis if e.g. internal safety mechanisms are required (level 2 function, plausibility check of the output, …) because of the size / complexity of the feature. + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_02 + - processing too slow (only relevant if timing is considered) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_03 + - processing too fast (only relevant if timing is considered) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_04 + - loss of execution + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_05 + - processing changes to arbitrary process + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + * - EX_01_06 + - processing is not complete (infinite loop) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out FMEA> + +FMEA +---- +For all identified applicable failure initiators, the FMEA is performed in the following section. + +.. 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/conf.py b/docs/conf.py index 962ce36b..d3a81d73 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -27,3 +27,5 @@ extensions = [ "score_sphinx_bundle", ] + +required_in_id = ["logging"] diff --git a/docs/design_decisions/explicit_init.rst b/docs/features/logging/architecture/DR-001-logging.rst similarity index 74% rename from docs/design_decisions/explicit_init.rst rename to docs/features/logging/architecture/DR-001-logging.rst index b3128db3..afc6c790 100644 --- a/docs/design_decisions/explicit_init.rst +++ b/docs/features/logging/architecture/DR-001-logging.rst @@ -1,9 +1,24 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + Explicit initialization of logging ================================== .. dec_rec:: Explicit initialization of logging - :id: dec_rec__log__explicit_init + :id: dec_rec__logging__explicit_init :status: proposed + :version: 1 :context: See below. :decision: TBA diff --git a/docs/features/logging/architecture/chklst_arc_inspection.rst b/docs/features/logging/architecture/chklst_arc_inspection.rst new file mode 100644 index 00000000..8157fdb9 --- /dev/null +++ b/docs/features/logging/architecture/chklst_arc_inspection.rst @@ -0,0 +1,207 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +.. document:: Logging Architecture Inspection Checklist + :id: doc__logging_arc_inspection + :status: draft + :version: 1 + :safety: ASIL_B + :security: YES + :realizes: wp__sw_arch_verification + + +Architecture Inspection Checklist +================================= + +Purpose +------- + +The purpose of the software architecture checklist is to ensure that the design meets the criteria and quality as +defined per project processes and guidelines for feature and component architectural design elements. +It helps to check the compliance with requirements, identify errors or inconsistencies, and ensure adherence to best +practices. +The checklist guides evaluation of the architecture design, identifies potential problems, and aids in +communication and documentation of architectural decisions to stakeholders. + +Conduct +------- + +As described in the concept :need:`doc_concept__wp_inspections` the following "inspection roles" are expected to be filled: + +- content responsible (author): <contributor/committer explicitly named here, who is the main author, as can be seen in config mgt tooling> +- reviewer: <contributor/committer explicitly named here, who is the main content reviewer, must be different from content responsible> +- moderator: <committer explicitly named here, who is is the safety manager, security manager or quality manager initiating the inspection> + +Checklist +--------- + +It is mandatory to fill in the "passed" column with "yes" or "no" for each checklist item and additionally to add in the remarks why it is passed or not passed. +In case of "no" an issue link to the issue tracking system has to be added in the last column (if not solved in the same issue). +See also :need:`doc_concept__wp_inspections` for further information about reviews in general and inspection in particular. + +.. list-table:: Architecture Design Review Checklist + :header-rows: 1 + + * - Review Id + - Acceptance criteria + - Guidance + - passed + - Remarks + - Issue link + * - ARC_01_01 + - Is the traceability from software architectural elements to requirements, and other level architectural elements (e.g. component to interface) established according to the "Relations between the architectural elements" as described in :need:`doc_concept__arch_process`? + - Trace should be checked automatically by tool support in the future. It will be removed from the checklist once the requirement (:need:`Correlations of the architectural building blocks <gd_req__arch_build_blocks_corr>`) is implemented. Refer to `Tool Requirements <https://eclipse-score.github.io/docs-as-code/main/internals/requirements/requirements.html>`_ for the current status. + - + - + - + * - ARC_01_02 + - Does the software architecture design consider all the requirements allocated to the architectural element, including functional, non-functional, safety, and security requirements and all related design decisions? + - Check if all requirements allocated to the architectural element are considered in the design. This includes functional requirements (e.g. functional safety requirements), non-functional requirements (e.g. performance, reliability), and security requirements (e.g. confidentiality, integrity). Additionally, ensure that all related design decisions are taken into account and documented in the architectural design. + - + - + - + * - ARC_01_03 + - If the architectural element is related to any supplier manuals (including safety and security), are the relevant parts covered? + - If the architecture makes use of supplied elements, their manuals (like safety) have to be considered (i.e. its provided functionality matches the expectation and assumptions are fulfilled). Note that in case of safety component this means that assumed Technical Safety Requirements and AoUs of the safety manual are covered. + - + - + - + * - ARC_01_04 + - Is the architectural element traceable to the lower-level artifacts as defined by the work product traceability? + - + - + - + - + * - ARC_02_01 + - Is the software architecture design compliant with the overall feature architecture? + - On component level check against the feature architecture, on feature level check other features with common components used. + - + - + - + * - ARC_02_02 + - Is appropriate and comprehensible operation and interface naming present in the architectural design? + - Check :need:`gd_guidl__arch_design` + - + - + - + * - ARC_02_03 + - Are the correctness of data flow and control flow within the architectural elements considered? + - For example, examine definitions, transformations, integrity, and interaction of data; check error handling, data exchange between elements, correct response to inputs, and documented decision making. + Note: Consistency is ensured by the process/tooling, by defining each interface only once. + - + - + - + * - ARC_02_04 + - Are the interfaces between the software architectural element and other architectural elements well defined? + - Check if the interface handles undefined behaviour or errors; can established protocols be used; are the interfaces for inputs, outputs, and error codes documented; is loose coupling considered and only limited exposure; can unit or integration tests be written against the interface; data amount transferred; ensure no sensitive data is exposed; + - + - + - + * - ARC_02_05 + - Does the software architectural element consider the timing constraints (from the parent requirement)? + - If there are strict timing requirements, a programming time estimation should be performed and deadline supervision should be considered. + - + - + - + * - ARC_02_06 + - Is the documentation of the software architectural element, including textual and graphical descriptions (e.g., UML diagrams), clear and complete? + - Use of semi-formal notation is expected for architectural elements with an allocated ASIL level. Is the architecture template correctly filled? + - + - + - + * - ARC_03_01 + - Is the architectural element modular and encapsulated? + - Check, for example, that only minimal interfaces are used. The design should be object oriented. Interfaces and interactions are clearly defined. Usage of access types (private, protected) is properly set. Limited global variables. + - + - + - + * - ARC_03_02 + - Is the suitability of the software architecture for future modifications and maintainability considered? + - Check for, for example, loose coupling, separation of concerns, high cohesion, versioning strategy for interfaces, decision records, and use of established design patterns. + - + - + - + * - ARC_03_03 + - Are simplicity and avoidance of unnecessary complexity present in the software architecture? + - Indicators of complexity include: the number of use cases (corresponding to dynamic diagrams) allocated to a single design element, the number of interfaces and operations in an interface, function parameters, global variables, complex types, and limited comprehensibility. + + Notes: + + If the "number of use cases" or "number of interfaces" above exceeds "3" or "number of function parameters" exceeds "5" or the "number of operations" exceeds "20" or global variables are used, a design rationale is mandatory. + - + - + - + * - ARC_03_04 + - Is the software architecture design following best practices and design principles? + - Refer to architectural guidelines and recommendations within the project documentation. + - + - + - + * - ARC_04_01 + - If your software architectural design includes processes with different safety ratings (QM/ASIL), is freedom from interference for shared resources (CPU time, shared memory, etc.) ensured? See also ARC_04_03. + + Note: see :need:`std_req__iso26262__software_7411` and :need:`std_req__iso26262__software_749` with Annex D for partitioning to ensure freedom from interference. + Note: Modules should not mix ASIL and QM processes unless justified otherwise; therefore, this question is only relevant on the feature level. + - + Check whether your architecture design complies with project guidelines to establish freedom from interference between components. This can be achieved, for example, by using a hypervisor or an OS that supports partitioning with an MMU or specific scheduling mechanisms, as well as safety mechanisms like watchdogs or program flow monitoring. + Also check if the operating system supports freedom from interference between the processes and make sure an "Assumption of Use requirement" for this exists in your project. For example, see `score aou_req__platform__process_isolation <https://eclipse-score.github.io/score/main/requirements/platform_assumptions/index.html#aou_req__platform__process_isolation>`_. + - + - + - + * - ARC_04_02 + - Does the software architectural design consider its feasibility with respect to the required resources for the embedded software, especially for time-critical aspects like startup time, but also including RAM, ROM, non-volatile memory, communication bandwidth, and processing time limits according to the requirements or foreseeable customer needs? See also ARC_02_05. + + Note: see :need:`std_req__iso26262__software_7413` + - + Check if there are any limits for resource consumption or timing aspects in your project, such as startup time, communication bandwidth, or memory usage. If such limits exist, ensure that your architecture takes these limits into account, especially with respect to scalability. For this, make an estimation of the required resources based on the architectural design and a prototypical implementation or a measurement of an existing implementation, and compare it to the defined limits or planned scalability. Check if any bottlenecks are present in the architecture that could lead to resource overuse or timing violations. + - + - + - + * - ARC_04_03 + - If your software architectural design includes processes and tasks, are their scheduling policies and priorities (at least the necessary relationships between them) defined to ensure that timing requirements are met? Please note that the particular priorities or priority ranges will probably be defined by the project handbook or the software development plan. + + Note: see :need:`std_req__iso26262__software_743` + - Provide a rationale for these scheduling policies and priorities, or explain why they are not needed. + - + - + - + + +.. attention:: + The above checklist entries must be filled according to your feature architecture in scope. + +Note: If a Review ID is not applicable for your architecture, then state ""n/a" in status and comment accordingly in remarks. + +The following static views in "valid" state and with "inspected" tag set are in the scope of this inspection: + +.. needtable:: + :filter: "logging" in docname and "architecture" in docname and docname is not None and status == "valid" + :style: table + :types: feat_arc_sta + :tags: logging + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +and the following dynamic views: + +.. needtable:: + :filter: "logging" in docname and "architecture" in docname and docname is not None and status == "valid" + :style: table + :types: feat_arc_dyn + :tags: logging + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title diff --git a/docs/features/logging/architecture/index.rst b/docs/features/logging/architecture/index.rst index 8d0d1407..59f0a4d6 100644 --- a/docs/features/logging/architecture/index.rst +++ b/docs/features/logging/architecture/index.rst @@ -1,31 +1,58 @@ -Logging Module View -################### +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* - -.. mod:: Logging - :id: mod__logging_repo - :status: valid +.. document:: Logging Architecture + :id: doc__logging_architecture + :status: draft + :version: 1 :safety: ASIL_B - :security: YES - :includes: comp__data_router, comp__mw_logging + :security: NO + :realizes: wp__feature_arch - The logging module provides a standardized logging framework for C++ and Rust projects using Bazel build system. It includes components for log routing allowing for flexible log management and integration with various logging backends. The module is designed to be extensible and configurable to meet the needs of different applications and environments. +Logging Architecture +#################### -.. mod_view_sta:: Logging module view - :id: mod_view_sta__logging__logging_view - :includes: comp__data_router, comp__mw_logging - :belongs_to: mod__logging +Overview +-------- +The logging feature provides a standardized logging framework for C++ and Rust projects using Bazel build system. - .. needarch:: - :scale: 50 - :align: center +Description +----------- + +The logging feature provides functionality for log routing allowing for flexible log management and integration with various logging backends. + +Design Decisions - :need:`dec_rec__logging__explicit_init` + +Design Constraint: The logging function is not safety relevant (its output can not be used for safety functionality). +But it must be usable also for safety related applications, so the design shall provide Freedom From Interference (FFI). - {{ draw_module(need(), needs) }} +Requirements +------------ +The requirements for the feature architecture are defined in the `requirements` section of the feature documentation in the project repository. +Rationale Behind Architecture Decomposition +******************************************* -Logging Feature Architecture -############################ +The feature is decomposed into a QM component which delivers the functionality and ASIL components +providing the interface (divided into frontend and backend) which are included into the context of the using application. +The frontend interface which is included by the users is deployed in the baselibs module. +This is to avoid cycylic dependencies, as the other baselibs components want to use logging functions +but also the logging components want to use baselibs functions. + +Static Architecture +------------------- .. feat_arc_sta:: Feature Architecture Logging :id: feat_arc_sta__logging__static_view @@ -40,4 +67,21 @@ Logging Feature Architecture :scale: 50 :align: center - {{ draw_component(need(), needs) }} + {{ draw_feature(need(), needs) }} + +Dynamic Architecture +-------------------- + +Simple routing of commands and replies, so dynamic view is not needed. + +Logical Interfaces +------------------ + +The logical interfaces of the feature are defined in the `logical interfaces` section of the feature documentation in the project repository. + +See `SCORE Features <https://eclipse-score.github.io/score/main/features/index.html>`_ for more information. + +Used Components +--------------- + +The components used by the feature are defined in the `components` section of the module documentation. diff --git a/docs/features/logging/index.rst b/docs/features/logging/index.rst new file mode 100644 index 00000000..0afd0710 --- /dev/null +++ b/docs/features/logging/index.rst @@ -0,0 +1,31 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Feature Logging +############### + +Abstract +======== + +The logging feature provides a standardized logging framework for C++ and Rust projects using Bazel build system. + +For the main feature description and requirements, see the belonging `Feature <https://eclipse-score.github.io/score/main/features/index.html#features>`_ in the project repository. + +.. toctree:: + :hidden: + + architecture/index.rst + architecture/chklst_arc_inspection.rst + architecture/DR-001-logging.rst + safety_planning/index.rst diff --git a/docs/features/logging/safety_planning/index.rst b/docs/features/logging/safety_planning/index.rst new file mode 100644 index 00000000..1c7fff3b --- /dev/null +++ b/docs/features/logging/safety_planning/index.rst @@ -0,0 +1,147 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Feature Safety Work Products List +################################# + +.. document:: Logging Safety WPs + :id: doc__logging_safety_wp + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__platform_safety_plan + + +Tailoring +========= + +Additional to the tailoring in the SW platform project as defined in the project's :need:`wp__platform_safety_plan` we define here the additional tailoring on feature level. + +- Excluded for this feature are additionally the following work products (and their related requirements): + + - <work product/requirement> - <Argumentation why it is not needed or replaced by another work product or activity.> + + +Safety Work products List +========================= + +.. list-table:: Feature Logging Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__feat_request` + - :need:`gd_temp__change_feature_request` + - :ndf:`copy('status', need_id='gd_temp__change_feature_request')` + - :need:`doc__logging` + + * - :need:`wp__requirements_feat` + - :need:`gd_temp__req_feat_req` + - :ndf:`copy('status', need_id='gd_temp__req_feat_req')` + - <Link to WP> + + * - :need:`wp__requirements_feat_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - none, as no ASIL requirement towards feature functionality + + * - :need:`wp__feature_arch` + - :need:`gd_temp__arch_feature` + - :ndf:`copy('status', need_id='gd_temp__arch_feature')` + - :need:`doc__logging_architecture` + + * - :need:`wp__feature_fmea` + - :need:`gd_temp__feat_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__feat_saf_fmea')` + - not needed on feature level + + * - :need:`wp__feature_dfa` + - :need:`gd_temp__feat_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__feat_saf_dfa')` + - not needed on feature level + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - <Link to WP> + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - :need:`doc__logging_arc_inspection` + + * - :need:`wp__verification_feat_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - <Link to WP> + +.. attention:: + The above table must be updated according to your feature safety planning. + + - Fill the work products links + +Feature Safety Package +====================== + +To create the safety package (according to :need:`gd_guidl__saf_package`) the following +documents and work products status have to go to "valid" (after the relevant verification were performed). + +Feature Documents Status +------------------------ + +For all the work product documents the status can be seen by following the "Link to WP". +A summary of the status is also documented in the project's documentation management plan. + +See <add here the section reference to the documentation management plan> + +Feature Requirements Status +--------------------------- + +.. needtable:: + :filter: docname is not None and "logging" in docname and "requirements" in docname + :style: table + :types: feat_req + :tags: logging + :columns: id;status + :colwidths: 25,25 + :sort: title + +Feature AoU Status +------------------ + +.. needtable:: + :filter: docname is not None and "logging" in docname and "requirements" in docname + :style: table + :types: aou_req + :tags: logging + :columns: id;status + :colwidths: 25,25 + :sort: title + +Feature Architecture Status +--------------------------- + +.. needtable:: + :filter: docname is not None and "logging" in docname and "architecture" in docname + :style: table + :types: feat_arc_sta; feat_arc_dyn + :tags: logging + :columns: id;status + :colwidths: 25,25 + :sort: title diff --git a/docs/index.rst b/docs/index.rst index 486953ef..08c6dbc2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,28 +17,12 @@ Logging Documentation This documentation describes the structure, usage and configuration of the Bazel-based C++/Rust logging module. -.. contents:: Table of Contents - :depth: 2 - :local: - Overview -------- This repository provides a standardized setup for projects using **C++** or **Rust** and **Bazel** as a build system. It integrates best practices for build, test, CI/CD and documentation. -Requirements ------------- - -.. stkh_req:: Example Functional Requirement - :id: stkh_req__docgen_enabled__example - :status: valid - :safety: QM - :security: YES - :reqtype: Functional - :valid_from: v1.0.0 - :rationale: Ensure documentation builds are possible for all modules - Project Layout -------------- @@ -51,6 +35,38 @@ The logging module includes the following top-level structure: - ``docs/``: Documentation using ``docs-as-code`` - ``.github/workflows/``: CI/CD pipelines +Feature Documentation +--------------------- + +The Feature documentation covers the feature-level definition of <module name>, including architecture and safety planning artifacts. + +.. toctree:: + :maxdepth: 1 + + features/logging/index + +Module Documentation +-------------------- + +The Module documentation covers the module-level view, including architecture, safety management documents, and the user manual. + +.. toctree:: + :maxdepth: 1 + + module/index + verification_report/module_verification_report + +Component Documentation +----------------------- + +The Components documentation provides detailed documentation for each individual library component, including requirements, architecture, and design decisions: + +.. toctree:: + :maxdepth: 1 + + components/datarouter/index.rst + components/mw/log/index.rst + Quick Start ----------- @@ -81,33 +97,3 @@ Example: } This enables conditional behavior (e.g., choosing ``clang-tidy`` for C++ or ``clippy`` for Rust). - -Additional documentation ------------------------- - -.. toctree:: - :maxdepth: 1 - - features/logging/architecture/index - design_decisions/explicit_init - -Components -========== - -.. toctree:: - :titlesonly: - :maxdepth: 1 - :glob: - - components/datarouter/index.rst - components/mw/log/index.rst - - -Requirements ------------- - -.. toctree:: - :maxdepth: 1 - :glob: - - logging/stats.rst diff --git a/docs/module/index.rst b/docs/module/index.rst new file mode 100644 index 00000000..c63dfcdd --- /dev/null +++ b/docs/module/index.rst @@ -0,0 +1,49 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Module +====== + +.. mod:: Logging + :id: mod__logging_repo + :status: valid + :safety: ASIL_B + :security: YES + :includes: comp__data_router, comp__logging_backend + + The logging module provides a standardized logging framework for C++ and Rust projects using Bazel build system. It includes components for log routing allowing for flexible log management and integration with various logging backends. The module is designed to be extensible and configurable to meet the needs of different applications and environments. + +Module View +----------- + +.. mod_view_sta:: Logging module view + :id: mod_view_sta__logging__static_view + :includes: comp__data_router, comp__logging_backend + :belongs_to: mod__logging + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_module(need(), needs) }} + +Module Documents +---------------- + +.. toctree:: + :maxdepth: 1 + + manuals/index + release/release_note + safety_mgt/index diff --git a/docs/module/manuals/index.rst b/docs/module/manuals/index.rst new file mode 100644 index 00000000..a7763a9e --- /dev/null +++ b/docs/module/manuals/index.rst @@ -0,0 +1,21 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Manuals +####### + +.. toctree:: + :titlesonly: + + safety_manual diff --git a/docs/module/manuals/safety_manual.rst b/docs/module/manuals/safety_manual.rst new file mode 100644 index 00000000..4896f734 --- /dev/null +++ b/docs/module/manuals/safety_manual.rst @@ -0,0 +1,102 @@ +.. + # ******************************************************************************* + # 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 Manual +============= + +.. document:: Logging Safety Manual + :id: doc__logging_safety_manual + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__module_safety_manual + + +Introduction/Scope +------------------ + +This safety manual covers the module logging and additionally the component logging_frontend which +is part of the module baselibs (for the reasoning for this deployment look into :need:`doc__logging_architecture`) + +Assumed Platform Safety Requirements +------------------------------------ +| For the <Project platform / module name> the following safety related stakeholder requirements are assumed to define the top level functionality (purpose) of the <Project platform / module name>. I.e. from these all the feature and component requirements implemented are derived. +| <List here all the stakeholder requirements, with safety not equal to QM, the module's components requirements are derived from. For the platform all are relevant.> + +Assumptions of Use +------------------ + +Assumptions on the Environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +| Generally the assumption of the project platform SEooC is that it is integrated in a safe system, i.e. the POSIX OS it runs on is qualified and also the HW related failures are taken into account by the system integrator, if not otherwise stated in the module's safety concept. +| <List here all the OS calls the project platform resp. module expects to be safe.> + +List of AoUs expected from the environment the platform / module runs on: + +.. needtable:: + :style: table + :columns: title;id;status + :colwidths: 25,25,25 + :sort: title + + results = [] + + for need in needs.filter_types(["aou_req"]): + if need and "environment" in need["tags"]: + results.append(need) + +.. attention:: + Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. + +Assumptions on the User +^^^^^^^^^^^^^^^^^^^^^^^ +| As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety package. +| Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: <link to add>. Assumptions from components to their users can be fulfilled in two ways: +| 1. There are assumption which need to be fulfilled by all SW components, e.g. "every user of an IPC mechanism needs to make sure that he provides correct data (including appropriate ASIL level)" - in this case the AoU is marked as "platform". +| 2. There are assumption which can be fulfilled by a safety mechanism realized by some other project platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module SEooC stand-alone - in this case the AoU is marked as "module". An example would be the "JSON read" which requires "The user shall provide a string as input which is not corrupted due to HW or QM SW errors." - which is covered when using together with safe project platform persistency feature. + +List of AoUs on the user of the platform or the module of this safety manual: + +Note: Platform safety manual collects all platform wide AoU (have to be fulfilled by the user for any feature). +Module safety manual collects all AoUs specific to a feature and its realizing components. +This means for every feature the user selects, the platform safety manual and the related module manual has to be considered. + +.. needtable:: + :style: table + :columns: title;id;status + :colwidths: 25,25,25 + :sort: title + + results = [] + + for need in needs.filter_types(["aou_req"]): + if need and "environment" not in need["tags"]: + results.append(need) + +.. attention:: + Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. + +Safety concept of the SEooC +--------------------------- +| <Describe here the safety concept incl. which faults are taken care of, reactions of the implemented functions under anomalous operating conditions ... if this is not already documented sufficiently in the feature documentation "safety impact" section of all the features the module is used in.> + +Safety Anomalies +---------------- +| Anomalies (bugs in ASIL SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes <add link to release note>. + +References +---------- +| <link to the user manual> +| <other links> diff --git a/docs/module/release/release_note.rst b/docs/module/release/release_note.rst new file mode 100644 index 00000000..c1c53c8c --- /dev/null +++ b/docs/module/release/release_note.rst @@ -0,0 +1,27 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Release Note +============ + +.. document:: Logging Release Note + :id: doc__logging_release_note + :status: valid + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__module_sw_release_note + + +For the release notes, see the `Logging releases <https://github.com/eclipse-score/logging/releases>`_ on GitHub. diff --git a/docs/module/safety_mgt/index.rst b/docs/module/safety_mgt/index.rst new file mode 100644 index 00000000..f1c78369 --- /dev/null +++ b/docs/module/safety_mgt/index.rst @@ -0,0 +1,22 @@ +.. + # ******************************************************************************* + # 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 Management +################# + +.. toctree:: + :titlesonly: + + module_safety_plan + module_safety_analysis_fdr diff --git a/docs/module/safety_mgt/module_safety_analysis_fdr.rst b/docs/module/safety_mgt/module_safety_analysis_fdr.rst new file mode 100644 index 00000000..8c823a18 --- /dev/null +++ b/docs/module/safety_mgt/module_safety_analysis_fdr.rst @@ -0,0 +1,164 @@ +.. + # ******************************************************************************* + # 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:: Logging Safety Analysis Checklist + :id: doc__logging_safety_analysis_fdr + :status: draft + :version: 1 + :safety: ASIL_B + :security: YES + :realizes: wp__fdr_reports + + +**Purpose** + +The purpose of this Safety Analysis (DFA and FMEA) formal review report 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>** +- scope: **<describe the scope of the review here, e.g. "the safety analysis of the module and its results">** + +**Checklist** + +Please note that it is mandatory to fill in the "passed" column with "yes" or "no" for each checklist item and additional to add in the remarks why it is passed or not passed. In case of "no" an issue link to the issue tracking system has to be added in the last column. See also :need:`doc_concept__wp_inspections` for further information about reviews in general and inspection in particular. + + +.. list-table:: General Checklist + :header-rows: 1 + :widths: 10,30,10,30,20 + + * - ID + - Safety analysis activity + - Compliant to ISO 26262? + - Reference + - Comment + + * - Gen 1 + - Are the safety analysis performed according to the defined process and templates? See :need:`gd_req__saf_structure` and also :need:`gd_temp__feat_saf_fmea` and :need:`gd_temp__feat_saf_dfa` + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_841>`, :need:`[[title]] <std_req__iso26262__analysis_849>`, :need:`[[title]] <std_req__iso26262__analysis_8410>`, :need:`[[title]] <std_req__iso26262__analysis_748>` + - <Rationale for result> + + * - Gen 2 + - Are the safety analysis performed in a systematic way to identify the potential dependent failures / failure modes and their effects? Are the failure effect and the mitigation described? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_849>`, :need:`[[title]] <std_req__iso26262__analysis_8410>` + - <Ensured and checked by application of the defined templates and processes> + + * - Gen 3 + - 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> + + * - Gen 4 + - Are the mitigations effective and implemented? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_844>` + - <Rationale for result> + + * - Gen 5 + - Are all AoU's that are used as mitigation's created and covered in the safety manual? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_845>` + - <Rationale for result> + + * - Gen 6 + - Are additional safety-related test cases determined by potential results of the safety analyses? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_847>` + - <Rationale for result> + + +.. list-table:: DFA Checklist + :header-rows: 1 + :widths: 10,30,10,30,20 + + * - ID + - Safety analysis activity + - Compliant to ISO 26262? + - Reference + - Comment + + * - DFA 1 + - Are the potential dependent failures identified by performing a DFA? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_741>` + - <Rationale for result> + + * - DFA 2 + - 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> + + * - DFA 3 + - Are applicable operational situations and operating modes considered? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_743>` + - <Rationale for result> + + * - DFA 4 + - Are the failure initiators :need:`[[title]] <gd_guidl__dfa_failure_initiators>` suitable and applied? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_744>` + - <Rationale for result> + + * - DFA 5 + - Is a rationale provided for each identified potential dependent failure? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_745>` + - <Rationale for result> + + * - DFA 6 + - Are measures defined to resolve the identified potential dependent failures? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_746>`, :need:`[[title]] <std_req__iso26262__analysis_747>`, :need:`[[title]] <std_req__iso26262__analysis_843>` + - <Rationale for result> + + * - DFA 7 + - Can be the required level of independence shown for the identified potential dependent failures? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_748>` + - <Rationale for result> + + +.. list-table:: FMEA Checklist + :header-rows: 1 + :widths: 10,30,10,30,20 + + * - ID + - Safety analysis activity + - Compliant to ISO 26262? + - Reference + - Comment + + * - FMEA 1 + - Are the fault models suitable and applied for the FMEA? See :need:`gd_guidl__fault_models` and also :need:`gd_req__saf_structure` + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_846>` + - <Rationale for result> + + * - FMEA 2 + - Are measures defined to resolve the identified faults? + - [YES | NO ] + - :need:`[[title]] <std_req__iso26262__analysis_843>` + - <Rationale for result> diff --git a/docs/module/safety_mgt/module_safety_plan.rst b/docs/module/safety_mgt/module_safety_plan.rst new file mode 100644 index 00000000..1cb784ae --- /dev/null +++ b/docs/module/safety_mgt/module_safety_plan.rst @@ -0,0 +1,263 @@ +.. + # ******************************************************************************* + # 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 Plan +*********** + +.. document:: Logging Module Safety Plan + :id: doc__logging_safety_plan + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__module_safety_plan + +Functional Safety Management Context +==================================== + +This Safety Plan adds to the project's :need:`wp__platform_safety_plan` all the module development relevant work products needed for ISO 26262 conformity. + +Functional Safety Management Scope +================================== + +This Safety Plan's scope is a SW module of the SW platform <link to module documentation in platform/modules/<modulename>/index.rst>. +The module consists of one or more SW components and will be qualified as a SEooC. + +Functional Safety Management Roles +================================== + +.. list-table:: Module roles + :header-rows: 1 + + * - Role + - Assignee + + * - Safety Manager + - <link to Module's Safety Manager assignment or name> + + * - Module Project Manager + - <link to Module's Project Manager assignment or name> + +Tailoring +========= + +Additional to the tailoring in the SW platform project as defined in the project's :need:`wp__platform_safety_plan` we define here the additional tailoring on module level. + +- Excluded for this module are additionally the following work products (and their related requirements): + + - <work product/requirement> - <Argumentation why it is not needed or replaced by another work product or activity.> + +Functional Safety Module Work products +====================================== + +One set of work products for the module and one set for each component of the module: + +Module Work products List +------------------------- + +.. list-table:: Module Work products + :header-rows: 1 + + * - Work product Id + - Link to process + - Process status + - Link to WP + + * - :need:`wp__module_safety_plan` + - :need:`gd_guidl__saf_plan_definitions` + - :ndf:`copy('status', need_id='gd_guidl__saf_plan_definitions')` + - this document + + * - :need:`wp__module_safety_package` + - :need:`gd_guidl__saf_package` + - :ndf:`copy('status', need_id='gd_guidl__saf_package')` + - this document (including the linked documentation) + + * - :need:`wp__fdr_reports` (module Safety Plan) + - :need:`gd_chklst__safety_plan` + - :ndf:`copy('status', need_id='gd_chklst__safety_plan')` + - <Link to WP> + + * - :need:`wp__fdr_reports` (module Safety Package) + - :need:`gd_chklst__safety_package` + - :ndf:`copy('status', need_id='gd_chklst__safety_package')` + - <Link to WP> + + * - :need:`wp__fdr_reports` (module's Safety Analyses & DFA) + - :need:`gd_chklst__safety_analysis` + - :ndf:`copy('status', need_id='gd_chklst__safety_analysis')` + - :need:`doc__logging_safety_analysis_fdr` + + * - :need:`wp__audit_report` + - performed by external experts + - n/a + - <Link to WP> + + * - :need:`wp__module_safety_manual` + - :need:`gd_temp__safety_manual` + - :ndf:`copy('status', need_id='gd_temp__safety_manual')` + - :need:`doc__logging_safety_manual` + + * - :need:`wp__verification_module_ver_report` + - :need:`gd_temp__mod_ver_report` + - :ndf:`copy('status', need_id='gd_temp__mod_ver_report')` + - :need:`doc__logging_verification_report` + + * - :need:`wp__module_sw_release_note` + - :need:`gd_temp__rel_mod_rel_note` + - :ndf:`copy('status', need_id='gd_temp__rel_mod_rel_note')` + - :need:`doc__logging_release_note` + +Component Logging Backend Work products List +-------------------------------------------- + +.. list-table:: Component Logging Backend 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__logging_backend_requirements` + + * - :need:`wp__requirements_comp_aou` + - :need:`gd_temp__req_aou_req` + - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` + - :need:`doc__logging_backend_comp_aou` + + * - :need:`wp__requirements_inspect` + - :need:`gd_chklst__req_inspection` + - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` + - :need:`doc__logging_backend_req_inspection` + + * - :need:`wp__component_arch` + - :need:`gd_temp__arch_comp` + - :ndf:`copy('status', need_id='gd_temp__arch_comp')` + - :need:`doc__logging_backend_architecture` + + * - :need:`wp__sw_arch_verification` + - :need:`gd_chklst__arch_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` + - tailored as no sub-components are defined + + * - :need:`wp__sw_component_fmea` + - :need:`gd_temp__comp_saf_fmea` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')` + - :need:`doc__logging_backend_fmea` + + * - :need:`wp__sw_component_dfa` + - :need:`gd_temp__comp_saf_dfa` + - :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')` + - :need:`doc__logging_backend_dfa` + + * - :need:`wp__sw_implementation` + - :need:`gd_guidl__implementation` + - :ndf:`copy('status', need_id='gd_guidl__implementation')` + - `DD mw/log <https://github.com/eclipse-score/logging/blob/main/score/mw/log/design/backend/file_output_backend.md>`_ & `mw/log .cpp <https://github.com/eclipse-score/logging/tree/main/score/mw/log/backend>`_ + + * - :need:`wp__verification_sw_unit_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - <Link to WP> + + * - :need:`wp__sw_implementation_inspection` + - :need:`gd_chklst__impl_inspection_checklist` + - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` + - :need:`doc__logging_backend_impl_inspection` + + * - :need:`wp__verification_comp_int_test` + - :need:`gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + - <Link to WP> + +Note: the Data Router component is rated QM and therefore it is not planned here. + +Link to project planning +------------------------ + +<add here a link to your module's planning for the above work products, e.g. a link to a ticket.> + +Module Safety Package +===================== + +To create the safety package (according to :need:`gd_guidl__saf_package`) the following +documents and work products status have to go to "valid" (after the relevant verification were performed). + +Module Documents Status +----------------------- + +For all the work product documents the status can be seen by following the "Link to WP". +A summary of the status is also documented in the project's documentation management plan. + +See <add here the section reference to the documentation management plan> + +Component Documents Status +-------------------------- + +For all the work product documents the status can be seen by following the "Link to WP". +A summary of the status is also documented in the project's documentation management plan. + +See <add here the section reference to the documentation management plan> + +Component Requirements Status +----------------------------- + +.. needtable:: + :filter: docname is not None and "logging_backend" in docname and "requirements" in docname + :style: table + :types: comp_req + :tags: logging_backend + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +Component AoU Status +-------------------- + +.. needtable:: + :filter: docname is not None and "logging_backend" in docname and "requirements" in docname + :style: table + :types: aou_req + :tags: logging_backend + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +Component Architecture Status +----------------------------- + +.. needtable:: + :filter: docname is not None and "logging_backend" in docname and "architecture" in docname + :style: table + :types: comp_arc_sta; comp_arc_dyn + :tags: logging_backend + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +.. _logging_backend_safety_package_deviations: + +Deviations from Module Safety Plan +---------------------------------- + +The following deviations from the module safety plan are present in the module safety package. +These are deviations from planned processes execution and/or workproduct results, +safety anomalies in the sense of known bugs in the software are reported in the release notes. + +<Describe here the deviations, whether they have an impact on module's safety functions, +how these can be mitigated or argued and if and when a resolution is planned.> diff --git a/docs/verification_report/module_verification_report.rst b/docs/verification_report/module_verification_report.rst new file mode 100644 index 00000000..c371d698 --- /dev/null +++ b/docs/verification_report/module_verification_report.rst @@ -0,0 +1,94 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Verification Report +=================== + + +.. document:: Logging Verification Report + :id: doc__logging_verification_report + :status: draft + :version: 1 + :safety: ASIL_B + :security: NO + :realizes: wp__verification_module_ver_report + +This verification report is based on the :need:`gd_temp__verification_plan`. +It covers all the components of the above stated module. + +Currently in logging module there is: + +.. toctree:: + :maxdepth: 1 + + stats + +Verification Report contains: + +**1. Verification Coverage** + +**1.1. on Requirements** + - Lists of component requirements (incl. AoU satisfied by the component) tested by which test case, passed/failed and completeness verdict + (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) + - For external component Assumptions of Use: coverage by platform safety manual or feature/components incl. test case, passed/failed and completeness verdict + - This is split in a list of QM requirements tested and a separate list of tests for ASIL rated requirements. + - List of component requirements (ASIL rated) linked to inspection checklist and verdict (derived from PR export) + +**1.2. on Architecture** + - List of component architecture tags tested by which test case, passed/failed and completeness verdict + (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) + - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. + - List of component architecture tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) + +**1.3. on Detailed Design** + - List of detailed design tags tested by which test case, passed/failed and completeness verdict + (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) + - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. + - List of detailed design tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) + + - The lists may also contain other verification methods like "Analysis" - process tbd + +**2. DFA Report** + - List of the performed component DFA, pass/fail with open mitigations + +**3. Safety Analysis Report** + - List of the performed component Safety Analysis, pass/fail with open mitigations + +**4. Unit Verification Coverage** + +**4.1. Structural Coverage** + - List of the units with C0(line) and C1(branch) coverage absolute and percentage + (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) + - List includes a column for the safety rating of each unit. + +**4.2. Static Code Analysis** + - List of the units with compiler warning numbers and coding rule violation numbers + (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) + - List includes a column for the safety rating of each unit. + +**4.3. Manual Code Inspection** + - List of components (ASIL rated) linked to inspection checklist and verdict (derived from PR export) + +**5. Software component qualification verification report** + - Contains the needed verification results if for some components a qualification of pre-developed SW is performed. + +**6. Test results** + - Test result per test case with status passed/failed/not_run + +**7. Test logs** + - Test log per test case with status passed/failed/not_run + +**Note1:** The verification report is valid for the module version tagged together with the report + +**Note2:** All the above lists are generated automatically diff --git a/docs/logging/stats.rst b/docs/verification_report/stats.rst similarity index 100% rename from docs/logging/stats.rst rename to docs/verification_report/stats.rst