diff --git a/process/folder_templates/features/feature_name/index.rst b/process/folder_templates/features/feature_name/index.rst index 19bec2f462..966514ec46 100644 --- a/process/folder_templates/features/feature_name/index.rst +++ b/process/folder_templates/features/feature_name/index.rst @@ -190,3 +190,4 @@ Footnotes safety_planning/index.rst safety_analysis/fmea.rst safety_analysis/dfa.rst + safety_analysis/platform_dfa.rst diff --git a/process/folder_templates/features/feature_name/safety_analysis/dfa.rst b/process/folder_templates/features/feature_name/safety_analysis/dfa.rst index c12c9c3744..cc30a177f4 100644 --- a/process/folder_templates/features/feature_name/safety_analysis/dfa.rst +++ b/process/folder_templates/features/feature_name/safety_analysis/dfa.rst @@ -13,8 +13,8 @@ # ******************************************************************************* -Dependent Failure Analysis -========================== +DFA (Dependent Failure Analysis) +================================ .. document:: [Your Feature Name] DFA :id: doc__feature_name_dfa @@ -23,6 +23,8 @@ Dependent Failure Analysis :realizes: wp__feature_dfa :tags: template +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + .. attention:: The above directive must be updated according to your Feature. @@ -31,23 +33,25 @@ Dependent Failure Analysis - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs -Dependent Failure Intitiators ------------------------------ +Dependent Failure Initiators +---------------------------- .. code-block:: rst - .. feat_saf_dfa:: - :id: feat_saf_DFA____ - :violation_id: - :violation_effect: - :verifies: - :mitigated_by: < NONE|ID from Feature Requirement> - :sufficient: - :argument: - :status: + .. feat_saf_dfa:: + :violates: <Feature architecture> + :id: feat_saf_dfa__<Feature>__<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 Feature Requirement | ID from AoU Feature 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 feature DFA. - - Remove the ``code-block`` + - The above "code-block" directive must be updated - Fill in all the needed information in the <brackets> diff --git a/process/folder_templates/features/feature_name/safety_analysis/fmea.rst b/process/folder_templates/features/feature_name/safety_analysis/fmea.rst index e12ac53815..f486f0b4a6 100644 --- a/process/folder_templates/features/feature_name/safety_analysis/fmea.rst +++ b/process/folder_templates/features/feature_name/safety_analysis/fmea.rst @@ -13,16 +13,18 @@ # ******************************************************************************* -Safety Analysis : FMEA -====================== +FMEA (Failure Modes and Effects Analysis) +========================================= .. document:: [Your Feature Name] FMEA :id: doc__feature_name_fmea :status: draft :safety: ASIL_B - :realizes: wp__feature_safety_analysis + :realizes: wp__feature_fmea :tags: template +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + .. attention:: The above directive must be updated according to your Feature. @@ -36,18 +38,21 @@ Failure Mode List .. code-block:: rst - .. feat_saf_fmea:: <Element descriptor> - :id: feat_saf_FMEA__<Feature>__<Element descriptor> - :failure_mode: <ID from fault model :need:`gd_guidl__fault_models`> - :failure_effect: <Effect caused by the failure (leading to a violation of a safety goal)> - :verifies: <ID from Feature Architecture> - :mitigated_by: < NONE|ID from Feature Requirement> - :sufficient: <yes|no> - :argument: <text to argument why measure is sufficient> - :status: <valid|invalid> + + .. feat_saf_fmea:: <Title> + :violates: <Feature architecture> + :id: feat_saf_fmea__<Feature>__<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 Feature Requirement | ID from AoU Feature 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 feature FMEA. - - Remove the ``code-block`` + - The above "code-block" directive must be updated - Fill in all the needed information in the <brackets> diff --git a/process/folder_templates/features/feature_name/safety_analysis/platform_dfa.rst b/process/folder_templates/features/feature_name/safety_analysis/platform_dfa.rst new file mode 100644 index 0000000000..e0c7513efd --- /dev/null +++ b/process/folder_templates/features/feature_name/safety_analysis/platform_dfa.rst @@ -0,0 +1,59 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Platform DFA (Dependent Failure Analysis) +========================================= + +.. document:: Platform DFA + :id: doc__platform_dfa + :status: draft + :safety: ASIL_B + :realizes: wp__platform_dfa + :tags: template + +.. note:: The platform DFA is only performed once at platform level to analyse the dependencies between the features of the platform. + The results shall be used as an input for the safety analysis so that general safety mechanisms are only defined once and not in every single safety analysis. + +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + +.. attention:: + The above directive must be updated according to your Feature. + + - Modify ``Your Feature Name`` to be your Feature Name + - Modify ``id`` to be your Feature Name in upper snake case preceded by ``doc__`` and succeeded by ``_dfa`` + - Adjust ``status`` to be ``valid`` + - Adjust ``safety`` and ``tags`` according to your needs + +Dependent Failure Initiators +---------------------------- + +.. code-block:: rst + + .. plat_saf_dfa:: <Title> + :violates: <Feature architecture> + :id: plat_saf_DFA__<Feature>__<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 Feature Requirement | ID from AoU Feature 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 the platform DFA. + + - The above "code-block" directive must be updated + - Fill in all the needed information in the <brackets> diff --git a/process/folder_templates/features/feature_name/safety_planning/index.rst b/process/folder_templates/features/feature_name/safety_planning/index.rst index 778db3133a..90b243a967 100644 --- a/process/folder_templates/features/feature_name/safety_planning/index.rst +++ b/process/folder_templates/features/feature_name/safety_planning/index.rst @@ -70,7 +70,7 @@ Feature Safety Planning - :need:`doc__feature_name_architecture` - doc :ndf:`copy('status', need_id='doc__feature_name_architecture')` & WP below - * - :need:`wp__feature_safety_analysis` + * - :need:`wp__feature_fmea` - <link to process> - <automated> - <link to issue> diff --git a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst index b31d5d5293..d8adec136f 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst @@ -13,8 +13,8 @@ # ******************************************************************************* -Dependent Failure Analysis -========================== +DFA (Dependent Failure Analysis) +================================ .. document:: [Your Component Name] DFA :id: doc__component_name_dfa @@ -23,6 +23,8 @@ Dependent Failure Analysis :realizes: wp__sw_component_dfa :tags: template +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + .. attention:: The above directive must be updated according to your Component. @@ -31,23 +33,25 @@ Dependent Failure Analysis - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs -Dependent Failure Intitiators ------------------------------ +Dependent Failure Initiators +---------------------------- .. code-block:: rst - .. comp_saf_dfa:: <Element descriptor> - :id: comp_saf_DFA__<Component>__<Element descriptor> - :violation_id: <ID from Dependent Failure Initiators list :need:`gd_guidl__dfi`> - :violation_effect: <Effect caused by the initiator (leading to a violation of a safety goal)> - :verifies: <ID from Component Architecture> - :mitigated_by: < NONE|ID from Component Requirement> - :sufficient: <yes|no> - :argument: <text to argument why measure is sufficient> - :status: <valid|invalid> + .. 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. - - Remove the ``code-block`` + - The above "code-block" directive must be updated - Fill in all the needed information in the <brackets> diff --git a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst index 6409304602..dfc74bb47b 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst @@ -13,16 +13,18 @@ # ******************************************************************************* -Safety Analysis : FMEA -====================== +FMEA (Failure Modes and Effects Analysis) +========================================= .. document:: [Your Component Name] FMEA :id: doc__component_name_fmea :status: draft :safety: ASIL_B - :realizes: wp__sw_component_safety_analysis + :realizes: wp__sw_component_fmea :tags: template +.. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. + .. attention:: The above directive must be updated according to your Component. @@ -36,18 +38,20 @@ Failure Mode List .. code-block:: rst - .. comp_saf_fmea:: <Element descriptor> - :id: comp_saf_FMEA__<Component>__<Element descriptor> - :failure_mode: <ID from fault model :need:`gd_guidl__fault_models`> - :failure_effect: <Effect caused by the failure (leading to a violation of a safety goal)> - :verifies: <ID from Component Architecture> - :mitigated_by: < NONE|ID from Component Requirement> - :sufficient: <yes|no> - :argument: <text to argument why measure is sufficient> - :status: <valid|invalid> + .. 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. - - Remove the ``code-block`` + - The above "code-block" directive must be updated - Fill in all the needed information in the <brackets> diff --git a/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst b/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst index 6e560cdaa2..037871021d 100644 --- a/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst +++ b/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst @@ -197,7 +197,7 @@ Component <name> Work products List - Checklist used in Pull Request Review - n/a - * - :need:`wp__sw_component_safety_analysis` + * - :need:`wp__sw_component_fmea` - <Link to process> - <automated> - <Link to issue> @@ -281,7 +281,7 @@ If the OSS element is classified as a - <Link to issue> - <Reasoning for tailoring, needed for example in case of deficits in process Id 3&4 and complexity Ids 1&4> - * - :need:`wp__sw_component_safety_analysis` + * - :need:`wp__sw_component_fmea` - <Link to issue> - <Reasoning for tailoring, could help arguing too high cyclomatic complexity covered by safety mechanisms> diff --git a/process/process_areas/safety_analysis/_assets/safety_analysis_component.drawio.svg b/process/process_areas/safety_analysis/_assets/safety_analysis_component.drawio.svg index 65415ea5e7..db2388d024 100644 --- a/process/process_areas/safety_analysis/_assets/safety_analysis_component.drawio.svg +++ b/process/process_areas/safety_analysis/_assets/safety_analysis_component.drawio.svg @@ -1,468 +1,490 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1261px" height="701px" viewBox="-0.5 -0.5 1261 701" content="<mxfile><diagram id="4ZFHoJgeZY-DZrBdW1qe" name="Page-1">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</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1472px" height="612px" viewBox="-0.5 -0.5 1472 612" content="<mxfile><diagram id="vg9HQUlTpTHXbykUZLvH" name="Page-1">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</diagram></mxfile>"> <defs/> <g> <g> - <path d="M 261 150 L 261 210 L 260.24 266.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 260.17 271.88 L 256.77 264.84 L 260.24 266.63 L 263.77 264.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="50" y="210" width="280" height="330" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 210px; margin-left: 260px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - uses + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 217px; margin-left: 51px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <b> + Component 1 + </b> </div> </div> </div> </foreignObject> - <text x="260" y="213" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses + <text x="190" y="233" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 1 </text> </switch> </g> </g> <g> - <ellipse cx="261" cy="97.5" rx="7.5" ry="7.5" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 261 105 L 261 130 M 261 110 L 246 110 M 261 110 L 276 110 M 261 130 L 246 150 M 261 130 L 276 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 307 217 L 323 217 L 323 237 L 307 237 L 307 233 L 303 233 L 303 229 L 307 229 L 307 225 L 303 225 L 303 221 L 307 221 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 307 221 L 311 221 L 311 225 L 307 225 M 307 229 L 311 229 L 311 233 L 307 233" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 10 0 L 1470 0" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="30" width="300" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 157px; margin-left: 261px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Actor + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 45px; margin-left: 1px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 24px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Component Architecture </div> </div> </div> </foreignObject> - <text x="261" y="169" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Actor + <text x="150" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="24px" text-anchor="middle" font-weight="bold"> + Component Architecture </text> </switch> </g> </g> <g> - <rect x="240" y="60" width="50" height="30" fill="none" stroke="none" pointer-events="all"/> + <path d="M 190 360 L 190 393.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 190 398.88 L 186.5 391.88 L 190 393.63 L 193.5 391.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="100" y="270" width="180" height="90" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 75px; margin-left: 265px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 315px; margin-left: 101px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - User + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <b> + Component 3 + </b> </div> </div> </div> </foreignObject> - <text x="265" y="79" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - User + <text x="190" y="320" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 3 </text> </switch> </g> </g> <g> - <rect x="41" y="274" width="420" height="106" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 257 277 L 273 277 L 273 297 L 257 297 L 257 293 L 253 293 L 253 289 L 257 289 L 257 285 L 253 285 L 253 281 L 257 281 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 281 L 261 281 L 261 285 L 257 285 M 257 289 L 261 289 L 261 293 L 257 293" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="100" y="400" width="180" height="90" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 281px; margin-left: 43px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - kvstorage + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 445px; margin-left: 101px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <b> + Component 4 + </b> </div> </div> </div> </foreignObject> - <text x="43" y="297" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - kvstorage + <text x="190" y="450" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 4 </text> </switch> </g> </g> <g> - <path d="M 311 310 L 391 310 L 391 327.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 391 332.88 L 387.5 325.88 L 391 327.63 L 394.5 325.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 407 L 273 407 L 273 427 L 257 427 L 257 423 L 253 423 L 253 419 L 257 419 L 257 415 L 253 415 L 253 411 L 257 411 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 411 L 261 411 L 261 415 L 257 415 M 257 419 L 261 419 L 261 423 L 257 423" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> + <g/> <g> - <rect x="331" y="334" width="120" height="41.5" fill="#d5e8d4" stroke="#82b366" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + <rect x="410" y="220" width="140" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 355px; margin-left: 332px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - fs + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 142px; height: 140px; padding-top: 220px; margin-left: 410px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; width: 140px; height: 140px; overflow: hidden; color: #333333; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "> + <p style="margin:0px;margin-top:4px;text-align:center;"> + <b> + Interface 1 + </b> + </p> + <hr style="border-style:solid;"/> + <div style="height:2px;"></div> </div> </div> </div> </foreignObject> - <text x="391" y="358" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - fs + <text x="410" y="236" fill="#333333" font-family=""Helvetica"" font-size="16px"> + Interface 1 </text> </switch> </g> </g> <g> - <rect x="191" y="290" width="120" height="40" fill="#d5e8d4" stroke="#82b366" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + <path d="M 330 270 L 403.82 288.46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 408.92 289.73 L 401.28 291.43 L 403.82 288.46 L 402.97 284.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="410" y="420" width="140" height="140" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 310px; margin-left: 192px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - kvs + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 142px; height: 140px; padding-top: 420px; margin-left: 410px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; width: 140px; height: 140px; overflow: hidden; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "> + <p style="margin:0px;margin-top:4px;text-align:center;"> + <b> + Interface 3 + </b> + </p> + <hr style="border-style:solid;"/> + <div style="height:2px;"></div> </div> </div> </div> </foreignObject> - <text x="251" y="314" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - kvs + <text x="410" y="436" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px"> + Interface 3 </text> </switch> </g> </g> <g> - <rect x="31" y="270" width="439" height="120" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> + <path d="M 280 315 L 406.2 484.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 409.33 489.1 L 402.35 485.57 L 406.2 484.89 L 407.97 481.4 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="0" y="0" width="1260" height="60" fill="none" stroke="none" pointer-events="all"/> + <path d="M 190 180 L 190 263.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 190 268.88 L 186.5 261.88 L 190 263.63 L 193.5 261.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="130" y="100" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1258px; height: 1px; padding-top: 30px; margin-left: 2px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> - <div style="display: inline-block; font-size: 32px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - Example: Component architecture kvstorage + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 130px; margin-left: 131px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + User </div> </div> </div> </foreignObject> - <text x="2" y="40" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="32px" font-weight="bold"> - Example: Component architecture kvstorage + <text x="190" y="135" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + User </text> </switch> </g> </g> <g> - <rect x="0" y="620" width="120" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + <path d="M 825 561 L 825 161" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="765" y="101" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 635px; margin-left: 1px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - COMPONENT + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 131px; margin-left: 766px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + User </div> </div> </div> </foreignObject> - <text x="60" y="639" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - COMPONENT + <text x="825" y="136" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + User </text> </switch> </g> </g> <g> - <rect x="0" y="590" width="120" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <path d="M 680 291 L 740 291 L 740 306 L 730 321 L 680 321 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 740 291 L 1430 291 L 1430 521 L 680 521 L 680 321" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 605px; margin-left: 1px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 306px; margin-left: 681px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - PUBLIC API + alt </div> </div> </div> </foreignObject> - <text x="60" y="609" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - PUBLIC API + <text x="710" y="310" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + alt </text> </switch> </g> </g> <g> - <rect x="131" y="630" width="130" height="30" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 710 331 L 770 331 L 770 346 L 760 361 L 710 361 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 770 331 L 1400 331 L 1400 481 L 710 481 L 710 361" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 637px; margin-left: 133px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - SW Module: + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 346px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + alt </div> </div> </div> </foreignObject> - <text x="133" y="653" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - SW Module: + <text x="740" y="350" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + alt </text> </switch> </g> </g> <g> - <rect x="131" y="590" width="130" height="30" fill="none" stroke="#6c8ebf" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <rect x="1000" y="101" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 597px; margin-left: 133px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #6C8EBF; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#6C8EBF, #5c79a3); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - Feature: + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 131px; margin-left: 1001px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + Component 3 </div> </div> </div> </foreignObject> - <text x="133" y="613" fill="#6C8EBF" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - Feature: + <text x="1060" y="136" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 3 </text> </switch> </g> </g> <g> - <rect x="131" y="670" width="130" height="30" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> + <rect x="1240" y="101" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 677px; margin-left: 133px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - <font color="#000000" style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - SEooC: - </font> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 131px; margin-left: 1241px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + Component 4 </div> </div> </div> </foreignObject> - <text x="133" y="693" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - SEooC: + <text x="1300" y="136" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 4 </text> </switch> </g> </g> <g> - <rect x="690" y="187" width="120" height="70" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 1060 561 L 1059.58 161" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 194px; margin-left: 692px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - kvs - </div> - </div> - </div> - </foreignObject> - <text x="692" y="210" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - kvs - </text> - </switch> - </g> + <path d="M 1300 561 L 1299.58 161" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="850" y="187" width="120" height="70" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 830 261 L 1053.63 261" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1058.88 261 L 1051.88 264.5 L 1053.63 261 L 1051.88 257.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 194px; margin-left: 852px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - fs + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 261px; margin-left: 939px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + call component 3 </div> </div> </div> </foreignObject> - <text x="852" y="210" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - fs + <text x="939" y="264" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + call component 3 </text> </switch> </g> </g> <g> - <ellipse cx="591" cy="194.5" rx="7.5" ry="7.5" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 591 202 L 591 227 M 591 207 L 576 207 M 591 207 L 606 207 M 591 227 L 576 247 M 591 227 L 606 247" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1060 311 L 1293.63 311" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1298.88 311 L 1291.88 314.5 L 1293.63 311 L 1291.88 307.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 254px; margin-left: 591px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Actor + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 313px; margin-left: 1190px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + trigger component 4 </div> </div> </div> </foreignObject> - <text x="591" y="266" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Actor + <text x="1190" y="316" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + trigger component 4 </text> </switch> </g> </g> <g> - <rect x="570" y="157" width="50" height="30" fill="none" stroke="none" pointer-events="all"/> + <path d="M 1300 401 L 1066.37 401" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1061.12 401 L 1068.12 397.5 L 1066.37 401 L 1068.12 404.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 172px; margin-left: 595px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - User + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 402px; margin-left: 1190px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + flow component 3 </div> </div> </div> </foreignObject> - <text x="595" y="176" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - User + <text x="1190" y="405" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + flow component 3 </text> </switch> </g> </g> <g> - <path d="M 590 497 L 590 257" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 750 497 L 750 257" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 910 497 L 910 257" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 590 337 L 743.63 337" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 748.88 337 L 741.88 340.5 L 743.63 337 L 741.88 333.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1060 501 L 836.37 501" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 831.12 501 L 838.12 497.5 L 836.37 501 L 838.12 504.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 338px; margin-left: 671px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 501px; margin-left: 933px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - open KVS + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + flow component 1 </div> </div> </div> </foreignObject> - <text x="671" y="341" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - open KVS + <text x="933" y="504" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + flow component 1 </text> </switch> </g> </g> <g> - <path d="M 750 377 L 903.63 377" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 908.88 377 L 901.88 380.5 L 903.63 377 L 901.88 373.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="425" cy="236" rx="10" ry="10" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 378px; margin-left: 831px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - Read defaults file + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 236px; margin-left: 416px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 20px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + I </div> </div> </div> </foreignObject> - <text x="831" y="381" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Read defaults file + <text x="425" y="242" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="20px" text-anchor="middle"> + I </text> </switch> </g> </g> <g> - <path d="M 910 417 L 756.37 417" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 751.12 417 L 758.12 413.5 L 756.37 417 L 758.12 420.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="425" cy="435" rx="10" ry="10" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 418px; margin-left: 831px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - Defaults  file content + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 435px; margin-left: 416px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 20px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + I </div> </div> </div> </foreignObject> - <text x="831" y="421" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Defaults  file content + <text x="425" y="441" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="20px" text-anchor="middle"> + I </text> </switch> </g> </g> <g> - <path d="M 750 457 L 596.37 457" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 591.12 457 L 598.12 453.5 L 596.37 457 L 598.12 460.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="100" y="581" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 458px; margin-left: 671px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - KVS instance + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 596px; margin-left: 101px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + comp_arc_sta__Mab__static </div> </div> </div> </foreignObject> - <text x="671" y="461" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - KVS instance + <text x="145" y="601" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + comp_arc_st... </text> </switch> </g> </g> <g> - <rect x="275" y="195" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + <rect x="760" y="571" width="180" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 210px; margin-left: 276px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 586px; margin-left: 761px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Interface 1 + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + comp_arc_dyn__Mab__ + <span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + call_Component_1 + </span> </div> </div> </div> </foreignObject> - <text x="305" y="214" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Interface 1 + <text x="850" y="591" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + comp_arc_dyn__Mab__cal... </text> </switch> </g> @@ -476,4 +498,4 @@ </text> </a> </switch> -</svg> \ No newline at end of file +</svg> diff --git a/process/process_areas/safety_analysis/_assets/safety_analysis_feature.drawio.svg b/process/process_areas/safety_analysis/_assets/safety_analysis_feature.drawio.svg index 06cf69f6c0..78b99dba46 100644 --- a/process/process_areas/safety_analysis/_assets/safety_analysis_feature.drawio.svg +++ b/process/process_areas/safety_analysis/_assets/safety_analysis_feature.drawio.svg @@ -1,491 +1,617 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1281px" height="681px" viewBox="-0.5 -0.5 1281 681" content="<mxfile><diagram id="vg9HQUlTpTHXbykUZLvH" name="Page-1">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</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1472px" height="922px" viewBox="-0.5 -0.5 1472 922" content="<mxfile><diagram id="vg9HQUlTpTHXbykUZLvH" name="Page-1">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</diagram></mxfile>"> <defs/> <g> <g> - <rect x="70" y="200" width="520" height="340" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 50 300 L 50 260 L 170 260 L 170 300 M 50 300 L 330 300 L 330 510 L 50 510 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 518px; height: 1px; padding-top: 207px; margin-left: 72px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> - <div style="display: inline-block; font-size: 18px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - Platform + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 277px; margin-left: 51px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <div> + <br/> + </div> + <div> + <br/> + </div> + <<module>> </div> </div> </div> </foreignObject> - <text x="72" y="225" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="18px" font-weight="bold"> - Platform + <text x="190" y="293" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle" font-weight="bold"> + ... </text> </switch> </g> </g> <g> - <rect x="90" y="240" width="481" height="290" fill="none" stroke="#6c8ebf" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <rect x="100" y="370" width="180" height="90" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 479px; height: 1px; padding-top: 247px; margin-left: 92px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #6C8EBF; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#6C8EBF, #5c79a3); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - persistency/key-val-storage + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 415px; margin-left: 101px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: normal; word-wrap: normal; "> + <b> + Component 1 + </b> </div> </div> </div> </foreignObject> - <text x="92" y="263" fill="#6C8EBF" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - persistency/key-val-storage + <text x="190" y="420" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 1 </text> </switch> </g> </g> <g> - <path d="M 351 150 L 351 180 L 351 203.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 351 208.88 L 347.5 201.88 L 351 203.63 L 354.5 201.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 377 L 273 377 L 273 397 L 257 397 L 257 393 L 253 393 L 253 389 L 257 389 L 257 385 L 253 385 L 253 381 L 257 381 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 381 L 261 381 L 261 385 L 257 385 M 257 389 L 261 389 L 261 393 L 257 393" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="410" y="370" width="140" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 179px; margin-left: 352px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - uses + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 142px; height: 140px; padding-top: 370px; margin-left: 410px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; width: 140px; height: 140px; overflow: hidden; color: #333333; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "> + <p style="margin:0px;margin-top:4px;text-align:center;"> + <b> + Interface 1 + </b> + </p> + <hr style="border-style:solid;"/> + <div style="height:2px;"></div> </div> </div> </div> </foreignObject> - <text x="352" y="183" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses + <text x="410" y="386" fill="#333333" font-family=""Helvetica"" font-size="16px"> + Interface 1 </text> </switch> </g> </g> <g> - <ellipse cx="351" cy="97.5" rx="7.500000000000001" ry="7.500000000000001" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 351 105 L 351 130 M 351 110 L 336 110 M 351 110 L 366 110 M 351 130 L 336 150 M 351 130 L 366 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 190 160 L 190.5 265.5 L 190.03 363.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 190.01 368.88 L 186.54 361.87 L 190.03 363.63 L 193.54 361.9 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="50" y="270" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 157px; margin-left: 351px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Actor + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 285px; margin-left: 51px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Module a </div> </div> </div> </foreignObject> - <text x="351" y="169" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Actor + <text x="95" y="290" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Module a </text> </switch> </g> </g> <g> - <rect x="179" y="210" width="110" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <path d="M 50 580 L 50 540 L 170 540 L 170 580 M 50 580 L 330 580 L 330 790 L 50 790 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 225px; margin-left: 180px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 557px; margin-left: 51px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - KVS + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <div> + <br/> + </div> + <div> + <br/> + </div> + <span style="background-color: light-dark(#ffffff, var(--ge-dark-color, #121212));"> + <<module>> + </span> </div> </div> </div> </foreignObject> - <text x="234" y="229" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - KVS + <text x="190" y="573" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle" font-weight="bold"> + ... </text> </switch> </g> </g> <g> - <rect x="131" y="274" width="420" height="106" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 280 708.97 L 403.71 728.16" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 408.9 728.97 L 401.44 731.35 L 403.71 728.16 L 402.51 724.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="100" y="650" width="180" height="90" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 281px; margin-left: 133px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - kvstorage + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 695px; margin-left: 101px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <b> + Component 2 + </b> </div> </div> </div> </foreignObject> - <text x="133" y="297" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - kvstorage + <text x="190" y="700" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 2 </text> </switch> </g> </g> <g> - <rect x="60" y="600" width="120" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + <path d="M 257 657 L 273 657 L 273 677 L 257 677 L 257 673 L 253 673 L 253 669 L 257 669 L 257 665 L 253 665 L 253 661 L 257 661 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 257 661 L 261 661 L 261 665 L 257 665 M 257 669 L 261 669 L 261 673 L 257 673" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="50" y="550" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 615px; margin-left: 61px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 565px; margin-left: 51px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - COMPONENT + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Module b </div> </div> </div> </foreignObject> - <text x="120" y="619" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - COMPONENT + <text x="95" y="570" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Module b </text> </switch> </g> </g> <g> - <rect x="60" y="570" width="120" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <rect x="410" y="670" width="140" height="140" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 585px; margin-left: 61px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - PUBLIC API + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 142px; height: 140px; padding-top: 670px; margin-left: 410px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; width: 140px; height: 140px; overflow: hidden; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "> + <p style="margin:0px;margin-top:4px;text-align:center;"> + <b> + Interface 2 + </b> + </p> + <hr style="border-style:solid;"/> + <div style="height:2px;"></div> </div> </div> </div> </foreignObject> - <text x="120" y="589" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - PUBLIC API + <text x="410" y="686" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px"> + Interface 2 </text> </switch> </g> </g> <g> - <rect x="330" y="60" width="50" height="30" fill="none" stroke="none" pointer-events="all"/> + <path d="M 280 420 L 403.71 439.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 408.9 439.83 L 401.44 442.22 L 403.71 439.03 L 402.51 435.31 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 190 460 L 190 643.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 190 648.88 L 186.5 641.88 L 190 643.63 L 193.5 641.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 825 560 L 825 160" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="130" y="100" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 75px; margin-left: 355px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 130px; margin-left: 131px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> User </div> </div> </div> </foreignObject> - <text x="355" y="79" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="190" y="135" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> User </text> </switch> </g> </g> <g> - <rect x="191" y="610" width="130" height="30" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <rect x="765" y="100" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 617px; margin-left: 193px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - SW Module: + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 130px; margin-left: 766px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + User </div> </div> </div> </foreignObject> - <text x="193" y="633" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - SW Module: + <text x="825" y="135" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + User </text> </switch> </g> </g> <g> - <rect x="191" y="570" width="130" height="30" fill="none" stroke="#6c8ebf" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + <path d="M 680 290 L 740 290 L 740 305 L 730 320 L 680 320 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 740 290 L 1430 290 L 1430 520 L 680 520 L 680 320" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 577px; margin-left: 193px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #6C8EBF; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#6C8EBF, #5c79a3); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - Feature: + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 305px; margin-left: 681px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + alt </div> </div> </div> </foreignObject> - <text x="193" y="593" fill="#6C8EBF" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - Feature: + <text x="710" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + alt </text> </switch> </g> </g> <g> - <rect x="60" y="190" width="540" height="360" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> - </g> - <g> - <rect x="191" y="650" width="130" height="30" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> + <path d="M 710 330 L 770 330 L 770 345 L 760 360 L 710 360 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 770 330 L 1400 330 L 1400 480 L 710 480 L 710 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 657px; margin-left: 193px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - <font color="#000000" style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - SEooC: - </font> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 345px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + alt </div> </div> </div> </foreignObject> - <text x="193" y="673" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - SEooC: + <text x="740" y="349" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + alt </text> </switch> </g> </g> <g> - <rect x="121" y="270" width="439" height="120" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> + <rect x="1000" y="100" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="130" y="400" width="200" height="120" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 130px; margin-left: 1001px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + Component 1 + </div> + </div> + </div> + </foreignObject> + <text x="1060" y="135" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 1 + </text> + </switch> + </g> + </g> + <g> + <rect x="1240" y="100" width="120" height="60" rx="9" ry="9" fill="#e1e1ef" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(225, 225, 239), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 407px; margin-left: 132px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - json_al + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 130px; margin-left: 1241px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #e1e1ef; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#e1e1ef, #ededed); white-space: normal; word-wrap: normal; "> + Component 2 </div> </div> </div> </foreignObject> - <text x="132" y="423" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - json_al + <text x="1300" y="135" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Component 2 </text> </switch> </g> </g> <g> - <rect x="120" y="395" width="220" height="130" fill="none" stroke="#00ff00" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 255, 0), rgb(0, 143, 0));"/> + <path d="M 1060 560 L 1059.58 160" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 1300 560 L 1299.58 160" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="0" y="0" width="1280" height="70" fill="none" stroke="none" pointer-events="all"/> + <path d="M 830 260 L 1053.63 260" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1058.88 260 L 1051.88 263.5 L 1053.63 260 L 1051.88 256.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1278px; height: 1px; padding-top: 35px; margin-left: 2px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> - <div style="display: inline-block; font-size: 32px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - Example: Feature architecture persistency + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 260px; margin-left: 939px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + call component 1 </div> </div> </div> </foreignObject> - <text x="2" y="45" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="32px" font-weight="bold"> - Example: Feature architecture persistency + <text x="939" y="263" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + call component 1 </text> </switch> </g> </g> <g> - <rect x="919" y="160" width="120" height="70" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));"/> + <path d="M 1060 310 L 1293.63 310" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1298.88 310 L 1291.88 313.5 L 1293.63 310 L 1291.88 306.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 167px; margin-left: 921px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #B85450; "> - <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#B85450, #d7817e); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> - kvstorage + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 312px; margin-left: 1190px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + trigger component 2 </div> </div> </div> </foreignObject> - <text x="921" y="183" fill="#B85450" font-family=""Helvetica"" font-size="16px" font-weight="bold"> - kvstorage + <text x="1190" y="315" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + trigger component 2 </text> </switch> </g> </g> <g> - <ellipse cx="761" cy="167.5" rx="7.500000000000001" ry="7.500000000000001" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 761 175 L 761 200 M 761 180 L 746 180 M 761 180 L 776 180 M 761 200 L 746 220 M 761 200 L 776 220" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1300 400 L 1066.37 400" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1061.12 400 L 1068.12 396.5 L 1066.37 400 L 1068.12 403.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 227px; margin-left: 761px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Actor + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 401px; margin-left: 1190px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + flow component 2 </div> </div> </div> </foreignObject> - <text x="761" y="239" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Actor + <text x="1190" y="404" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + flow component 2 </text> </switch> </g> </g> <g> - <rect x="740" y="130" width="50" height="30" fill="none" stroke="none" pointer-events="all"/> + <path d="M 1060 500 L 836.37 500" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 831.12 500 L 838.12 496.5 L 836.37 500 L 838.12 503.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 145px; margin-left: 765px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - User + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 500px; margin-left: 933px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + flow component 1 </div> </div> </div> </foreignObject> - <text x="765" y="149" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - User + <text x="933" y="503" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + flow component 1 </text> </switch> </g> </g> <g> - <path d="M 760 470 L 760 230" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 10 0 L 1470 0" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <path d="M 979 470 L 979 230" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 10 920 L 1470 920" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <path d="M 760 310 L 973.63 310" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 978.88 310 L 971.88 313.5 L 973.63 310 L 971.88 306.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="0" y="20" width="260" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 311px; margin-left: 875px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - Remove key + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 258px; height: 1px; padding-top: 35px; margin-left: 1px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 24px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Feature Architecture </div> </div> </div> </foreignObject> - <text x="875" y="314" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Remove key + <text x="130" y="42" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="24px" text-anchor="middle" font-weight="bold"> + Feature Architecture </text> </switch> </g> </g> <g> - <path d="M 980 369 L 766.37 369" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 761.12 369 L 768.12 365.5 L 766.37 369 L 768.12 372.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="425" cy="385" rx="10" ry="10" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 370px; margin-left: 866px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - Sucessfully deleted key + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 385px; margin-left: 416px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 20px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + I </div> </div> </div> </foreignObject> - <text x="866" y="373" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Sucessfully deleted key + <text x="425" y="391" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="20px" text-anchor="middle"> + I </text> </switch> </g> </g> <g> - <rect x="365" y="165" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + <ellipse cx="425" cy="686" rx="10" ry="10" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 180px; margin-left: 366px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 686px; margin-left: 416px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Interface 1 + <div style="display: inline-block; font-size: 20px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + I </div> </div> </div> </foreignObject> - <text x="395" y="184" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Interface 1 + <text x="425" y="692" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="20px" text-anchor="middle"> + I </text> </switch> </g> </g> <g> - <rect x="240" y="380" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + <path d="M 20 224 L 20 201 L 590 201 L 590 224" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 20 224 L 20 851 L 590 851 L 590 224" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 20 224 L 590 224" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 395px; margin-left: 241px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 568px; height: 1px; padding-top: 213px; margin-left: 21px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Interface 2 + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Feature "Mab" </div> </div> </div> </foreignObject> - <text x="270" y="399" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Interface 2 + <text x="305" y="216" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + Feature "Mab" </text> </switch> </g> </g> <g> - <path d="M 240 380 L 240 403.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 240 408.88 L 236.5 401.88 L 240 403.63 L 243.5 401.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="420" cy="417" rx="5" ry="5" fill="#d5e8d4" stroke="#0fcc6b" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(15, 204, 107), rgb(68, 110, 44));"/> </g> <g> - <path d="M 980 430 L 766.37 430" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 761.12 430 L 768.12 426.5 L 766.37 430 L 768.12 433.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="410" y="412" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 431px; margin-left: 866px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - Key not found Error + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 427px; margin-left: 411px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <div style="text-align: left;"> + <span style="background-color: transparent;"> + Call() + </span> + </div> + <div> + Send() + </div> + </div> + </div> + </div> + </foreignObject> + <text x="455" y="432" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + Call()... + </text> + </switch> + </g> + </g> + <g> + <ellipse cx="420" cy="437" rx="5" ry="5" fill="#d5e8d4" stroke="#0fcc6b" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(15, 204, 107), rgb(68, 110, 44));"/> + </g> + <g> + <rect x="70" y="871" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 886px; margin-left: 71px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + feat_arc_sta__Mab__static + </div> + </div> + </div> + </foreignObject> + <text x="115" y="891" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + feat_arc_st... + </text> + </switch> + </g> + </g> + <g> + <rect x="780" y="571" width="90" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 586px; margin-left: 781px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + feat_arc_dyn__Mab__call_Component_1 </div> </div> </div> </foreignObject> - <text x="866" y="434" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Key not found Error + <text x="825" y="591" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> + feat_arc_dy... </text> </switch> </g> @@ -499,4 +625,4 @@ </text> </a> </switch> -</svg> \ No newline at end of file +</svg> diff --git a/process/process_areas/safety_analysis/_assets/safety_analysis_workflow.drawio.svg b/process/process_areas/safety_analysis/_assets/safety_analysis_workflow.drawio.svg deleted file mode 100644 index 4c73e76851..0000000000 --- a/process/process_areas/safety_analysis/_assets/safety_analysis_workflow.drawio.svg +++ /dev/null @@ -1,829 +0,0 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="729px" height="822px" viewBox="-0.5 -0.5 729 822" content="<mxfile><diagram id="EtDZJEeWfqB-28KCXDkk" name="Page-1">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</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 170 150 L 241.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 246.88 150 L 239.88 153.5 L 241.63 150 L 239.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 50 110 L 170 110 L 170 178 Q 140 156.4 110 178 Q 80 199.6 50 178 L 50 122 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 138px; margin-left: 51px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Analyse Platform Feature Architecture - </div> - </div> - </div> - </foreignObject> - <text x="110" y="141" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Analyse Platform Fea... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="68" cy="167" rx="15.000000000000002" ry="15.000000000000002" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 167px; margin-left: 54px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="68" y="171" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 607 110 L 727 110 L 727 178 Q 697 156.4 667 178 Q 637 199.6 607 178 L 607 122 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 138px; margin-left: 608px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Platform Feature DFA - <div> - [status = valid] - </div> - </div> - </div> - </div> - </foreignObject> - <text x="667" y="141" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Platform Feature DFA... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="626" cy="166" rx="16" ry="16" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 30px; height: 1px; padding-top: 166px; margin-left: 611px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 4 - </div> - </div> - </div> - </foreignObject> - <text x="626" y="170" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 4 - </text> - </switch> - </g> - </g> - <g> - <path d="M 487 150 L 600.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 605.88 150 L 598.88 153.5 L 600.63 150 L 598.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 150px; margin-left: 517px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verified - </div> - </div> - </div> - </foreignObject> - <text x="517" y="153" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 467 130 L 467 70 L 7 70 L 7 150 L 40.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 45.88 150 L 38.88 153.5 L 40.63 150 L 38.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 69px; margin-left: 287px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - not verified - </div> - </div> - </div> - </foreignObject> - <text x="287" y="72" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - not verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 467 130 L 487 150 L 467 170 L 447 150 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 150px; margin-left: 448px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 3 - </div> - </div> - </div> - </foreignObject> - <text x="467" y="154" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 3 - </text> - </switch> - </g> - </g> - <g> - <path d="M 368 150 L 440.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 445.88 150 L 438.88 153.5 L 440.63 150 L 438.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 248 110 L 368 110 L 368 178 Q 338 156.4 308 178 Q 278 199.6 248 178 L 248 122 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 138px; margin-left: 249px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Monitor Platform Feature DFA - </div> - </div> - </div> - </foreignObject> - <text x="308" y="141" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Monitor Platform Fea... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="266" cy="167" rx="15.000000000000002" ry="15.000000000000002" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 167px; margin-left: 252px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 2 - </div> - </div> - </div> - </foreignObject> - <text x="266" y="171" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 2 - </text> - </switch> - </g> - </g> - <g> - <rect x="435" y="170" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 185px; margin-left: 436px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Verify DFA - </div> - </div> - </div> - </foreignObject> - <text x="465" y="189" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Verify DFA - </text> - </switch> - </g> - </g> - <g> - <rect x="7" y="0" width="100" height="30" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 15px; margin-left: 57px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature Level - </div> - </div> - </div> - </foreignObject> - <text x="57" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Feature Level - </text> - </switch> - </g> - </g> - <g> - <rect x="5" y="530" width="120" height="30" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 545px; margin-left: 65px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component Level - </div> - </div> - </div> - </foreignObject> - <text x="65" y="549" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Component Level - </text> - </switch> - </g> - </g> - <g> - <path d="M 7 500 L 727 500" fill="none" stroke="#9673a6" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> - </g> - <g> - <path d="M 47 265 L 167 265 L 167 333 Q 137 311.4 107 333 Q 77 354.6 47 333 L 47 277 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 293px; margin-left: 48px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Analyse Feature Architecture - </div> - </div> - </div> - </foreignObject> - <text x="107" y="296" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Analyse Feature Arch... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="65" cy="322" rx="15.000000000000002" ry="15.000000000000002" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 322px; margin-left: 51px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 5 - </div> - </div> - </div> - </foreignObject> - <text x="65" y="326" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 5 - </text> - </switch> - </g> - </g> - <g> - <path d="M 172 660 L 245.63 660" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 250.88 660 L 243.88 663.5 L 245.63 660 L 243.88 656.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 52 620 L 172 620 L 172 688 Q 142 666.4 112 688 Q 82 709.6 52 688 L 52 632 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 648px; margin-left: 53px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Analyse Component Architecture - </div> - </div> - </div> - </foreignObject> - <text x="112" y="651" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Analyse Component Ar... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="70" cy="677" rx="15.000000000000002" ry="15.000000000000002" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 677px; margin-left: 56px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 10 - </div> - </div> - </div> - </foreignObject> - <text x="70" y="681" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 10 - </text> - </switch> - </g> - </g> - <g> - <path d="M 606 260 L 726 260 L 726 328 Q 696 306.4 666 328 Q 636 349.6 606 328 L 606 272 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 288px; margin-left: 607px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Feature FMEA - <div> - [status = valid] - </div> - </div> - </div> - </div> - </foreignObject> - <text x="666" y="291" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Feature FMEA... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="625" cy="316" rx="16" ry="16" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 30px; height: 1px; padding-top: 316px; margin-left: 610px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 8 - </div> - </div> - </div> - </foreignObject> - <text x="625" y="320" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 8 - </text> - </switch> - </g> - </g> - <g> - <path d="M 486 300 L 577 300 L 577 420 L 600.63 420" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 605.88 420 L 598.88 423.5 L 600.63 420 L 598.88 416.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 486 300 L 599.63 300" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 604.88 300 L 597.88 303.5 L 599.63 300 L 597.88 296.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 300px; margin-left: 516px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verified - </div> - </div> - </div> - </foreignObject> - <text x="516" y="303" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 466 280 L 486 300 L 466 320 L 446 300 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 300px; margin-left: 447px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 7 - </div> - </div> - </div> - </foreignObject> - <text x="466" y="304" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 7 - </text> - </switch> - </g> - </g> - <g> - <path d="M 367 300 L 439.63 300" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 444.88 300 L 437.88 303.5 L 439.63 300 L 437.88 296.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 247 260 L 367 260 L 367 328 Q 337 306.4 307 328 Q 277 349.6 247 328 L 247 272 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 288px; margin-left: 248px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - <span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - Monitor Safety Analyses and DFA - </span> - </div> - </div> - </div> - </foreignObject> - <text x="307" y="291" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Monitor Safety Analy... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="263.5" cy="315.5" rx="13.5" ry="13.5" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 316px; margin-left: 251px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 6 - </div> - </div> - </div> - </foreignObject> - <text x="264" y="319" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 6 - </text> - </switch> - </g> - </g> - <g> - <rect x="417" y="329" width="107" height="30" fill="#ffffff" stroke="none" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 105px; height: 1px; padding-top: 344px; margin-left: 418px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Verify Safety Analysis and DFA - </div> - </div> - </div> - </foreignObject> - <text x="471" y="348" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Verify Safety Anal... - </text> - </switch> - </g> - </g> - <g> - <path d="M 467 280 L 467 220 L 7 220 L 7 300 L 40.63 300" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 45.88 300 L 38.88 303.5 L 40.63 300 L 38.88 296.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 221px; margin-left: 285px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - not verified - </div> - </div> - </div> - </foreignObject> - <text x="285" y="224" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - not verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 167.6 299.64 L 240.63 299.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 245.88 299.99 L 238.87 303.46 L 240.63 299.97 L 238.9 296.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 606 380 L 726 380 L 726 448 Q 696 426.4 666 448 Q 636 469.6 606 448 L 606 392 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 408px; margin-left: 607px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Feature DFA - <div> - [status = valid] - </div> - </div> - </div> - </div> - </foreignObject> - <text x="666" y="411" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Feature DFA... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="625" cy="436" rx="16" ry="16" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 30px; height: 1px; padding-top: 436px; margin-left: 610px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 9 - </div> - </div> - </div> - </foreignObject> - <text x="625" y="440" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 9 - </text> - </switch> - </g> - </g> - <g> - <path d="M 607 620 L 727 620 L 727 688 Q 697 666.4 667 688 Q 637 709.6 607 688 L 607 632 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 648px; margin-left: 608px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Component FMEA - <div> - [status = valid] - </div> - </div> - </div> - </div> - </foreignObject> - <text x="667" y="651" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Component FMEA... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="626" cy="676" rx="16" ry="16" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 30px; height: 1px; padding-top: 676px; margin-left: 611px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 13 - </div> - </div> - </div> - </foreignObject> - <text x="626" y="680" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 13 - </text> - </switch> - </g> - </g> - <g> - <path d="M 491 660 L 577 660 L 577 780 L 600.63 780" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 605.88 780 L 598.88 783.5 L 600.63 780 L 598.88 776.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 491 660 L 600.63 660" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 605.88 660 L 598.88 663.5 L 600.63 660 L 598.88 656.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 660px; margin-left: 518px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verified - </div> - </div> - </div> - </foreignObject> - <text x="518" y="663" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 471 640 L 491 660 L 471 680 L 451 660 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 660px; margin-left: 452px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 12 - </div> - </div> - </div> - </foreignObject> - <text x="471" y="664" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 12 - </text> - </switch> - </g> - </g> - <g> - <path d="M 372 660 L 444.63 660" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 449.88 660 L 442.88 663.5 L 444.63 660 L 442.88 656.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 252 620 L 372 620 L 372 688 Q 342 666.4 312 688 Q 282 709.6 252 688 L 252 632 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 648px; margin-left: 253px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - <span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - Monitor Safety Analyses and DFA - </span> - </div> - </div> - </div> - </foreignObject> - <text x="312" y="651" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Monitor Safety Analy... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="268.5" cy="675.5" rx="13.5" ry="13.5" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 676px; margin-left: 256px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 11 - </div> - </div> - </div> - </foreignObject> - <text x="269" y="679" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 11 - </text> - </switch> - </g> - </g> - <g> - <rect x="422" y="689" width="107" height="30" fill="#ffffff" stroke="none" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 105px; height: 1px; padding-top: 704px; margin-left: 423px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Verify Safety Analysis and DFA - </div> - </div> - </div> - </foreignObject> - <text x="476" y="708" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Verify Safety Anal... - </text> - </switch> - </g> - </g> - <g> - <path d="M 472 640 L 472 580 L 12 580 L 12 660 L 45.63 660" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 50.88 660 L 43.88 663.5 L 45.63 660 L 43.88 656.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 581px; margin-left: 290px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - not verified - </div> - </div> - </div> - </foreignObject> - <text x="290" y="584" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - not verified - </text> - </switch> - </g> - </g> - <g> - <path d="M 607 740 L 727 740 L 727 808 Q 697 786.4 667 808 Q 637 829.6 607 808 L 607 752 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 768px; margin-left: 608px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Component DFA - <div> - [status = valid] - </div> - </div> - </div> - </div> - </foreignObject> - <text x="667" y="771" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Component DFA... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="626" cy="796" rx="16" ry="16" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 30px; height: 1px; padding-top: 796px; margin-left: 611px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - 14 - </div> - </div> - </div> - </foreignObject> - <text x="626" y="800" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 14 - </text> - </switch> - </g> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> - <text text-anchor="middle" font-size="10px" x="50%" y="100%"> - Text is not SVG - cannot display - </text> - </a> - </switch> -</svg> \ No newline at end of file diff --git a/process/process_areas/safety_analysis/guidance/dfa_failure_initiators.rst b/process/process_areas/safety_analysis/guidance/dfa_failure_initiators.rst index b223fe0dda..67f9295f52 100644 --- a/process/process_areas/safety_analysis/guidance/dfa_failure_initiators.rst +++ b/process/process_areas/safety_analysis/guidance/dfa_failure_initiators.rst @@ -23,7 +23,10 @@ DFA failure initiators :complies: std_wp__iso26262__software_751, std_wp__iso26262__software_753 -:note: Use the failure initiators to ensure a structured analysis. If a failure doesn't apply, please fill in a short desciption in the violation cause of the analysis so it could be recognized that the analysis is done. If there are additional failure initiators needed, please enlage the list of fault models. +.. note:: Use all applicable failure initiators to ensure a structured analysis. If there are additional failure initiators needed, please enlarge the list of fault models. + +.. note:: An ASIL related message is trustable in that manner that it is not corrupted, repeated, lost, delayed, masqueraded or addressed incorrectly. + **Purpose** @@ -35,45 +38,38 @@ DFA failure initiators 2.1 Shared resources -.. list-table:: DFA shared resources +.. note:: Shared libraries are only than to be considered as a shared resource if the feature and the related safety mechanisms are using this specific library. If the library is not used by the feature or the related safety mechanisms, it is not a shared resource. + +.. list-table:: DFA shared resources (used for Platform DFA) :header-rows: 1 - :widths: 10,30,30,30 + :widths: 10,50,10 * - ID - Violation cause shared resources - - Simplification - - Importance (can be used for priorisation) + - Importance (can be used for prioritization) * - SR_01_01 - Reused software modules - - - Medium * - SR_01_02 - Libraries - - SR_01_01 - Medium * - SR_01_04 - Basic software - - - Medium * - SR_01_05 - Operating system including scheduler - - - Medium * - SR_01_06 - Any service stack, e.g. communication stack - - - Medium * - SR_01_07 - Configuration data - - - Medium * - SR_01_09 - Execution time - - - Medium * - SR_01_10 - Allocated memory - - - Medium @@ -82,39 +78,31 @@ DFA failure initiators .. list-table:: DFA communication between elements :header-rows: 1 - :widths: 10,30,30,30 + :widths: 10,50,10 * - ID - Violation cause communication between elements - - Simplification - - Importance (can be used for priorisation) + - Importance (can be used for prioritization) * - CO_01_01 - Information passed via argument through a function call, or via writing/reading a variable being global to the two software functions (data flow) - - - Medium * - CO_01_02 - Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information - - - Medium * - CO_01_03 - Insertion / sequence of information - - - Medium * - CO_01_04 - Corruption of information, inconsistent data - - - Medium * - CO_01_05 - - Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same informations - - + - Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same information - Medium * - CO_01_06 - Information from a sender received by only a subset of the receivers - - - Medium * - CO_01_07 - Blocking access to a communication channel - - - Medium | 2.3 Shared information inputs @@ -122,27 +110,22 @@ DFA failure initiators .. list-table:: DFA shared information inputs :header-rows: 1 - :widths: 10,30,30,30 + :widths: 10,50,10 * - ID - Violation cause shared information inputs - - Simplification - - Importance (can be used for priorisation) + - Importance (can be used for prioritization) * - SI_01_02 - Configuration data - - - Medium * - SI_01_03 - Constants, or variables, being global to the two software functions - - - Medium * - SI_01_04 - Basic software passes data (read from hardware register and converted into logical information) to two applications software functions - - - Medium * - SI_01_05 - Data / function parameter arguments / messages delivered by software function to more than one other function - - - Medium | 2.4 Unintended impact @@ -150,87 +133,69 @@ DFA failure initiators .. list-table:: DFA unintended impact :header-rows: 1 - :widths: 10,30,30,30 + :widths: 10,50,10 * - ID - Violation cause unintended impact - - Simplification - - Importance (can be used for priorisation) + - Importance (can be used for prioritization) * - UI_01_01 - Memory miss-allocation and leaks - - - Medium * - UI_01_02 - Read/Write access to memory allocated to another software element - - - Medium * - UI_01_03 - Stack/Buffer under-/overflow - - - Medium * - UI_01_04 - Deadlocks - - - Medium * - UI_01_05 - Livelocks - - - Medium * - UI_01_06 - Blocking of execution - - - Medium * - UI_01_07 - Incorrect allocation of execution time - - - Medium * - UI_01_08 - Incorrect execution flow - - - Medium * - UI_01_09 - Incorrect synchronization between software elements - - - Medium * - UI_01_10 - CPU time depletion - - - Medium * - UI_01_11 - Memory depletion - - - Medium * - UI_01_12 - Other HW unavailability - - - Medium | Development failure initiators -| Secition is **only aplicable if a divers SW development is needed** due to decomposition. +| Section is **only applicable if a divers SW development is needed** due to decomposition. :note: Section shall be applied only once to analyse all dependencies of the features. Results shall be checked during of the analysis of new features if this is applicable to the feature. -.. list-table:: DFA development failure initiators +.. list-table:: DFA development failure initiators (Platform DFA) :header-rows: 1 - :widths: 10,30,30,30 + :widths: 10,50,10 * - ID - Violation cause development failure initiators - - Simplification - - Importance (can be used for priorisation) + - Importance (can be used for prioritization) * - SC_01_02 - Same development approaches (e.g. IDE, programming and/or modelling language) - - - Medium * - SC_01_03 - Same personal - - - Medium * - SC_01_04 - Same social-cultural context (even if different personnel). Only applicable if diverse development is needed. - - - Medium * - SC_01_05 - Development fault (e.g. human error, insufficient qualification, insufficient methods). Only applicable if diverse development is needed. - - - Medium diff --git a/process/process_areas/safety_analysis/guidance/dfa_template.rst b/process/process_areas/safety_analysis/guidance/dfa_templates.rst similarity index 58% rename from process/process_areas/safety_analysis/guidance/dfa_template.rst rename to process/process_areas/safety_analysis/guidance/dfa_templates.rst index 6a046403d8..084504f15b 100644 --- a/process/process_areas/safety_analysis/guidance/dfa_template.rst +++ b/process/process_areas/safety_analysis/guidance/dfa_templates.rst @@ -17,21 +17,20 @@ DFA Templates ============= +.. gd_temp:: Platform DFA Templates + :id: gd_temp__plat_saf_dfa + :status: valid + :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524, std_req__iso26262__software_7411, std_req__iso26262__analysis_741, std_req__iso26262__analysis_742, std_req__iso26262__analysis_743, std_req__iso26262__analysis_745, std_req__iso26262__analysis_746, std_req__iso26262__analysis_747, std_req__iso26262__analysis_748, std_req__iso26262__analysis_749, std_req__isopas8926__44432 + + For the content see here: :need:`doc__platform_dfa` + + .. gd_temp:: Feature DFA Templates :id: gd_temp__feat_saf_dfa :status: valid :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524, std_req__iso26262__software_7411, std_req__iso26262__analysis_741, std_req__iso26262__analysis_742, std_req__iso26262__analysis_743, std_req__iso26262__analysis_745, std_req__iso26262__analysis_746, std_req__iso26262__analysis_747, std_req__iso26262__analysis_748, std_req__iso26262__analysis_749, std_req__isopas8926__44432 - | .. feat_saf_dfa:: <Element descriptor> - | :verifies: <Feature architecture> - | :id: feat_saf_DFA__<Feature>__<Element descriptor> - | :violation_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> - | :violation_cause: "description of failure effect of the failure initiator on the element" - | :mitigation: < NONE|ID from Feature Requirement> - | :mitigation_issue: <ID from Issue Tracker| None if no issue needed> - | :sufficient: <yes|no> - | :argument: <text to argument why mitigation is sufficient> - | :status: <valid|invalid> + For the content see here: :need:`doc__feature_name_dfa` .. gd_temp:: Component DFA Templates @@ -39,13 +38,4 @@ DFA Templates :status: valid :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524, std_req__iso26262__software_7411, std_req__iso26262__analysis_741, std_req__iso26262__analysis_742, std_req__iso26262__analysis_743, std_req__iso26262__analysis_745, std_req__iso26262__analysis_746, std_req__iso26262__analysis_747, std_req__iso26262__analysis_748, std_req__iso26262__analysis_749, std_req__isopas8926__44432 - | .. comp_saf_dfa:: <Element descriptor> - | :verifies: <Component architecture> - | :id: comp_saf_DFA__<Component>__<Element descriptor> - | :violation_id: <ID from DFA failure initiators :need:`gd_guidl__dfa_failure_initiators`> - | :violation_cause: "description of failure effect of the failure initiator on the element" - | :mitigation: < NONE|ID from Component Requirement> - | :mitigation_issue: <ID from Issue Tracker| None if no issue needed> - | :sufficient: <yes|no> - | :argument: <text to argument why mitigation is sufficient> - | :status: <valid|invalid> + For the content see here: :need:`doc__component_name_dfa` diff --git a/process/process_areas/safety_analysis/guidance/fault_models_guideline.rst b/process/process_areas/safety_analysis/guidance/fault_models_guideline.rst index 070d75dbb3..4002930aba 100644 --- a/process/process_areas/safety_analysis/guidance/fault_models_guideline.rst +++ b/process/process_areas/safety_analysis/guidance/fault_models_guideline.rst @@ -12,101 +12,88 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Fault Models -============ +FMEA Fault Models +================= -.. gd_guidl:: Fault Models +.. gd_guidl:: FMEA Fault Models :id: gd_guidl__fault_models :status: valid :complies: std_wp__iso26262__software_752, std_req__iso26262__analysis_846 | Fault Model for sequence diagrams +.. note:: Use the applicable fault models to ensure a structured analysis. If there are additional fault models needed, please enlarge the list of fault models. -:note: Use the fault models to ensure a structed analysis. If a fault model doesn't apply, please fill in a short desciption in the violation cause of the analysis so it could be recognized that the analysis is done. If there are additional fault models needed, please enlage the list of fault models. +.. note:: An ASIL related message is trustable in that manner that it is not corrupted, repeated, lost, delayed, masqueraded or addressed incorrectly. - .. list-table:: Fault Models for sequence diagrams - :header-rows: 1 - :widths: 15,6,30,30,15 - * - Element - - ID - - Failure Mode - - Simplification - - Importance (can be used for priorisation) - * - message - - MF_01_01 - - message is not received - - MF_01_05 - - High - * - message - - MF_01_02 - - message received too late - - relevant only if delay is a realistic fault - - Medium - * - message - - MF_01_03 - - message received too early - - usually not a problem - - Low - * - message - - 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 - - High - * - message - - MF_01_05 - - message is corrupted - - - - High - * - message - - MF_01_06 - - message is not sent - - - - High - * - message - - MF_01_07 - - message is unintended sent - - - - High - * - duration/time constraint - - CO_01_01 - - minimum constraint boundary is violated - - - - Medium - * - duration/time constraint - - CO_01_02 - - maximum constraint boundary is violated - - - - High - * - execution - - EX_01_01 - - Process calculates wrong result(s) - - MF_01_05 or MF_01_04 - - High - * - execution - - EX_01_02 - - processing too slow - - relevant only if timing is considered - - Medium - * - execution - - EX_01_03 - - processing too fast - - relevant only if timing is considered - - Medium - * - execution - - EX_01_04 - - loss of execution - - - - High - * - execution - - EX_01_05 - - processing changes to arbitrary process - - - - Medium - * - execution - - EX_01_06 - - processing is not complete (infinite loop) - - - - High +Fault Models for sequence diagrams + .. list-table:: Fault Models for sequence diagrams + :header-rows: 1 + :widths: 15,15,45,15 + + * - Element + - ID + - Failure Mode + - Importance (can be used for prioritization) + * - message + - MF_01_01 + - message is not received (is a subset/more precise description of MF_01_05) + - High + * - message + - MF_01_02 + - message received too late (only relevant if delay is a realistic fault) + - Medium + * - message + - MF_01_03 + - message received too early (usually not a problem) + - Low + * - message + - 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. + - High + * - message + - MF_01_05 + - message is corrupted + - High + * - message + - MF_01_06 + - message is not sent + - High + * - message + - MF_01_07 + - message is unintended sent + - High + * - duration/time constraint + - CO_01_01 + - minimum constraint boundary is violated + - Medium + * - duration/time constraint + - CO_01_02 + - maximum constraint boundary is violated + - High + * - execution + - EX_01_01 + - Process calculates wrong result(s) (is a subset/more precise description of MF_01_05 or MF_01_04) + - High + * - execution + - EX_01_02 + - processing too slow (only relevant if timing is considered) + - Medium + * - execution + - EX_01_03 + - processing too fast (only relevant if timing is considered) + - Medium + * - execution + - EX_01_04 + - loss of execution + - High + * - execution + - EX_01_05 + - processing changes to arbitrary process + - Medium + * - execution + - EX_01_06 + - processing is not complete (infinite loop) + - High diff --git a/process/process_areas/safety_analysis/guidance/safety_analysis_templates.rst b/process/process_areas/safety_analysis/guidance/fmea_templates.rst similarity index 56% rename from process/process_areas/safety_analysis/guidance/safety_analysis_templates.rst rename to process/process_areas/safety_analysis/guidance/fmea_templates.rst index 48085d1382..aa98059fdb 100644 --- a/process/process_areas/safety_analysis/guidance/safety_analysis_templates.rst +++ b/process/process_areas/safety_analysis/guidance/fmea_templates.rst @@ -12,40 +12,22 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -.. _safety_analysis_templates: +.. _FMEA_templates: -Safety Analysis Templates -========================= +FMEA Templates +============== -.. gd_temp:: Feature Safety Analysis Template +.. gd_temp:: Feature FMEA Template :id: gd_temp__feat_saf_fmea :status: valid :complies: std_wp__iso26262__analysis_851, std_wp__iso26262__software_752, std_wp__isopas8926__4524, std_req__iso26262__software_7410, std_req__iso26262__software_7412, std_req__iso26262__analysis_841, std_req__iso26262__analysis_842, std_req__iso26262__analysis_843, std_req__iso26262__analysis_844, std_req__iso26262__analysis_845, std_req__iso26262__analysis_846, std_req__iso26262__analysis_847, std_req__iso26262__analysis_848, std_req__iso26262__analysis_849, std_req__iso26262__analysis_8410, std_req__isopas8926__44431 - | .. feat_saf_fmea:: <Element descriptor> - | :verifies: <Feature architecture> - | :id: feat_saf_FMEA__<Feature>__<Element descriptor> - | :failure_mode: <ID from fault model :need:`gd_guidl__fault_models`> - | :failure_effect: "description of failure effect of the failure initiator on the element" - | :mitigation: < NONE|ID from Feature Requirement> - | :mitigation_issue: <ID from Issue Tracker| None if no issue needed> - | :sufficient: <yes|no> - | :argument: <text to argument why mitigation is sufficient> - | :status: <valid|invalid> + For the content see here: :need:`doc__feature_name_fmea` -.. gd_temp:: Component Safety Analysis Template +.. gd_temp:: Component FMEA Template :id: gd_temp__comp_saf_fmea :status: valid :complies: std_wp__iso26262__analysis_851, std_wp__iso26262__software_752, std_wp__isopas8926__4524, std_req__iso26262__software_7410, std_req__iso26262__software_7412, std_req__iso26262__analysis_841, std_req__iso26262__analysis_842, std_req__iso26262__analysis_843, std_req__iso26262__analysis_844, std_req__iso26262__analysis_845, std_req__iso26262__analysis_846, std_req__iso26262__analysis_847, std_req__iso26262__analysis_848, std_req__iso26262__analysis_849, std_req__iso26262__analysis_8410, std_req__isopas8926__44431 - | .. comp_saf_fmea:: <Element descriptor> - | :verifies: <Component architecture> - | :id: comp_saf_FMEA__<Component>__<Element descriptor> - | :failure_mode: <ID from fault model :need:`gd_guidl__fault_models`> - | :failure_effect: "description of failure effect of the failure initiator on the element" - | :mitigation: < NONE|ID from Component Requirement> - | :mitigation_issue: <ID from Issue Tracker| None if no issue needed> - | :sufficient: <yes|no> - | :argument: <text to argument why mitigation is sufficient> - | :status: <valid|invalid> + For the content see here: :need:`doc__component_name_fmea` diff --git a/process/process_areas/safety_analysis/guidance/index.rst b/process/process_areas/safety_analysis/guidance/index.rst index 86deae5632..618c5b19e2 100644 --- a/process/process_areas/safety_analysis/guidance/index.rst +++ b/process/process_areas/safety_analysis/guidance/index.rst @@ -18,10 +18,10 @@ Guidance .. toctree:: :maxdepth: 1 - safety_analysis_checklist dfa_failure_initiators - dfa_template + dfa_templates fault_models_guideline + fmea_templates + safety_analysis_checklist safety_analysis_guideline safety_analysis_process_reqs - safety_analysis_templates diff --git a/process/process_areas/safety_analysis/guidance/safety_analysis_checklist.rst b/process/process_areas/safety_analysis/guidance/safety_analysis_checklist.rst index 3d4126b08f..85f4d41deb 100644 --- a/process/process_areas/safety_analysis/guidance/safety_analysis_checklist.rst +++ b/process/process_areas/safety_analysis/guidance/safety_analysis_checklist.rst @@ -13,8 +13,8 @@ # ******************************************************************************* -Checklist for Safety Analysis -================================ +Safety Analysis Checklist +========================= .. gd_chklst:: Safety Analysis Checklist Template :id: gd_chklst__safety_analysis @@ -22,7 +22,7 @@ Checklist for Safety Analysis :tags: safety_analysis **Purpose** - The purpose of this safety analysis checklist template is to collect the topics to be checked during verification of the safety analysis. + 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. **Checklist** @@ -37,38 +37,44 @@ Checklist for Safety Analysis - Remarks - Issue link * - REQ_01_01 - - Is / are the safety analysis is / are finished? - - - - No open topics in safety analysis report. + - Is / are the attribute sufficient set correctly? + - The mitigations shall have a direct influence ont the violation by prevention, detection or mitigation to reduce the risk to an acceptable level. + - The mitigations are sufficient. - <yes|no> - * - REQ_01_02 - - Are the templates for DFA and/or Safety Analysis used? - - see :ref:`dfa_templates` / :ref:`safety_analysis_templates` - - Templates are used to generate the DFA or / and Safety Analysis. + - Are the templates for DFA and/or FMEA used? + - See :ref:`dfa_templates` / :ref:`FMEA_templates` and also :ref:`process_requirements_safety_analysis` + - Templates are used to generate the DFA or / and FMEA. - <yes|no> - * - REQ_01_03 - Were the failure initiators / fault models applied? - - see :need:`gd_guidl__dfa_failure_initiators` / :need:`gd_guidl__fault_models` - - The items of the failure initiators / fault models are used to ensure a structured analysis. + - See :need:`gd_guidl__dfa_failure_initiators` / :need:`gd_guidl__fault_models` + - The applicable items of the failure initiators / fault models are used to ensure a structured analysis. For all not applicable items an argument shall be given in the content of the document. - <yes|no> - - + - * - REQ_01_04 - - Is the violation cause clearly and completely described? - - - - The cause of the violation is described completely. The cause can be recognized easily. - - <yes|no> - - - * - REQ_01_05 - - Is the mitigation described completely and in an easily understandable manner? - - - - The mitigation is clearly and completely described. + - Are the failure effects clearly and completely described? + - Use the generic failure effect descriptions and enlarge the description if it's applicable to the considered element. + - The effects of the failure is described completely. The effect can be recognized easily. - <yes|no> - - + - * - REQ_01_06 + - Is the attribute "mitigated by" linked correct? + - Check if the correct failure effect is linked via "mitigated by". + - The "mitigated by" link is correct. + - <yes|no> + - + * - REQ_01_07 + - Is the sufficiency of the "mitigated by" (prevention, detection or mitigation) described or can it be recognized easily? + - The sufficiency of the "mitigated by" is described in the content of the document. It can be recognized easily. + - The "mitigated by" shows clearly that a fault / failure can be mitigated by the linked requirement by prevention, detection or mitigation. It shall be described in the contend. + - <yes|no> + - + * - REQ_01_08 - Is the overall result of the safety analysis described in the report? - - + - It shall be shown in the report if the safety analysis are finished and if all artifacts are "valid" and "sufficient". - The results of the safety analysis are described in the report. The report is available :need:`wp__verification__platform_ver_report`. - <yes|no> - - \ No newline at end of file + - diff --git a/process/process_areas/safety_analysis/guidance/safety_analysis_guideline.rst b/process/process_areas/safety_analysis/guidance/safety_analysis_guideline.rst index 17c5789497..56717016ea 100644 --- a/process/process_areas/safety_analysis/guidance/safety_analysis_guideline.rst +++ b/process/process_areas/safety_analysis/guidance/safety_analysis_guideline.rst @@ -13,75 +13,172 @@ # ******************************************************************************* -Guidelines -########## +Safety Analysis Guidelines +########################## -.. gd_guidl:: Safety Analysis Guideline +.. gd_guidl:: Safety Analysis (DFA and FMEA) Guideline :id: gd_guidl__safety_analysis :status: valid :complies: std_req__iso26262__analysis_841, std_req__iso26262__analysis_842, std_req__iso26262__analysis_843, std_req__iso26262__analysis_844, std_req__iso26262__analysis_847, std_req__iso26262__analysis_848, std_req__iso26262__analysis_849, std_req__iso26262__analysis_8410, std_req__isopas8926__44431, std_req__isopas8926__44432 -This document describes the general guidances for Safety Analysis based on the concept which is defined :need:`Safety Analysis Concept<doc_concept__safety__analysis>`. +This document describes the general guidances for Safety Analysis (DFA and FMEA) based on the concept which is defined :need:`Safety Analysis Concept<doc_concept__safety__analysis>`. +Use the platform DFA as an input so that general safety mechanisms are only defined once and not in every single safety analysis. Workflow for Safety Analysis ============================ -Detailed description which steps are need for a safety analysis. In general the workflow is shown in :need:`doc_getstrt__safety_analysis`. +The workflow of the safety analysis are described in :ref:`workflow_safety_analysis`. The single steps in these workflows are described in detail in the following sections. -#. Analyze the dependencies between features by performing a **single platform feature DFA** that references all platform feature static architecture diagrams, highlighting potential shared use of modules. -#. Monitor the results of the platform feature DFA and log any issues in the Issue Tracking system with the ``safety`` label. -#. Verify the platform feature DFA results by using :need:`gd_chklst__safety_analysis`. -#. Platform feature DFA are completed when the verification is done, no issues are open and the status is "valid". -#. To analyse the Feature Architecture a Safety Analysis and a DFA shall be executed. The results of the platform feature DFA shall be used as an input. -#. Monitor the results of the Safety Analysis and DFA and log any issues in the Issue Tracking system with the ``safety`` label. -#. Verify the Safety Analysis and DFA results by using :need:`gd_chklst__safety_analysis`.. -#. Feature Safety Analysis and DFA are completed when the verification is done, no issues are open and the status is "valid". -#. To analyse the Component Architecture a Safety Analysis and a DFA shall be executed. The results of the feature Safety Analysis and DFA shall be used as an input. -#. Monitor the results of the Safety Analysis and DFA and log any issues in the Issue Tracking system with the ``safety`` label. -#. Verify the Safety Analysis and DFA results by using :need:`gd_chklst__safety_analysis`.. -#. Component Safety Analysis and DFA are completed when the verification is done, no issues are open and the status is "valid". +Step-by-Step-approach FMEA: +^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A example for the safety analysis (FMEA and DFA) is shown in the :ref:`examples_fmea_dfa`. +The analysis is done by using the template :ref:`FMEA_templates` on the feature or component architectural diagrams. By using the fault models <:need:`gd_guidl__fault_models`> +it can be ensured that the analysis is done in a structured way. +Apply the fault model to the diagram and document the results in the template. Use the content of the document :need:`doc__feature_name_fmea`, :need:`doc__component_name_fmea` +to describe e.g. why a fault model is not applicable for the diagram. If a FMEA can't be applied, the reason has to be documented in the +content of the document, so it can be recognized. -Step-by-Step-approach Safety Analysis: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The analysis is done by using the template :ref:`safety_analysis_templates` on the feature or component architectural diagrams -using a diagram specific applied fault model <:need:`gd_guidl__fault_models`>. Apply the fault -model to the diagram and document the results in the template. If a fault model is not applicable, fill in a short remark in the -violation cause that it's not apllicable. So it could be shown that the analysis was done and no fault model is applicable. -The analysis considers single faults that can mitigate a safety requirement. +The attributes of the template are described in :ref:`process_requirements_safety_analysis_attributes`. **Steps:** -* For each dynamic diagram, assign the faults by ID from the fault model and document it as a sphinx-needs directive. -* Document the resulting failure mode and effect and link to a safety requirement that mitigates the violation. -* Document safety mitigation to avoid or control the failure. -* The attributes of the template are described in :ref:`process_requirements_safety_analysis_attributes`. -* Judge if this is sufficient. -* If not, request to update the diagram and the requirements with additional safety mitigation to come to a sufficient outcome by creating an issue. -* The analysis is finished, if for each identified faults a sufficient mitigation exists. -* Unless the attribute sufficient is yes, mitigation and argument attribute can be still empty. -* Continue the analysis until all fault models are checked. -* The verification is done by applying the safety analysis checklist :need:`gd_chklst__safety_analysis`. +#. For each of the safety functions realized by an architecture element check if a fault from the fault model :need:`gd_guidl__fault_models` applies. +#. If a fault model applies, use the template :need:`gd_temp__feat_saf_fmea` or :need:`gd_temp__comp_saf_fmea` to perform the analysis. +#. The title of the analysis should be easily recognizable e.g. "Component xy unintended triggered". +#. Link the violated architecture with the "violates" attribute. +#. Replace the placeholders in the "id" attribute with the name of the feature or component and a short description of the element so that it can be easily identified. +#. Document the fault ID from the fault model :need:`gd_guidl__fault_models` that applies to the element in the "fault_id" attribute. +#. Describe the failure effect of the fault model on the element in the "failure_effect" attribute. Use the failure mode description and enlarge the if it's applicable to the considered element. +#. Document the safety mitigation. This can be a detection, prevention or mitigation of the fault. +#. If there is no mitigation or existing mitigation is not sufficient a mitigation issue has to be created in the Issue Tracking system and linked in the "mitigation_issue" attribute. +#. The analysis is finished, if for each identified fault a sufficient mitigation exists. +#. Unless the attribute sufficient is yes, mitigation and argument attribute can be still empty. +#. Continue the analysis until all applicable fault models are checked. +#. The verification is done by applying the checklist :need:`gd_chklst__safety_analysis`. + +.. note:: If there are changes they have to be analysed with a impact analysis :need:`gd_temp__change__impact_analysis`. If needed the safety analysis (DFA or FMEA) has to be updated accordingly. Therefore all necessary steps have to be repeated. + Step-by-Step-approach DFA: ^^^^^^^^^^^^^^^^^^^^^^^^^^ The analysis is done by using the template :ref:`dfa_templates` on the feature or component architectural diagrams using a list of DFA failure initiators <:need:`gd_guidl__dfa_failure_initiators`>. -If a element of the failure initiators is not applicable, fill in a short remark in the violation cause that it's not applicable. -So it could be shown that the analysis was done and no fault model is applicable. +Use the content of the document :need:`doc__feature_name_dfa`, :need:`doc__component_name_dfa` to describe e.g. why +a failure initiator is not applicable for the diagram. If a DFA can't be applied, the reason has to be documented in the content of the document, so it +can be recognized. + +The attributes of the template are described in :ref:`process_requirements_safety_analysis_attributes`. **Steps:** -* For each failure initiator assign the violation by ID from the DFA failure initiators and document it as a sphinx-needs directive. -* Document the resulting violation causes and effect and link to a safety requirement that mitigates the violation. -* The attributes of the template are described in :ref:`process_requirements_safety_analysis_attributes`. -* Judge if the mitigation is sufficient. If not, request to update the requirements with additional safety mitigation to come to a sufficient outcome. -* The analysis is finished, if for each identified violation a mitigation exists. -* Unless the attribute "sufficient" is "yes", mitigation and argument attribute can be still empty. -* Continue the analysis until all failure initiators are checked. -* The verification is done by appling the safety analysis checklist :need:`gd_chklst__safety_analysis`. +#. For each architectural element check if a failure from the failure initiators :need:`gd_guidl__dfa_failure_initiators` applies. +#. If a failure initiator applies, use the template :need:`gd_temp__feat_saf_dfa` or :need:`gd_temp__comp_saf_dfa` to perform the analysis. +#. The title of the analysis should be easily recognizable e.g. "Component xy unintended triggered". +#. Link the violated architecture with the "violates" attribute. +#. Replace the placeholders in the "id" attribute with the name of the feature or component and a short description of the element so that it can be easily identified. +#. Document the failure ID from the failure initiator :need:`gd_guidl__dfa_failure_initiators` that applies to the element in the "failure_id" attribute. +#. Describe the failure effect of the failure initiator on the element in the "failure_effect" attribute. Use the violation cause description and enlarge the if it's applicable to the considered element. +#. Document the safety mitigation. This can be a detection, prevention or mitigation of the fault. +#. If there is no mitigation or the mitigation is not sufficient a mitigation issue has to be created in the Issue Tracking system and linked in the "mitigation_issue" attribute. +#. The analysis is finished, if for each identified fault a sufficient mitigation exists. +#. Unless the attribute sufficient is yes, mitigation and argument attribute can be still empty. +#. Continue the analysis until all applicable failure initiators are checked. +#. The verification is done by applying the checklist :need:`gd_chklst__safety_analysis`. + +.. note:: If there are changes they have to be analysed with a impact analysis :need:`gd_temp__change__impact_analysis`. If needed the safety analysis (DFA or FMEA) has to be updated accordingly. Therefore all necessary steps have to be repeated. + +.. _examples_fmea_dfa: + +Examples for FMEA and DFA at feature level +========================================== + +For the examples the architectural diagrams :ref:`safety_analysis_feature_example` are used. + +**FMEA:** + +In the dynamic view of the example the "flow component 1" to the user realizes a safety requirement. If we apply the fault model we may +find possible failures. Therefore we need a mitigation. + +.. code-block:: rst + + .. feat_saf_fmea:: Component 1 Call message not received + :violates: feat_arc_dyn__mab__dynamic + :id: feat_saf_fmea__mab__comp1_call_nreceived + :fault_id: MF_01_01 + :failure_effect: Message is not received. This leads to a unavailability of a safety related functionality of the feature. + :mitigated_by: aou_req__mab__call_not_received + :mitigation_issue: + :sufficient: yes + :status: valid + + If the message is not received by the feature it will be unavailable for the user. This has to be detected by the User because + the feature can't detect if it's not called. This requirement is addressed by the AoU requirement aou_req__Mab__func_call_not_received. + +For all fault models that are not applicable, the reason has to be documented in the content of the document, so it can be recognized. An example could be that + +* Fault model FM_01_07 "Message is unintended sent. Component 1 will be unintended triggered." is not applicable, because the component is ASIL B developed, non complex and sufficiently tested. +* Fault model FX_01_04 "loss of execution" is not applicable, because feature is completely deterministic. Other failures like HW failures are not considered in this analysis because it's developed as a SEooC. + + +**DFA:** + +In the static view of the example could be seen that component 1 uses component 2. If we apply the failure initiators we may find the possible failures. + +.. code-block:: rst + + .. feat_saf_dfa:: Mab data corruption + :violates: feat_arc_sta__mab__static + :id: feat_saf_dfa__mab__data_corruption + :failure_id: CO_01_02 + :failure_effect: Data or message corruption will lead to a corruption of the data or message that could violate a safety functionality. + :mitigated_by: feat_req__mab_integritiy_check + :mitigation_issue: + :sufficient: yes + :status: valid + + The feature shall detect and report data corruption. + + The shall be possible to detect and report data corruption. + +* Failure initiator SR_01_01 "reused software modules" is not applicable, no software modules are reused in the feature. +* Failure initiator SI_01_03 "constants, or variables, being global to the two software functions" is not applicable, because it's not possible to create constants or variables that being global to the two software functions in Rust. + + +Examples for FMEA and DFA at component level +============================================ + +For the examples the architectural diagrams :ref:`safety_analysis_feature_example` are used. + +**FMEA:** + +There is no need to do a FMEA on component 3 as it offers the same as component 1 (which we already analyzed in the feature analysis). So we can skip this component. +But please note it in the content of the document. + +It has to be considered if a FMEA has to be done on component 4 or if it's covered by the DFA. + +**DFA:** + +In the dynamic view we see that Component 4 is returning a message to component 3. If we apply the failure initiators we may find the possible +failure: "message corruption" of "flow component 3" - but we find out that this is a flow which is not contributing to the safety function. +Additionally in the static view we see Component 4 is a library used by Component 3. Therefore we have to apply the failure initiators again. + + +.. code-block:: rst + + .. comp_saf_dfa:: Allocated memory + :violates: comp_arc_sta__mab__static + :id: comp_saf_dfa__component4__allocated_memory + :failure_id: SR_01_10 + :failure_effect: Component 4 is using allocated memory of Component 3 + :mitigated_by: comp_req__memory_management + :mitigation_issue: + :sufficient: yes + :status: valid + + The allocation of the memory of Component 4 is managed by the memory management. + +For all failure initiators that are not applicable, the reason has to be documented in the content of the document, so it can be recognized. An example could be that +* Failure initiator CO_01_02 "Data or message corruption" of "flow component 3" is not applicable, this flow is not contributing to the safety function. diff --git a/process/process_areas/safety_analysis/guidance/safety_analysis_process_reqs.rst b/process/process_areas/safety_analysis/guidance/safety_analysis_process_reqs.rst index 98900f84ab..7606fd950e 100644 --- a/process/process_areas/safety_analysis/guidance/safety_analysis_process_reqs.rst +++ b/process/process_areas/safety_analysis/guidance/safety_analysis_process_reqs.rst @@ -17,14 +17,16 @@ Safety Analysis Process Requirements ==================================== +.. note:: Safety analysis is used as a umbrella term for the methods DFA (Dependent Failure Analysis) and FMEA (Failure Mode and Effects Analysis). + .. gd_req:: Safety Analysis Structure - :id: gd_req__saf__structure + :id: gd_req__saf_structure :status: valid :tags: done_automation, safety_analysis - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__support_6432 - Safety Analysis shall be hierarchically grouped into different levels. + Safety Analysis (FMEA and DFA) shall be hierarchically grouped into different levels. Following levels are defined: @@ -37,17 +39,17 @@ Process Safety Analysis Attributes ---------------------------------- .. gd_req:: Safety Analysis attribute: UID - :id: gd_req__saf__attr_uid + :id: gd_req__saf_attr_uid :status: valid :tags: done_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6432 Each Safety Analysis shall have a unique ID. It shall be in a format which is also human readable and consists of - * type of Safety Analysis - * keyword describing the level of analysis - * keyword describing the content of the Safety Analysis + * type of Safety Analysis (DFA or FMEA) + * name of analysed structural element (e.g. Persistency, FEO, etc.) + * element descriptor (e.g. KVS__Open KVS or KVS__GetKeyValue) The naming convention shall be defined in the project and shall be used consistently. @@ -55,129 +57,147 @@ Process Safety Analysis Attributes :id: gd_req__saf__attr_title :status: valid :tags: manual, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__support_6424 The title of the Safety Analysis shall provide a short summary of the description -.. gd_req:: Safety Analysis attribute: mitigation - :id: gd_req__saf__attr_mitigation +.. gd_req:: Safety Analysis attribute: mitigated by + :id: gd_req__saf__attr_mitigated_by :status: valid - :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :tags: prio_1_automation, attribute, optional + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_844, std_req__iso26262__analysis_746, std_req__iso26262__analysis_747 - Each violation shall have an associated mitigation. The mitigation may be a requirement or a brief description of the mitigation. + Each violation shall have an associated mitigation (e.g. prevention, detection or mitigation) or AoU. If mitigation has not yet been implemented, do not use this option. + If status == valid then mitigated_by is mandatory. .. gd_req:: Safety Analysis attribute: mitigation issue :id: gd_req__saf__attr_mitigation_issue :status: valid - :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :tags: prio_1_automation, attribute, optional + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_844, std_req__iso26262__analysis_746, std_req__iso26262__analysis_747 - For every mitigation that is needed a issue shall be created. If a mitigation is already implemented without - an issue, please remark it so this can be reconstructed. + If a new mitigation (e.g. prevention, detection or mitigation) is needed link to the issue and keep status invalid until mitigation is sufficient. .. gd_req:: Safety Analysis attribute: sufficient - :id: gd_req__saf__attr_sufficient + :id: gd_req__saf_attr_sufficient :status: valid :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749, std_req__isopas8926__44431, std_req__isopas8926__44432 - Each mitigation shall have a statement if it's sufficient. + The mitigation(s) (e.g. prevention, detection or mitigation) shall be rated as sufficient with <yes> or <no>. + A mitigation can only be sufficient if a mitigation is linked via the attribute mitigation. -.. gd_req:: Safety Analysis attribute: argument - :id: gd_req__saf__attr_argument +.. gd_req:: Safety Analysis content: argument + :id: gd_req__saf_argument :status: valid :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749, std_req__isopas8926__44433 - The argument shall describe why the mitigation is sufficient or not. If it is not sufficient, the argument shall describe how the mitigation - can be improved to achieve sufficiency. + The argument shall describe why the mitigation (e.g. prevention, detection or mitigation) is sufficient or not. If it is not sufficient, the argument shall describe how the mitigation + can be improved to achieve sufficiency. The argument shall be written in the content. .. gd_req:: Safety Analysis attribute: status - :id: gd_req__saf__attr_status + :id: gd_req__saf_attr_status :status: valid :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749, std_req__isopas8926__44431, std_req__isopas8926__44432 Each safety analysis shall have the status invalid until the analysis is finished. The status shall be set to valid if the analysis is finished and all issues are closed. +.. gd_req:: Safety Analysis attribute: failure effect + :id: gd_req__saf_attr_feffect + :status: valid + :tags: prio_1_automation, attribute, mandatory + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch + :complies: std_req__iso26262__analysis_742 + + Every Safety Analysis shall have a short description of the failure effect (e.g. failure lead to an unintended actuation of the analysed element) + .. _process_requirements_safety_analysis_linkage: Safety Analysis Linkage ''''''''''''''''''''''' .. gd_req:: Safety Analysis Linkage check - :id: gd_req__saf__linkage_check + :id: gd_req__saf_linkage_check :status: valid :tags: prio_1_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_842, std_req__iso26262__software_7410, std_req__iso26262__software_7411 - Safety Analysis shall be linked to at least one dynamic diagram of the architecture on the corresponding level via the attribute verifies. + Safety Analysis shall be linked to the architecture on the corresponding level via the attribute violates. .. gd_req:: Safety Analysis Linkage - :id: gd_req__saf__linkage + :id: gd_req__saf_linkage :status: valid :tags: prio_2_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_842, std_req__iso26262__software_7410, std_req__iso26262__software_7411 - Each Safety Analysis shall be automatically linked to the corresponding dynamic diagram via the "verified by" linkage. + Each Safety Analysis shall be automatically linked (inverse direction) to the corresponding architecture via the "violates by" linkage. .. gd_req:: Safety Analysis attribute: check Requirements linkage - :id: gd_req__saf__attr_requirements_check + :id: gd_req__saf_attr_requirements_check :status: valid :tags: prio_1_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_842, std_req__iso26262__software_7410, std_req__iso26262__software_7411 Safety Analysis shall be linked to a requirement on the corresponding level via the attribute "mitigated by". .. gd_req:: Safety Analysis attribute: Requirements linkage - :id: gd_req__saf__attr_requirements + :id: gd_req__saf_attr_requirements :status: valid :tags: prio_2_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_842, std_req__iso26262__software_7410, std_req__iso26262__software_7411 Each Safety Analysis shall be automatically linked to the corresponding Safety Requirement via the mitigates linkage. .. gd_req:: Safety Analysis attribute: link to Aou - :id: gd_req__saf__attr_aou + :id: gd_req__saf_attr_aou :status: valid :tags: prio_1_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_845 It shall be possible to link Aou. .. gd_req:: Safety Analysis attribute: versioning - :id: gd_req__saf__attr_hash + :id: gd_req__saf_attr_ver :status: valid :tags: prio_2_automation, attribute, automated - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6434 - It shall be possible to provide a versioning for Safety Analysis. It shall be possible to detect any differences in mandatory attributes compared to the versioning: :need:`gd_req__saf__attr_mandatory` + It shall be possible to detect any differences in mandatory attributes compared to the versioning: :need:`gd_req__saf_attr_mandatory` +.. gd_req:: Safety Analysis Linkage status check + :id: gd_req__saf_linkage_status_check + :status: valid + :tags: prio_3_automation, attribute, automated + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch + :complies: std_req__iso26262__analysis_842, std_req__iso26262__software_7410, std_req__iso26262__software_7411 + + It shall be checked that safety analysis can only be linked against valid safety elements (architecture, requirement, AoU). A valid safety element has the attribute 'status == valid' and safety != QM. .. _process_requirements_safety_analysis_checks: -Process Requirements Checks -''''''''''''''''''''''''''' +Safety Analysis Checks +'''''''''''''''''''''' .. gd_req:: Safety Analysis mandatory attributes provided - :id: gd_req__saf__attr_mandatory + :id: gd_req__saf_attr_mandatory :status: valid :tags: prio_1_automation, attribute, check - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749 It shall be checked if all mandatory attributes for each Safety Analysis are provided by the user. For all Safety Analysis following attributes shall be mandatory: @@ -190,55 +210,52 @@ Process Requirements Checks .. gd_req:: Safety Analysis linkage safety - :id: gd_req__saf__linkage_safety + :id: gd_req__saf_linkage_safety :status: valid :tags: prio_2_automation, attribute, check - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749 - It shall be checked that Safety Analysis (Safety != QM) can only be linked against elements with the same ASIL. + It shall be checked that Safety Analysis (DFA and FMEA) can only be linked via mitigate_by against + <Feature | Component | AoU> Requirements with at least one Requirement with the same ASIL or with a higher ASIL + as the corresponding ASIL of the Feature or Component that is analysed and linked via violates. + + +.. gd_req:: Safety Analysis finalization check + :id: gd_req__saf_finalization_check + :status: valid + :tags: prio_2_automation, attribute, automated + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch + :complies: std_req__iso26262__analysis_848, std_req__iso26262__analysis_749, std_req__isopas8926__44431, std_req__isopas8926__44432 + + It shall be checked if all artifacts of the analysis are "valid" and "sufficient". DFA Process Requirements ======================== -.. gd_req:: DFA attribute: violation ID - :id: gd_req__saf__attr_vid +.. gd_req:: DFA attribute: failure ID + :id: gd_req__saf_attr_failure_id :status: valid :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch + :satisfies: wf__analyse_platform_featarch, wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6432 - Each DFA shall have a violation ID. The violation ID is used to identify the related fault <:need:`gd_guidl__dfa_failure_initiators`>. - -.. gd_req:: DFA attribute: violation cause - :id: gd_req__saf__attr_vcause - :status: valid - :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch - :complies: std_req__iso26262__analysis_742 + Each DFA shall have a failure ID. The failure ID is used to identify the related fault <:need:`gd_guidl__dfa_failure_initiators`>. + The failure ID links to the corresponding failure initiator which describes how a potential violation can occur. - Every DFA shall have a short description of the violation cause. FMEA Process Requirements ========================= -.. gd_req:: FMEA attribute: failure mode - :id: gd_req__saf__attr_fmode +.. gd_req:: FMEA attribute: fault ID + :id: gd_req__saf_attr_fault_id :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_featarch, wf__analyse_comparch :complies: std_req__iso26262__analysis_848 - Each FMEA shall have a failure mode. The failure mode is used to identify the related fault <:need:`gd_guidl__fault_models`>. - -.. gd_req:: FMEA attribute: failure effect - :id: gd_req__saf__attr_veffect - :status: valid - :tags: prio_1_automation, attribute, mandatory - :satisfies: wf__analyse_featarch, wf__analyse_comparch - :complies: std_req__iso26262__analysis_849 - - Every FMEA shall have a short description of the failure effect. + Each FMEA shall have a fault ID. The fault ID is used to identify the related fault <:need:`gd_guidl__fault_models`>. + The fault ID links to the corresponding fault which describes how a potential violation can occur. .. needextend:: docname is not None and "process_areas/safety_analysis" in docname diff --git a/process/process_areas/safety_analysis/safety_analysis_concept.rst b/process/process_areas/safety_analysis/safety_analysis_concept.rst index 48b63f7425..dd1a65db9f 100644 --- a/process/process_areas/safety_analysis/safety_analysis_concept.rst +++ b/process/process_areas/safety_analysis/safety_analysis_concept.rst @@ -20,45 +20,67 @@ Concept Description :status: valid :tags: safety_analysis -This section discusses a concept for safety analyses. Inputs for this concept are the requirements of ISO26262 Part 6 Chapter 7 and Part 9 Chapter 7 and 8. +This section discusses a concept for safety analysis. As methods for safety analysis are used DFA (Dependent Failure Analysis) +and FMEA (Failure Mode and Effects Analysis). Inputs for this concept are the requirements of ISO26262 Part 6 Chapter 7 and Part 9 Chapter 7 and 8. + +The objective of the **DFA** is to show the absence of dependent failures. Dependent failures are split into common cause failures and cascading failures. +How to perform a safety analysis is described in :need:`gd_guidl__safety_analysis`. +To have a structured DFA the failure initiators have to be applied :need:`gd_guidl__dfa_failure_initiators`. These are separated into the following categories: + + | - Shared resources: Shared resources are resources that are used by two or more elements. If one element fails, it could lead to a failure in another element. + | - Communication between the two elements: Receiving function is affected by information that is false, lost, sent multiple times, or in the wrong order etc. from the sender. + | - DFA shared information inputs: Same information input used by multiple functions. + | - Unintended impact: Unintended impacts to function due to various failures like deadlocks or memory depletion. + | - Development failure initiators: Failures that occur during the development process, potentially leading to safety issues. + +The objective of the **FMEA** is to show that the architecture created to fulfill the requirements does not introduce possible errors which would +break the safety requirements. Or rather that the possibility of these errors is reduced to an acceptable level.". This can be done by detection, prevention or mitigation. +The FMEA is used to find possible failures and their effects. The possible failures are systematically identified by applying fault models :need:`gd_guidl__fault_models`. + +The DFA shall be performed once at platform level to analyse the dependencies between the features of the platform. +Typically the FMEA and DFA shall be performed at feature level and component level. +If a component have no sub-components, the results of the analysis are the same as at feature level. So no additional consideration is needed. +In this case please document this in the content of the document. Inputs ****** -#. Stakeholders for the safety analysis? +#. Stakeholders for the safety analysis (DFA and FMEA)? #. Who needs which information? -#. How to analyze existing safety mitigation? +#. How to analyse existing safety mitigation? #. How to add new safety mitigations? +#. What analysis shall be done in which level? +#. How to perform the analysis? -Stakeholders for the Safety Analysis -==================================== +Stakeholders for the Safety Analysis (DFA and FMEA) +=================================================== #. :need:`Safety Engineer <rl__safety_engineer>` - * Analyse the platform feature architecture with a DFA - * Analyse the feature architecture with a Safety Analysis and DFA - * Analyse the component architecture with a Safety Analysis and DFA - * Monitor/verify the Safety Analysis and DFA + * Analyse all the feature architectures together with a Platform DFA + * Analyse the feature architecture with a Feature FMEA and Feature DFA + * Analyse the component architecture with a Component FMEA and Component DFA + * Monitor/verify the FMEA and DFA #. :need:`Safety Manager <rl__safety_manager>` - * Approve the safety analysis and DFA - * Approve the verification of the safety analysis and DFA + * Approve the FMEA and DFA + * Approve the verification of the FMEA and DFA #. :need:`Contributor <rl__contributor>` - * Support the safety analyses and DFA - * Support the monitoring and verifying of the safety analyses and DFA + * Support the FMEA and DFA + * Support the monitoring and verifying of the FMEA and DFA #. :need:`Committer <rl__committer>` - * Support the safety analyses and DFA - * Support the monitoring and verifying of the safety analyses and DFA + * Support the FMEA and DFA + * Support the monitoring and verifying of the FMEA and DFA #. :need:`Security Manager <rl__security_manager>` - * Support the safety analyses and DFA - * Support the monitoring and verifying of the safety analyses and DFA + * Support the FMEA and DFA + * Support the monitoring and verifying of FMEA and DFA Standard Requirements @@ -69,15 +91,14 @@ Also requirements of standards need to be taken into consideration: * ISO26262 * ISO SAE 21434 -How to analyze? +How to analyse? =============== -The safety analysis is done on the feature and component architecture. The safety analysis shall be done accompanying to the development. +The safety analysis (DFA and FMEA) are done on the feature and component architecture. The safety analysis (DFA and FMEA) shall be done accompanying to the development. So the results can directly be used for the development of the feature and component. With a iterative approach it is needed to proof the evidence of the functional safety of the functions. -The analysis starts at feature level. With a DFA shall be analysed if there are dependent failures which have to be considered. The analysis -shall be done in the way that we use the static and dynamic diagrams. The following picture shall show the perspective of the User. +The analysis were applied at static and dynamic architecture diagrams. The following pictures showing the perspective of the User. .. _safety_analysis_feature_example: @@ -86,82 +107,51 @@ shall be done in the way that we use the static and dynamic diagrams. The follow :width: 80% :name: safety_analysis_feature_fig - Dynamic Architecture + Feature Architecture -The safety analysis is done with the shown diagrams. The interface 1 and 2 are the interfaces of the feature. These interfaces shall be analyzed with the -fault models :need:`gd_guidl__fault_models` that here could be applied. With the dynamic diagrams the communication between the components can be analysed. -The static diagrams are used to analyse the dependencies. For violations a failure mitigation shall be defined. +With the diagrams the dependencies and signal flows are shown. The analysis is done by applying the fault models :need:`gd_guidl__fault_models` in the above example's dynamic view the "flow component 1" to the user realizes a safety requirement. If we apply the fault model we may find the possible failure: "the message is not sent which leads to the user not being able to ..." - this could be mitigated by telling the user in an AoU: "the feature can not guarantee that the message is sent" +DFA: Here we see in the static view that component 1 uses component 2. If we apply the failure initiators we may find the possible failure: "Component 2 is using up all execution time available to Component 1" which could be avoided by a OS which is reserving time for every component or by running these Components on different processors. +for FMEA and the failure initiators :need:`gd_guidl__dfa_failure_initiators` for DFA. Some fault models and failure initiators may not be applicable +for one safety function. In this case the reason shall be documented in the FMEA/DFA documents. So it can be shown that the analysis is completely done. + +A step-by-step-approach is described in :need:`gd_guidl__safety_analysis`. There are also examples for FMEA and DFA are given in :ref:`examples_fmea_dfa` to show how to use the templates, failure initiators and fault models. .. figure:: _assets/safety_analysis_component.drawio.svg :align: center :width: 80% :name: safety_analysis_component_fig - Safety Analysis Component Perspective - -At component level you can see inside of the component when the component consists of two or more subcomponents. If the component consists of -only one subcomponent there results of the analysis are the same as for the feature level. So no additional consideration is needed. -The component kvstorage consists of two subcomponents, kvs and fs. The dynamic diagram shows the communication between the subcomponents. - -DFA -^^^ + Component Architecture -A DFA :ref:`dfa_templates` shall be used to proof the absence of dependent failures. For the analysis a list -of DFA failure initiators :need:`gd_guidl__dfa_failure_initiators` is available. A step by step approach is recommended to -ensure that all dependent failures are identified :need:`gd_guidl__safety_analysis`. Every failure initiator shall be checked -and if it applies to the feature or component, a mitigation shall be defined. If the failure initiator doesn't apply, a short description -shall be added to the violation cause of the analysis so it could be recognized that the analysis is done. +At component level you can see inside of the component when the component consists of two or more sub-components. If a component has no sub-components +there results of the analysis are the same as at feature level. So no additional consideration is needed. This should be also documented in the content of the document. +In the example the component "Component 1" consists of two sub-components, "Component 3" and "Component 4". -Safety Analysis -^^^^^^^^^^^^^^^ +A step-by-step-approach is described in :need:`gd_guidl__safety_analysis`. There are also examples for FMEA and DFA are given in :ref:`examples_fmea_dfa` to show how to use the templates, failure initiators and fault models. -For the safety analyses the templates :ref:`safety_analysis_templates` shall be used. For the safety analysis we selected -the method FMEA on feature and component level. The safety analysis is done on architectural diagrams (state and sequence diagrams). -For the safety analysis fault models shall be used :need:`gd_guidl__fault_models`. A step by step approach is recommended to -ensure that all dependent failures are identified :need:`gd_guidl__safety_analysis`. Every fault model shall be checked -and if it applies to the feature or component, a mitigation shall be defined. If the fault model doesn't apply, a short description -shall be added to the violation cause of the analysis so it could be recognized that the analysis is done. How to add new safety mitigations? ================================== Identified faults without a mitigation remain open and are tracked in the issue tracking system :need:`wp__issue_track_system` until they are resolved. +A new safety mitigation could be needed e.g. if it can't be shown that the feature or component is completely deterministic and testable. In this case an +additional safety mitigation is needed. + +What analysis shall be done in which level? +=========================================== + +The safety analysis (DFA and FMEA) shall consider the architectural elements on different levels. + +1. **Platform Level**: At this level, the focus is on the overall feature architecture to analyse if there are failures that effects more than one feature. + + | **Example DFA:** Dependencies between features shall be analysed. This could be the usage of modules by different features, shared libraries or shared services. A common cause failure could be a erroneous signal that effects the behavior of several functions. + +2. **Feature Level**: This level involves a more detailed analysis of individual components within the feature. The analysis shall consider the internal structure of components and their interactions with other components in the feature. + + | **Example DFA:** A dependent failure could be if two or more components share a common resource or if they are dependent on the same signal. If one component fails, it could lead to a failure in another component. + | **Example FMEA:** The FMEA shall used to analyse if the safety requirements of a feature can be violated. This might be a unintended sent of a message between two components. + +3. **Component Level**: If a component consists of multiple sub-components, the analysis shall be extended to these sub-components. This level of detail is necessary to identify specific fault models that may not be apparent at higher levels. -.. _examples_fmea_dfa: - -Examples for FMEA and DFA at feature level -========================================== - -**FMEA:** - -| .. feat_saf_fmea:: Remove key -| :verifies: feat_arc_dynamic__kvstorage__remove_key -| :id: FEAT_SAF_FMEA__KVSTORAGE__RemoveKey -| :failure_mode: "MF_01_01" -| :failure_effect: "message is not received" -| :mitigation: Detetion and error handling shall be done outside of the middleware. -| :mitigation_issue: ID from Issue Tracker that defined mitigation will be documented in the assumtions of use (AoU) -| :sufficient: yes -| :argument: This error is handled by the calling application. -| :status: valid - -Use the fault models :need:`gd_guidl__fault_models` to ensure a structured analysis. If a fault model doesn't apply, -please fill in a short description in the violation cause of the analysis so it could be recognized that the analysis -is done. If there are additional fault models needed, please enlarge the list of fault models. - -**DFA:** - -| .. feat_saf_dfa:: Static Architecture Persistency -| :verifies: feat_arc_sta_persistency_static -| :id: feat_saf_DFA__persistency__json_al -| :violation_id: "CO_01_02" -| :violation_cause: "Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information. Failures will lead to falsified execution or to a not available feature. -| :mitigation: feat_req__persistency__integrity_check -| :mitigation_issue: None -| :sufficient: yes -| :argument: The integrity check will ensure that the data is not corrupted and the feature will work as expected. -| :status: valid - -Use the DFA failure initiators :need:`gd_guidl__dfa_failure_initiators` to ensure a structured analysis. If a failure initiator doesn't apply, -please fill in a short description in the violation cause of the analysis so it could be recognized that the analysis is done. If there are -additional failure initiators needed, please enlarge the list of fault models. \ No newline at end of file + | **Example DFA:** Similar to the feature level, but with a focus on the interactions between sub-components within a single component. + | **Example FMEA:** The FMEA shall used to analyse if the safety requirements of a component can be violated. This might be a unintended sent of a message between two sub-components. diff --git a/process/process_areas/safety_analysis/safety_analysis_getstrt.rst b/process/process_areas/safety_analysis/safety_analysis_getstrt.rst index 0b435b0506..d043a9c605 100644 --- a/process/process_areas/safety_analysis/safety_analysis_getstrt.rst +++ b/process/process_areas/safety_analysis/safety_analysis_getstrt.rst @@ -15,28 +15,26 @@ Getting Started ############### -.. doc_getstrt:: Getting Started on Safety Analysis +.. doc_getstrt:: Getting Started on Safety Analysis (FMEA and DFA) :id: doc_getstrt__safety_analysis :status: valid :tags: safety_analysis -This document outlines the steps for performing, monitoring, and verifying safety analysis. + +This document outlines the steps for performing, monitoring, and verifying safety analysis. Safety analysis is used as a umbrella term for the methods +DFA (Dependent Failure Analysis) and FMEA (Failure Mode and Effects Analysis). The concept of performing safety analysis is described in :need:`doc_concept__safety__analysis`. The verification of the architecture is described in :need:`doc_concept__arch__process`. -Safety Analysis Workflow - -The details of what needs to be done in each step are described in the :need:`gd_guidl__safety_analysis`. - -General Workflow -**************** - -.. figure:: _assets/safety_analysis_workflow.drawio.svg - :align: center - :width: 80% - :name: safety_analysis_workflow_fig - - +Safety Analysis Steps +********************* +The goal of the safety analysis is to proof that the safety requirements for functions and safety mechanisms are not violated. +The safety analysis is performed in three steps. +* Analyse the architecture with a DFA and FMEA. +* Monitor the DFA and FMEA and log any issues in the Issue Tracking system with the ``safety`` label until the analysis is completed. +* Verify the FMEA and DFA results by using :need:`gd_chklst__safety_analysis`. The safety analysis are completed when the verification is done, no issues are open and the status is “valid”. +The details of what needs to be done in each step are described in the :need:`gd_guidl__safety_analysis`. For the safety analysis +templates are used. The templates are described in the :ref:`FMEA_templates` and :ref:`DFA_templates`. diff --git a/process/process_areas/safety_analysis/safety_analysis_roles.rst b/process/process_areas/safety_analysis/safety_analysis_roles.rst index c8722b712b..e4a1a04ea3 100644 --- a/process/process_areas/safety_analysis/safety_analysis_roles.rst +++ b/process/process_areas/safety_analysis/safety_analysis_roles.rst @@ -15,22 +15,19 @@ Roles ##### -Roles ------ - .. role:: Safety Engineer :id: rl__safety_engineer :status: valid :contains: rl__committer - The safety engineer is responsible for content and processing of all work products required in the project. + The safety engineer is responsible for the safety analysis (FMEA and DFA) in the project. There might be several analysis + on different levels (e.g., Platform DFA, Feature and Component FMEA/DFA). Required skills * Degree: Master's degree in electrical engineering/computer science/mathematics, or similar degree, or comparable work experience - * Solid understanding of functional safety engineering including safety analysis - * Knowledge of safety management - * Deep understanding of quality criteria and the correlating methods and procedures to achieve and verify them + * Deep understanding of functional safety engineering including safety analysis (e.g., FMEA, DFA) + * Knowledge of safety management to ensure collaboration with the Safety Manager * Technical know-how of embedded systems * Preferred training: Automotive Functional Safety Expert (AFSE) or similar @@ -48,7 +45,7 @@ Roles Responsibility - * Analyse Feature and Component Architecture by performing Safety Analysis and DFA + * Analyse Feature and Component Architecture by performing FMEA and DFA * Monitor Safety Analyses and DFA * Verify Safety Analyses and DFA * Create the Safety Manual @@ -56,7 +53,7 @@ Roles Authority * Escalation of safety topics to the Safety Manager - * Creation of Issues in the Issue Tracking System for needed mitigations + * Creation of Issues in the Issue Tracking System for needed mitigations (e.g. prevention, detection or mitigation) Contributing Roles: @@ -65,6 +62,6 @@ Contributing Roles: * :need:`Safety Manager <rl__safety_manager>` * :need:`Security Manager <rl__security_manager>` -A detailed overview of the responsibility for the steps of the safety analysis process is listed in the section titled "Workflow for Safety Analysis". You can find it here: +A detailed overview of the responsibility for the steps of the safety analysis process is listed in the section titled "Workflow for safety analysis". You can find it here: :ref:`workflow_safety_analysis` diff --git a/process/process_areas/safety_analysis/safety_analysis_workflow.rst b/process/process_areas/safety_analysis/safety_analysis_workflow.rst index 11d36b5823..51c9a71df5 100644 --- a/process/process_areas/safety_analysis/safety_analysis_workflow.rst +++ b/process/process_areas/safety_analysis/safety_analysis_workflow.rst @@ -18,7 +18,9 @@ Workflow Safety Analysis ######################## -.. workflow:: Analyse Platform Feature Architecture +Safety analysis is used as a umbrella term for the methods FMEA (Failure Modes and Effects Analysis) and DFA (Dependent Failure Analysis). + +.. workflow:: Analyze Platform Feature Architecture :id: wf__analyse_platform_featarch :status: valid :tags: safety_analysis @@ -26,11 +28,12 @@ Workflow Safety Analysis :approved_by: rl__safety_manager :supported_by: rl__contributor, rl__committer, rl__security_manager :input: wp__requirements__feat, wp__feature_arch, wp__issue_track_system - :output: wp__platform_feature_dfa + :output: wp__platform_dfa :contains: gd_guidl__dfa_failure_initiators, gd_temp__feat_saf_dfa :has: doc_concept__safety__analysis, doc_getstrt__safety_analysis - | With a platform features DFA the potential common usage of modules shall be analyzed. It shall be used as an input for all other DFA's. + | With a platform DFA the potential common usage of modules shall be analysed. It shall be used as an input for all other DFA's. + | There will be only one platform DFA. .. workflow:: Analyse Feature Architecture :id: wf__analyse_featarch @@ -40,12 +43,12 @@ Workflow Safety Analysis :approved_by: rl__safety_manager :supported_by: rl__contributor, rl__committer, rl__security_manager :input: wp__requirements__feat, wp__feature_arch, wp__issue_track_system - :output: wp__feature_safety_analysis, wp__feature_dfa + :output: wp__feature_fmea, wp__feature_dfa :contains: gd_guidl__dfa_failure_initiators, gd_temp__feat_saf_dfa, gd_guidl__fault_models, gd_temp__feat_saf_fmea :has: doc_concept__safety__analysis, doc_getstrt__safety_analysis - | The safety analysis and DFA for the feature is executed. - + | The FMEA and DFA for the feature is executed. + .. workflow:: Analyse Component Architecture :id: wf__analyse_comparch :status: valid @@ -54,46 +57,46 @@ Workflow Safety Analysis :approved_by: rl__safety_manager :supported_by: rl__contributor, rl__committer, rl__security_manager :input: wp__requirements__comp, wp__component_arch, wp__issue_track_system - :output: wp__sw_component_safety_analysis, wp__sw_component_dfa + :output: wp__sw_component_fmea, wp__sw_component_dfa :contains: gd_guidl__dfa_failure_initiators, gd_temp__comp_saf_dfa, gd_guidl__fault_models, gd_temp__comp_saf_fmea :has: doc_concept__safety__analysis, doc_getstrt__safety_analysis - | The safety analysis and DFA for the component is executed. + | The FMEA and DFA for the component is executed. -.. workflow:: Monitor Safety Analyses and DFA +.. workflow:: Monitor FMEA and DFA :id: wf__mr_saf_analyses_dfa :status: valid :tags: safety_analysis :responsible: rl__safety_engineer :approved_by: rl__safety_manager :supported_by: rl__contributor, rl__committer, rl__security_manager - :input: wp__feature_safety_analysis, wp__feature_dfa, wp__sw_component_safety_analysis, wp__sw_component_dfa + :input: wp__feature_fmea, wp__feature_dfa, wp__sw_component_fmea, wp__sw_component_dfa :output: wp__verification__platform_ver_report, wp__issue_track_system, wp__verification__module_ver_report :contains: gd_guidl__dfa_failure_initiators, gd_temp__feat_saf_dfa, gd_temp__comp_saf_dfa, gd_guidl__fault_models, gd_temp__feat_saf_fmea, gd_temp__comp_saf_fmea :has: doc_concept__safety__analysis, doc_getstrt__safety_analysis - | The safety analyses and DFA are monitored. + | The FMEA and DFA are monitored. -.. workflow:: Verify Safety Analyses and DFA +.. workflow:: Verify FMEA and DFA :id: wf__vy_saf_analyses_dfa :status: valid :tags: safety_analysis :responsible: rl__safety_engineer :approved_by: rl__safety_manager :supported_by: rl__contributor, rl__committer, rl__security_manager - :input: wp__feature_safety_analysis, wp__feature_dfa, wp__sw_component_safety_analysis, wp__sw_component_dfa + :input: wp__platform_dfa, wp__feature_fmea, wp__feature_dfa, wp__sw_component_fmea, wp__sw_component_dfa :output: wp__verification__platform_ver_report, wp__verification__module_ver_report :contains: gd_guidl__dfa_failure_initiators, gd_temp__feat_saf_dfa, gd_temp__comp_saf_dfa, gd_guidl__fault_models, gd_temp__feat_saf_fmea, gd_temp__comp_saf_fmea, gd_chklst__safety_analysis :has: doc_concept__safety__analysis, doc_getstrt__safety_analysis - | The safety analyses and DFA are verified. + | The FMEA and DFA are verified. The verification criteria is that it can be proven that the safety requirements for functions and the corresponding safety monitoring are not violated. -RAS(IC) for Safety Analysis -*************************** +RAS(IC) for Safety Analysis (FMEA and DFA) +******************************************* -.. needtable:: RASIC Overview for Safety Analysis +.. needtable:: RASIC Overview for Safety Analysis (FMEA and DFA) :tags: safety_analysis :filter: "safety_analysis" in tags and type == "workflow" and is_external == False :style: table diff --git a/process/process_areas/safety_analysis/safety_analysis_workproducts.rst b/process/process_areas/safety_analysis/safety_analysis_workproducts.rst index 1d2aab2b7f..e53ceb1f6a 100644 --- a/process/process_areas/safety_analysis/safety_analysis_workproducts.rst +++ b/process/process_areas/safety_analysis/safety_analysis_workproducts.rst @@ -15,45 +15,51 @@ Workproducts Safety Analysis ############################ -.. workproduct:: Platform Feature DFA - :id: wp__platform_feature_dfa +.. workproduct:: Platform DFA + :id: wp__platform_dfa :status: valid :complies: std_wp__iso26262__software_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524 - | Analyze the dependencies between features that references all platform feature static architecture diagrams, highlighting potential shared use of modules. - -.. workproduct:: Feature Safety Analysis - :id: wp__feature_safety_analysis + Analyse the dependencies between features that references all platform feature static architecture diagrams, highlighting potential shared use of modules. + +.. workproduct:: Feature FMEA + :id: wp__feature_fmea :status: valid :complies: std_wp__iso26262__software_751, std_wp__iso26262__analysis_851, std_wp__isopas8926__4524 - | Bottom-Up Safety Analysis with e.g. FMEA method, verifies the feature architecture (as part of SW Safety Concept) - | - Detection and prevention mitigations linked to Software Feature Requirements or Feature Assumptions of Use + FMEA verifies the feature architecture (as part of SW Safety Concept) + + Detections, preventions, mitigations linked to Software Feature Requirements or Feature Assumptions of Use .. workproduct:: Feature DFA :id: wp__feature_dfa :status: valid :complies: std_wp__iso26262__software_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524 - | Dependent Failure Analysis on feature level - | - Detection and prevention mitigations linked to Software Feature Requirements or Feature Assumptions of Use - | Perform analysis on interactions between safety related and non-safety related modules or modules with different ASIL of one feature. + Dependent Failure Analysis on feature level + + Detections, preventions, mitigations linked to Software Feature Requirements or Feature Assumptions of Use + + Perform analysis on interactions between safety related and non-safety related modules or modules with different ASIL of one feature. -.. workproduct:: Component Safety Analysis - :id: wp__sw_component_safety_analysis +.. workproduct:: Component FMEA + :id: wp__sw_component_fmea :status: valid :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__analysis_851, std_wp__isopas8926__4524 - | Bottom-Up Safety Analysis with e.g. FMEA method, verifies the component architecture (as part of SW Safety Concept) - | - Detection and prevention mitigations linked to Software Component Requirements or Assumptions of Use + FMEA, verifies the component architecture (as part of SW Safety Concept) + + Detections, preventions, mitigations linked to Software Component Requirements or Assumptions of Use .. workproduct:: Component DFA :id: wp__sw_component_dfa :status: valid :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753, std_wp__isopas8926__4524 - | Dependent Failure Analysis on component/module level - | - Detection and prevention mitigations linked to Software Component Requirements or Assumptions of Use - | Perform analysis of safety related and non-safety related sub-elements or sub-elements with different ASIL. - | Perform analysis on interactions between safety related and non-safety related sub-components or sub-components with different ASIL of one component. Including potential influences from the other components in the component's module. + Dependent Failure Analysis on component/module level + + Detections, preventions, mitigations linked to Software Component Requirements or Assumptions of Use + + Perform analysis of safety related and non-safety related sub-elements or sub-elements with different ASIL. + Perform analysis on interactions between safety related and non-safety related sub-components or sub-components with different ASIL of one component. Including potential influences from the other components in the component's module. diff --git a/process/process_areas/safety_management/guidance/guideline_safety_management.rst b/process/process_areas/safety_management/guidance/guideline_safety_management.rst index 8c66dc4b8b..1ef591034a 100644 --- a/process/process_areas/safety_management/guidance/guideline_safety_management.rst +++ b/process/process_areas/safety_management/guidance/guideline_safety_management.rst @@ -86,8 +86,8 @@ Safety Management Guideline | | **Planning of dependent failures and safety analyses:** | In cases where the components consist of sub-components there will be more than one architecture level. DFA and Safety analysis will then be done on these multiple levels. See the respective work products: - | * feature level: :need:`wp__feature_safety_analysis` and :need:`wp__feature_dfa` - | * component level: :need:`wp__sw_component_safety_analysis` and :need:`wp__sw_component_dfa` + | * feature level: :need:`wp__feature_fmea` and :need:`wp__feature_dfa` + | * component level: :need:`wp__sw_component_fmea` and :need:`wp__sw_component_dfa` | | **Provision of the confidence in the use of software tools:** | Tool Management planning is part of the :need:`wp__platform_mgmt`. The respective work product to be planned as an issue of the generic safety plan is the :need:`wp__tool_verification_report`, which contains tool evaluation and if applicable qualification of the SW platform toolchain. diff --git a/process/process_areas/safety_management/workflows.rst b/process/process_areas/safety_management/workflows.rst index 215c668f63..5f30beff3d 100644 --- a/process/process_areas/safety_management/workflows.rst +++ b/process/process_areas/safety_management/workflows.rst @@ -91,7 +91,7 @@ Workflows :status: valid :responsible: rl__safety_engineer :approved_by: rl__safety_manager - :input: wp__requirements__feat_aou, wp__requirements__feat, wp__feature_arch, wp__feature_safety_analysis, wp__feature_dfa, wp__requirements__comp_aou, wp__requirements__comp, wp__component_arch, wp__sw_component_safety_analysis, wp__sw_component_dfa + :input: wp__requirements__feat_aou, wp__requirements__feat, wp__feature_arch, wp__feature_fmea, wp__feature_dfa, wp__requirements__comp_aou, wp__requirements__comp, wp__component_arch, wp__sw_component_fmea, wp__sw_component_dfa :output: wp__platform_safety_manual, wp__module_safety_manual :contains: gd_guidl__saf_man, gd_temp__safety_manual :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process diff --git a/process/process_areas/security_management/security_management_workflow.rst b/process/process_areas/security_management/security_management_workflow.rst index 7e06c0e133..f7004abeac 100644 --- a/process/process_areas/security_management/security_management_workflow.rst +++ b/process/process_areas/security_management/security_management_workflow.rst @@ -89,7 +89,7 @@ Workflow Security Management :responsible: rl__security_manager :approved_by: rl__technical_lead, rl__module_lead :supported_by: rl__safety_manager - :input: wp__requirements__feat_aou, wp__requirements__feat, wp__feature_arch, wp__feature_safety_analysis, wp__feature_dfa, wp__requirements__comp_aou, wp__requirements__comp, wp__component_arch, wp__sw_component_safety_analysis, wp__sw_component_dfa + :input: wp__requirements__feat_aou, wp__requirements__feat, wp__feature_arch, wp__feature_fmea, wp__feature_dfa, wp__requirements__comp_aou, wp__requirements__comp, wp__component_arch, wp__sw_component_fmea, wp__sw_component_dfa :output: wp__platform_security_manual, wp__module_security_manual :contains: gd_guidl__security_manual, gd_temp__security_manual, gd_guidl__security_plan_definitions :has: doc_concept__security_management_process, doc_getstrt__security_management_process diff --git a/process/process_areas/verification/workflows.rst b/process/process_areas/verification/workflows.rst index 87d467855a..e817df4dc6 100644 --- a/process/process_areas/verification/workflows.rst +++ b/process/process_areas/verification/workflows.rst @@ -157,7 +157,7 @@ Workflow Verification :supported_by: rl__safety_manager, rl__infrastructure_tooling_community :input: wp__verification__plan, wp__requirements__comp, wp__requirements__comp_aou, wp__component_arch, wp__module_sw_release_note, wp__platform_mgmt, - wp__sw_component_safety_analysis, wp__sw_component_dfa, + wp__sw_component_fmea, wp__sw_component_dfa, wp__sw_arch_verification, wp__sw_implementation_inspection, wp__requirements__inspect, wp__verification__comp_int_test, wp__verification__sw_unit_test :output: wp__verification__module_ver_report @@ -181,7 +181,7 @@ Workflow Verification :supported_by: rl__safety_manager, rl__infrastructure_tooling_community :input: wp__verification__plan, wp__requirements__stkh, wp__requirements__feat, wp__requirements__feat_aou, wp__feature_arch, wp__platform_sw_release_note, wp__platform_mgmt, - wp__feature_safety_analysis, wp__feature_dfa, + wp__feature_fmea, wp__feature_dfa, wp__platform_dfa, wp__sw_arch_verification, wp__requirements__inspect, wp__verification__feat_int_test, wp__verification__platform_test :output: wp__verification__platform_ver_report