From 7b403db9623cce1ff66dbfb1910f5fcef1a3312c Mon Sep 17 00:00:00 2001 From: Armin Bartsch Date: Wed, 14 May 2025 21:26:28 +0200 Subject: [PATCH 1/8] First draft of FEO safety manual, covering AoU wrt Rust std library. fixes: none Change-Id: I370c540444e7c68173c1532bf75ddc4c189f57cf --- .../frameworks/feo/modules/feo/docs/index.rst | 22 +++ .../modules/feo/docs/manual/safety_manual.rst | 150 ++++++++++++++++++ .../features/frameworks/feo/modules/index.rst | 27 ++++ docs/features/frameworks/index.rst | 1 + 4 files changed, 200 insertions(+) create mode 100644 docs/features/frameworks/feo/modules/feo/docs/index.rst create mode 100644 docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst create mode 100644 docs/features/frameworks/feo/modules/index.rst diff --git a/docs/features/frameworks/feo/modules/feo/docs/index.rst b/docs/features/frameworks/feo/modules/feo/docs/index.rst new file mode 100644 index 0000000000..cdfd4edd07 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/docs/index.rst @@ -0,0 +1,22 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +FEO Module Documentation +######################## + +.. toctree:: + :maxdepth: 1 + + manual/safety_manual diff --git a/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst b/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst new file mode 100644 index 0000000000..3be7d6a037 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst @@ -0,0 +1,150 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +FEO Module Safety Manual Draft +============================== + +Introduction/Scope +------------------ +This is a first *partial draft* version of the FEO (Fixed Order Execution Environment) module safety manual. +For now it only contains Assumptions of Use related to the use of Rust libraries. + +Assumed Platform Safety Requirements +------------------------------------ +For the following safety related stakeholder requirements are assumed to define the top level functionality (purpose)>. I.e. from these all the feature and component requirements implemented are derived. + + +Assumptions of Use +------------------ + +Assumptions on the Environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +| Generally the assumption of the S-CORE platform SEooC is that it is integrated in a safe system, i.e. the POSIX OS it runs on is qualified and also the HW related failures are taken into account by the system integrator, if not otherwise stated in the module's safety concept. + + +.. aou_req:: on_target_crates + :id: aou_req__feo__on_target_crates + :reqtype: Functional + :security: YES + :safety: ASIL_B + :status: invalid + + The following list is *not yet complete*. It needs to be refined based on a final implementation. + Only the following crates of the FEO module shall be used to build code that runs on + targets in release builds. + + - feo + - feo-cpp-build + - feo-cpp-macros + - feo-time + + +.. aou_req:: rust_core_lib + :id: aou_req__feo__rust_core_lib + :reqtype: Functional + :security: YES + :safety: ASIL_B + :status: valid + + The Rust core lib shall be safety qualified + + +.. aou_req:: rust_std_lib_modules + :id: aou_req__feo__rust_std_lib_modules + :reqtype: Functional + :security: YES + :safety: ASIL_B + :status: invalid + + The following list is *not yet complete*. It needs to be refined based on a final implementation. + At the moment, it covers probably about 95% of std library usages. + An accurate list could be determined by switching feo to #![no_std] and looking at the compilation errors, + but it gets quickly out of date with a changing codebase. + The following items from the Rust std library shall be safety qualified: + + - std::collections::HashMap + - std::collections::HashSet + - std::fs::File + - std::fs::OpenOptions + - std::io::BufWriter + - std::io::Cursor + - std::io::Error + - std::io::Read + - std::io::Result + - std::io::Write + - std::net::TcpStream + - std::path::Path + - std::path::PathBuf + - std::sync::mpsc::bounded + - std::sync::mpsc::Receiver + - std::sync::mpsc::RecvTimeoutError + - std::sync::mpsc::SyncSender + - std::sync::OnceLock + - std::thread::JoinHandle + - std::thread::spawn + - std::time::Instant + - std::time::SystemTime + - std::time::UNIX_EPOCH + - std::vec::Vec + + + +List of AoUs expected from the environment the platform / module runs on: + + +.. needtable:: + :style: table + :columns: title;id;status + :colwidths: 25,25,25 + :sort: title + + results = [] + + for need in needs.filter_types(["aou_req"]): + if need and "environment" in need["tags"]: + results.append(need) + +Assumptions on the User +^^^^^^^^^^^^^^^^^^^^^^^ +| As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety case. +| Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: . Assumptions from components to their users can be fulfilled in two ways: +| 1. There are assumption which need to be fulfilled by all SW components, e.g. "every user of an IPC mechanism needs to make sure that he provides correct data (including appropriate ASIL level)" - in this case the AoU is marked as "platform". +| 2. There are assumption which can be fulfilled by a safety mechanism realized by some other S-CORE platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module SEooC stand-alone - in this case the AoU is marked as "module". An example would be the "JSON read" which requires "The user shall provide a string as input which is not corrupted due to HW or QM SW errors." - which is covered when using together with safe S-CORE platform persistency feature. + +List of AoUs on the user of the platform features or the module of this safety manual: + +.. needtable:: + :style: table + :columns: title;id;status + :colwidths: 25,25,25 + :sort: title + + results = [] + + for need in needs.filter_types(["aou_req"]): + if need and "environment" not in need["tags"]: + results.append(need) + +Safety concept of the SEooC +--------------------------- +| + +Safety Anomalies +---------------- +| Anomalies (bugs in ASIL SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes . + +References +---------- +| +| diff --git a/docs/features/frameworks/feo/modules/index.rst b/docs/features/frameworks/feo/modules/index.rst new file mode 100644 index 0000000000..b62b90558a --- /dev/null +++ b/docs/features/frameworks/feo/modules/index.rst @@ -0,0 +1,27 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. _modules: + +Modules Documentation +##################### + +.. note:: + For now, we store the modules documentation in the feature tree, because multi-repo docs are not yet supported. + Once this support becomes available it will be moved to the modules tree. + +.. toctree:: + :maxdepth: 1 + + feo/docs/index diff --git a/docs/features/frameworks/index.rst b/docs/features/frameworks/index.rst index 438d692d1a..5a6c69a913 100644 --- a/docs/features/frameworks/index.rst +++ b/docs/features/frameworks/index.rst @@ -19,3 +19,4 @@ Frameworks .. toctree:: feo/index.rst + feo/modules/index \ No newline at end of file From 3ada66e34bb94efa2c624bc7fa25eff339cb40fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20S=C3=B6ren=20Pollak?= Date: Tue, 27 May 2025 10:02:49 +0200 Subject: [PATCH 2/8] remove docs-as-code tooling folder (#1173) --- .../score_draw_uml_funcs/__init__.py | 503 ---------------- .../score_draw_uml_funcs/helpers.py | 312 ---------- .../extensions/score_metamodel/metamodel.yaml | 568 ------------------ 3 files changed, 1383 deletions(-) delete mode 100644 docs/_tooling/extensions/score_draw_uml_funcs/__init__.py delete mode 100644 docs/_tooling/extensions/score_draw_uml_funcs/helpers.py delete mode 100644 docs/_tooling/extensions/score_metamodel/metamodel.yaml diff --git a/docs/_tooling/extensions/score_draw_uml_funcs/__init__.py b/docs/_tooling/extensions/score_draw_uml_funcs/__init__.py deleted file mode 100644 index a42859d3bd..0000000000 --- a/docs/_tooling/extensions/score_draw_uml_funcs/__init__.py +++ /dev/null @@ -1,503 +0,0 @@ -# ******************************************************************************* -# 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 -# ******************************************************************************* -""" -This 'sphinx-extension' is responsible to allow for functional drawings of UML diagrams - - - Features - - Logical Interfaces - - Modules - - Components - - Component Interfaces - -and all applicable linkages between them. - -It provides this functionality by adding classes to `needs_render_context`, -which then can be invoked inside 'needarch' and 'needuml' blocks in rst files. -""" - -import hashlib -import time -from collections.abc import Callable -from functools import cache -from pathlib import Path -from typing import Any - -from sphinx.application import Sphinx -from sphinx_needs.logging import get_logger - -from score_draw_uml_funcs.helpers import ( - gen_header, - gen_interface_element, - gen_link_text, - gen_struct_element, - get_alias, - get_hierarchy_text, - get_impl_comp_from_logic_iface, - get_interface_from_component, - get_interface_from_int, - get_logical_interface_real, - get_module, - get_real_interface_logical, -) - -logger = get_logger(__file__) - - -def setup(app: Sphinx) -> dict[str, object]: - app.config.needs_render_context = draw_uml_function_context - return { - "version": "0.1", - "parallel_read_safe": True, - "parallel_write_safe": True, - } - - -@cache -def scripts_directory_hash(): - start = time.time() - all = "" - for file in Path(".devcontainer/sphinx_conf").glob("**/*.py"): - with open(file) as f: - all += f.read() - hash_object = hashlib.sha256(all.encode("utf-8")) - directory_hash = hash_object.hexdigest() - logger.info( - "calculate directory_hash = " - + directory_hash - + " within " - + str(time.time() - start) - + " seconds." - ) - return directory_hash - - -# ╭──────────────────────────────────────────────────────────────────────────────╮ -# │ Actual drawing functions │ -# ╰──────────────────────────────────────────────────────────────────────────────╯ - - -def draw_comp_incl_impl_int( - need: dict[str, str], - all_needs: dict[str, dict[str, str]], - proc_impl_interfaces: dict[str, str], - proc_used_interfaces: dict[str, list[str]], - white_box_view: bool = False, -) -> tuple[str, str, dict[str, str], dict[str, list[str]]]: - """This function draws a component including any interfaces which are implemented - by the component - - :param dict[str,str] need: Component which should be drawn - :param dict all_needs: Dictionary containing all needs - :param dict[str,dict] proc_impl_interfaces: Dictionary containing all implemented interfaces - which were already processed during this cycle - :param dict[str,dict] proc_used_interfaces: Dictionary containing all used interfaces - which were already processed during this cycle - """ - # Draw outer component - structure_text = f"{gen_struct_element('component', need)} {{\n" - linkage_text = "" - - # Draw inner (sub)components recursively if requested - if white_box_view: - for need_inc in need.get("includes", []): - curr_need = all_needs.get(need_inc, {}) - - # check for misspelled include - if not curr_need: - logger.info(f"{need}: include {need_inc} could not be found") - continue - - if curr_need["type"] != "comp_arc_sta": - continue - - sub_structure, sub_linkage, proc_impl_interfaces, proc_used_interfaces = ( - draw_comp_incl_impl_int( - curr_need, all_needs, proc_impl_interfaces, proc_used_interfaces - ) - ) - - structure_text += sub_structure - linkage_text += sub_linkage - - # close outer component - structure_text += f"}} /' {need['title']} '/ \n\n" - - # Find implemented real interfaces inside the module/component - local_impl_interfaces = get_interface_from_component(need, "implements", all_needs) - local_used_interfaces = get_interface_from_component(need, "uses", all_needs) - - # Add all interfaces which are implemented by component to global list - # and provide implementation - for iface in local_impl_interfaces: - # check for misspelled implements - if not all_needs.get(iface, []): - logger.info(f"{need}: implements {iface} could not be found") - continue - - if not proc_impl_interfaces.get(iface, []): - linkage_text += f"{ - gen_link_text( - need, - '-u->', - all_needs[iface], - 'implements', - ) - } \n" - proc_impl_interfaces[iface] = need["id"] - - # Add all elements which are used by component to global list - for iface in local_used_interfaces: - # check for misspelled used - if not all_needs.get(iface, []): - logger.info(f"{need}: uses {iface} could not be found") - continue - - if not proc_used_interfaces.get(iface, []): - proc_used_interfaces[iface] = [need["id"]] - else: - proc_used_interfaces[iface].append(need["id"]) - - return structure_text, linkage_text, proc_impl_interfaces, proc_used_interfaces - - -def draw_impl_interface( - need: dict[str, str], - all_needs: dict[str, dict[str, str]], - local_impl_interfaces: set[str], -) -> set[str]: - # At First Logical Implemented Interfaces outside the Module - for need_inc in need.get("includes", []): - curr_need = all_needs.get(need_inc, {}) - - # check for misspelled include - if not curr_need: - logger.info(f"{need}: include with id {need_inc} could not be found") - continue - - draw_impl_interface(curr_need, all_needs, local_impl_interfaces) - - # Find implemented logical interface of the components inside the module - local_impl_interfaces.update( - get_interface_from_component(need, "implements", all_needs) - ) - - return local_impl_interfaces - - -def draw_module( - need: dict[str, str], - all_needs: dict[str, dict[str, str]], - proc_impl_interfaces: dict[str, str], - proc_used_interfaces: dict[str, list[str]], -) -> tuple[str, str, dict[str, str], dict[str, list[str]]]: - """ - Drawing and parsing function of a component. - - Example: - input: - need: component_1 - all_needs: all_needs_dict - processed_interfaces: set() - return: - # Part 1 Structure Text - component "Component 1" as C1 { - } - interface "Component Interface 1" as CI1 { - real operation 1 () - real operation 2 () - } - - interface "Logical Interface 1" as LI1 { - Logical Operation 1 - Logical Operation 2 - } - - interface "Component Interface 3" as CI3 { - real operation 5 () - real operation 6 () - } - - # Part 2 Linkage Text - CI1 --> LI1: implements - C1 --> CI1: implements - C1 --> CI3: uses - - # Part 3 processed_interfaces - { - 'real_interface_1', - 'real_interface_2', - 'logical_interface_1' - } - - # Part 4 processed_interfaces - { - 'logical_interface_1', - 'logical_interface_2' - } - - Note: part 1 and 2 are returned as one text item separated by '\n'. - They are interpreted and names are shortened here to aid readability. - Returns: - Tuple of 4 parts. - (Structure Text, Linkage Text, Processed (Real Interfaces), - Processed Logical Interfaces) - """ - linkage_text = "" - structure_text = "" - - # Draw all implemented interfaces outside the boxes - local_impl_interfaces = draw_impl_interface(need, all_needs, set()) - - # Add all interfaces which are implemented by component to global list - # and provide implementation - for iface in local_impl_interfaces: - # check for misspelled implements - if not all_needs.get(iface, []): - logger.info(f"{need}: implements {iface} could not be found") - continue - - if not proc_impl_interfaces.get(iface, []): - structure_text += gen_interface_element(iface, all_needs, True) - - # Draw outer module - structure_text += f"{gen_struct_element('package', need)} {{\n" - - # Draw inner components recursively - for need_inc in need.get("includes", []): - curr_need = all_needs.get(need_inc, {}) - - # check for misspelled include - if not curr_need: - logger.info(f"{need}: include with id {need_inc} could not be found") - continue - - if curr_need["type"] not in ["comp_arc_sta", "mod_view_sta"]: - continue - - sub_structure, sub_linkage, proc_impl_interfaces, proc_used_interfaces = ( - draw_comp_incl_impl_int( - curr_need, all_needs, proc_impl_interfaces, proc_used_interfaces - ) - ) - - structure_text += sub_structure - linkage_text += sub_linkage - - # close outer component - structure_text += f"}} /' {need['title']} '/ \n\n" - - # Add all interfaces which are used by component - for iface, comps in proc_used_interfaces.items(): - if iface not in proc_impl_interfaces: - # Add implementing components and modules - impl_comp_str = get_impl_comp_from_logic_iface(iface, all_needs) - - impl_comp = all_needs.get(impl_comp_str[0], {}) if impl_comp_str else "" - - if impl_comp: - retval = get_hierarchy_text(impl_comp_str[0], all_needs) - structure_text += retval[2] # module open - structure_text += retval[0] # rest open - - structure_text += retval[1] # rest close - structure_text += retval[3] # module close - if iface not in local_impl_interfaces: - structure_text += gen_interface_element(iface, all_needs, True) - - # Draw connection between implementing components and interface - linkage_text += f"{gen_link_text(impl_comp, '-u->', all_needs[iface], 'implements')} \n" - - else: - # Add only interface if component not defined - print(f"{iface}: No implementing component defined") - structure_text += gen_interface_element(iface, all_needs, True) - - # Interface can be used by multiple components - for comp in comps: - # Draw connection between used interfaces and components - linkage_text += f"{gen_link_text(all_needs[comp], '-d[#green]->', all_needs[iface], 'uses')} \n" - - # Remove duplicate links - linkage_text = "\n".join(set(linkage_text.split("\n"))) + "\n" - - return structure_text, linkage_text, proc_impl_interfaces, proc_used_interfaces - - -# ╭──────────────────────────────────────────────────────────────────────────────╮ -# │ Classes with hashing to enable caching │ -# ╰──────────────────────────────────────────────────────────────────────────────╯ - - -class draw_full_feature: - def __repr__(self): - return "draw_full_feature" + " in " + scripts_directory_hash() - - def __call__( - self, need: dict[str, str], all_needs: dict[str, dict[str, str]] - ) -> str: - interfacelist: list[str] = [] - impl_comp: dict[str, str] = dict() - # Store all Elements which have already been processed - proc_impl_interfaces: dict[str, str] = dict() - proc_used_interfaces: dict[str, list[str]] = dict() - proc_modules: list[str] = list() - - link_text = "" - structure_text = ( - f'actor "Feature User" as {get_alias({"id": "Feature_User"})} \n' - ) - - # Define Feature as a package - # structure_text += f"{gen_struct_element('package', need)} {{\n" - - # Add logical Interfaces / Interface Operations (aka includes) - for need_inc in need.get("includes", []): - # Generate list of interfaces since both interfaces - # and interface operations can be included - iface = get_interface_from_int(need_inc, all_needs) - if iface not in interfacelist: - interfacelist.append(iface) - - for iface in interfacelist: - if iface_need := all_needs.get(iface): - if iface: - comps = get_impl_comp_from_logic_iface(iface, all_needs) - - if comps: - impl_comp[iface] = comps[0] - - if imcomp := impl_comp.get(iface, {}): - module = get_module(imcomp, all_needs) - # FIXME: sometimes module is empty, then the following code fails - if not module: - logger.info( - f"FIXME: {need['id']}: Module for interface {iface} -> {imcomp} is empty." - ) - continue - - if module not in proc_modules: - tmp, link_text, proc_impl_interfaces, proc_used_interfaces = ( - draw_module( - all_needs[module], - all_needs, - proc_impl_interfaces, - proc_used_interfaces, - ) - ) - structure_text += tmp - proc_modules.append(module) - - else: - logger.info(f"{need}: Interface {iface} could not be found") - continue - - # Close Package - # structure_text += f"}} /' {need['title']} '/ \n\n" - - for iface in interfacelist: - if imcomp := impl_comp.get(iface): - # Add relation between Actor and Interfaces - link_text += f"{ - gen_link_text( - {'id': 'Feature_User'}, '-d->', all_needs[iface], 'use' - ) - } \n" - - # Add relation between interface and component - if imcomp := impl_comp.get(iface): - link_text += f"{ - gen_link_text( - all_needs[imcomp], - '-u->', - all_needs[iface], - 'implements', - ) - } \n" - else: - logger.info( - f"Interface {iface} is not implemented by any component" - ) - else: - logger.info(f"{need}: Interface {iface} could not be found") - continue - - # Remove duplicate links - link_text = "\n".join(set(link_text.split("\n"))) + "\n" - - return gen_header() + structure_text + link_text - - -class draw_full_module: - def __repr__(self): - return "draw_full_module" + " in " + scripts_directory_hash() - - def __call__( - self, need: dict[str, str], all_needs: dict[str, dict[str, str]] - ) -> str: - # Store all Elements which have already been processed - proc_impl_interfaces: dict[str, str] = dict() - proc_used_interfaces: dict[str, list[str]] = dict() - structure_text, linkage_text, proc_impl_interfaces, proc_used_interfaces = ( - draw_module(need, all_needs, proc_impl_interfaces, proc_used_interfaces) - ) - - return gen_header() + structure_text + linkage_text - - -class draw_full_component: - def __repr__(self): - return "draw_full_component" + " in " + scripts_directory_hash() - - def __call__( - self, need: dict[str, str], all_needs: dict[str, dict[str, str]] - ) -> str: - structure_text, linkage_text, _, _ = draw_comp_incl_impl_int( - need, all_needs, dict(), dict(), True - ) - - # Draw all implemented interfaces outside the boxes - local_impl_interfaces = draw_impl_interface(need, all_needs, set()) - - # Add all interfaces which are implemented by component to global list - # and provide implementation - for iface in local_impl_interfaces: - # check for misspelled implements - if not all_needs.get(iface, []): - logger.info(f"{need}: implements {iface} could not be found") - continue - - structure_text += gen_interface_element(iface, all_needs, True) - - return gen_header() + structure_text + linkage_text - - -class draw_full_interface: - def __repr__(self): - return "draw_full_interface" + " in " + scripts_directory_hash() - - def __call__( - self, need: dict[str, str], all_needs: dict[str, dict[str, str]] - ) -> str: - structure_text = gen_interface_element(need["id"], all_needs, True) - - return structure_text + "\n" - - -CallableType = Callable[[dict[str, Any], dict[str, dict[str, Any]]], str] - -draw_uml_function_context: dict[str, CallableType] = { - "draw_interface": draw_full_interface(), - "draw_module": draw_full_module(), - "draw_component": draw_full_component(), - "draw_feature": draw_full_feature(), -} diff --git a/docs/_tooling/extensions/score_draw_uml_funcs/helpers.py b/docs/_tooling/extensions/score_draw_uml_funcs/helpers.py deleted file mode 100644 index ef59ebbe5c..0000000000 --- a/docs/_tooling/extensions/score_draw_uml_funcs/helpers.py +++ /dev/null @@ -1,312 +0,0 @@ -# ******************************************************************************* -# 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 -# ******************************************************************************* -from typing import Any - -from sphinx_needs.logging import get_logger - -logger = get_logger(__file__) - - -######################################################################## -# Functions which generate elements -######################################################################## -def gen_format(need: dict[str, str]) -> str: - """Define Layout for Need: - - Set Background Color for Safety Components - - Set Language for component interfaces - """ - - style = "" - - if "comp_arc_sta" in need["type"] and need["safety"] == "ASIL_B": - style = "<>" - - if "real_arc_int" in need["type"]: - style = "" if need["language"] == "rust" else "" - - return style - - -def gen_struct_element(UMLelement: str, need: dict[str, str]) -> str: - """Generate a plantUML element""" - return ( - f'{UMLelement} "{need["title"]}" as {get_alias(need)} ' - f"{gen_format(need)} {get_need_link(need)}" - ) - - -def gen_interface_element( - need_id: str, all_needs: dict[str, dict[str, str]], incl_ops: bool = False -) -> str: - """Generate architectural interface element and - include all operations if selected.""" - - text = f"{gen_struct_element('interface', all_needs[need_id])} {{\n\n" - if incl_ops: - for op in all_needs[need_id].get("included_by_back", []): - raw_text = all_needs[op]["title"] - if raw_text.endswith("()"): - text += f"+ {raw_text} {get_need_link(all_needs[op])}\n" - else: - text += f"+ {raw_text} () {get_need_link(all_needs[op])}\n" - - text += f"\n}} /' {all_needs[need_id]['title']} '/ \n\n" - return text - - -def gen_link_text( - from_need: dict[str, str], link_type: str, to_need: dict[str, str], link_text: str -) -> str: - """ - This function generates a PlantUML link between PlantUML elements - - Example: - input: - from_id: Component Interface 1 - to_id: Logical Interface 1 - link_type: --> - link_text: uses - return: - CI1 --> LI1: uses - - """ - return f"{get_alias(from_need)} {link_type} {get_alias(to_need)}: {link_text}" - - -### Generate PlantUML Headers -def gen_header() -> str: - """Create PlantUML document header""" - return ( - "allow_mixing\n" - + "top to bottom direction\n" - + "hide stereotype\n" - + "hide empty attributes\n" - + gen_sytle_header() - + "\n" - ) - - -def gen_sytle_header() -> str: - """Create PlantUML Header for Style definition""" - return ( - """""" + "\n" - ) - - -######################################################################## -# Functions determine relations between needs -######################################################################## -def get_alias(need: dict[str, str]) -> str: - """Generate a Unique ID for referencing in PlantUML""" - return need["id"] - - -def get_need_link(need: dict[str, str]) -> str: - """Generate the link to the need element from the PlantUML Diagram""" - link = ".." + "/" + need["docname"] + ".html#" + need["id_parent"] - - # Reminder: Link is displayed via triple braces inside a interface - if "int_op" in need["type"]: - return f"[[[{link}]]]" - - return f"[[{link}]]" - - -def get_module(component: str, all_needs: dict[str, dict[str, str]]) -> str: - need = all_needs.get(component, {}) - - if need: - module = need.get("includes_back", "") - - if module: - return module[0] - else: - logger.warning(f"{component}: not defined, misspelled?") - - return "" - - -def get_hierarchy_text( - component: str, all_needs: dict[str, dict[str, str]] -) -> tuple[str, str, str, str]: - """This function determines the corresponding module of any component - - :param str component: component to determine the module - :param dict all_needs: dictionary containing all processed needs - - :return: Tuple of 4 strings: - open_text: Text to place before the component - close_text: Text to place after the component - open_mod_text: Text to open the module - close_mod_text: Text to close the module - """ - need = all_needs[component] - - open_text = "" - close_text = "" - open_mod_text = "" - close_mod_text = "" - parent_need = {} - - if "mod_" not in need["type"]: - parent_need_str = need.get("includes_back", []) - - if parent_need_str: - parent_need = all_needs.get(parent_need_str[0], []) - - if parent_need: - # If Parent Exist and not Module -> Call Function Recursively - retval = get_hierarchy_text(parent_need_str[0], all_needs) - open_text += retval[0] - open_text += f"{gen_struct_element('component', need)} {{\n" - close_text += f"}} /' {need['title']} '/ \n\n" - close_text += retval[1] - open_mod_text = retval[2] - close_mod_text = retval[3] - - else: - # If Top Level Leaf is not a Module - logger.info(f"{need['id']}: not contained in any module") - open_text += f"{gen_struct_element('component', need)} {{\n" - close_text += f"}} /' {need['title']} '/ \n\n" - else: - # Create Module Text - open_mod_text += f"{gen_struct_element('package', need)} {{\n" - close_mod_text += f"}} /' {need['title']} '/ \n\n" - - return open_text, close_text, open_mod_text, close_mod_text - - -def get_interface_from_component( - component: dict[str, str], relation: str, all_needs: dict[str, dict[str, Any]] -) -> list[str]: - """ - Returns a list of interfaces which are related to the component - """ - local_interfaces: list[str] = [] - - for interface in component.get(relation, ""): - iface = get_interface_from_int(interface, all_needs) - if iface not in local_interfaces: - local_interfaces.append(iface) - - return local_interfaces - - -def get_interface_from_int(need_id: str, all_needs: dict[str, dict[str, Any]]) -> str: - """Get Interface for a provided Interface or Interface Operation""" - - int_need = all_needs.get(need_id) - - if not int_need: - logger.warning(f"{need_id}: not defined, misspelled?") - return "" - - if "_int_op" in int_need["type"]: - iface = all_needs[need_id]["included_by"][0] - else: - iface = need_id - - return iface - - -def get_real_interface_logical( - logical_interface_id: str, all_needs: dict[str, dict[str, Any]] -) -> list[str]: - """Get real interface for provided logical interface - The relation is traced via the interface operations - """ - real_ifaces: list[str] = [] - real_ifops: list[str] = [] - logical_ops = all_needs[logical_interface_id]["included_by_back"] - - for logical_op in logical_ops: - real_ifop = all_needs[logical_op].get("implements_back") - if not real_ifop: - logger.info(f"{logical_op}: not implemented by any logical operation") - continue - - real_ifops.extend(real_ifop) if real_ifop not in real_ifops else None - - # Per definition a operation can only be included by one interface - real_iface = all_needs[real_ifop[0]].get("included_by") - - if not real_iface: - logger.info(f"{real_ifop[0]}: not included in any interface") - continue - - real_ifaces.extend(real_iface) if real_iface not in real_ifaces else None - - return real_ifaces - - -def get_logical_interface_real( - real_interface_id: str, all_needs: dict[str, dict[str, Any]] -) -> list[str]: - """Get logical interface based on real interface""" - logical_ifaces: list[str] = list() - - real_ifops = all_needs[real_interface_id].get("included_by_back", []) - - for real_ifop in real_ifops: - logical_ifop = all_needs[real_ifop].get("implements", []) - - if not logical_ifop: - logger.info(f"{real_ifop}: Logical Interface Operation not specified!") - continue - - # One real operation can only implement one logical operation - logical_ifop_need = all_needs.get(logical_ifop[0]) - if not logical_ifop_need: - logger.info( - f"{real_ifop}: Logical Interface Operation Need not defined, probably misspelled!" - ) - continue - - logical_iface = logical_ifop_need.get("included_by", []) - - if not logical_iface: - logger.info(f"{logical_ifop[0]}: Not included by any Logical Interface!") - continue - - logical_ifaces.extend(logical_iface) if logical_iface[ - 0 - ] not in logical_ifaces else logical_ifaces - - return logical_ifaces - - -def get_impl_comp_from_logic_iface( - real_iface: str, all_needs: dict[str, dict[str, str]] -) -> list[str]: - """Get implementing component of the interface""" - implcomp: list[str] = all_needs[real_iface].get("implements_back", []) - - if not implcomp: - logger.info( - f"{all_needs[real_iface]['id']}: Implementing Component not specified!" - ) - - return implcomp - - -def get_use_comp_from_real_iface( - real_iface: str, all_needs: dict[str, dict[str, Any]] -) -> list[str]: - """Get components which use the interface""" - usecomp: list[str] = all_needs[real_iface].get("uses_back", []) - - if usecomp: - logger.info(f"{all_needs[real_iface]}: Interface not used by component!") - - return usecomp diff --git a/docs/_tooling/extensions/score_metamodel/metamodel.yaml b/docs/_tooling/extensions/score_metamodel/metamodel.yaml deleted file mode 100644 index 734619ddb8..0000000000 --- a/docs/_tooling/extensions/score_metamodel/metamodel.yaml +++ /dev/null @@ -1,568 +0,0 @@ -# ******************************************************************************* -# 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 -# ******************************************************************************* -# yaml-language-server: $schema=./metamodel-schema.json - -needs_types_base_options: - optional_options: - source_code_link: "^https://github.com/eclipse-score/score/blob/.*$" - # Custom semantic validation rules - prohibited_words: - title: - - shall - - must - - will - content: - - just - - about - - really - - some - - thing - - absolutely - -needs_types: - - ############################################################################## - # Process Metamodel - ############################################################################## - # Standards - std_req: - title: "Standard Requirement" - prefix: "std_req__" - mandatory_options: - id: "std_req__(iso26262|isosae21434|isopas8926|aspice_40)__[0-9a-zA-Z_-]*$" - status: "^(valid)$" - optional_links: - links: "^.*$" - - std_wp: - title: "Standard Work Product" - prefix: "std_wp__" - mandatory_options: - id: "std_wp__(iso26262|isosae21434|isopas8926|aspice_40)__[0-9a-z_]*$" - status: "^(valid)$" - # Workflow - workflow: - title: "Workflow" - prefix: "wf__" - mandatory_options: - id: "^wf__[0-9a-z_]*$" - status: "^(valid|draft)$" - mandatory_links: - input: "^wp__.*$" - output: "^wp__.*$" - approved_by: "^rl__.*$" - responsible: "^rl__.*$" - optional_links: - supported_by: "^rl__.*$" - contains: "^gd_(req|temp|chklst|guidl|meth)__.*$" - has: "^doc_(getstrt|concept)__.*$" - # Guidances - gd_req: - title: "Process Requirements" - prefix: "gd_req__" - mandatory_options: - id: "^gd_req__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "^std_req__(iso26262|isosae21434|isopas8926|aspice_40)__.*$" - satisfies: "^wf__.*$" - - gd_temp: - title: "Process Template" - prefix: "gd_temp__" - mandatory_options: - id: "^gd_temp__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "std_req__(iso26262|isodae21434|isopas8926|aspice_40)__.*$" - - gd_chklst: - title: "Process Checklist" - prefix: "gd_chklst__" - mandatory_options: - id: "^gd_chklst__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "std_req__(iso26262|isodae21434|isopas8926|aspice_40)__.*$" - - gd_guidl: - title: "Process Guideline" - prefix: "gd_guidl__" - mandatory_options: - id: "^gd_guidl__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "std_req__(iso26262|isosae21434|isopas8926|aspice_40)__.*$" - - gd_method: - title: "Process Method" - prefix: "gd_meth__" - mandatory_options: - id: "^gd_meth__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "std_req__(iso26262|isosae21434|isopas8926|aspice_40)__.*$" - # S-CORE Workproduct - workproduct: - title: "Workproduct" - prefix: "wp__" - mandatory_options: - id: "^wp__[0-9a-z_]*$" - status: "^(valid|draft)$" - optional_links: - complies: "std_(wp__iso26262|wp__isosae21434|wp__isopas8926|iic_aspice_40)__.*$" - # Role - role: - title: "Role" - prefix: "rl__" - mandatory_options: - id: "^rl__[0-9a-z_]*$" - optional_links: - contains: "^rl__.*$" - # Documents - doc_concept: - title: "Concept Definition" - prefix: "doc_concept__" - mandatory_options: - id: "^doc_concept__[0-9a-z_]*$" - status: "^(valid|draft)$" - - doc_getstrt: - title: "Getting Startet" - prefix: "doc_getstrt__" - mandatory_options: - id: "^doc_getstrt__[0-9a-z_]*$" - status: "^(valid|draft)$" - - ############################################################################## - # S-CORE Metamodel - ############################################################################## - # General - document: - title: "Generic Document" - prefix: "doc__" - mandatory_options: - id: "^doc__[0-9a-z_]*$" - status: "^(valid|draft|invalid)$" - optional_options: - safety: "^(QM|ASIL_B|ASIL_D)$" - realizes: "^wp__.+$" - # The following 3 guidance requirements enforce the requirement structure and attributes: - # req-Id: gd_req__req__structure - # req-Id: gd_req__requirements_attr_description - # req-Id: gd_req__req__linkage - # Requirements - stkh_req: - title: "Stakeholder Requirement" - prefix: "stkh_req__" - mandatory_options: - id: "^stkh_req__[0-9a-z_]*$" - reqtype: "^(Functional|Interface|Process|Legal|Non-Functional)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - rationale: "^.+$" - optional_options: - security: "^(YES|NO)$" - codelink: "^.*$" - testlink: "^.*$" - reqcovered: "^(YES|NO)$" - testcovered: "^(YES|NO)$" - hash: "^.*$" - - feat_req: - title: "Feature Requirement" - prefix: "feat_req__" - style: "node" - mandatory_options: - id: "^feat_req__[0-9a-z_]*$" - reqtype: "^(Functional|Interface|Process|Legal|Non-Functional)$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - # req-Id: gd_req__req__linkage_fulfill - satisfies: "^stkh_req__.*$" - optional_options: - codelink: "^.*$" - testlink: "^.*$" - reqcovered: "^(YES|NO)$" - testcovered: "^(YES|NO)$" - hash: "^.*$" - - comp_req: - title: "Component Requirement" - prefix: "comp_req__" - mandatory_options: - id: "^comp_req__[0-9a-z_]*$" - reqtype: "^(Functional|Interface|Process|Legal|Non-Functional)$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - satisfies: "^feat_req__.*$" - optional_options: - codelink: "^.*$" - testlink: "^.*$" - reqcovered: "^(YES|NO)$" - testcovered: "^(YES|NO)$" - hash: "^.*$" - - tool_req: - title: "Tool Requirement" - prefix: "tool_req__" - mandatory_options: - id: "^tool_req__[0-9a-z_]*$" - reqtype: "^(Functional|Interface|Process|Legal|Non-Functional)$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - satisfies: "^stkh_req__.*$" - optional_options: - codelink: "^.*$" - testlink: "^.*$" - reqcovered: "^(YES|NO)$" - testcovered: "^(YES|NO)$" - hash: "^.*$" - - aou_req: - title: "Assumption of Use" - prefix: "aou_req__" - mandatory_options: - id: "^aou_req__[0-9a-z_]*$" - reqtype: "^(Functional|Interface|Process|Legal|Non-Functional)$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - optional_options: - codelink: "^.*$" - testlink: "^.*$" - reqcovered: "^(YES|NO)$" - testcovered: "^(YES|NO)$" - hash: "^.*$" - optional_links: - mitigates: "^.*$" - # Architecture - feat_arc_sta: - title: "Feature Architecture Static View" - prefix: "feat_arc_sta__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^feat_arc_sta__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - includes: "^logic_arc_int(_op)*__.+$" - optional_links: - fulfils: "^feat_req__.+$" - - feat_arc_dyn: - title: "Feature Architecture Dynamic View" - prefix: "feat_arc_dyn__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^feat_arc_dyn__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - fulfils: "^feat_req__.+$" - - logic_arc_int: - title: "Logical Architecture Interfaces" - prefix: "logic_arc_int__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^logic_arc_int__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - optional_links: - includes: "^logic_arc_int_op__.+$" - fulfils: "^comp_req__.+$" - - logic_arc_int_op: - title: "Logical Architecture Interface Operation" - prefix: "logic_arc_int_op__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^logic_arc_int_op__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - included_by: "^logic_arc_int__.+$" - - mod_view_sta: - title: "Module Architecture Static View" - prefix: "mod_view_sta__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^mod_view_sta__[0-9a-z_]+$" - mandatory_links: - includes: "^comp_arc_sta__.+$" - - mod_view_dyn: - title: "Module Architecture Dynamic View" - prefix: "mod_view_dyn__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^mod_view_dyn__[0-9a-z_]+$" - - comp_arc_sta: - title: "Component Architecture Static View" - prefix: "comp_arc_sta__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^comp_arc_sta__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - optional_links: - implements: "^real_arc_int(_op)*__.+$" - includes: "^comp_arc_sta__.+$" - uses: "^real_arc_int(_op)*__.+$" - fulfils: "^comp_req__.+$" - - comp_arc_dyn: - title: "Component Architecture Dynamic View" - prefix: "comp_arc_dyn__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^comp_arc_dyn__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - optional_links: - fulfils: "^comp_req__.+$" - - real_arc_int: - title: "Component Architecture Interfaces" - prefix: "real_arc_int__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^real_arc_int__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - language: "^(cpp|rust)$" - optional_links: - fulfils: "^comp_req__.+$" - - real_arc_int_op: - title: "Component Architecture Interface Operation" - prefix: "real_arc_int_op__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^real_arc_int_op__[0-9a-z_]+$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - included_by: "^real_arc_int__.+$" - optional_links: - implements: "^logic_arc_int_op__.+$" - - - review_header: - prefix: "review__header" - title: "Review Header" - mandatory_options: - id: "^review__header__[0-9a-z_]*$" - reviewers: "^.*$" - approvers: "^.*$" - hash: "^.*$" - template: "^.*$" - - # Implementation - dd_sta: - title: "Static detailed design" - prefix: "dd_sta__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^dd_sta__[0-9a-z_]*$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - implements: "^comp_req__.*$" - satisfies: "^comp_arc_sta__.*$" - optional_links: - includes: "^sw_unit__.*$" - dd_dyn: - title: "Dynamic detailed design" - prefix: "dd_dyn__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^dd_dyn__[0-9a-z_]*$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - mandatory_links: - implements: "^comp_req__.*$" - satisfies: "^comp_arc_sta__.*$" - sw_unit: - title: "Software unit" - prefix: "sw_unit__" - mandatory_options: - id: "^sw_unit__[0-9a-z_]*$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - sw_unit_int: - title: "Software unit interfaces" - prefix: "sw_unit_int__" - color: "#FEDCD2" - style: "card" - mandatory_options: - id: "^sw_unit_int__[0-9a-z_]*$" - security: "^(YES|NO)$" - safety: "^(QM|ASIL_B|ASIL_D)$" - status: "^(valid|invalid)$" - -# Extra link types, which shall be available and allow need types to be linked to each other. -# We use a dedicated linked type for each type of a connection, for instance from -# a specification to a requirement. This makes filtering and visualization of such connections -# much easier, as we can sure the target need of a link has always a specific type. -# Docs: https://sphinx-needs.readthedocs.io/en/latest/configuration.html#needs-extra-links -needs_extra_links: - ############################################################## - # Process Metamodel - ############################################################## - # Workflow - contains: - incoming: "contained by" - outgoing: "contains" - - has: - incoming: "relates to" - outgoing: "has" - - input: - incoming: "is input to" - outgoing: "needs input" - - output: - incoming: "is output from" - outgoing: "outputs" - - # Roles - responsible: - incoming: "is responsible for" - outgoing: "responsible" - - approved_by: - incoming: "approves" - outgoing: "approved by" - - supported_by: - incoming: "supports" - outgoing: "supported by" - - # Workproduct - complies: - incoming: "complies to" - outgoing: "complies" - - ############################################################## - # S-CORE Metamodel - ############################################################## - # Requirements - satisfies: - incoming: "satisfied by" - outgoing: "satisfies" - - # Architecture - fulfils: - incoming: "fulfilled by" - outgoing: "fulfils" - - implements: - incoming: "implemented by" - outgoing: "implements" - - uses: - incoming: "used by" - outgoing: "uses" - - includes: - incoming: "included by" - outgoing: "includes" - - included_by: - incoming: "includes" - outgoing: "included by" -############################################################## -# Graph Checks -# The graph checks focus on the relation of the needs and their attributes. -# Checks are defined in the following way: -# check_name: -# needs:defines the needs types to which the check should be applied -# - [include / exclude]: need types to which the check should be applied; -# multiple need types can be defined by separating them with a comma; -# to perform the check on all needs types, set include to "." -# - condition: defines (together with apply) the condition which the needs need to fulfill -# - [and / or / xor / not] -# - check: defines the check that should be applied -# - : defines the relation which is used derive the type of the parent need -# - condition: defines the condition that should be checked -# - [and / or / xor / not] -############################################################## -# req-Id: gd_req__req__linkage_architecture -# req-Id: gd_req__req__linkage_safety -graph_checks: - # req-Id: gd_req__req__linkage_safety - req_safety_linkage: - needs: - include: "comp_req, feat_req" - condition: - and: - - "safety != QM" - - "status == valid" - check: - satisfies: - and: - - "safety != QM" - - "status == valid" - req_linkage: - needs: - include: "comp_req, feat_req" - condition: "status == valid" - check: - satisfies: "status == valid" - # req-Id: gd_req__req__linkage_architecture - arch_safety_linkage: - needs: - include: "comp_req, feat_req" - condition: - and: - - "safety != QM" - - "status == valid" - check: - fulfils: - and: - - "safety != QM" - - "status == valid" From 67b3d0c51414ddf36767c60891723cf670fbbf12 Mon Sep 17 00:00:00 2001 From: Nicolae Dicu Date: Wed, 28 May 2025 14:06:54 +0300 Subject: [PATCH 3/8] infra: autoclose stale PRs (#1177) --- .github/workflows/docs-cleanup.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/docs-cleanup.yml b/.github/workflows/docs-cleanup.yml index bea0498349..e6b297593e 100644 --- a/.github/workflows/docs-cleanup.yml +++ b/.github/workflows/docs-cleanup.yml @@ -24,7 +24,35 @@ jobs: permissions: pages: write contents: write + pull-requests: write steps: + - name: Close abandoned PRs + uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + # days-before-stale Idle number of days before marking issues/PRs stale (default: 60) + # days-before-close Idle number of days before closing stale issues/PRs (default: 7) + + # Don't handle issues + # If set to a negative number like -1, the issues or the pull requests will never be closed automatically. + days-before-issue-stale: -1 # Override days-before-stale for issues only + days-before-issue-close: -1 # Override days-before-close for issues only + + # Handle PRs + # Mark as stale after 30 days of inactivity and then for stale PRs close after 10 days + days-before-pr-stale: 30 # Override days-before-stale for PRs only + days-before-pr-close: 10 # Override days-before-close for PRs only + + # Add message to the PR when it is stale + stale-pr-message: > + This PR is stale because it has been open for 30 days with no activity. It will be closed in 10 days if no further activity occurs. #magic___^_^___line + # Label the PR as autoclosed + close-pr-label: autoclose + + # Add comment to the PR when it is closed + close-pr-message: "Auto-closing: no activity for 30 days. If this is still relevant, reopen or create a fresh PR." + - name: Checkout gh-pages branch uses: actions/checkout@v4 with: From 234e75be30b1c7f3ab31b4370b6c2d938d940458 Mon Sep 17 00:00:00 2001 From: Nicolae Dicu Date: Wed, 28 May 2025 15:08:15 +0300 Subject: [PATCH 4/8] infra: fix auto-close PR limit (#1178) --- .github/workflows/docs-cleanup.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs-cleanup.yml b/.github/workflows/docs-cleanup.yml index e6b297593e..b9326b89e1 100644 --- a/.github/workflows/docs-cleanup.yml +++ b/.github/workflows/docs-cleanup.yml @@ -25,6 +25,7 @@ jobs: pages: write contents: write pull-requests: write + issues: write # Allow label creation steps: - name: Close abandoned PRs uses: actions/stale@v9 @@ -48,7 +49,8 @@ jobs: stale-pr-message: > This PR is stale because it has been open for 30 days with no activity. It will be closed in 10 days if no further activity occurs. #magic___^_^___line # Label the PR as autoclosed - close-pr-label: autoclose + close-pr-label: autoclosed + operations-per-run: 90 # Increase the number of operations per run # Add comment to the PR when it is closed close-pr-message: "Auto-closing: no activity for 30 days. If this is still relevant, reopen or create a fresh PR." From 0ba5de3e3ae200d99eb3bf8ba956d3d3ba56af7a Mon Sep 17 00:00:00 2001 From: Armin Bartsch Date: Fri, 16 May 2025 15:49:08 +0200 Subject: [PATCH 5/8] Added FEO component requirements, minor fixes to safety manual Change-Id: I94bb9fd95821b6d19ac6297702e9ea92c359fa81 --- .../frameworks/feo/modules/feo/docs/index.rst | 9 +- .../modules/feo/docs/manual/safety_manual.rst | 12 +- .../feo/modules/feo/feo/docs/index.rst | 24 ++ .../requirements/component_requirements.rst | 267 ++++++++++++++++++ .../feo/modules/feo/feo_com/docs/index.rst | 20 ++ .../feo/modules/feo/feo_log/docs/index.rst | 20 ++ .../feo/modules/feo/feo_time/docs/index.rst | 20 ++ .../modules/feo/feo_tracing/docs/index.rst | 20 ++ 8 files changed, 384 insertions(+), 8 deletions(-) create mode 100644 docs/features/frameworks/feo/modules/feo/feo/docs/index.rst create mode 100644 docs/features/frameworks/feo/modules/feo/feo/docs/requirements/component_requirements.rst create mode 100644 docs/features/frameworks/feo/modules/feo/feo_com/docs/index.rst create mode 100644 docs/features/frameworks/feo/modules/feo/feo_log/docs/index.rst create mode 100644 docs/features/frameworks/feo/modules/feo/feo_time/docs/index.rst create mode 100644 docs/features/frameworks/feo/modules/feo/feo_tracing/docs/index.rst diff --git a/docs/features/frameworks/feo/modules/feo/docs/index.rst b/docs/features/frameworks/feo/modules/feo/docs/index.rst index cdfd4edd07..c22a91469b 100644 --- a/docs/features/frameworks/feo/modules/feo/docs/index.rst +++ b/docs/features/frameworks/feo/modules/feo/docs/index.rst @@ -13,10 +13,15 @@ # ******************************************************************************* -FEO Module Documentation -######################## +Module Documentation: feo +######################### .. toctree:: :maxdepth: 1 manual/safety_manual + ../feo/docs/index + ../feo_com/docs/index + ../feo_log/docs/index + ../feo_time/docs/index + ../feo_tracing/docs/index diff --git a/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst b/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst index 3be7d6a037..c254001873 100644 --- a/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst +++ b/docs/features/frameworks/feo/modules/feo/docs/manual/safety_manual.rst @@ -40,7 +40,6 @@ Assumptions on the Environment :safety: ASIL_B :status: invalid - The following list is *not yet complete*. It needs to be refined based on a final implementation. Only the following crates of the FEO module shall be used to build code that runs on targets in release builds. @@ -57,7 +56,7 @@ Assumptions on the Environment :safety: ASIL_B :status: valid - The Rust core lib shall be safety qualified + The Rust core lib used to build FEO shall be qualified according to the same ASIL level as the FEO framework. .. aou_req:: rust_std_lib_modules @@ -67,10 +66,6 @@ Assumptions on the Environment :safety: ASIL_B :status: invalid - The following list is *not yet complete*. It needs to be refined based on a final implementation. - At the moment, it covers probably about 95% of std library usages. - An accurate list could be determined by switching feo to #![no_std] and looking at the compilation errors, - but it gets quickly out of date with a changing codebase. The following items from the Rust std library shall be safety qualified: - std::collections::HashMap @@ -98,6 +93,11 @@ Assumptions on the Environment - std::time::UNIX_EPOCH - std::vec::Vec + **Note:** The above list is not yet complete. It needs to be refined based on a final implementation. + At the moment, it covers probably about 95% of std library usages. + An accurate list could be determined by switching feo to #![no_std] and looking at the compilation errors, + but it gets quickly out of date with a changing codebase. + List of AoUs expected from the environment the platform / module runs on: diff --git a/docs/features/frameworks/feo/modules/feo/feo/docs/index.rst b/docs/features/frameworks/feo/modules/feo/feo/docs/index.rst new file mode 100644 index 0000000000..24c08a7459 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo/docs/index.rst @@ -0,0 +1,24 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. _comp_doc_feo: + +Component Documentation: feo +############################ + + +.. toctree:: + :maxdepth: 1 + + requirements/component_requirements diff --git a/docs/features/frameworks/feo/modules/feo/feo/docs/requirements/component_requirements.rst b/docs/features/frameworks/feo/modules/feo/feo/docs/requirements/component_requirements.rst new file mode 100644 index 0000000000..aa63eaa7b2 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo/docs/requirements/component_requirements.rst @@ -0,0 +1,267 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Component Requirements: feo +########################### + +.. comp_req:: Application Processes + :id: comp_req__feo__application + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__application + :status: valid + + An application consists of one or more activities executed in one or multiple operating system processes. + + In particular it consists of the primary process which handles the lifecycle, configuration and execution management. + It may optionally consist of one or more secondary processes. + The purpose of secondary processes is to run code in separate address spaces (Freedom From Interference) for safety reasons. + Each process (primary and secondary) belongs to exactly one application. + Each process contains one ore more operating system threads. + + +.. comp_req:: Activity + :id: comp_req__feo__activity + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity + :status: valid + + Each activitiy is mapped to exactly one thread within the primary or one of the secondary processes. + Each activity provides the following functions: + + * `init`: Initialization of the activity. + * `step`: Execution of the activity. + * `shutdown`: Shutdown of the activity. + + +.. comp_req:: Task Chain + :id: comp_req__feo__task_chain + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__task_chain + :status: valid + + All activities within an application are arranged within a `Task Chain`. + There is exactly one task chain per application. + + The task chain configuration defines the execution order of the activities. + In particular it defines when the task chain is activated (typically in a cyclic manner) and in which order the activities will run. + + Every task chain may have one or multiple input service activities which will run in the beginning. + The purpose of an input service activity is to collect external input signals and provide them to the other activities during task chain execution. + Every task may have one or more output service activities which will run in the end. + The purpose of an output service activity is to collect signals produced by activities within the task chain and send them to external entities. + + +.. comp_req:: Scheduler aka Executor + :id: comp_req__feo__scheduler + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__application, feat_req__feo__agent + :status: valid + + The component shall implement a scheduler (aka executor) that manages the execution of activities in correct order. + + +.. comp_req:: Service Activity + :id: comp_req__feo__service_activity + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__service_activity + :status: valid + + The component shall enable the implementation and execution of Service Activities, which are a means to interact + with the outside world, e.g. via network communication, direct sensor input or direct actuator output. + + A Service Activity shall be enabled to use APIs external to the framework (e.g. networking APIs, reading from + external sensor devices, writing HW I/O, etc.) + + +.. comp_req:: Agent + :id: comp_req__feo__agent + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__agent + :status: valid + + In order to execute activities in secondary processes, the Scheduler shall use agents running in the secondary + processes. There shall be exactly one agent for each secondary process. + + The Agent in a secondary process shall receive commands from the Scheduler, invoke actions on Activities within its + process and report back to the Scheduler. Each Activity that is part of the task chain in a secondary process shall + be associated with an Agent, which takes over the task to wait for a trigger from the Scheduler. When the Agent + gets a step request from the Scheduler, it calls the Step function of the Activity. + + +.. comp_req:: Mapping of Activities to threads + :id: comp_req__feo__activitiy_thread + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity_init, feat_req__feo__activitiy_step, feat_req__feo__activity_shutdown, feat_req__feo__activity + :status: valid + + Each activity shall be mapped to one thread. The mapping cannot be changed at runtime. + Each activity's `init`, `step` and `shutdown` functions shall be executed in the assigned thread. + + +.. comp_req:: Application Lifecycle Phases + :id: comp_req__feo__application_lifecycle + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__application_lifecycle + :status: valid + + The Application Lifecycle shall consists of 3 phases: Init, Run and Shutdown. + + +.. comp_req:: Initialization of Activities + :id: comp_req__feo__activity_init + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity_init + :status: valid + + Initialization of Activities shall be done during application initialization. + + Each Activity shall be initialized by a call to its `init` function. + The `init` function shall be invoked in the thread to which the activity is mapped. + + +.. comp_req:: Stepping of Activities + :id: comp_req__feo__activitiy_step + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activitiy_step, feat_req__feo__activity_init, feat_req__feo__activity + :status: valid + + Each Activity shall be stepped once within each execution of the Task Chain they belong to. + Stepping is done by a call to an activity's `step` function. The `step` function shall be invoked + in the thread to which the activity is mapped. + + +.. comp_req:: Shutdown of activities + :id: comp_req__feo__activity_shutdown + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity_shutdown + :status: valid + + Shutdown of activities shall be done during application shutdown. + + Each activity shall be shut down by a call to its `shutdown` function. The `shutdown` function shall be invoked + in the thread to which the activity is mapped. + + +.. comp_req:: Component Configuration + :id: comp_req__feo__comp_cfg + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity, feat_req__feo__task_chain + :status: valid + + The component shall provide a configuration mechanism that supports configuring + + - the mapping of activities to threads + - the execution order of activities + - when the task chain is activated (e.g. a cycle time for cyclic execution) + + +.. comp_req:: Component Configuration from File + :id: comp_req__feo__comp_cfg_file + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity + :status: valid + + It shall be possible to define the component configuration in a pre-defined configuration file. + + +.. comp_req:: Activity Mapping Configuration + :id: comp_req__feo__act_map_cfg + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__activity + :status: valid + + The mapping of activities to threads is done in the component configuration and cannot be changed at runtime. + + +.. comp_req:: Alive supervision + :id: comp_req__feo__alive_supervision + :reqtype: Functional + :security: NO + :safety: ASIL_D + :satisfies: feat_req__feo__alive_supervision + :status: valid + + The component shall provide the functionality to enable the reporting of + alive supervision checkpoint to an external health management system + (e.g. watchdog) + + +.. comp_req:: Support of deadline supervision checkpoints + :id: comp_req__feo__deadline_supervision + :reqtype: Functional + :security: NO + :safety: ASIL_D + :satisfies: feat_req__feo__deadline_supervision + :status: valid + + The component shall provide the functionality to enable the reporting of + deadline supervision checkpoints to an external health management system + (e.g. watchdog) + + +.. comp_req:: Support of logical supervision + :id: comp_req__feo__logical_supervision + :reqtype: Functional + :security: NO + :safety: ASIL_D + :satisfies: feat_req__feo__logical_supervision + :status: valid + + The component shall provide the functionality to enable the reporting of + logical supervision checkpoints to an external health management system + (e.g. watchdog) + + +.. comp_req:: Trustable computation + :id: comp_req__feo__trustable_computation + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: feat_req__feo__trustable_computation + :status: valid + + The component shall provide mechanisms to check after the computation of + an Activity if the result is trustable. + This can be done e.g. via evaluation of floating point exceptions, + checking of hardware registers or status information of the + software platform. + diff --git a/docs/features/frameworks/feo/modules/feo/feo_com/docs/index.rst b/docs/features/frameworks/feo/modules/feo/feo_com/docs/index.rst new file mode 100644 index 0000000000..e290bbc1f8 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo_com/docs/index.rst @@ -0,0 +1,20 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Component Documentation: feo_com +################################ + +This component will be replaced by or become a wrapper of the interface `mw::com` provided by the feature +"Communication". In the latter case, it is planned to be integrated into the component feo (see :ref:`comp_doc_feo`). diff --git a/docs/features/frameworks/feo/modules/feo/feo_log/docs/index.rst b/docs/features/frameworks/feo/modules/feo/feo_log/docs/index.rst new file mode 100644 index 0000000000..f828328150 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo_log/docs/index.rst @@ -0,0 +1,20 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Component Documentation: feo_log +################################ + +This component will be replaced by or become a wrapper of the interface `mw::com` provided by the feature +"Logging". In the latter case, it is planned to be integrated into the component feo (see :ref:`comp_doc_feo`). diff --git a/docs/features/frameworks/feo/modules/feo/feo_time/docs/index.rst b/docs/features/frameworks/feo/modules/feo/feo_time/docs/index.rst new file mode 100644 index 0000000000..b023149523 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo_time/docs/index.rst @@ -0,0 +1,20 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Component Documentation: feo_time +################################# + +This component will be replaced by or become a wrapper of the interface `mw::com` provided by the feature +"Time". In the latter case, it is planned to be integrated into the component feo (see :ref:`comp_doc_feo`). diff --git a/docs/features/frameworks/feo/modules/feo/feo_tracing/docs/index.rst b/docs/features/frameworks/feo/modules/feo/feo_tracing/docs/index.rst new file mode 100644 index 0000000000..e00e9cd8b0 --- /dev/null +++ b/docs/features/frameworks/feo/modules/feo/feo_tracing/docs/index.rst @@ -0,0 +1,20 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + + +Component Documentation: feo_tracing +#################################### + +This component will be replaced by or become a wrapper of the interface `mw::com` provided by the feature +"Logging". In the latter case, it is planned to be integrated into the component feo (see :ref:`comp_doc_feo`). From 838a677e19f50dd4efa035a27aa2840fa0e28496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20S=C3=B6ren=20Pollak?= Date: Wed, 4 Jun 2025 13:13:41 +0200 Subject: [PATCH 6/8] Use 'process_description module' as Process (#1192) * Add 'release' version * Resolved links to Process Description * Adapt workflow to new target * Increase versions Co-authored-by: markus.schu --- .github/workflows/docs.yml | 6 +- MODULE.bazel | 7 +- docs/BUILD | 20 +- .../contribution_request/feature_request.rst | 4 +- .../contribute/contribution_request/index.rst | 22 +- .../development/development_environment.rst | 2 +- docs/contribute/general/folder.rst | 62 +- docs/contribute/general/git.rst | 2 +- docs/contribute/general/naming.rst | 2 +- docs/contribute/index.rst | 4 +- .../ipc/architecture/feature_architecture.rst | 2 +- .../communication/ipc/requirements/index.rst | 2 +- .../ipc/safety_planning/index.rst | 44 +- docs/features/frameworks/feo/index.rst | 4 +- docs/index.rst | 5 +- .../change_management.rst | 68 +- .../config_management.rst | 10 +- docs/platform_management_plan/index.rst | 2 +- .../problem_resolution.rst | 72 +- .../release_management.rst | 4 +- .../safety_management.rst | 186 +- .../software_development.rst | 10 +- .../software_verification.rst | 76 +- .../tool_management.rst | 36 +- .../score_process_area_overview.drawio.svg | 4 - .../_assets/inspection_workflow.drawio.svg | 4 - .../score_building_blocks_example.drawio.svg | 4 - ...core_building_blocks_meta_model.drawio.svg | 4 - .../_assets/score_lifecycle_model.drawio.svg | 4 - ...aceability_model_cmp_overview_1.drawio.svg | 4 - ...aceability_model_cmp_overview_2.drawio.svg | 4 - ...aceability_model_cmp_overview_3.drawio.svg | 4 - ...raceability_model_feat_overview.drawio.svg | 4 - ..._traceability_model_wp_overview.drawio.svg | 922 ---------- docs/process/general_concepts/index.rst | 27 - .../score_building_blocks_concept.rst | 87 - .../score_lifecycle_concept.rst | 40 - .../general_concepts/score_review_concept.rst | 196 -- .../score_traceability_concept.rst | 89 - docs/process/index.rst | 103 -- .../_assets/score_process_model.drawio.svg | 4 - docs/process/introduction/index.rst | 53 - .../_assets/architecture_modeling_example.rst | 234 --- .../_assets/architecture_workflow.drawio.svg | 4 - .../component_architecture_dynamic.puml | 50 - .../_assets/feature_architecture_dynamic.puml | 45 - .../metamodel_architectural_design.drawio.svg | 4 - .../architecture_concept.rst | 395 ---- .../architecture_getstrt.rst | 270 --- .../architecture_roles.rst | 29 - .../architecture_workflow.rst | 62 - .../architecture_workproducts.rst | 52 - .../guidance/architecture_guideline.rst | 259 --- .../architecture_inspection_checklist.rst | 155 -- .../guidance/architecture_process_reqs.rst | 246 --- .../component_architecture_template.rst | 95 - .../feature_architecture_template.rst | 91 - .../architecture_design/guidance/index.rst | 25 - .../architecture_design/index.rst | 34 - .../change_management_concept.rst | 197 -- .../change_management_getstrt.rst | 28 - .../change_management_roles.rst | 32 - .../change_management_workflow.rst | 64 - .../change_management_workproducts.rst | 66 - .../guidance/change_management_checklist.rst | 82 - .../change_management_component_template.rst | 181 -- .../change_management_feature_template.rst | 190 -- .../guidance/change_management_guideline.rst | 185 -- ...ge_management_impact_analysis_template.rst | 78 - .../guidance/change_management_reqs.rst | 163 -- .../change_management/guidance/index.rst | 26 - .../process_areas/change_management/index.rst | 29 - .../guidance/process_req.rst | 38 - .../configuration_management/index.rst | 109 -- .../documentation_concept.rst | 83 - .../documentation_getstrt.rst | 27 - .../documentation_roles.rst | 32 - .../documentation_workflow.rst | 23 - .../documentation_workproducts.rst | 33 - .../guidance/documentation_checklist.rst | 68 - .../guidance/documentation_guideline.rst | 31 - .../guidance/documentation_process_reqs.rst | 46 - .../guidance/index.rst | 23 - .../documentation_management/index.rst | 31 - .../_assets/dd_example_ex_dyn.puml | 30 - .../_assets/dd_example_ex_sta.puml | 37 - .../_assets/detailed_design_example.rst | 98 - .../implementation_workflow.drawio.svg | 443 ----- .../_assets/dd_traceability.drawio.svg | 225 --- .../guidance/_assets/dynamic_view.drawio.svg | 196 -- .../guidance/_assets/static_view.drawio.svg | 238 --- .../guidance/detailed_design_template.rst | 67 - .../guidance/implementation_checklist.rst | 103 -- .../guidance/implementation_guideline.rst | 72 - .../guidance/implementation_process_reqs.rst | 37 - .../implementation/guidance/index.rst | 25 - .../software_development_template.rst | 66 - .../implementation/implementation_concept.rst | 177 -- .../implementation/implementation_getstrt.rst | 62 - .../implementation/implementation_roles.rst | 23 - .../implementation_workflow.rst | 61 - .../implementation_workproducts.rst | 50 - .../process_areas/implementation/index.rst | 29 - docs/process/process_areas/index.rst | 33 - .../platform_management/guidance/index.rst | 22 - .../platform_management_guideline.rst | 117 -- .../guidance/platform_management_template.rst | 108 -- .../platform_management/index.rst | 29 - .../platform_management_concept.rst | 89 - .../platform_management_getstrt.rst | 27 - .../platform_management_roles.rst | 82 - .../platform_management_workflow.rst | 54 - .../platform_management_workproducts.rst | 51 - .../problem_resolution/guidance/index.rst | 24 - .../guidance/problem_resolution_checklist.rst | 90 - .../guidance/problem_resolution_guideline.rst | 139 -- .../guidance/problem_resolution_reqs.rst | 190 -- .../guidance/problem_resolution_template.rst | 174 -- .../problem_resolution/index.rst | 29 - .../problem_resolution_concept.rst | 132 -- .../problem_resolution_getstrt.rst | 28 - .../problem_resolution_roles.rst | 33 - .../problem_resolution_workflow.rst | 111 -- .../problem_resolution_workproducts.rst | 27 - .../release_management/guidance/index.rst | 22 - .../guidance/release_guideline.rst | 125 -- .../guidance/release_templates.rst | 155 -- .../release_management/index.rst | 30 - .../release_management/release_concept.rst | 127 -- .../release_management/release_roles.rst | 26 - .../release_management/release_workflow.rst | 67 - .../release_workproducts.rst | 58 - .../_assets/aou_traceability.drawio.svg | 4 - .../requirements_versioning.drawio.svg | 4 - .../_assets/requirements_workflow.drawio.svg | 4 - .../guidance/index.rst | 24 - .../guidance/requirements_guideline.rst | 218 --- .../requirements_inspection_checklist.rst | 124 -- .../guidance/requirements_process_reqs.rst | 275 --- .../guidance/requirements_templates.rst | 139 -- .../requirements_engineering/index.rst | 28 - .../requirements_concept.rst | 291 --- .../requirements_getstrt.rst | 81 - .../requirements_roles.rst | 29 - .../requirements_workflow.rst | 73 - .../requirements_workproducts.rst | 64 - .../wf_component_classification.drawio.svg | 4 - .../guidance/checklist_safety_package.rst | 60 - .../guidance/checklist_safety_plan.rst | 90 - .../guideline_component_classification.rst | 262 --- .../guidance/guideline_safety_management.rst | 117 -- .../safety_management/guidance/index.rst | 30 - .../guidance/process_req.rst | 35 - .../template_component_classification.rst | 184 -- .../guidance/template_feature_safety_wp.rst | 88 - .../guidance/template_module_safety_plan.rst | 299 --- .../guidance/template_safety_manual.rst | 88 - .../process_areas/safety_management/index.rst | 123 -- .../process_areas/safety_management/roles.rst | 85 - .../safety_management/workflows.rst | 115 -- .../safety_management/workproducts.rst | 137 -- .../tool_management/guidance/index.rst | 23 - .../guidance/tool_management_checklist.rst | 101 - .../guidance/tool_management_reqs.rst | 91 - .../guidance/tool_management_template.rst | 164 -- .../process_areas/tool_management/index.rst | 28 - .../tool_management_concept.rst | 85 - .../tool_management_getstrt.rst | 29 - .../tool_management/tool_management_roles.rst | 31 - .../tool_management_workflow.rst | 54 - .../tool_management_workproducts.rst | 39 - ...uirements_workflow_verification.drawio.svg | 589 ------ .../verification/guidance/index.rst | 29 - .../guidance/verification_guideline.rst | 136 -- .../guidance/verification_methods.rst | 348 ---- .../guidance/verification_plan_template.rst | 194 -- .../verification_process_toolreqs.rst | 139 -- .../guidance/verification_report_template.rst | 124 -- .../guidance/verification_specification.rst | 133 -- .../guidance/verification_templates.rst | 57 - .../process_areas/verification/index.rst | 28 - .../verification/verification_concept.rst | 205 --- .../verification/verification_getstrt.rst | 64 - .../verification/verification_roles.rst | 35 - .../process_areas/verification/workflows.rst | 196 -- .../verification/workproducts.rst | 141 -- docs/process/roles/index.rst | 153 -- docs/process/standards/aspice_40/aspice.rst | 428 ----- .../standards/aspice_40/iic/iic-01.rst | 51 - .../standards/aspice_40/iic/iic-02.rst | 31 - .../standards/aspice_40/iic/iic-03.rst | 61 - .../standards/aspice_40/iic/iic-04.rst | 78 - .../standards/aspice_40/iic/iic-06.rst | 60 - .../standards/aspice_40/iic/iic-07.rst | 164 -- .../standards/aspice_40/iic/iic-08.rst | 158 -- .../standards/aspice_40/iic/iic-10.rst | 66 - .../standards/aspice_40/iic/iic-11.rst | 72 - .../standards/aspice_40/iic/iic-12.rst | 32 - .../standards/aspice_40/iic/iic-13.rst | 236 --- .../standards/aspice_40/iic/iic-14.rst | 94 - .../standards/aspice_40/iic/iic-15.rst | 199 -- .../standards/aspice_40/iic/iic-16.rst | 60 - .../standards/aspice_40/iic/iic-17.rst | 116 -- .../standards/aspice_40/iic/iic-18.rst | 152 -- .../standards/aspice_40/iic/iic-19.rst | 33 - .../process/standards/aspice_40/iic/index.rst | 55 - docs/process/standards/aspice_40/index.rst | 22 - .../process/standards/aspice_40/man/index.rst | 20 - .../process/standards/aspice_40/man/man.3.rst | 158 -- .../process/standards/aspice_40/man/man.5.rst | 106 -- .../process/standards/aspice_40/pim/index.rst | 19 - .../process/standards/aspice_40/pim/pim.3.rst | 132 -- .../process/standards/aspice_40/reu/index.rst | 19 - .../process/standards/aspice_40/reu/reu.2.rst | 107 -- .../process/standards/aspice_40/spl/index.rst | 19 - .../process/standards/aspice_40/spl/spl.2.rst | 116 -- .../process/standards/aspice_40/sup/index.rst | 22 - .../process/standards/aspice_40/sup/sup.1.rst | 118 -- .../standards/aspice_40/sup/sup.10.rst | 111 -- .../process/standards/aspice_40/sup/sup.8.rst | 147 -- .../process/standards/aspice_40/sup/sup.9.rst | 114 -- .../process/standards/aspice_40/swe/index.rst | 24 - .../process/standards/aspice_40/swe/swe.1.rst | 162 -- .../process/standards/aspice_40/swe/swe.2.rst | 139 -- .../process/standards/aspice_40/swe/swe.3.rst | 152 -- .../process/standards/aspice_40/swe/swe.4.rst | 116 -- .../process/standards/aspice_40/swe/swe.5.rst | 191 -- .../process/standards/aspice_40/swe/swe.6.rst | 127 -- docs/process/standards/index.rst | 85 - docs/process/standards/iso26262/iso26262.rst | 1619 ----------------- .../standards/isopas8926/isopas8926.rst | 205 --- .../standards/isosae21434/isosae21434.rst | 494 ----- docs/process/workflows/index.rst | 39 - docs/process/workflows/process_management.rst | 59 - docs/process/workflows/quality_management.rst | 107 -- docs/process/workflows/safety_analysis.rst | 60 - .../_assets/wp_traceability_model.drawio.svg | 4 - docs/process/workproducts/index.rst | 199 -- 238 files changed, 336 insertions(+), 23475 deletions(-) delete mode 100644 docs/process/_assets/score_process_area_overview.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/inspection_workflow.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_building_blocks_example.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_lifecycle_model.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_1.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_2.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_3.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_traceability_model_feat_overview.drawio.svg delete mode 100644 docs/process/general_concepts/_assets/score_traceability_model_wp_overview.drawio.svg delete mode 100644 docs/process/general_concepts/index.rst delete mode 100644 docs/process/general_concepts/score_building_blocks_concept.rst delete mode 100644 docs/process/general_concepts/score_lifecycle_concept.rst delete mode 100644 docs/process/general_concepts/score_review_concept.rst delete mode 100644 docs/process/general_concepts/score_traceability_concept.rst delete mode 100644 docs/process/index.rst delete mode 100644 docs/process/introduction/_assets/score_process_model.drawio.svg delete mode 100644 docs/process/introduction/index.rst delete mode 100644 docs/process/process_areas/architecture_design/_assets/architecture_modeling_example.rst delete mode 100644 docs/process/process_areas/architecture_design/_assets/architecture_workflow.drawio.svg delete mode 100644 docs/process/process_areas/architecture_design/_assets/component_architecture_dynamic.puml delete mode 100644 docs/process/process_areas/architecture_design/_assets/feature_architecture_dynamic.puml delete mode 100644 docs/process/process_areas/architecture_design/_assets/metamodel_architectural_design.drawio.svg delete mode 100644 docs/process/process_areas/architecture_design/architecture_concept.rst delete mode 100644 docs/process/process_areas/architecture_design/architecture_getstrt.rst delete mode 100644 docs/process/process_areas/architecture_design/architecture_roles.rst delete mode 100644 docs/process/process_areas/architecture_design/architecture_workflow.rst delete mode 100644 docs/process/process_areas/architecture_design/architecture_workproducts.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/architecture_guideline.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/architecture_inspection_checklist.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/component_architecture_template.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/feature_architecture_template.rst delete mode 100644 docs/process/process_areas/architecture_design/guidance/index.rst delete mode 100644 docs/process/process_areas/architecture_design/index.rst delete mode 100644 docs/process/process_areas/change_management/change_management_concept.rst delete mode 100644 docs/process/process_areas/change_management/change_management_getstrt.rst delete mode 100644 docs/process/process_areas/change_management/change_management_roles.rst delete mode 100644 docs/process/process_areas/change_management/change_management_workflow.rst delete mode 100644 docs/process/process_areas/change_management/change_management_workproducts.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_checklist.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_component_template.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_feature_template.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_guideline.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_impact_analysis_template.rst delete mode 100644 docs/process/process_areas/change_management/guidance/change_management_reqs.rst delete mode 100644 docs/process/process_areas/change_management/guidance/index.rst delete mode 100644 docs/process/process_areas/change_management/index.rst delete mode 100644 docs/process/process_areas/configuration_management/guidance/process_req.rst delete mode 100644 docs/process/process_areas/configuration_management/index.rst delete mode 100644 docs/process/process_areas/documentation_management/documentation_concept.rst delete mode 100644 docs/process/process_areas/documentation_management/documentation_getstrt.rst delete mode 100644 docs/process/process_areas/documentation_management/documentation_roles.rst delete mode 100644 docs/process/process_areas/documentation_management/documentation_workflow.rst delete mode 100644 docs/process/process_areas/documentation_management/documentation_workproducts.rst delete mode 100644 docs/process/process_areas/documentation_management/guidance/documentation_checklist.rst delete mode 100644 docs/process/process_areas/documentation_management/guidance/documentation_guideline.rst delete mode 100644 docs/process/process_areas/documentation_management/guidance/documentation_process_reqs.rst delete mode 100644 docs/process/process_areas/documentation_management/guidance/index.rst delete mode 100644 docs/process/process_areas/documentation_management/index.rst delete mode 100644 docs/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml delete mode 100644 docs/process/process_areas/implementation/_assets/dd_example_ex_sta.puml delete mode 100644 docs/process/process_areas/implementation/_assets/detailed_design_example.rst delete mode 100644 docs/process/process_areas/implementation/_assets/implementation_workflow.drawio.svg delete mode 100644 docs/process/process_areas/implementation/guidance/_assets/dd_traceability.drawio.svg delete mode 100644 docs/process/process_areas/implementation/guidance/_assets/dynamic_view.drawio.svg delete mode 100644 docs/process/process_areas/implementation/guidance/_assets/static_view.drawio.svg delete mode 100644 docs/process/process_areas/implementation/guidance/detailed_design_template.rst delete mode 100644 docs/process/process_areas/implementation/guidance/implementation_checklist.rst delete mode 100644 docs/process/process_areas/implementation/guidance/implementation_guideline.rst delete mode 100644 docs/process/process_areas/implementation/guidance/implementation_process_reqs.rst delete mode 100644 docs/process/process_areas/implementation/guidance/index.rst delete mode 100644 docs/process/process_areas/implementation/guidance/software_development_template.rst delete mode 100644 docs/process/process_areas/implementation/implementation_concept.rst delete mode 100644 docs/process/process_areas/implementation/implementation_getstrt.rst delete mode 100644 docs/process/process_areas/implementation/implementation_roles.rst delete mode 100644 docs/process/process_areas/implementation/implementation_workflow.rst delete mode 100644 docs/process/process_areas/implementation/implementation_workproducts.rst delete mode 100644 docs/process/process_areas/implementation/index.rst delete mode 100644 docs/process/process_areas/index.rst delete mode 100644 docs/process/process_areas/platform_management/guidance/index.rst delete mode 100644 docs/process/process_areas/platform_management/guidance/platform_management_guideline.rst delete mode 100644 docs/process/process_areas/platform_management/guidance/platform_management_template.rst delete mode 100644 docs/process/process_areas/platform_management/index.rst delete mode 100644 docs/process/process_areas/platform_management/platform_management_concept.rst delete mode 100644 docs/process/process_areas/platform_management/platform_management_getstrt.rst delete mode 100644 docs/process/process_areas/platform_management/platform_management_roles.rst delete mode 100644 docs/process/process_areas/platform_management/platform_management_workflow.rst delete mode 100644 docs/process/process_areas/platform_management/platform_management_workproducts.rst delete mode 100644 docs/process/process_areas/problem_resolution/guidance/index.rst delete mode 100644 docs/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst delete mode 100644 docs/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst delete mode 100644 docs/process/process_areas/problem_resolution/guidance/problem_resolution_reqs.rst delete mode 100644 docs/process/process_areas/problem_resolution/guidance/problem_resolution_template.rst delete mode 100644 docs/process/process_areas/problem_resolution/index.rst delete mode 100644 docs/process/process_areas/problem_resolution/problem_resolution_concept.rst delete mode 100644 docs/process/process_areas/problem_resolution/problem_resolution_getstrt.rst delete mode 100644 docs/process/process_areas/problem_resolution/problem_resolution_roles.rst delete mode 100644 docs/process/process_areas/problem_resolution/problem_resolution_workflow.rst delete mode 100644 docs/process/process_areas/problem_resolution/problem_resolution_workproducts.rst delete mode 100644 docs/process/process_areas/release_management/guidance/index.rst delete mode 100644 docs/process/process_areas/release_management/guidance/release_guideline.rst delete mode 100644 docs/process/process_areas/release_management/guidance/release_templates.rst delete mode 100644 docs/process/process_areas/release_management/index.rst delete mode 100644 docs/process/process_areas/release_management/release_concept.rst delete mode 100644 docs/process/process_areas/release_management/release_roles.rst delete mode 100644 docs/process/process_areas/release_management/release_workflow.rst delete mode 100644 docs/process/process_areas/release_management/release_workproducts.rst delete mode 100644 docs/process/process_areas/requirements_engineering/_assets/aou_traceability.drawio.svg delete mode 100644 docs/process/process_areas/requirements_engineering/_assets/requirements_versioning.drawio.svg delete mode 100644 docs/process/process_areas/requirements_engineering/_assets/requirements_workflow.drawio.svg delete mode 100644 docs/process/process_areas/requirements_engineering/guidance/index.rst delete mode 100644 docs/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst delete mode 100644 docs/process/process_areas/requirements_engineering/guidance/requirements_inspection_checklist.rst delete mode 100644 docs/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst delete mode 100644 docs/process/process_areas/requirements_engineering/guidance/requirements_templates.rst delete mode 100644 docs/process/process_areas/requirements_engineering/index.rst delete mode 100644 docs/process/process_areas/requirements_engineering/requirements_concept.rst delete mode 100644 docs/process/process_areas/requirements_engineering/requirements_getstrt.rst delete mode 100644 docs/process/process_areas/requirements_engineering/requirements_roles.rst delete mode 100644 docs/process/process_areas/requirements_engineering/requirements_workflow.rst delete mode 100644 docs/process/process_areas/requirements_engineering/requirements_workproducts.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/_assets/wf_component_classification.drawio.svg delete mode 100644 docs/process/process_areas/safety_management/guidance/checklist_safety_package.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/checklist_safety_plan.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/guideline_component_classification.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/guideline_safety_management.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/index.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/process_req.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/template_component_classification.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/template_feature_safety_wp.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/template_module_safety_plan.rst delete mode 100644 docs/process/process_areas/safety_management/guidance/template_safety_manual.rst delete mode 100644 docs/process/process_areas/safety_management/index.rst delete mode 100644 docs/process/process_areas/safety_management/roles.rst delete mode 100644 docs/process/process_areas/safety_management/workflows.rst delete mode 100644 docs/process/process_areas/safety_management/workproducts.rst delete mode 100644 docs/process/process_areas/tool_management/guidance/index.rst delete mode 100644 docs/process/process_areas/tool_management/guidance/tool_management_checklist.rst delete mode 100644 docs/process/process_areas/tool_management/guidance/tool_management_reqs.rst delete mode 100644 docs/process/process_areas/tool_management/guidance/tool_management_template.rst delete mode 100644 docs/process/process_areas/tool_management/index.rst delete mode 100644 docs/process/process_areas/tool_management/tool_management_concept.rst delete mode 100644 docs/process/process_areas/tool_management/tool_management_getstrt.rst delete mode 100644 docs/process/process_areas/tool_management/tool_management_roles.rst delete mode 100644 docs/process/process_areas/tool_management/tool_management_workflow.rst delete mode 100644 docs/process/process_areas/tool_management/tool_management_workproducts.rst delete mode 100644 docs/process/process_areas/verification/_assets/requirements_workflow_verification.drawio.svg delete mode 100644 docs/process/process_areas/verification/guidance/index.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_guideline.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_methods.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_plan_template.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_process_toolreqs.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_report_template.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_specification.rst delete mode 100644 docs/process/process_areas/verification/guidance/verification_templates.rst delete mode 100644 docs/process/process_areas/verification/index.rst delete mode 100644 docs/process/process_areas/verification/verification_concept.rst delete mode 100644 docs/process/process_areas/verification/verification_getstrt.rst delete mode 100644 docs/process/process_areas/verification/verification_roles.rst delete mode 100644 docs/process/process_areas/verification/workflows.rst delete mode 100644 docs/process/process_areas/verification/workproducts.rst delete mode 100644 docs/process/roles/index.rst delete mode 100644 docs/process/standards/aspice_40/aspice.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-01.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-02.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-03.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-04.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-06.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-07.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-08.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-10.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-11.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-12.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-13.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-14.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-15.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-16.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-17.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-18.rst delete mode 100644 docs/process/standards/aspice_40/iic/iic-19.rst delete mode 100644 docs/process/standards/aspice_40/iic/index.rst delete mode 100644 docs/process/standards/aspice_40/index.rst delete mode 100644 docs/process/standards/aspice_40/man/index.rst delete mode 100644 docs/process/standards/aspice_40/man/man.3.rst delete mode 100644 docs/process/standards/aspice_40/man/man.5.rst delete mode 100644 docs/process/standards/aspice_40/pim/index.rst delete mode 100644 docs/process/standards/aspice_40/pim/pim.3.rst delete mode 100644 docs/process/standards/aspice_40/reu/index.rst delete mode 100644 docs/process/standards/aspice_40/reu/reu.2.rst delete mode 100644 docs/process/standards/aspice_40/spl/index.rst delete mode 100644 docs/process/standards/aspice_40/spl/spl.2.rst delete mode 100644 docs/process/standards/aspice_40/sup/index.rst delete mode 100644 docs/process/standards/aspice_40/sup/sup.1.rst delete mode 100644 docs/process/standards/aspice_40/sup/sup.10.rst delete mode 100644 docs/process/standards/aspice_40/sup/sup.8.rst delete mode 100644 docs/process/standards/aspice_40/sup/sup.9.rst delete mode 100644 docs/process/standards/aspice_40/swe/index.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.1.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.2.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.3.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.4.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.5.rst delete mode 100644 docs/process/standards/aspice_40/swe/swe.6.rst delete mode 100644 docs/process/standards/index.rst delete mode 100644 docs/process/standards/iso26262/iso26262.rst delete mode 100644 docs/process/standards/isopas8926/isopas8926.rst delete mode 100644 docs/process/standards/isosae21434/isosae21434.rst delete mode 100644 docs/process/workflows/index.rst delete mode 100644 docs/process/workflows/process_management.rst delete mode 100644 docs/process/workflows/quality_management.rst delete mode 100644 docs/process/workflows/safety_analysis.rst delete mode 100644 docs/process/workproducts/_assets/wp_traceability_model.drawio.svg delete mode 100644 docs/process/workproducts/index.rst diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e203868e2e..5b91709fa7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -55,7 +55,7 @@ jobs: run: sudo apt update && sudo apt install -y graphviz - name: Build documentation run: | - bazel build //docs:github_pages && cp bazel-bin/docs/github_pages.tar . + bazel build //docs:github_pages__release && cp bazel-bin/docs/github_pages__release.tar . # ------------------------------------------------------------------------------ # Generate a unique artifact name to ensure proper tracking in all scenarios # ------------------------------------------------------------------------------ @@ -69,7 +69,7 @@ jobs: uses: actions/upload-artifact@v4.4.0 with: name: github-pages-${{ github.event.pull_request.head.sha || github.sha }} - path: github_pages.tar + path: github_pages__release.tar retention-days: 1 if-no-files-found: error @@ -106,7 +106,7 @@ jobs: name: github-pages-${{ github.event.pull_request.head.sha || github.sha }} - name: Untar documentation artifact - run: mkdir -p extracted_docs && tar -xf github_pages.tar -C extracted_docs + run: mkdir -p extracted_docs && tar -xf github_pages__release.tar -C extracted_docs - name: Deploy 🚀 id: pages-deployment diff --git a/MODULE.bazel b/MODULE.bazel index 3389960d8f..41ad565594 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -65,7 +65,7 @@ bazel_dep(name = "aspect_rules_lint", version = "1.4.2") # Java version # ############################################################################### -bazel_dep(name = "rules_java", version = "8.6.3") +bazel_dep(name = "rules_java", version = "8.11.0") ############################################################################### # @@ -73,7 +73,7 @@ bazel_dep(name = "rules_java", version = "8.6.3") # ############################################################################### -bazel_dep(name = "score_python_basics", version = "0.3.1") +bazel_dep(name = "score_python_basics", version = "0.3.2") ############################################################################### # @@ -90,4 +90,5 @@ bazel_dep(name = "score_cr_checker", version = "0.2.2") bazel_dep(name = "score_starpls_lsp", version = "0.1.0") # Checker rule for CopyRight checks/fixs -bazel_dep(name = "score_docs_as_code", version = "0.2.6") +bazel_dep(name = "score_docs_as_code", version = "0.3.2") +bazel_dep(name = "score_process", version = "0.2.0") diff --git a/docs/BUILD b/docs/BUILD index 03670acdbb..b227440a89 100644 --- a/docs/BUILD +++ b/docs/BUILD @@ -25,7 +25,25 @@ docs( conf_dir = "docs", docs_targets = [ { - "suffix": "", # local without external needs + "suffix": "latest", # latest main branch documentation build + "external_needs_info": [ + { + "base_url": "https://eclipse-score.github.io/process_description/main", + "json_url": "https://eclipse-score.github.io/process_description/main/needs.json", + "id_prefix": "process_", + }, + ], + }, + { + "suffix": "release", # latest main branch documentation build + "target": ["@score_process//process:docs_needs_latest"], + "external_needs_info": [ + { + "base_url": "https://eclipse-score.github.io/process_description/main", + "json_path": "/score_process~/process/docs_needs_latest/_build/needs/needs.json", + "id_prefix": "process_", + }, + ], }, ], source_dir = "docs", diff --git a/docs/contribute/contribution_request/feature_request.rst b/docs/contribute/contribution_request/feature_request.rst index 2bf7587c2e..92455f410f 100644 --- a/docs/contribute/contribution_request/feature_request.rst +++ b/docs/contribute/contribution_request/feature_request.rst @@ -25,7 +25,7 @@ This Guideline is based on or references following documents: * :ref:`Contribution Guideline ` * :ref:`Change Management Plan ` -* :ref:`Feature Template ` +* :need:`Feature Template ` Creation of Feature Request ================================ @@ -79,7 +79,7 @@ First of all, change the status of *Feature Request* to "in Progress" state. *Feature Requests*, that stay in the status "Draft" longer as 4 weeks, will be deleted. Afterwards create a PR with your proposal in the `/docs/features `_ score repository. There you will find currently existing features as subfolders. Please choose the one that fits your *feature request* the most or -create a new subfolder, if none of existing feature match your *feature request*. Please take care, that the PR follows the :ref:`Feature Template `. +create a new subfolder, if none of existing feature match your *feature request*. Please take care, that the PR follows the :need:`Feature Template `. You should try to put as much information as possible, as a good exhaustive description is a prerequisite for *feature request* to be accepted. It is important to understand, that *feature request* consists of an GitHub Issue, that is used to track organizational information and diff --git a/docs/contribute/contribution_request/index.rst b/docs/contribute/contribution_request/index.rst index 81ea0766ec..01dc10d9e0 100644 --- a/docs/contribute/contribution_request/index.rst +++ b/docs/contribute/contribution_request/index.rst @@ -25,7 +25,7 @@ How to Contribute? How we Work =========== -At S-CORE, we believe that every contribution makes our platform stronger. Whether you're a seasoned developer or just starting out in open source, your ideas and work are warmly welcomed. We follow a structured yet flexible process rooted in our change management principles and overall lifecycle concept. For more details on our processes, feel free to explore our :ref:`general_concepts_lifecycle` and the :ref:`change_management`. And if you want to dive right into contributing, check out :ref:`what_is_a_pr` and :ref:`what_is_a_github_issue`. +At S-CORE, we believe that every contribution makes our platform stronger. Whether you're a seasoned developer or just starting out in open source, your ideas and work are warmly welcomed. We follow a structured yet flexible process rooted in our change management principles and overall lifecycle concept. For more details on our processes, feel free to explore our `Life Cycle Concept `_ and the :need:`doc__platform_change_management_plan`. And if you want to dive right into contributing, check out :ref:`what_is_a_pr` and :ref:`what_is_a_github_issue`. Feature Requests: Our Shared Roadmap ------------------------------------ @@ -95,9 +95,9 @@ A Pull Request (**PR**) is the **ONLY** way to contribute **CODE** to the *S-COR The figure below shows a simplified workflow for a PR. -* The contributor (:need:`Contributor `) starts by creating a PR: `Creating a Pull Request (Github Docs) `_. +* The contributor (:need:`Contributor `) starts by creating a PR: `Creating a Pull Request (Github Docs) `_. * Required reviewers will be automatically assigned based on the contributed content (via CODEOWNERS). -* If the content fullfils the review and acceptance criteria, a committer (:need:`Committer `) will approve the *PR* and thus it can be merged. +* If the content fullfils the review and acceptance criteria, a committer (:need:`Committer `) will approve the *PR* and thus it can be merged. .. figure:: _assets/score_contribution_request_simple.drawio.svg :width: 600 @@ -108,7 +108,7 @@ The figure below shows a simplified workflow for a PR. Content in general may contain features, requirements, architectural designs, modules, components, detailed designs, implementations and source code, tests, process descriptions, any documentations, guidelines, tutorials, tools, or infrastructure topics and more of the *S-CORE* project. In case of doubt or for any other input we strongly encourage to open a *GitHub Issue* (:need:`doc__issue_guideline`) first. -The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for his *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. +The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for his *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. The content of any *PR* is the commit content and the description as well as the comments given in GitHub and is kept in a versioned repository, their revision history is the historical record of the PR. @@ -132,23 +132,23 @@ The figure below gives an overview about all the possible steps for a *PR* until Create a PR ----------- -The contributor (:need:`Contributor `) creates a PR. +The contributor (:need:`Contributor `) creates a PR. -Reviewers will be automatically assigned (:need:`Committer `) based on the contributed content (ruleset as defined by the committers). In addition several checks for the contributed content (ToDo: Link to the description of the checks) will be started. +Reviewers will be automatically assigned (:need:`Committer `) based on the contributed content (ruleset as defined by the committers). In addition several checks for the contributed content (ToDo: Link to the description of the checks) will be started. Review and merge a PR --------------------- -A *PR* is reviewed with all content that adds/modifies it. As long as a *PR* requires further work by the contributor (:need:`Contributor `), the *PR* is not approved and thus not merged and further changes are requested. Once the contributor (:need:`Contributor `) considers all review comments as resolved, :need:`Contributor ` can re-request a review. The committer (:need:`Committer `) reviews the *PR* content according the *S-CORE* review and acceptance criteria (ToDo link here to the criteria). -Further the contributor (:need:`Contributor `) must resolve found issues from the automated checks, if they do not pass. +A *PR* is reviewed with all content that adds/modifies it. As long as a *PR* requires further work by the contributor (:need:`Contributor `), the *PR* is not approved and thus not merged and further changes are requested. Once the contributor (:need:`Contributor `) considers all review comments as resolved, :need:`Contributor ` can re-request a review. The committer (:need:`Committer `) reviews the *PR* content according the *S-CORE* review and acceptance criteria (ToDo link here to the criteria). +Further the contributor (:need:`Contributor `) must resolve found issues from the automated checks, if they do not pass. -As long as the *PR* does not meet the defined criteria and the checks does not pass, it will not be approved. If it does not follow the required templates, based on the provided content or the templates are not filled out properly, the committer as reviewer (:need:`Committer `) will place the *PR* to the "Draft" state. +As long as the *PR* does not meet the defined criteria and the checks does not pass, it will not be approved. If it does not follow the required templates, based on the provided content or the templates are not filled out properly, the committer as reviewer (:need:`Committer `) will place the *PR* to the "Draft" state. -It is then the responsibility of the contributor (:need:`Contributor `) to add the missing information and to re-start the contribution by placing the *PR* back for review. +It is then the responsibility of the contributor (:need:`Contributor `) to add the missing information and to re-start the contribution by placing the *PR* back for review. To change from "Draft" to "Open" see `Changing the stage of a pull request (Github Docs) `_. -At any point the contributor (:need:`Contributor `) may decide not to continue with the PR, then the contributor (:need:`Contributor `) just closes the PR. +At any point the contributor (:need:`Contributor `) may decide not to continue with the PR, then the contributor (:need:`Contributor `) just closes the PR. .. _what_is_a_github_issue: diff --git a/docs/contribute/development/development_environment.rst b/docs/contribute/development/development_environment.rst index e7645bd8a2..6ca017d515 100644 --- a/docs/contribute/development/development_environment.rst +++ b/docs/contribute/development/development_environment.rst @@ -16,7 +16,7 @@ :id: doc__develop_environment :status: valid :safety: ASIL_B - :realizes: wp__sw_development_plan + :realizes: PROCESS_wp__sw_development_plan .. _setting_up_dev_env: diff --git a/docs/contribute/general/folder.rst b/docs/contribute/general/folder.rst index b06566fd41..ebe3a30f24 100644 --- a/docs/contribute/general/folder.rst +++ b/docs/contribute/general/folder.rst @@ -29,35 +29,35 @@ The following shows the folder structure of the platform repository (ordered alp features/ -> All features of the platform / -> Features including sub-folders and feature (change) request docs/ -> Documentation of the feature - architecture/ -> Feature architecture [:need:`wp__feature_arch`] - requirements/ -> Feature requirements [:need:`wp__requirements__feat`] - safety_analysis/ -> Safety analysis on feature level [:need:`wp__feature_safety_analysis`] + architecture/ -> Feature architecture [:need:`PROCESS_wp__feature_arch`] + requirements/ -> Feature requirements [:need:`PROCESS_wp__requirements__feat`] + safety_analysis/ -> Safety analysis on feature level [:need:`PROCESS_wp__feature_safety_analysis`] safety_planning/ -> Feature specific safety workproducts planning verification/ -> Feature verification report (reporting all feature verifications) - [:need:`wp__verification__platform_ver_report`] + [:need:`PROCESS_wp__verification__platform_ver_report`] tests/ -> Feature tests, consisting of - integration-tests/ -> Integration tests [:need:`wp__verification__feat_int_test`] + integration-tests/ -> Integration tests [:need:`PROCESS_wp__verification__feat_int_test`] toolchain/ -> Definition of toolchain glossary/ -> Glossary of abbreviations used in the platform context manuals/ -> user and integration manual(s) overview/ -> Introduction and high-level description of the platform features. - platform_management_plan/ -> Overall Platform Management Plan [:need:`wp__platform_mgmt`] - score_releases/ -> [:need:`wp__platform_sw_release_note`] + platform_management_plan/ -> Overall Platform Management Plan [:need:`PROCESS_wp__platform_mgmt`] + score_releases/ -> [:need:`PROCESS_wp__platform_sw_release_note`] safety/ -> safety documentation on platform level (SEooC): - [:need:`wp__feature_dfa`], [:need:`wp__platform_safety_manual`], - [:need:`wp__platform_safety_package`], [:need:`wp__fdr_reports`], - [:need:`wp__audit_report`] + [:need:`PROCESS_wp__feature_dfa`], [:need:`PROCESS_wp__platform_safety_manual`], + [:need:`PROCESS_wp__platform_safety_package`], [:need:`PROCESS_wp__fdr_reports`], + [:need:`PROCESS_wp__audit_report`] security/ -> security documentation on platform level requirements/ -> requirements on platform level - stakeholder/ -> Stakeholder requirements [:need:`wp__requirements__stkh`] + stakeholder/ -> Stakeholder requirements [:need:`PROCESS_wp__requirements__stkh`] modules/ -> Modules of the SW platform. platform_integration_tests/ -> Integration tests on reference hardware verifying stakeholder requirements. process/ -> process definition including workflows, workproducts, - roles, guidance [:need:`wp__process_definition`] + roles, guidance [:need:`PROCESS_wp__process_definition`] registry/ -> infrastructure configuration @@ -75,17 +75,17 @@ The modules and components shall follow the folder structure which was presented / -> Folder containing all artifacts corresponding to one module. docs/ -> Documentation of the module manual/ -> Module manual, e.g. integration manual, assumptions of use, - safety manual [:need:`wp__requirements__comp_aou`], - [:need:`wp__module_safety_manual`]. - release/ -> Module release note [:need:`wp__module_sw_release_note`], - safety assessment [:need:`wp__audit_report`] - safety_plan/ -> Module safety plan [:need:`wp__module_safety_plan`], - module safety case [:need:`wp__module_safety_package`], - conformance reviews [:need:`wp__fdr_reports`] - safety_analysis/ -> Safety analysis on module level [:need:`wp__sw_component_dfa`] + safety manual [:need:`PROCESS_wp__requirements__comp_aou`], + [:need:`PROCESS_wp__module_safety_manual`]. + release/ -> Module release note [:need:`PROCESS_wp__module_sw_release_note`], + safety assessment [:need:`PROCESS_wp__audit_report`] + safety_plan/ -> Module safety plan [:need:`PROCESS_wp__module_safety_plan`], + module safety case [:need:`PROCESS_wp__module_safety_package`], + conformance reviews [:need:`PROCESS_wp__fdr_reports`] + safety_analysis/ -> Safety analysis on module level [:need:`PROCESS_wp__sw_component_dfa`] verification/ -> Module verification report - components verifications [:need:`wp__verification__module_ver_report`], - safety analysis conformance reviews [:need:`wp__fdr_reports`] + components verifications [:need:`PROCESS_wp__verification__module_ver_report`], + safety analysis conformance reviews [:need:`PROCESS_wp__fdr_reports`] / -> Components of the module. Folder containing all artifacts corresponding to one component. @@ -93,20 +93,20 @@ The modules and components shall follow the folder structure which was presented src/ -> Source files of the component consisting of Include files Source Files - Detailed Design [:need:`wp__sw_implementation`] - Unit tests [:need:`wp__verification__sw_unit_test`] + Detailed Design [:need:`PROCESS_wp__sw_implementation`] + Unit tests [:need:`PROCESS_wp__verification__sw_unit_test`] / -> lower level component following folder structure docs/ -> Documentation of the component architecture/ -> Component architecture (only if lower level components exist) - [:need:`wp__component_arch`]. - requirements/ -> Component requirements [:need:`wp__requirements__comp`], - HSI (if relevant) [:need:`wp__hsi`] + [:need:`PROCESS_wp__component_arch`]. + requirements/ -> Component requirements [:need:`PROCESS_wp__requirements__comp`], + HSI (if relevant) [:need:`PROCESS_wp__hsi`] safety_analysis/ -> Safety analysis on component level - [:need:`wp__sw_component_safety_analysis`] - verification/ -> Architecture review [:need:`wp__sw_arch_verification`], - code inspection [:need:`wp__sw_implementation_inspection`] + [:need:`PROCESS_wp__sw_component_safety_analysis`] + verification/ -> Architecture review [:need:`PROCESS_wp__sw_arch_verification`], + code inspection [:need:`PROCESS_wp__sw_implementation_inspection`] / -> Lower level component following folder structure tests/ -> Feature level tests, consisting of - integration tests [:need:`wp__verification__comp_int_test`] + integration tests [:need:`PROCESS_wp__verification__comp_int_test`] diff --git a/docs/contribute/general/git.rst b/docs/contribute/general/git.rst index 9866fefdfc..45a17d1c1e 100644 --- a/docs/contribute/general/git.rst +++ b/docs/contribute/general/git.rst @@ -16,7 +16,7 @@ :id: doc__git_coding_guidelines :status: valid :safety: ASIL_B - :realizes: wp__sw_development_plan + :realizes: PROCESS_wp__sw_development_plan .. _git_guidelines: diff --git a/docs/contribute/general/naming.rst b/docs/contribute/general/naming.rst index 6f780b916a..eef6a53b2b 100644 --- a/docs/contribute/general/naming.rst +++ b/docs/contribute/general/naming.rst @@ -16,7 +16,7 @@ :id: doc__naming_conventions :status: valid :safety: ASIL_B - :realizes: wp__sw_development_plan + :realizes: PROCESS_wp__sw_development_plan Naming Conventions ================== diff --git a/docs/contribute/index.rst b/docs/contribute/index.rst index 6244a5af86..913e33b2d9 100644 --- a/docs/contribute/index.rst +++ b/docs/contribute/index.rst @@ -16,7 +16,7 @@ :id: doc__contribution_guideline :status: valid :safety: ASIL_B - :realizes: wp__sw_development_plan + :realizes: PROCESS_wp__sw_development_plan .. _contribute: @@ -43,7 +43,7 @@ The only way to influence S-CORE is TO CONTRIBUTE. Everybody can contribute - S- Active Contributions to the S-CORE project are the basis for getting involved. The S-CORE Project works according to the Eclipse Project Handbook and has named and elected project leads and committers (see `Eclipse Safe Open Vehicle Core `_). The direction of the S-CORE project is discussed and decided in the project lead circle, the technical direction is created and upfront in the tech lead circle. Meeting notes are transparent via the `S-CORE GitHub Discussions `_. -We aim to build a safety ready full stack architecture, where components fit to each other in automotive grade Software Quality and performance. To achieve this, we follow a strict :ref:`feature roadmap and architecture ` and a :ref:`rigid software development process ` (currently under development). +We aim to build a safety ready full stack architecture, where components fit to each other in automotive grade Software Quality and performance. To achieve this, we follow a strict :ref:`feature roadmap and architecture ` and a `rigid software development process `_ (currently under development). Contributions to the S-CORE project must therefore follow the technical direction of the project and the S-CORE architecture. For an introduction on how to contribute, please check out our :need:`Contribution Guideline `. diff --git a/docs/features/communication/ipc/architecture/feature_architecture.rst b/docs/features/communication/ipc/architecture/feature_architecture.rst index b94517d3a7..36c906a1f3 100644 --- a/docs/features/communication/ipc/architecture/feature_architecture.rst +++ b/docs/features/communication/ipc/architecture/feature_architecture.rst @@ -54,5 +54,5 @@ Interfaces :status: valid :fulfils: feat_req__ipc__interfaces -.. needextend:: "communication/ipc/architecture" in docname +.. needextend:: docname is not None and "communication/ipc/architecture" in docname :+tags: ipc diff --git a/docs/features/communication/ipc/requirements/index.rst b/docs/features/communication/ipc/requirements/index.rst index eb929c3f87..a75ee638bc 100644 --- a/docs/features/communication/ipc/requirements/index.rst +++ b/docs/features/communication/ipc/requirements/index.rst @@ -508,5 +508,5 @@ Safety Impact The communication framework shall support safe communication up to ASIL-B. -.. needextend:: "communication/ipc/requirements" in docname +.. needextend:: docname is not None and "communication/ipc/requirements" in docname :+tags: ipc diff --git a/docs/features/communication/ipc/safety_planning/index.rst b/docs/features/communication/ipc/safety_planning/index.rst index 1699545cf8..86e4cd0bd6 100644 --- a/docs/features/communication/ipc/safety_planning/index.rst +++ b/docs/features/communication/ipc/safety_planning/index.rst @@ -28,58 +28,58 @@ Inter-process Communication Safety Work Products - Link to WP - WP status - * - :need:`wp__feat_request` - - :need:`gd_temp__change__feature_request` - - :ndf:`copy('status', need_id='gd_temp__change__feature_request')` + * - :need:`PROCESS_wp__feat_request` + - :need:`PROCESS_gd_temp__change__feature_request` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__change__feature_request')` - `#69 `_ - :need:`doc__ipc` - :ndf:`copy('status', need_id='doc__ipc')` - * - :need:`wp__requirements__feat` - - :need:`gd_temp__req__feat_req` - - :ndf:`copy('status', need_id='gd_temp__req__feat_req')` + * - :need:`PROCESS_wp__requirements__feat` + - :need:`PROCESS_gd_temp__req__feat_req` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__req__feat_req')` - `#69 `_ - :doc:`../requirements/index` - see below - * - :need:`wp__requirements__feat_aou` - - :need:`gd_temp__req__aou_req` - - :ndf:`copy('status', need_id='gd_temp__req__aou_req')` + * - :need:`PROCESS_wp__requirements__feat_aou` + - :need:`PROCESS_gd_temp__req__aou_req` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__req__aou_req')` - - :doc:`../requirements/index` - see below - * - :need:`wp__feature_arch` - - :need:`gd_temp__arch__feature` - - :ndf:`copy('status', need_id='gd_temp__arch__feature')` + * - :need:`PROCESS_wp__feature_arch` + - :need:`PROCESS_gd_temp__arch__feature` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__arch__feature')` - `#388 `_ - :doc:`../architecture/index` - see below - * - :need:`wp__feature_safety_analysis` + * - :need:`PROCESS_wp__feature_safety_analysis` - - - - - - * - :need:`wp__requirements__inspect` - - :need:`gd_chklst__req__inspection` - - :ndf:`copy('status', need_id='gd_chklst__req__inspection')` + * - :need:`PROCESS_wp__requirements__inspect` + - :need:`PROCESS_gd_chklst__req__inspection` + - :ndf:`copy('status', need_id='PROCESS_gd_chklst__req__inspection')` - - - - * - :need:`wp__sw_arch_verification` - - :need:`gd_chklst__arch__inspection_checklist` - - :ndf:`copy('status', need_id='gd_chklst__arch__inspection_checklist')` + * - :need:`PROCESS_wp__sw_arch_verification` + - :need:`PROCESS_gd_chklst__arch__inspection_checklist` + - :ndf:`copy('status', need_id='PROCESS_gd_chklst__arch__inspection_checklist')` - - - - * - :need:`wp__verification__feat_int_test` - - :need:`gd_guidl__verification_guide` - - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` + * - :need:`PROCESS_wp__verification__feat_int_test` + - :need:`PROCESS_gd_guidl__verification_guide` + - :ndf:`copy('status', need_id='PROCESS_gd_guidl__verification_guide')` - - - diff --git a/docs/features/frameworks/feo/index.rst b/docs/features/frameworks/feo/index.rst index 6c459deead..80b7d47100 100644 --- a/docs/features/frameworks/feo/index.rst +++ b/docs/features/frameworks/feo/index.rst @@ -21,8 +21,8 @@ Fixed execution order framework (FEO) :safety: ASIL_B :tags: feature_request -:need:`Change Request Guideline ` -and :need:`Feature Request Template `. +:need:`Change Request Guideline ` +and :need:`Feature Request Template `. .. toctree:: :hidden: diff --git a/docs/index.rst b/docs/index.rst index 5bd83e3148..4140f4a77f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -112,7 +112,7 @@ Project structure and processes Process ^^^ - Understand how we work, by reading our :ref:`Process description `. + Understand how we work, by reading our `Process description `. And receive tips & tricks for our used tool stack by reading the :ref:`contribute`. @@ -122,7 +122,7 @@ Project structure and processes ^^^ Read about our project and organization structure in the :ref:`Project Handbook `. - And learn how we deal with :ref:`process_safety_management` or care about :ref:`process_verification`. + And learn how we deal with :need:`doc__platform_safety_plan` or care about :need:`doc__verification_plan`. .. dropdown:: Click to see the complete sitemap @@ -134,6 +134,5 @@ Project structure and processes features/index contribute/index Releases - process/index PMP Eclipse diff --git a/docs/platform_management_plan/change_management.rst b/docs/platform_management_plan/change_management.rst index 71c7aa2207..f77f1055e8 100644 --- a/docs/platform_management_plan/change_management.rst +++ b/docs/platform_management_plan/change_management.rst @@ -24,7 +24,7 @@ Change Management / Change Management Plan ------------------------------------------ -This document implements parts of the :need:`wp__platform_mgmt`. +This document implements parts of the :need:`PROCESS_wp__platform_mgmt`. Purpose +++++++ @@ -73,7 +73,7 @@ of Change Requests. The tool is used to implement and verify Change Requests wit The next figure gives an overview, how Change Requests are realized in **S-CORE**. An ISSUE is used to create a Change Request including required attributes as defined in -:ref:`chm_process_change_request_attributes`. +:need:`PROCESS_gd_req__change__attr_uid`. The ISSUE may be linked to other ISSUEs or SUB-ISSUEs, if required, to manage more complex Change Requests. The implementation of a Change Request requires at least one PR linked to the ISSUE created for the Change Request. @@ -95,50 +95,50 @@ Changes are clustered in the following types: - Description - Infrastructure * - Feature - - Created by :need:`Contributor ` to change requirements and work products, new feature + - Created by :need:`Contributor ` to change requirements and work products, new feature - ISSUE with label ``feature_request`` * - Feature Modification - - Created by :need:`Contributor ` to change requirements and work products, scope change + - Created by :need:`Contributor ` to change requirements and work products, scope change - ISSUE with label ``feature_modification`` * - Component - - Created by :need:`Contributor ` to change requirements and work products, new component + - Created by :need:`Contributor ` to change requirements and work products, new component - ISSUE with label ``component_request`` * - Component Modification - - Created by :need:`Contributor ` to change requirements and work products, scope change + - Created by :need:`Contributor ` to change requirements and work products, scope change - ISSUE with label ``component_modification`` Change Request Traceability Impact Analysis requires the following tools: -:need:`[[title]] ` +:need:`[[title]] ` Change Request Attributes ^^^^^^^^^^^^^^^^^^^^^^^^^ -:ref:`chm_process_change_request_attributes` are implemented as follows: +:need:`PROCESS_gd_req__change__attr_uid` are implemented as follows: -:need:`[[title]] ` is identical to the ISSUE number. +:need:`[[title]] ` is identical to the ISSUE number. -:need:`[[title]] ` is defined by the combination of the ISSUE state +:need:`[[title]] ` is defined by the combination of the ISSUE state and the states of the linked PRs. -:need:`[[title]] ` is identical to the ISSUE title. +:need:`[[title]] ` is identical to the ISSUE title. -:need:`[[title]] ` is defined in the linked PR or part of the +:need:`[[title]] ` is defined in the linked PR or part of the description. -:need:`[[title]] ` is defined in the linked PR or part of the +:need:`[[title]] ` is defined in the linked PR or part of the description. -:need:`[[title]] ` is defined in the linked PR or part of the +:need:`[[title]] ` is defined in the linked PR or part of the description. -:need:`[[title]] ` is defined by label of a ISSUE and part of the +:need:`[[title]] ` is defined by label of a ISSUE and part of the description. -:need:`[[title]] ` is defined in the linked PR or part of the +:need:`[[title]] ` is defined in the linked PR or part of the description. -:need:`[[title]] ` is defined by the Milestone of a ISSUE. +:need:`[[title]] ` is defined by the Milestone of a ISSUE. .. _change_mgmt_workflow: @@ -164,13 +164,13 @@ The figure below shows the workflow for the simplest case of a Change Request. An ISSUE with the label according to the Change Request type is created in status ``OPEN``. The title of the ISSUE reflects the potential change. The description of the ISSUE may give a brief description of the requested change or modification. Further add here the -:ref:`Impact Analysis Template ` and fill it out accordingly. +:need:`Impact Analysis Template ` and fill it out accordingly. The details are part of the Feature/Component Request work product. The Feature/Component Request is provided by a PR, which is linked to the ISSUE in status ``DRAFT``. -For a new Feature/Component Request the provided templates :ref:`Feature Request`, -:ref:`Component Request` must be used. For a modification of an existing +For a new Feature/Component Request the provided templates :need:`Feature Request`, +:need:`Component Request` must be used. For a modification of an existing Feature/Component, update the existing work products. The linked PR in status ``DRAFT``, which contains the Feature/Component Requests, may contain also @@ -178,7 +178,7 @@ other required affected and changed work products or implementation and verifica Planning is done by setting the milestone of the ISSUE accordingly. -As long as the :need:`Contributor ` wants to modify the content of the Change +As long as the :need:`Contributor ` wants to modify the content of the Change Request, the linked PR is kept in status ``DRAFT``. Change request status: ``draft`` is implemented as @@ -196,12 +196,12 @@ To trigger the next step the PR status is changed from ``DRAFT`` to ``OPEN``. **To 2. Review the Change Request:** -The Change Request is reviewed from the :need:`Committer ` and the -review results are resolved by the :need:`Contributor `. The review results +The Change Request is reviewed from the :need:`Committer ` and the +review results are resolved by the :need:`Contributor `. The review results are documented in the PR. As long as the information is not sufficient, the related PR is kept in status ``OPEN``. -:ref:`chm_checklist` can help to verify whether the information is complete. +:need:`PROCESS_gd_chklst__change__cr_review` can help to verify whether the information is complete. The realisation parts of the Change Request are reviewed according the checklists of the affected work products. Verification of the realisation parts must be successful. @@ -213,10 +213,10 @@ ISSUE status ``OPEN`` and PR status ``OPEN``. **To 3. Approve the Change Request:** -:need:`Technical Lead ` or :need:`Module Lead ` decides finally, +:need:`Technical Lead ` or :need:`Module Lead ` decides finally, if the Change Request is accepted or rejected. -:need:`Committer ` checks finally if the Change Request is completed and the +:need:`Committer ` checks finally if the Change Request is completed and the required verification measures are executed and sucessfully passed. If ``approved``, the status of the concerned PRs change to ``MERGED``, @@ -270,23 +270,23 @@ Change Management SW Platform Work Products - Link to WP - WP status - * - :need:`wp__issue_track_system` + * - :need:`PROCESS_wp__issue_track_system` - :doc:`index` - :ndf:`copy('status', need_id='doc__platform_mgt_plan')` - n/a - `Project issues `_ - established - * - :need:`wp__platform_mgmt` - - :need:`wf__platform__cr_mt_platform_mgmt_plan` - - :ndf:`copy('status', need_id='wf__platform__cr_mt_platform_mgmt_plan')` + * - :need:`PROCESS_wp__platform_mgmt` + - :need:`PROCESS_wf__platform__cr_mt_platform_mgmt_plan` + - :ndf:`copy('status', need_id='PROCESS_wf__platform__cr_mt_platform_mgmt_plan')` - - :doc:`index` - :ndf:`copy('status', need_id='doc__platform_mgt_plan')` - * - :need:`wp__process_definition` - - :need:`wf__def_app_process_definition` - - :ndf:`copy('status', need_id='wf__def_app_process_definition')` + * - :need:`PROCESS_wp__process_definition` + - :need:`PROCESS_wf__def_app_process_definition` + - :ndf:`copy('status', need_id='PROCESS_wf__def_app_process_definition')` - `Process community issues `_ - - :ref:`process_description` + - `REPLACE_process_description` - diff --git a/docs/platform_management_plan/config_management.rst b/docs/platform_management_plan/config_management.rst index a28c07c7d6..65dcc38bd1 100644 --- a/docs/platform_management_plan/config_management.rst +++ b/docs/platform_management_plan/config_management.rst @@ -44,7 +44,7 @@ Goal of this plan is to describe * how to backup and recover (including long term storage) * how to report the configuration status -note: for definition of "configuration items" check :ref:`process_configuration_management` +note: for definition of "configuration items" check :need:`PROCESS_doc_concept__configuration__process` Approach @@ -53,7 +53,7 @@ Approach .. gd_guidl:: Configuration :id: gd_guidl__configuration :status: valid - :complies: std_req__iso26262__support_741, std_req__iso26262__support_742, std_req__iso26262__support_743, std_req__iso26262__support_744, std_req__iso26262__support_745, std_req__aspice_40__SUP-8-BP1, std_req__aspice_40__SUP-8-BP3, std_req__aspice_40__SUP-8-BP4, std_req__aspice_40__SUP-8-BP5, std_req__aspice_40__SUP-8-BP8 + :complies: PROCESS_std_req__iso26262__support_741, PROCESS_std_req__iso26262__support_742, PROCESS_std_req__iso26262__support_743, PROCESS_std_req__iso26262__support_744, PROCESS_std_req__iso26262__support_745, PROCESS_std_req__aspice_40__SUP-8-BP1, PROCESS_std_req__aspice_40__SUP-8-BP3, PROCESS_std_req__aspice_40__SUP-8-BP4, PROCESS_std_req__aspice_40__SUP-8-BP5, PROCESS_std_req__aspice_40__SUP-8-BP8 Identification @@ -89,9 +89,9 @@ For other artefacts: these are pulled into S-CORE integration repository by fork Modification ^^^^^^^^^^^^ -Files or new work products contained in them are created in local branches by the :need:`Contributor ` +Files or new work products contained in them are created in local branches by the :need:`Contributor ` and shared for review and incorporation into the main branch via GitHub pull-requests, -which are after their acceptance merged by the :need:`Committer `. The same applies for changes in existing configuration items. +which are after their acceptance merged by the :need:`Committer `. The same applies for changes in existing configuration items. See also :need:`doc__platform_change_management_plan`. For other artefacts modifications are controlled by the bazel build files which are also under configuration control. @@ -122,4 +122,4 @@ Backup and Recovery ^^^^^^^^^^^^^^^^^^^ Backup and recovery are covered by the Eclipse Foundation hosting the GitHub service for S-CORE. -For the long term storage, additional measures are taken, see :need:`gd_req__workproducts_storage` +For the long term storage, additional measures are taken, see :need:`PROCESS_gd_req__workproducts_storage` diff --git a/docs/platform_management_plan/index.rst b/docs/platform_management_plan/index.rst index d945f03a11..6d6830bdd1 100644 --- a/docs/platform_management_plan/index.rst +++ b/docs/platform_management_plan/index.rst @@ -16,7 +16,7 @@ :id: doc__platform_mgt_plan :status: draft :safety: ASIL_B - :realizes: wp__platform_mgmt + :realizes: PROCESS_wp__platform_mgmt :tags: platform_management Platform Management Plan diff --git a/docs/platform_management_plan/problem_resolution.rst b/docs/platform_management_plan/problem_resolution.rst index b7f77827ab..a9e2083c76 100644 --- a/docs/platform_management_plan/problem_resolution.rst +++ b/docs/platform_management_plan/problem_resolution.rst @@ -17,12 +17,12 @@ :status: draft :safety: ASIL_B :tags: platform_management - :realizes: wp__prm_plan + :realizes: PROCESS_wp__prm_plan Problem Resolution / Problem Resolution Plan -------------------------------------------- -This document implements parts of the :need:`wp__platform_mgmt`. +This document implements parts of the :need:`PROCESS_wp__platform_mgmt`. Purpose +++++++ @@ -63,8 +63,8 @@ problem reported within **S-CORE**. The next figure gives an overview, how problems are created in **S-CORE**. An ISSUE is used to create a problem report including required attributes as defined in the -:ref:`Problem Process Requirements `. -Therefore the Problem Template :ref:`prm_templates` shall be used. +:need:`Problem Process Requirements `. +Therefore the Problem Template :need:`PROCESS_gd_temp__problem__template` shall be used. .. figure:: _assets/score_problem_resolution_overview.drawio.svg :width: 100% @@ -74,11 +74,11 @@ Therefore the Problem Template :ref:`prm_templates` shall be used. Problem Resolution Attributes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:ref:`prm_process_problem_attributes` are implemented as follows: +:need:`Problem Process Requirements ` are implemented as follows: -:need:`[[title]] ` is identical to the ISSUE number. +:need:`[[title]] ` is identical to the ISSUE number. -:need:`[[title]] ` is defined by the combination of the ISSUE state +:need:`[[title]] ` is defined by the combination of the ISSUE state and the state in the Projects dashboard view. The PR status is also used, if applicable. .. list-table:: Problem Status @@ -110,21 +110,21 @@ and the state in the Projects dashboard view. The PR status is also used, if app - na - na -:need:`[[title]] ` is identical to the ISSUE title. +:need:`[[title]] ` is identical to the ISSUE title. -:need:`[[title]] ` is defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. +:need:`[[title]] ` is defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. -:need:`[[title]] ` is defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. +:need:`[[title]] ` is defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. -:need:`[[title]] ` is defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE stakeholder use pre-defined labels +:need:`[[title]] ` is defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. For S-CORE stakeholder use pre-defined labels for Communities or Feature Teams (Feature Owner) (under discussion, compare https://github.com/eclipse-score/score/issues/870) -:need:`[[title]] ` is defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE labels are defined as: +:need:`[[title]] ` is defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. For S-CORE labels are defined as: .. list-table:: Problem Classification :header-rows: 1 @@ -141,8 +141,8 @@ ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE labels are def * - blocker - ``blocker`` -:need:`[[title]] ` is defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE labels are defined as: +:need:`[[title]] ` is defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. For S-CORE labels are defined as: .. list-table:: Problem Categories :header-rows: 1 @@ -152,24 +152,24 @@ ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE labels are def - Description - Infrastructure * - User - - Created by any user or :need:`Contributor ` to report potential identified problems + - Created by any user or :need:`Contributor ` to report potential identified problems - ISSUE with type BUG * - Bug - - Created by :need:`Contributor ` to report problems found during verification + - Created by :need:`Contributor ` to report problems found during verification - ISSUE with type BUG and with label ```` -:need:`[[title]] `, -:need:`[[title]] `, -:need:`[[title]] ` are defined in the description part of the -ISSUE using the Problem Template :ref:`prm_templates`. For S-CORE labels are defined to mark affected +:need:`[[title]] `, +:need:`[[title]] `, +:need:`[[title]] ` are defined in the description part of the +ISSUE using the Problem Template :need:`PROCESS_gd_temp__problem__template`. For S-CORE labels are defined to mark affected ISSUEs: ``safety``, ``security``, ``quality`` Combinations of them are allowed. -:need:`[[title]] ` is defined by the Milestone of a ISSUE. +:need:`[[title]] ` is defined by the Milestone of a ISSUE. Problem Resolution Workflow @@ -193,7 +193,7 @@ The figure below shows the workflow for the simplest case of a Problem Resolutio An ISSUE with the type ``Bug`` is created in status ``Open``. The title of the ISSUE reflects the potential problem. Further add here the -:need:`Problem Template ` and fill it out accordingly. +:need:`Problem Template ` and fill it out accordingly. Planning is done by setting the milestone of the ISSUE accordingly. @@ -216,18 +216,18 @@ set the ISSUE status to ``Closed as not planned``. **To 2. Analyse the Problem Report:** -The Problem Report is reviewed and analysed from the :need:`Committer ` and the -review results are resolved by the :need:`Contributor `. The results +The Problem Report is reviewed and analysed from the :need:`Committer ` and the +review results are resolved by the :need:`Contributor `. The results are documented in the ISSUE. As long as the information is not sufficient, the related ISSUE is kept in status ``Open`` and Projects status ``Todo``, means ``in review``. If the information is sufficient and it is decided to initiate the problem resolution, the ISSUE status is kept ``Open`` and the Projects status is set to ``In Progress``. -:ref:`prm_checklist` can help to verify whether the information is complete. +:need:`PROCESS_gd_chklst__problem__cr_review` can help to verify whether the information is complete. -In case affected parties need to be informed :need:`Technical Lead ` or -:need:`Module Lead ` will notfiy them. +In case affected parties need to be informed :need:`Technical Lead ` or +:need:`Module Lead ` will notfiy them. Otherwise, if no Problem Resolution is planned, the problem is rejected. To reject the Problem Report: Problem status: ``rejected`` @@ -236,7 +236,7 @@ set the ISSUE status to ``Closed as not planned``. **To 3. Initiate and Monitor the Problem Resolution:** -:need:`Contributor ` starts all required activities to resolve the problem. +:need:`Contributor ` starts all required activities to resolve the problem. These may include starting Change Requests or in general plannig activites by creating ISSUEs and required PRs. @@ -246,8 +246,8 @@ monitoring of the activities. All activities defined are tracked until closure, means that all linked ISSUEs or PRs are closed or merged, respectively. -If all are closed or merged :need:`Contributor ` sets Projects status to ``Done`` -to trigger the final review from the :need:`Committer ` to close the Problem +If all are closed or merged :need:`Contributor ` sets Projects status to ``Done`` +to trigger the final review from the :need:`Committer ` to close the Problem Resolution. The Problem Resolution may also rejected in this phase, then the ISSUE status is set to @@ -255,13 +255,13 @@ The Problem Resolution may also rejected in this phase, then the ISSUE status is **To 4. Close the Problem Resolution:** -:need:`Committer ` checks finally if the problem is completely resolved. In this +:need:`Committer ` checks finally if the problem is completely resolved. In this case all linked ISSUEs or PRs are closed or merged, respectively. Especially the solution measure must be checked for their effectivness and the argumentation is convincing. -:ref:`prm_checklist` can help to verify whether it can be closed. +:need:`PROCESS_gd_chklst__problem__cr_review` can help to verify whether it can be closed. If this is the case the ISSUE status is set to ``Closed``, otherwise the Projects status is set back to ``In Progress``. diff --git a/docs/platform_management_plan/release_management.rst b/docs/platform_management_plan/release_management.rst index 81d75a53f7..0d4f456097 100644 --- a/docs/platform_management_plan/release_management.rst +++ b/docs/platform_management_plan/release_management.rst @@ -21,7 +21,7 @@ Release management Plan ----------------------- -This document implements parts of the :need:`wp__platform_mgmt`. +This document implements parts of the :need:`PROCESS_wp__platform_mgmt`. Purpose +++++++ @@ -65,7 +65,7 @@ the safety package work products may be incomplete and will be identified as "Pr Release Planning and Execution ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Generally release planning and execution is described in :ref:`release_management` process. +Generally release planning and execution is described in :need:`PROCESS_wf__rel__mod_rel_note` process. It is part of project planning and therefore also documented with the same means. Generally a Release is planned as an issue linked to a milestone in the `GitHub Milestone Planning `_. And this issue is closed by merging a pull request which creates/updates a release note. diff --git a/docs/platform_management_plan/safety_management.rst b/docs/platform_management_plan/safety_management.rst index 52fc6b8680..458214c506 100644 --- a/docs/platform_management_plan/safety_management.rst +++ b/docs/platform_management_plan/safety_management.rst @@ -16,7 +16,7 @@ :id: doc__platform_safety_plan :status: draft :safety: ASIL_B - :realizes: wp__platform_safety_plan + :realizes: PROCESS_wp__platform_safety_plan :tags: platform_management Safety management / Platform Safety Plan @@ -69,7 +69,7 @@ Regarding the platform specifics: The SW platform functionality consists of features, which are based on a set of requirements and are developed in parallel. These features are developed into SW components contained in "modules", which are another set of SEooCs (initiated by a change request). -A template exists to guide this: :need:`gd_temp__module_safety_plan`. +A template exists to guide this: :need:`PROCESS_gd_temp__module_safety_plan`. Tailoring ^^^^^^^^^ @@ -82,13 +82,13 @@ Tailoring of safety activities: The following ISO 26262 defined safety work products are not relevant for the S-CORE SW platform development: -Because these are in responsibility of the system integrator: :need:`std_wp__iso26262__management_751`, -:need:`std_wp__iso26262__system_652`, :need:`std_wp__iso26262__system_653`, :need:`std_wp__iso26262__system_654`, -:need:`std_wp__iso26262__system_655`, :need:`std_wp__iso26262__system_656`, :need:`std_wp__iso26262__system_657`, -:need:`std_wp__iso26262__system_751`, :need:`std_wp__iso26262__system_752`, :need:`std_wp__iso26262__system_851`, -:need:`std_wp__iso26262__system_852` +Because these are in responsibility of the system integrator: :need:`PROCESS_std_wp__iso26262__management_751`, +:need:`PROCESS_std_wp__iso26262__system_652`, :need:`PROCESS_std_wp__iso26262__system_653`, :need:`PROCESS_std_wp__iso26262__system_654`, +:need:`PROCESS_std_wp__iso26262__system_655`, :need:`PROCESS_std_wp__iso26262__system_656`, :need:`PROCESS_std_wp__iso26262__system_657`, +:need:`PROCESS_std_wp__iso26262__system_751`, :need:`PROCESS_std_wp__iso26262__system_752`, :need:`PROCESS_std_wp__iso26262__system_851`, +:need:`PROCESS_std_wp__iso26262__system_852` -Note that stakeholder requirements (:need:`std_wp__iso26262__system_651`) are in scope of the project, +Note that stakeholder requirements (:need:`PROCESS_std_wp__iso26262__system_651`) are in scope of the project, to be able to cover System and HW related failures which are usually covered by SW (e.g. end to end protection for ECU external communication). But those are the "Assumed Technical Safety Requirements" of the SW platform SEooC and do not need to be tested by SEooC supplier. I.e. the system testing is out of scope. Note that S-CORE will implement platform test of stakeholder requirements for demonstration, @@ -98,33 +98,35 @@ These may be reused by the users on their HW platform to cover Technical Safety But if these are sufficiently also covering the TSRs must be analyzed and decided by the user. Also tailored out is the SW testing on the target, as the S-CORE project can only test on reference HW -(part of SW integration testing). So these are not relevant: :need:`std_wp__iso26262__software_1151`, :need:`std_wp__iso26262__software_1152` +(part of SW integration testing). So these are not relevant: :need:`PROCESS_std_wp__iso26262__software_1151`, :need:`PROCESS_std_wp__iso26262__software_1152` -Because there is no calibration used for the S-CORE SW platform components, only configuration: :need:`std_wp__iso26262__software_app_c_52`, -:need:`std_wp__iso26262__software_app_c_54`, :need:`std_wp__iso26262__software_app_c_57` +Because there is no calibration used for the S-CORE SW platform components, only configuration: :need:`PROCESS_std_wp__iso26262__software_app_c_52`, +:need:`PROCESS_std_wp__iso26262__software_app_c_54`, :need:`PROCESS_std_wp__iso26262__software_app_c_57` Because distributed development is not how the project is organized. All contributors are seen as part of the project team. -When used, OSS components are qualified and external SEooCs are integrated in the project scope: :need:`std_wp__iso26262__support_551`, -:need:`std_wp__iso26262__support_552`, :need:`std_wp__iso26262__support_553`, :need:`std_wp__iso26262__support_554`, :need:`std_wp__iso26262__support_555` +When used, OSS components are qualified and external SEooCs are integrated in the project scope: :need:`PROCESS_std_wp__iso26262__support_551`, +:need:`PROCESS_std_wp__iso26262__support_552`, :need:`PROCESS_std_wp__iso26262__support_553`, :need:`PROCESS_std_wp__iso26262__support_554`, :need:`PROCESS_std_wp__iso26262__support_555` -Because in the S-CORE SW platform HW elements are out of scope: :need:`std_wp__iso26262__support_1351`, :need:`std_wp__iso26262__support_1352`, :need:`std_wp__iso26262__support_1353` +Because in the S-CORE SW platform HW elements are out of scope: :need:`PROCESS_std_wp__iso26262__support_1351`, :need:`PROCESS_std_wp__iso26262__support_1352`, :need:`PROCESS_std_wp__iso26262__support_1353` -Because in the S-CORE SW platform a proven in use argument will not be applied: :need:`std_wp__iso26262__support_1451`, :need:`std_wp__iso26262__support_1452` +Because in the S-CORE SW platform a proven in use argument will not be applied: :need:`PROCESS_std_wp__iso26262__support_1451`, :need:`PROCESS_std_wp__iso26262__support_1452` -Because in the S-CORE SW platform interfacing of out of scope of ISO 26262 applications is not planned: :need:`std_wp__iso26262__support_1551` +Because in the S-CORE SW platform interfacing of out of scope of ISO 26262 applications is not planned: :need:`PROCESS_std_wp__iso26262__support_1551` -Because in the S-CORE SW platform integration of safety-related systems not developed according to ISO 26262 is not planned: :need:`std_wp__iso26262__support_1651` +Because in the S-CORE SW platform integration of safety-related systems not developed according to ISO 26262 is not planned: :need:`PROCESS_std_wp__iso26262__support_1651` -Because in the S-CORE SW platform no ASIL decomposition is planned: :need:`std_wp__iso26262__analysis_551`, :need:`std_wp__iso26262__analysis_552` +Because in the S-CORE SW platform no ASIL decomposition is planned: :need:`PROCESS_std_wp__iso26262__analysis_551`, :need:`PROCESS_std_wp__iso26262__analysis_552` .. workproduct:: Tailoring Document Platform :id: wp__tailoring_platform :status: valid :tags: safety_mgt - :complies: std_wp__iso26262__management_751, std_wp__iso26262__system_652, std_wp__iso26262__system_653, std_wp__iso26262__system_654, std_wp__iso26262__system_655, std_wp__iso26262__system_656, std_wp__iso26262__system_657, std_wp__iso26262__system_751, std_wp__iso26262__system_752, std_wp__iso26262__system_851, std_wp__iso26262__system_852, std_wp__iso26262__software_1151, std_wp__iso26262__software_1152, std_wp__iso26262__software_app_c_52, std_wp__iso26262__software_app_c_54, std_wp__iso26262__software_app_c_57, std_wp__iso26262__support_551, std_wp__iso26262__support_552, std_wp__iso26262__support_553, std_wp__iso26262__support_554, std_wp__iso26262__support_555, std_wp__iso26262__support_1351, std_wp__iso26262__support_1352, std_wp__iso26262__support_1353, std_wp__iso26262__support_1451, std_wp__iso26262__support_1452, std_wp__iso26262__support_1551, std_wp__iso26262__support_1651, std_wp__iso26262__analysis_551, std_wp__iso26262__analysis_552 + :complies: PROCESS_std_wp__iso26262__management_751, PROCESS_std_wp__iso26262__system_652, PROCESS_std_wp__iso26262__system_653, PROCESS_std_wp__iso26262__system_654, PROCESS_std_wp__iso26262__system_655, PROCESS_std_wp__iso26262__system_656, PROCESS_std_wp__iso26262__system_657, PROCESS_std_wp__iso26262__system_751, PROCESS_std_wp__iso26262__system_752, PROCESS_std_wp__iso26262__system_851, PROCESS_std_wp__iso26262__system_852, PROCESS_std_wp__iso26262__software_1151, PROCESS_std_wp__iso26262__software_1152, PROCESS_std_wp__iso26262__software_app_c_52, PROCESS_std_wp__iso26262__software_app_c_54, PROCESS_std_wp__iso26262__software_app_c_57, PROCESS_std_wp__iso26262__support_551, PROCESS_std_wp__iso26262__support_552, PROCESS_std_wp__iso26262__support_553, PROCESS_std_wp__iso26262__support_554, PROCESS_std_wp__iso26262__support_555, PROCESS_std_wp__iso26262__support_1351, PROCESS_std_wp__iso26262__support_1352, PROCESS_std_wp__iso26262__support_1353, PROCESS_std_wp__iso26262__support_1451, PROCESS_std_wp__iso26262__support_1452, PROCESS_std_wp__iso26262__support_1551, PROCESS_std_wp__iso26262__support_1651, PROCESS_std_wp__iso26262__analysis_551, PROCESS_std_wp__iso26262__analysis_552 This work product instantiation links to all the work products which are tailored out in the platform safety plan, - to be able to demonstrate completeness in :ref:`external_standards` + to be able to demonstrate completeness in `REPLACE external_standards`, and this is a document, not work product + + Approach ++++++++ @@ -191,9 +193,9 @@ One important aspect to this is, that we ensure the identity of the committer by Functional Safety Resources ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A dedicated safety manager is elected by :need:`rl__project_lead` for all the S-CORE SEooCs development. +A dedicated safety manager is elected by :need:`PROCESS_rl__project_lead` for all the S-CORE SEooCs development. -The safety manager, supported by the project manager (i.e. the :need:`rl__technical_lead`), will ensure that +The safety manager, supported by the project manager (i.e. the :need:`PROCESS_rl__technical_lead`), will ensure that safety activities are actively planned, developed, analyzed, verified and tested and managed throughout the life cycle of the project. As all the implementation of safety functions takes place within module development, there is a safety manager appointed in the module's safety plan. @@ -223,15 +225,15 @@ To exchange general information and to clarify general topics the following comm The safety management status is reported in the Technical Lead Circle Meeting which is defined in :need:`doc__project_mgt_plan`. The status report is based on safety plans work product lists (see below) and verification reports on platform and module level: -* :need:`wp__platform_safety_plan` -* :need:`wp__module_safety_plan` -* :need:`wp__verification__platform_ver_report` -* :need:`wp__verification__module_ver_report` +* :need:`PROCESS_wp__platform_safety_plan` +* :need:`PROCESS_wp__module_safety_plan` +* :need:`PROCESS_wp__verification__platform_ver_report` +* :need:`PROCESS_wp__verification__module_ver_report` *Escalation* -* :need:`rl__safety_manager` to :need:`rl__technical_lead` -* :need:`rl__technical_lead` to :need:`rl__project_lead` +* :need:`PROCESS_rl__safety_manager` to :need:`PROCESS_rl__technical_lead` +* :need:`PROCESS_rl__technical_lead` to :need:`PROCESS_rl__project_lead` Examples for valid escalation causes are: @@ -241,7 +243,7 @@ Examples for valid escalation causes are: Functional Safety Management Life Cycle ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The safety lifecycle of the S-CORE project is initiated at the project set-up and driven and maintained by the safety manager supported by the :need:`rl__process_community`. +The safety lifecycle of the S-CORE project is initiated at the project set-up and driven and maintained by the safety manager supported by the :need:`PROCESS_rl__process_community`. Note that the Eclipse Foundation also defines `project phases `_. Eclipse definition is more about the process maturity for the whole project, if we are in Mature Phase, we latest will have the project lifecycle as defined in our process description. Nevertheless, Safety Development and even Safety Case release is independent from Mature and Incubation Phase as the completeness and appropriateness of the platform process and artifacts @@ -249,13 +251,13 @@ is determined by Safety Audit and not be Eclipse project reviews. Functional Safety Requirements ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Requirement Engineering is defined in the process description. See :ref:`requirements_engineering` +Requirement Engineering is defined in the process description. See :doc:`requirements_management`. -The application of ISO 26262 standards requirements is realized by defining process guidances and matching those to the ISO 26262 requirements (see :ref:`processes_introduction`). +The application of ISO 26262 standards requirements is realized by defining process guidances and matching those to the ISO 26262 requirements (see e.g. for example :need:`PROCESS_gd_req__sm_doc_status`). Functional Safety Schedule ^^^^^^^^^^^^^^^^^^^^^^^^^^ -The schedule is defined in section "Platform Safety Plan" below, but also within each module safety plan. See linked issues below and in :need:`gd_temp__module_safety_plan`. +The schedule is defined in section "Platform Safety Plan" below, but also within each module safety plan. See linked issues below and in :need:`PROCESS_gd_temp__module_safety_plan`. Functional Safety Development ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -271,7 +273,7 @@ The platform management plan defines :doc:`tool_management` Functional Safety Work Products ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The work products relevant for a module development is defined within each module safety management plan. See :need:`gd_temp__module_safety_plan`. +The work products relevant for a module development is defined within each module safety management plan. See :need:`PROCESS_gd_temp__module_safety_plan`. Generic project wide work products are defined below. Functional Safety Quality Criteria @@ -294,178 +296,178 @@ Functional Safety Management SW Platform Work Products - Link to WP - WP status - * - :need:`wp__policies` + * - :need:`PROCESS_wp__policies` - n/a (comes from outside the project) - n/a - n/a - `Eclipse Foundation Project Handbook: `_ - RELEASED - * - :need:`wp__training_path` + * - :need:`PROCESS_wp__training_path` - n/a - n/a - n/a - not open sourced - to be shown to assessor - * - :need:`wp__qms` - - :need:`wf__platform__cr_mt_platform_mgmt_plan` - - :ndf:`copy('status', need_id='wf__platform__cr_mt_platform_mgmt_plan')` + * - :need:`PROCESS_wp__qms` + - :need:`PROCESS_wf__platform__cr_mt_platform_mgmt_plan` + - :ndf:`copy('status', need_id='PROCESS_wf__platform__cr_mt_platform_mgmt_plan')` - `#316 `_ - :doc:`quality_management` - not started - * - :need:`wp__issue_track_system` + * - :need:`PROCESS_wp__issue_track_system` - :doc:`index` - :ndf:`copy('status', need_id='doc__platform_mgt_plan')` - n/a - `Project issues `_ - established - * - :need:`wp__platform_mgmt` - - :need:`wf__platform__cr_mt_platform_mgmt_plan` - - :ndf:`copy('status', need_id='wf__platform__cr_mt_platform_mgmt_plan')` + * - :need:`PROCESS_wp__platform_mgmt` + - :need:`PROCESS_wf__platform__cr_mt_platform_mgmt_plan` + - :ndf:`copy('status', need_id='PROCESS_wf__platform__cr_mt_platform_mgmt_plan')` - `#540 `_ - :doc:`index` - :ndf:`copy('status', need_id='doc__platform_mgt_plan')` - * - :need:`wp__process_definition` - - :need:`wf__def_app_process_definition` - - :ndf:`copy('status', need_id='wf__def_app_process_definition')` + * - :need:`PROCESS_wp__process_definition` + - :need:`PROCESS_wf__def_app_process_definition` + - :ndf:`copy('status', need_id='PROCESS_wf__def_app_process_definition')` - `Process community issues `_ - - :ref:`process_description` + - `REPLACE_process_description` - - * - :need:`wp__process_impr_report` - - :need:`wf__mon_ctrl_process_definition` - - :ndf:`copy('status', need_id='wf__mon_ctrl_process_definition')` + * - :need:`PROCESS_wp__process_impr_report` + - :need:`PROCESS_wf__mon_ctrl_process_definition` + - :ndf:`copy('status', need_id='PROCESS_wf__mon_ctrl_process_definition')` - - - - * - :need:`wp__process_plan` - - :need:`wf__mon_ctrl_process_definition` - - :ndf:`copy('status', need_id='wf__mon_ctrl_process_definition')` + * - :need:`PROCESS_wp__process_plan` + - :need:`PROCESS_wf__mon_ctrl_process_definition` + - :ndf:`copy('status', need_id='PROCESS_wf__mon_ctrl_process_definition')` - `#232 `_ - `Process community issues `_ - - * - :need:`wp__platform_safety_plan` - - :need:`gd_guidl__saf_plan_definitions` - - :ndf:`copy('status', need_id='gd_guidl__saf_plan_definitions')` + * - :need:`PROCESS_wp__platform_safety_plan` + - :need:`PROCESS_gd_guidl__saf_plan_definitions` + - :ndf:`copy('status', need_id='PROCESS_gd_guidl__saf_plan_definitions')` - `#381 `_ - this document - see above - * - :need:`wp__platform_safety_package` - - :need:`gd_guidl__saf_package` - - :ndf:`copy('status', need_id='gd_guidl__saf_package')` + * - :need:`PROCESS_wp__platform_safety_package` + - :need:`PROCESS_gd_guidl__saf_package` + - :ndf:`copy('status', need_id='PROCESS_gd_guidl__saf_package')` - - - - * - :need:`wp__fdr_reports` (platform Safety Plan) - - :need:`gd_chklst__safety_plan` - - :ndf:`copy('status', need_id='gd_chklst__safety_plan')` + * - :need:`PROCESS_wp__fdr_reports` (platform Safety Plan) + - :need:`PROCESS_gd_chklst__safety_plan` + - :ndf:`copy('status', need_id='PROCESS_gd_chklst__safety_plan')` - - - - * - :need:`wp__fdr_reports` (platform Safety Package) - - :need:`gd_chklst__safety_package` - - :ndf:`copy('status', need_id='gd_chklst__safety_package')` + * - :need:`PROCESS_wp__fdr_reports` (platform Safety Package) + - :need:`PROCESS_gd_chklst__safety_package` + - :ndf:`copy('status', need_id='PROCESS_gd_chklst__safety_package')` - - - - * - :need:`wp__fdr_reports` (feature's Safety Analyses & DFA) + * - :need:`PROCESS_wp__fdr_reports` (feature's Safety Analyses & DFA) - Safety Analysis FDR tbd - - - - - * - :need:`wp__audit_report` + * - :need:`PROCESS_wp__audit_report` - performed by external experts - n/a - `#470 `_ - - intermediate - * - :need:`wp__feature_dfa` + * - :need:`PROCESS_wp__feature_dfa` - - - - - - * - :need:`wp__platform_sw_build_config` + * - :need:`PROCESS_wp__platform_sw_build_config` - :need:`doc__software_development_plan` - :ndf:`copy('status', need_id='doc__software_development_plan')` - - - - * - :need:`wp__platform_safety_manual` - - :need:`gd_temp__safety_manual` - - :ndf:`copy('status', need_id='gd_temp__safety_manual')` + * - :need:`PROCESS_wp__platform_safety_manual` + - :need:`PROCESS_gd_temp__safety_manual` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__safety_manual')` - - - - * - :need:`wp__platform_sw_release_note` - - :need:`gd_temp__rel__plat_rel_note` - - :ndf:`copy('status', need_id='gd_temp__rel__plat_rel_note')` + * - :need:`PROCESS_wp__platform_sw_release_note` + - :need:`PROCESS_gd_temp__rel__plat_rel_note` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__rel__plat_rel_note')` - - - - * - :need:`wp__verification__platform_ver_report` - - :need:`gd_temp__mod_ver_report` - - :ndf:`copy('status', need_id='gd_temp__mod_ver_report')` + * - :need:`PROCESS_wp__verification__platform_ver_report` + - :need:`PROCESS_gd_temp__mod_ver_report` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__mod_ver_report')` - - - - * - :need:`wp__requirements__stkh` - - :need:`gd_temp__req__stkh_req` - - :ndf:`copy('status', need_id='gd_temp__req__stkh_req')` + * - :need:`PROCESS_wp__requirements__stkh` + - :need:`PROCESS_gd_temp__req__stkh_req` + - :ndf:`copy('status', need_id='PROCESS_gd_temp__req__stkh_req')` - n/a (done already) - :ref:`stakeholder_requirements` - - * - :need:`wp__sw_development_plan` - - :need:`wf__platform__cr_mt_platform_mgmt_plan` - - :ndf:`copy('status', need_id='wf__platform__cr_mt_platform_mgmt_plan')` + * - :need:`PROCESS_wp__sw_development_plan` + - :need:`PROCESS_wf__platform__cr_mt_platform_mgmt_plan` + - :ndf:`copy('status', need_id='PROCESS_wf__platform__cr_mt_platform_mgmt_plan')` - `#583 `_ - :need:`doc__software_development_plan` - :ndf:`copy('status', need_id='doc__software_development_plan')` - * - :need:`wp__verification__plan` - - :need:`wf__platform__cr_mt_platform_mgmt_plan` - - :ndf:`copy('status', need_id='wf__platform__cr_mt_platform_mgmt_plan')` + * - :need:`PROCESS_wp__verification__plan` + - :need:`PROCESS_wf__platform__cr_mt_platform_mgmt_plan` + - :ndf:`copy('status', need_id='PROCESS_wf__platform__cr_mt_platform_mgmt_plan')` - `#611 `_ - :need:`doc__verification_plan` - :ndf:`copy('status', need_id='doc__verification_plan')` - * - :need:`wp__tool_verification_report` + * - :need:`PROCESS_wp__tool_verification_report` - :need:`doc__platform_tool_management_plan` - :ndf:`copy('status', need_id='doc__platform_tool_management_plan')` - - - - * - :need:`wp__tailoring` (generic) - - :need:`gd_guidl__saf_plan_definitions` - - :ndf:`copy('status', need_id='gd_guidl__saf_plan_definitions')` + * - :need:`PROCESS_wp__tailoring` (generic) + - :need:`PROCESS_gd_guidl__saf_plan_definitions` + - :ndf:`copy('status', need_id='PROCESS_gd_guidl__saf_plan_definitions')` - `#307 `_ - - :ref:`standard_iso26262` & :need:`doc__platform_safety_plan` + - :need:`PROCESS_std_req__iso26262__management_5421` & :need:`doc__platform_safety_plan` - valid Functional Safety Management Feature Specific Work Products ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -See feature tree documents (created by using :need:`gd_temp__feature_safety_wp`): +See feature tree documents (created by using :need:`PROCESS_gd_temp__feature_safety_wp`): - Inter-process Communication: :doc:`/features/communication/ipc/safety_planning/index` - Common Libraries: diff --git a/docs/platform_management_plan/software_development.rst b/docs/platform_management_plan/software_development.rst index 0ec671f44d..b72128b61f 100644 --- a/docs/platform_management_plan/software_development.rst +++ b/docs/platform_management_plan/software_development.rst @@ -20,7 +20,7 @@ Software Development :id: doc__software_development_plan :status: draft :safety: ASIL_B - :realizes: wp__sw_development_plan + :realizes: PROCESS_wp__sw_development_plan :tags: platform_management Purpose @@ -48,13 +48,13 @@ Design and programming language For specifying **Detailed Design** (like for the Architecture) a mixture of UML diagrams and natural language is used. Additionally for the Detailed Design linking to code, Doxygen style comments are used. -This is described in :need:`doc_concept__imp__concept` and guided by :need:`gd_temp__detailed_design` +This is described in :need:`PROCESS_doc_concept__imp__concept` and guided by :need:`PROCESS_gd_temp__detailed_design` As required in :need:`stkh_req__dev_experience__prog_languages`, S-CORE allows the use of two programming languages: **C++ with the language set of C++17** - in case additional elements from C++20 are needed this will be considered by -:need:`rl__safety_manager`, :need:`rl__security_manager` and :need:`rl__quality_manager` -and based on their analysis decided by the technical tead circle (:need:`rl__technical_lead`). +:need:`PROCESS_rl__safety_manager`, :need:`PROCESS_rl__security_manager` and :need:`PROCESS_rl__quality_manager` +and based on their analysis decided by the technical tead circle (:need:`PROCESS_rl__technical_lead`). **Rust - in "Edition" ** - selection of language edition has still to be done in the S-CORE project. For the Rust code of ASIL rated units the "safe subset" shall be used (which is checked by the compiler by configuration of #![forbid(unsafe_code)] in lib.rs) @@ -64,7 +64,7 @@ C language is allowed in incubation phase, as long it is compilable be the selec Design guideline ^^^^^^^^^^^^^^^^ -The design guideline is defined in :need:`doc_concept__imp__concept` and :need:`gd_guidl__implementation`. +The design guideline is defined in :need:`PROCESS_doc_concept__imp__concept` and :need:`PROCESS_gd_guidl__implementation`. Coding guideline ^^^^^^^^^^^^^^^^ diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index f0fc53ef29..ebed31fe77 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -17,7 +17,7 @@ :status: draft :safety: ASIL_B :tags: platform_management - :realizes: wp__verification__plan + :realizes: PROCESS_wp__verification__plan Software verification ********************* @@ -30,8 +30,8 @@ an overview by linking to other relevant sources and provide further information activities. Main purpose of this document is to show the objectives, approaches, and strategies that are defined to contribute to -the overall quality of the software project. The target groups of this document are mainly :need:`rl__contributor` -and :need:`rl__committer`. +the overall quality of the software project. The target groups of this document are mainly :need:`PROCESS_rl__contributor` +and :need:`PROCESS_rl__committer`. Objectives and scope ==================== @@ -71,7 +71,7 @@ Schedules --------- The integration of software elements is driven by change requests and their respective -:ref:`general_concepts_lifecycle` model. The contribution of a feature itself implies that it gets fully +:need:`PROCESS_doc_getstrt__change__process` model. The contribution of a feature itself implies that it gets fully verified. Approach @@ -99,7 +99,7 @@ The following types of integrations are applicable: #. **New software elements** get integrated according to the :need:`doc__contr_guideline` #. **Fixes of defects** get integrated based on their prioritization described by the :doc:`problem_resolution`. -#. **Changes** get integrated based on the :need:`wf__change__cr_an_change_request` and will follow +#. **Changes** get integrated based on the :need:`PROCESS_wf__change__cr_an_change_request` and will follow the :need:`doc__pull_request_guideline` as any other artifact. Levels of integration and verification @@ -127,7 +127,7 @@ There are the following different levels of integration and verification defined **Note:** These three levels translate to the levels of ISO 26262 part 6 clauses 9 to 11. The platform testing will be executed by the integrator. S-Core project only executes tests on reference hardware. These tests serve as an optional base for the integrator and will also be part of the - :need:`wp__verification__platform_ver_report`, but more on an informative character. The full scope + :need:`PROCESS_wp__verification__platform_ver_report`, but more on an informative character. The full scope of clause 11 is tailored out accordingly for S-Core. Practically, this means S-CORE will implement platform test of stakeholder requirements for demonstration, but these are not intended to completely covering all stakeholder requirements. @@ -142,7 +142,7 @@ applicable level. Another column defines if a respective method is supposed to b QM or ASIL B relevant. Automated test cases should contain further information about which methods have been applied. The corresponding -guidance is given here: :need:`gd_guidl__verification_guide`. The identifier of the respective +guidance is given here: :need:`PROCESS_gd_guidl__verification_guide`. The identifier of the respective method is to be used as meta data (*TestType* and *DerivationTechnique*). .. list-table:: Software verification methods (TestType) @@ -191,7 +191,7 @@ For QM software some of the methods may be executed with less rigor compared to These may be interface testing or resource usage evaluation, in case there is an argument for sufficient freedom from interference with safety critical software parts. -Static code analysis is part of the :need:`wp__sw_implementation`. +Static code analysis is part of the :need:`PROCESS_wp__sw_implementation`. As an additional measure the resource usage evaluation ``resource-usage`` should also be considered for level 3 testing as this is the level executed also on reference hardware with the integrated @@ -311,22 +311,22 @@ Further quality goals are defined in section :doc:`quality_management`. Coverage of detailed design ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Beside :need:`wp__verification__comp_int_test` and :need:`wp__verification__sw_unit_test` the +Beside :need:`PROCESS_wp__verification__comp_int_test` and :need:`PROCESS_wp__verification__sw_unit_test` the following aspects define the coverage of detailed design. - Statement/Branch/Path coverage as defined by their specific thresholds - Static analysis and Linting -- :need:`wp__sw_implementation_inspection` for safety-critical implementation +- :need:`PROCESS_wp__sw_implementation_inspection` for safety-critical implementation Coverage of architectural design ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Beside :need:`wp__verification__comp_int_test` and :need:`wp__verification__feat_int_test` the +Beside :need:`PROCESS_wp__verification__comp_int_test` and :need:`PROCESS_wp__verification__feat_int_test` the following aspects define the coverage of the architectural design. -- :need:`wp__sw_arch_verification` - done by walkthrough (QM) or inspection (safety-critical parts) -- :need:`wp__sw_component_safety_analysis` for safety-critical parts -- :need:`wp__feature_safety_analysis` for safety-critical parts +- :need:`PROCESS_wp__sw_arch_verification` - done by walkthrough (QM) or inspection (safety-critical parts) +- :need:`PROCESS_wp__sw_component_safety_analysis` for safety-critical parts +- :need:`PROCESS_wp__feature_safety_analysis` for safety-critical parts Each architectural element has at least one test case linked with attribute "fully verified" or multiple test cases with attribute "partially verified". @@ -342,7 +342,7 @@ Test development The verification steps as well as the development of test cases is done along with the implementation of code. A full automation of tests should be achieved and the derived test cases should contain meta -data that gives further information as defined in :ref:`verification_process_reqs`. The list of +data that gives further information as defined in :need:`PROCESS_gd_req__link_tests`. The list of relevant work products is shown above (as part of the development of the product). The different environments that can be used for the test development are defined below. @@ -350,9 +350,9 @@ The different environments that can be used for the test development are defined Pre-existing test cases ^^^^^^^^^^^^^^^^^^^^^^^ -The recommendations according to the :need:`gd_guidl__verification_guide` for pre-existing test +The recommendations according to the :need:`PROCESS_gd_guidl__verification_guide` for pre-existing test cases is followed. Any pre-existing test case (e.g. from OSS components) is reviewed and adopted -to follow the :need:`gd_guidl__verification_specification` and :need:`gd_req__link_tests`. +to follow the :need:`PROCESS_gd_guidl__verification_specification` and :need:`PROCESS_gd_req__link_tests`. Test execution and result analysis ---------------------------------- @@ -372,9 +372,9 @@ Work products and traceability The traceability between verification relevant work products is one of the defined objectives. An overall overview of the different work products and their relationship is given in project -context - see :doc:`/process/workproducts/index`. +context - see :need:`PROCESS_wp__verification__plan`. -The work products are related to verification can be found in :ref:`verification_work_products`. +The work products are related to verification can be found in :need:`PROCESS_wp__verification__plan`. The link between a test specification and the respective requirement or design specification is given by the identifier of the reference annotated to the verification specification. @@ -386,43 +386,43 @@ Roles ----- In general, the different roles of this project are defined within the Process documentation: -:doc:`/process/roles/index`. The following roles are crucial to comply with the aspects defined in this +:need:`PROCESS_rl__project_lead`. The following roles are crucial to comply with the aspects defined in this document: -#. The :need:`rl__contributor` needs to make sure that the objectives of the software integration and verification are +#. The :need:`PROCESS_rl__contributor` needs to make sure that the objectives of the software integration and verification are fulfilled when contributing to the project. -#. The :need:`rl__committer` needs to verify that the contributor has fulfilled the expected objectives. +#. The :need:`PROCESS_rl__committer` needs to verify that the contributor has fulfilled the expected objectives. -In this way roles are followed as defined in :ref:`verification_roles`. +In this way roles are followed as defined in :need:`PROCESS_doc_concept__verification__process`. Independence of verification ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As there are no separated roles for a software developer and test developer with :need:`rl__contributor` and -:need:`rl__committer` it is important to achieve independence. This is done by having different +As there are no separated roles for a software developer and test developer with :need:`PROCESS_rl__contributor` and +:need:`PROCESS_rl__committer` it is important to achieve independence. This is done by having different people responsible for the test implementation and the actual code which gets tested. -The following test level fall in the responsibility of the :need:`rl__testing_community`: +The following test level fall in the responsibility of the :need:`PROCESS_rl__testing_community`: -* :need:`wp__verification__comp_int_test` -* :need:`wp__verification__feat_int_test` -* :need:`wp__verification__platform_test` +* :need:`PROCESS_wp__verification__comp_int_test` +* :need:`PROCESS_wp__verification__feat_int_test` +* :need:`PROCESS_wp__verification__platform_test` -Still a :need:`rl__contributor` of one function in a component doesn't prevent them from writing tests +Still a :need:`PROCESS_rl__contributor` of one function in a component doesn't prevent them from writing tests for other functions they do not own. -Independence is achieved by the establishment of :need:`rl__testing_community` performing reviews. +Independence is achieved by the establishment of :need:`PROCESS_rl__testing_community` performing reviews. -The following test level fall in the responsibility of the :need:`rl__contributor`: +The following test level fall in the responsibility of the :need:`PROCESS_rl__contributor`: -* :need:`wp__verification__sw_unit_test` +* :need:`PROCESS_wp__verification__sw_unit_test` -Unit tests can be the developed by the same :need:`rl__contributor` who also contributed the unit code. -A level of independence is achieved as the review process demands to have a review by a :need:`rl__committer` -different to the author of a Pull Request. This is also described in process requirement :need:`gd_req__verification_independence`. +Unit tests can be the developed by the same :need:`PROCESS_rl__contributor` who also contributed the unit code. +A level of independence is achieved as the review process demands to have a review by a :need:`PROCESS_rl__committer` +different to the author of a Pull Request. This is also described in process requirement :need:`PROCESS_gd_req__verification_independence`. -Note that, each :need:`rl__contributor` of the project acts in a publicly visible space where also +Note that, each :need:`PROCESS_rl__contributor` of the project acts in a publicly visible space where also others see the contribution and have the possibility to perform additional reviews independent from -the :need:`rl__committer` and :need:`rl__testing_community`. +the :need:`PROCESS_rl__committer` and :need:`PROCESS_rl__testing_community`. Tools ----- diff --git a/docs/platform_management_plan/tool_management.rst b/docs/platform_management_plan/tool_management.rst index 418dc597e9..6caf6b447e 100644 --- a/docs/platform_management_plan/tool_management.rst +++ b/docs/platform_management_plan/tool_management.rst @@ -17,13 +17,13 @@ :status: valid :safety: ASIL_B :tags: platform_management - :realizes: wp__tlm_plan + :realizes: PROCESS_wp__tlm_plan Tool Management/ Tool Management Plan ------------------------------------- -This document implements parts of the :need:`wp__platform_mgmt`. +This document implements parts of the :need:`PROCESS_wp__platform_mgmt`. Purpose +++++++ @@ -56,7 +56,7 @@ Approach Tool Management Attributes ^^^^^^^^^^^^^^^^^^^^^^^^^^ -:ref:`tlm_process_attributes` are implemented as follows: +:need:`PROCESS_gd_req__tool__attr_uid` are implemented as follows: Identification @@ -69,21 +69,21 @@ The most important tools are stored in one GitHub repository, But in general Tool can be stored all over the place. -For each Tool the :need:`gd_temp__tool_management__verif_rpt_template` shall be used to document +For each Tool the :need:`PROCESS_gd_temp__tool_management__verif_rpt_template` shall be used to document the relevant information. -:need:`gd_chklst__tool__cr_review` shall be used to check that all relevant information is considered. +:need:`PROCESS_gd_chklst__tool__cr_review` shall be used to check that all relevant information is considered. The configuration of tools is part of the :need:`doc__config_mgt_plan`. -The output after this stage is the :need:`wp__tool_verification_report` in status: `identified`. +The output after this stage is the :need:`PROCESS_wp__tool_verification_report` in status: `identified`. Evaluation ^^^^^^^^^^ The tool confidence level (TCL) must be determined as outlined in the -:need:`doc_concept__tool__process`. +:need:`PROCESS_doc_concept__tool__process`. Step-by-Step guide: @@ -118,7 +118,7 @@ level is determined to "LOW", otherwise "HIGH". In case the tool confidence level is "LOW", tool qualification is required. -The output after this stage is the :need:`wp__tool_verification_report` in status: `evaluated`. +The output after this stage is the :need:`PROCESS_wp__tool_verification_report` in status: `evaluated`. Qualification ^^^^^^^^^^^^^ @@ -132,26 +132,26 @@ Specify test cases and tests to verify the requirements and generate a test repo Update the Tool Verification Report accordingly to document the outcomes. For the generation of requirements, verification and analyses the existing processes as defined -in the :need:`wp__platform_mgmt` shall be used. +in the :need:`PROCESS_wp__platform_mgmt` shall be used. In detail: -* Use :need:`wf__req__comp_req` to create requirements for the software tool and :need:`wf__monitor_verify_requirements` for the verification +* Use :need:`PROCESS_wf__req__comp_req` to create requirements for the software tool and :need:`PROCESS_wf__monitor_verify_requirements` for the verification -* Use :need:`wf__verification__comp_int_test` to test the requirements for the software tool and :need:`wf__verification__mod_ver_report` to report +* Use :need:`PROCESS_wf__verification__comp_int_test` to test the requirements for the software tool and :need:`PROCESS_wf__verification__mod_ver_report` to report * If applicable, use for the Analyses: (to be added, after Safety/Security Analyses have been merged) -The output after this stage is the :need:`wp__tool_verification_report` in status: `qualified`. +The output after this stage is the :need:`PROCESS_wp__tool_verification_report` in status: `qualified`. Approval ^^^^^^^^ Finally the tool may accepted for the S-CORE project. Thus the Tool Verification Report after this -stage is the :need:`wp__tool_verification_report` in status: `released`. +stage is the :need:`PROCESS_wp__tool_verification_report` in status: `released`. If not, the tool is rejected, thus Tool Verification Report after this -stage is the :need:`wp__tool_verification_report` in status: `rejected`. +stage is the :need:`PROCESS_wp__tool_verification_report` in status: `rejected`. Tailoring ^^^^^^^^^ @@ -160,10 +160,10 @@ Tailoring of safety activities for confidence in the use of software tools: The following ISO 26262 defined safety requirements are not relevant for the S-CORE SW platform development, as they are not used: -:need:`std_req__iso26262__support_11471`, :need:`std_req__iso26262__support_11472`, -:need:`std_req__iso26262__support_11473`, :need:`std_req__iso26262__support_11474`, -:need:`std_req__iso26262__support_11481`, :need:`std_req__iso26262__support_11482`, -:need:`std_req__iso26262__support_11483` +:need:`PROCESS_std_req__iso26262__support_11471`, :need:`PROCESS_std_req__iso26262__support_11472`, +:need:`PROCESS_std_req__iso26262__support_11473`, :need:`PROCESS_std_req__iso26262__support_11474`, +:need:`PROCESS_std_req__iso26262__support_11481`, :need:`PROCESS_std_req__iso26262__support_11482`, +:need:`PROCESS_std_req__iso26262__support_11483` Tool List diff --git a/docs/process/_assets/score_process_area_overview.drawio.svg b/docs/process/_assets/score_process_area_overview.drawio.svg deleted file mode 100644 index a617085cb0..0000000000 --- a/docs/process/_assets/score_process_area_overview.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -


Process Areas - Development










 
Process Areas - Development...
Introduction
Introduction


Process Areas - Management










 
Process Areas - Management...
Requirements
Enngineering





Requirements...
Safety
Management
Safety...


Change Management

Change Managem...
Documentation
Management
Documentation...
General Concepts
General Concepts
Standards
Standards
Role definition
Role definition

Architecture





Architectur...
Imple-mentation

(Detailed Design,
Coding)
Imple-menta...
Problem Resolution
Problem Resolu...
ML 4
ML 4
ML 2
ML 2
ML 1
ML 1


Verification






Verificatio...
Configuration
Management
Configuration...
Tool
Management
Tool...
Quality
Management
Quality...
Project
Management
Project...
Maturity Level
Maturity Level
ML 0
ML 0
Safety
Analysis




Safety...
Work Products
Work Products
How To Contribute
How To Contribute
ML 3
ML 3
Plan
Process definition planned
Documents not available 
or most empty
Plan -...
Initial
Process definition in place, but not yet compliant, consistency across S-CORE platform, modules and repeatability of processes may not be possible.
Documents are mostly available, main parts done, principles clear, all top level questions addressed, well structured
Initial -...
Managed -
Process definition in place but not yet deployed in S-CORE, but execution would allow consitency across S-CORE platform and modules, repeatability of processes possible
Documents are complete, documented on a comprehensible systematic approach, verified, only minor questions open
Managed -...
Defined/Practiced
Deployed (at least once) in S-CORE platform or one Module, The processes have been practiced, and evidence exists to demonstrate that this has occurred. 
Document are complete, verified and released
Defined/Practiced -...
Improving - 
Deployed on S-CORE platform and various S-CORE Modules and constantly improving, using suitable process metrics, S-CORE commiter control the effectiveness and performance of the platform and modules and demonstrate continuous improvement in these areas.
Improving -...
Release
Management
Release...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/inspection_workflow.drawio.svg b/docs/process/general_concepts/_assets/inspection_workflow.drawio.svg deleted file mode 100644 index 3f27a8b11e..0000000000 --- a/docs/process/general_concepts/_assets/inspection_workflow.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Requirement
[status = valid(inspected)]
Requirement...
Requirement
Requirement
PR
Review
PR...
Requirement
[status = valid]
Requirement...
[implements]
[implements]
PR
Review
PR...
7
7
1
1
2
2
3
3
Requirement (reworked)
[status = valid]
Requirement (reworke...
4
4
PR
Inspection
PR...
6
6
Implementation
[status = valid]
Implementation...
Verification
[status = valid]
Verification...
[verifies]
[verifies]
[implements]
[implements]
[verifies]
[verifies]
5
5
5
5
PR
Review
PR...
8
8
Text is not SVG - cannot display
diff --git a/docs/process/general_concepts/_assets/score_building_blocks_example.drawio.svg b/docs/process/general_concepts/_assets/score_building_blocks_example.drawio.svg deleted file mode 100644 index 28ceff08f9..0000000000 --- a/docs/process/general_concepts/_assets/score_building_blocks_example.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -






json_al

json_al...
Platform
Platform
persistency/key-val-storage
persistency/key-val-storage
uses
uses
Actor
Actor
LOGGING
LOGGING
uses
uses
DLT
DLT
Send
Send
KVS
KVS
uses
uses
kvstorage
kvstorage
fs
fs
kvs
kvs
analysis-infra/logging
analysis-infra/logging
network
network
network
network
logging
logging
logging
logging
COMPONENT
COMPONENT
PUBLIC API
PUBLIC API
User
User
var-handling/configuration/app-config/json-read 
var-handling/configuration/app-config/json-read 
djson_cpp
djson_cpp
djson_rust
djson_rust
tinyjson
tinyjson
JSON_READ
JSON_READ
SW Module: 
SW Module: 
Feature: 
Feature: 
SEooC:
SEooC:
json_al
json_al
json_al
json_al
json_al
json_al
API: JSON_READ
        JSON_WRITE
API: JSON_READ...
API: json_al_cpp
API: json_al_cpp
API: json_al_rust
API: json_al_rust
json_al
json_al
json_al
json_al
API: JSON_READ
         JSON_WRITE
API: JSON_READ...
COMPONENT
COMPONENT
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg b/docs/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg deleted file mode 100644 index 437db4b161..0000000000 --- a/docs/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
1, *
1, *
Feature
Feature
Component
Component
SEooC
SEooC
is
is
Feature
Requirements
Feature...
fulfills
fulfills
Feature
Architecture
Feature...
satifies
satifies
Component
Requirements
Component...
1
1
consists of
consists of
Unit
Unit
1, *
1, *
consists of
consists of
Source Code
Source Code
has
has
Stakeholder
 Requirements
Stakeholder...
satifies
satifies
implements
implements
has
has
Platform
Platform
1, *
1, *
consists of
consists of
has
has
1, *
1, *
Objectives
Objectives
1
1
1, *
1, *
fulfills
fulfills
Component
Architecture
Component...
satifies
satifies
1, *
1, *
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Software Module
Software Module
includes
includes
1,*
1,*
*
*
1, *
1, *
is
is
Feature
Safety Analysis
Feature...
Feature
Assumptions of use
Feature...
Platform
Tests
Platform...
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
mitigates
mitigates
verifies
verifies
Component
Integration Tests
Component...
verifies
verifies
Component
Safety Analysis
Component...
Component
Assumption of use
Component...
verifies
verifies
mitigates
mitigates
mitigates
mitigates
mitigates
mitigates
verifies
verifies
Unit Test
Unit Test
verifies
verifies
Component
Tests
Component...
verifies
verifies
has
has
1
1
1,*
1,*
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_lifecycle_model.drawio.svg b/docs/process/general_concepts/_assets/score_lifecycle_model.drawio.svg deleted file mode 100644 index 646f2d0ecd..0000000000 --- a/docs/process/general_concepts/_assets/score_lifecycle_model.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -Concept PhaseDevelopment PhaseMaintenance
Trigger
Change Request
Trigger...
Accepted
Change Request
New feature request
Accepted...
Plan
Plan
Accepted
Change Request
Feature implementation
Accepted...
Plan Feature
Implementation
Plan Feature...
Bugfix or
 improvement
Bugfix or...
Accepted
Change Request
Bugfix or improevment
Accepted...
Trigger
Change Request
Trigger...
Trigger
Change Request
Trigger...
New
Feature Request
New...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_1.drawio.svg b/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_1.drawio.svg deleted file mode 100644 index f493a293ad..0000000000 --- a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_1.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Component Assumption of use
Component Assumption...
Feature Requirements
Feature Requirements
Component Requirements
Component Requiremen...


Component
 Architecture


Component...
Component
Safety Analysis
Component...
Feature
Architecture
Feature...

(external) Component Assumption of use
(external) Component...
Implementation
including Detailed Design and Unit
Implementation...
Bidirectional traceability (mandatory)
Bidirectional traceability (mandato...
Bidirectional traceability (optional)
Bidirectional traceability (optio...
manually linked
manually linked
automatically linked
automatically linked
manually linked
manually linked
automatically linked
automatically linked
implements
implements
satisfies
satisfies
fulfills
fulfills
satisfies
satisfies
fulfills
fulfills
fulfills
fulfills
satisfies
satisfies
satisfies
satisfies
verifies
verifies
mitigates
mitigates
satisfies
satisfies
fulfills
fulfills
mitigates
mitigates
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_2.drawio.svg b/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_2.drawio.svg deleted file mode 100644 index b03cb5292e..0000000000 --- a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_2.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Component Assumption of use
Component Assumption...
Feature Requirements
Feature Requirements
Component Requirements
Component Requiremen...
Component
 Architecture



Component...
Component
Safety Analysis
Component...
Feature
Architecture
Feature...

(external) Component Assumption of use
(external) Component...
Implementation
including Detailed Design and Unit
Implementation...
Component 1
Component 1
Component n
Component n
...
...
Bidirectional traceability (mandatory)
Bidirectional traceability (mandato...
Bidirectional traceability (optional)
Bidirectional traceability (optio...
manually linked
manually linked
automatically linked
automatically linked
manually linked
manually linked
automatically linked
automatically linked
satisfies
satisfies
satisfies
satisfies
verifies
verifies
mitigates
mitigates
satisfies
satisfies
fulfills
fulfills
satisfies
satisfies
satisfies
satisfies
fulfills
fulfills
mitigates
mitigates
implements
implements
fulfills
fulfills
fulfills
fulfills
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_3.drawio.svg b/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_3.drawio.svg deleted file mode 100644 index 620a7059b9..0000000000 --- a/docs/process/general_concepts/_assets/score_traceability_model_cmp_overview_3.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Component Assumption of use
Component Assumption...
Feature Requirements
Feature Requirements
Component Requirements
Component Requiremen...
Component
Safety Analysis
Component...
Feature
Architecture
Feature...

Implementation
including Detailed Design and Unit
Implementation...
Bidirectional traceability (mandatory)
Bidirectional traceability (mandato...
Bidirectional traceability (optional)
Bidirectional traceability (optio...
manually linked
manually linked
automatically linked
automatically linked
manually linked
manually linked
automatically linked
automatically linked
implements
implements
satisfies
satisfies
fulfills
fulfills
satisfies
satisfies
mitigates
mitigates
mitigates
mitigates
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_traceability_model_feat_overview.drawio.svg b/docs/process/general_concepts/_assets/score_traceability_model_feat_overview.drawio.svg deleted file mode 100644 index a609d6bc2d..0000000000 --- a/docs/process/general_concepts/_assets/score_traceability_model_feat_overview.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Feature Requirements
Feature Requirements
Component Requirements
Component Requiremen...
Feature
Architecture
Feature...

(external) Component Assumption of use
(external) Component...
Stakeholder
Requirements
Stakeholder...
Feature Assumption of use
Feature Assumption o...
Feature
Safety Analysis
Feature...
Bidirectional traceability (mandatory)
Bidirectional traceability (mandato...
Bidirectional traceability (optional)
Bidirectional traceability (optio...
manually linked
manually linked
automatically linked
automatically linked
manually linked
manually linked
automatically linked
automatically linked
satisfies
satisfies
satisfies
satisfies
fulfills
fulfills
satisfies
satisfies
fulfills
fulfills
mitigates
mitigates
mitigates
mitigates
verifies
verifies
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/general_concepts/_assets/score_traceability_model_wp_overview.drawio.svg b/docs/process/general_concepts/_assets/score_traceability_model_wp_overview.drawio.svg deleted file mode 100644 index 71b51ab359..0000000000 --- a/docs/process/general_concepts/_assets/score_traceability_model_wp_overview.drawio.svg +++ /dev/null @@ -1,922 +0,0 @@ - - - - - - - - - - - -
-
-
- Stakeholder -
- Requirements -
-
-
-
- - Stakeholder... - -
-
- - - - -
-
-
- Feature -
-
-
-
- - Feature - -
-
- - - - -
-
-
- Component -
-
-
-
- - Component - -
-
- - - - - - - -
-
-
- Feature Requirements -
-
-
-
- - Feature Requirements - -
-
- - - - - - - -
-
-
- Component Requirements -
-
-
-
- - Component Requiremen... - -
-
- - - - - - - - - - - - - -
-
-
- Component -
- Architecture -
-
-
-
- - Component... - -
-
- - - - - - - -
-
-
- Implementation -
-
-
-
-
-
-
-
-
-
- - Implementation... - -
-
- - - - - - - - - - -
-
-
- Component Integration Test -
-
-
-
- - Component Integratio... - -
-
- - - - - - - - - - - - - -
-
-
- Platform Test -
-
-
-
- - Platform Test - -
-
- - - - -
-
-
- Feature -
- Architecture -
-
-
-
- - Feature... - -
-
- - - - -
-
-
- Unit -
-
-
-
- - Unit - -
-
- - - - -
-
-
-
-
-
-
-
-
-
- - -
-
- - - - -
-
-
-
-
-
-
-
-
-
-
- Platform -
-
-
-
-
-
-
-
-
-
-
-
- - Platform... - -
-
- - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - - - - -
-
-
- Unit Test -
-
-
-
- - Unit Test - -
-
- - - - - - - - - - -
-
-
- Feature Integration Test -
-
-
-
- - Feature Integration... - -
-
- - - - -
-
-
- Platform Verification Report -
-
-
-
- - Platform Verificatio... - -
-
- - - - -
-
-
- Software Module Verification Report -
-
-
-
- - Software Module Veri... - -
-
- - - - - - - - - - - -
-
-
- (external) Component Assumption of use -
-
-
-
- - (external) Component... - -
-
- - - - - - - -
-
-
- Bidirectional traceability (mandatory) -
-
-
-
- - Bidirectional traceability (mandato... - -
-
- - - - - - - -
-
-
- Issue Tracking System -
- (Change Request) -
-
-
-
- - Issue Tracking Syste... - -
-
- - - - -
-
-
- Affected -
- Work Products -
-
-
-
- - Affected... - -
-
- - - - - - - -
-
-
- Bidirectional traceability (optional) -
-
-
-
- - Bidirectional traceability (optio... - -
-
- - - - -
-
-
- Detailed Design -
-
-
-
- - Detailed Desi... - -
-
- - - - - - - -
-
-
- Source Code -
-
-
-
- - Source Code - -
-
- - - - - - - - - - -
-
-
- manually linked -
-
-
-
- - manually linked - -
-
- - - - -
-
-
- automatically linked -
-
-
-
- - automatically linked - -
-
- - - - -
-
-
- manually linked -
-
-
-
- - manually linked - -
-
- - - - -
-
-
- automatically linked -
-
-
-
- - automatically linked - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- implements -
-
-
-
- - implements - -
-
- - - - -
-
-
- implements -
-
-
-
- - implements - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- fulfills -
-
-
-
- - fulfills - -
-
- - - - -
-
-
- fulfills -
-
-
-
- - fulfills - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- fulfills -
-
-
-
- - fulfills - -
-
- - - - -
-
-
- satisfies -
-
-
-
- - satisfies - -
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
- - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - Text is not SVG - cannot display - - - -
diff --git a/docs/process/general_concepts/index.rst b/docs/process/general_concepts/index.rst deleted file mode 100644 index d315b4f8bb..0000000000 --- a/docs/process/general_concepts/index.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_general_concepts: - -General concepts -================ - -.. toctree:: - :maxdepth: 2 - :caption: Content - - score_lifecycle_concept.rst - score_building_blocks_concept.rst - score_traceability_concept.rst - score_review_concept.rst diff --git a/docs/process/general_concepts/score_building_blocks_concept.rst b/docs/process/general_concepts/score_building_blocks_concept.rst deleted file mode 100644 index cb9fd07d19..0000000000 --- a/docs/process/general_concepts/score_building_blocks_concept.rst +++ /dev/null @@ -1,87 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _general_concepts_building_blocks: - -Building blocks concept ------------------------ - - -Building blocks meta model -++++++++++++++++++++++++++ - -The following figure gives an overview about the building blocks of the **S-CORE** **Platform** -(blue box, top, 2nd column). The objectives of the platform of the **S-CORE** platform include -enabling of feature integration for different use cases and domains. This includes safety-critical -applications. Thus the intention is, that the platform can be developed as a Safety -Element out of Context (**SEooC**) (green box, top, 1 column). The objectives of the platform are -expressed as concrete **Stakeholder Requirements** (blue box, top, 2nd column), which can be tested -by provided **Platform Tests** (blue box, top, 5nd column) for reference hardware platforms. The -platform consists of **Features** (yellow box, middle, 2nd column). - -Further **S-CORE** provides **Software Modules** (red box, middle, 1st column), which can also be -developed as a SEooC. A Software Module is defined as a **Component** (green box, middle, 2nd column) -or a set of components realizing a Feature of the platform. In this sense a Software Module is the -highest level component in our model. A Software Module represents e.g. executable code or a library. - -Components are the major building blocks of the platform. Components consists of **Units** -(grey box, bottom, 2nd column), the lowest level in our model. The represent the source code, -which implements the Unit. Units has a **Detailed Design** (grey box, middle, 3nd column), which is -also implemented by the **Source Code** (grey box, bottom, 3nd column). The Detailed Design is -verified by **Unit Tests** (grey box, middle, 5nd column). - -Components are defined by **Component Requirements** (green box, middle, 3nd column) and the -**Component Architecture** (green box, middle, 4nd column). A **Component Safety Analysis** -(green box, middle, 6nd column) is required to verify the Component Architecture. Potential faults -may mitigated by updating the Component Requirements or by the **Component Assumptions of Use** -(green box, middle, 8nd column). The latter one must be considered by the user of the Component. -**Component Tests** (green box, middle, 5nd column) verify the Component requirements, and -**Component Integration Tests** (green box, middle, 7nd column) verify the Component Architecture -as well as the Integration of multiple Units to a Component. - -As mentioned above a Software Module is defined as a Component or a set of components realizing a -Feature of the platform. Features consists of Components and are defined by **Feature Requirements** -(yellow box, middle, 3nd column) and the **Feature Architecture** (yellow box, middle, 4nd column). -A **Feature Safety Analysis** (yellow box, middle, 6nd column) is required to verify the Feature -Architecture. Potential faults may mitigated by updating the Feature Requirements or by the -**Feature Assumptions of Use** (yellow box, middle, 8nd column). The latter one must be considered -by the user of the Feature. **Feature Integration Tests** (yellow box, middle, 5nd column) verify -the Feature Requirements and the Feature Architecture as well as the Integration of multiple Units -to a Component. - -.. figure:: _assets/score_building_blocks_meta_model.drawio.svg - :width: 100% - :align: center - :alt: Building blocks overview for **S-CORE** platform - - Building blocks overview for **S-CORE** platform - -Building blocks example -+++++++++++++++++++++++ - -The following figure is an example to explain the elements from the meta model. The user of the -**S-CORE** platform wants to use the feature key-value-store. For that the user must integrate -the software module "kvstorage". As this modules dependence on another module, the user must also -integrate the software module "json_al". The module "kvstorage" is built-up by the -components "kvs" and "fs", where the module "json_al" contains only one component "json_al". -The latter example is more or less a corner case. -Components may optionally built-up by other components. Software modules may also be designed -as safety element out of context (SEooC). - -.. figure:: _assets/score_building_blocks_example.drawio.svg - :width: 100% - :align: center - :alt: Building blocks example - - Building blocks example diff --git a/docs/process/general_concepts/score_lifecycle_concept.rst b/docs/process/general_concepts/score_lifecycle_concept.rst deleted file mode 100644 index b202606888..0000000000 --- a/docs/process/general_concepts/score_lifecycle_concept.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _general_concepts_lifecycle: - -Lifecylce concept ------------------ - -Contributions to the **S-CORE** project are driven by Change Requests. - -As features are the main structuring element of the platform, new features are requested by -a change request from type feature. The request may be supported by source code. -A new feature request happens in the **Concept Phase**. - -During the **Development Phase** features are implemented and verified. The Development -is planned, checked and adjusted to meet the requirements. Planning is also required from -several standards especically to achieve functional safety. - -Features are improved during the **Maintenance Phase**. In case bugs are found, they are also -fixed during this phase. - -.. figure:: _assets/score_lifecycle_model.drawio.svg - :width: 100% - :align: center - :alt: Lifecycle model for S-CORE - - Lifecycle model for S-CORE - - diff --git a/docs/process/general_concepts/score_review_concept.rst b/docs/process/general_concepts/score_review_concept.rst deleted file mode 100644 index a2209ac295..0000000000 --- a/docs/process/general_concepts/score_review_concept.rst +++ /dev/null @@ -1,196 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _review_concept: - -Review and Inspection Concept -============================= - -.. doc_concept:: Workproduct Inspections Concept - :id: doc_concept__wp_inspections - :status: valid - -Inspection Definition -^^^^^^^^^^^^^^^^^^^^^ - -Inspections are formal reviews supported by a checklist with documented conduct and outcome. -In this project there are inspections on the following work products, which are generally performed in the same way: - -.. list-table:: Work products subject to inspection - :header-rows: 1 - - * - inspected work product Id - - Link to checklist - - * - :need:`wp__requirements__stkh` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__requirements__feat` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__requirements__comp` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__hsi` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__requirements__feat_aou` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__requirements__comp_aou` - - :need:`gd_chklst__req__inspection` - - * - :need:`wp__feature_arch` - - :need:`gd_chklst__arch__inspection_checklist` - - * - :need:`wp__component_arch` - - :need:`gd_chklst__arch__inspection_checklist` - - * - :need:`wp__sw_implementation` - - :need:`gd_chklst__impl_inspection_checklist` - -Note that for testcases on unit, component and feature level (as defined in :need:`doc__verification_plan`) -also a review checklist is provided for guidance, but no formal inspection is required. The same is true for Safety Analysis and DFA. -The independence of testing respectively of test case review is covered by the use of GitHub also for the review of test cases. -Which means that at least the test case definition or the test case review is performed by -another person as the author of the verified work product. - -Inspection Conduct -^^^^^^^^^^^^^^^^^^ - -Inspections are conducted by using GitHub mechanisms. -We expect that the requirement and architecture work products need to mature during implementation and testing -and that the inspection checklists also contain questions which can not be answered already at creation of the work product, -because also other work products content also has to be taken into account (which is not available at the beginning, -therefore we use a two-step approach for the review and inspection for these. - -The detailed design and coding inspection is not of this kind. Here we define that every PR review -already has the (formal) character of an inspection, i.e. the review checklist is used. -The scope of such a detailed design / code inspection is always the change introduced, as documented in github. -The inspection is initiated by the author of the change and reviewers are invited automatically -based on the CODEOWNER(s) definition of the modified files. In case the fixing of review findings is not agreed -between reviewer(s) and author, the safety manager or quality manager can be added to the review to moderate a solution. - -The initial step for requirements and architecture is the (informal) GitHub review on every Pull-Request -(resp. Change Request, see :need:`doc__contr_guideline`) -which creates or modifies one of these work products (subject to inspection). -After this review the work products are in status "valid", which means they can be used for further development and verification steps. -In this review the checklist entries shall be considered which are tagged as "incremental". - -The last step is initiated by the safety manager, security manager or quality manager: -He asks the main work product author to set the work product's status to "valid(inspected)" and start a Pull-Request (PR). -GitHub will automatically ask for a review by the defined one or more "CODEOWNER" of the work product. -In the PR description the inspection result will be documented for each checklist item -(pass/fail - with link to a ticket for the corrections, or by citing the checklist item in the github comment). -The CODEOWNER(s)=reviewers will fill out the checklist and add their findings on the work product in the PR. -They close their review activity by documenting their verdict as "Approve" or "Request Changes". -Any one "Request Changes" will block the PR from being merged. Note that the PR author cannot "Approve" or "Request Changes". -After all requested reviews were done, the author answers the findings in GitHub comments and/or performs corrections of the work products. -Then the reviewer(s) re-review and adapt their verdict accordingly. -In case the author or the reviewer(s) cannot agree on a solution, the safety/security/quality manger -who initiated the inspection will be asked to moderate this by requesting also his review. - -The following picture shall illustrate how a status lifecycle of a requirement workproduct will look like. -The lifecycle for an architecture work product should be similar. - -.. figure:: _assets/inspection_workflow.drawio.svg - :width: 80% - :align: center - :alt: Inspections Workflow - - Review Inspections Workflow - Requirement Example - -#. Create requirement -#. (Informal) Pull-Request Review -#. Merge valid requirement to main -#. During development and verification steps the requirement is reworked and again put to PR Review -#. Implementation and verification workproducts are linked -#. Safety manager initiates a (formal) Pull-Request Inspection -#. After finding resolution, the requirement is merged in valid(inspected) state -#. In case of changes the requirement returns in the valid state - -Note: This workflow can be shortcut in case an already mature work product (in this case requirement) -is part of a Pull-Request including already the relevant verification and implementation. -This could be the case when for example merging a development branch back into the main line. -In this case the workflow starts with step 6. - -Inspection Know-How -^^^^^^^^^^^^^^^^^^^ - -For work products with ASIL rating the safety manager shall initiate the inspections, -for those which are QM but are security related the security manger may request this, -but also the quality manager may ask for inspection for critical QM work products. - -Judging if the maturity of a work product is already enough to request an inspection -can be based for example for the requiremnts on their "Implemented by", "Verified by" and "Requirement Covered" attribute. -For example when requesting a new feature by filling out the :need:`gd_temp__change__feature_request` -you are asked to also specify the feature's requirements -- it is not expected that the maturity of the requirements is already enough at this time to make a good inspection. -On the other end of a development "lifecycle", -of course all the ASIL rated work products must be in status "inspected" before release, -this is checked as part of the :ref:`release_management`. - -Checklist Templates contain hints how to understand the checkpoints or ideas how to check, -these hints are not replicated in every PR documented, but only the checklist questions. -Reviewers shall comment also the checklist items which they mark as passed, as a memory aid, -to be able to later explain what they considered during review -(for example in case a requirement is found to be wrong after the release, to be able to do a lessons learned). - -Any workproduct which is subject to inspection and is modified after an inspection -shall transition from "valid(inspected)" back to "valid" state. This shall be automaticly checked. - -Process Requirements -^^^^^^^^^^^^^^^^^^^^ - -.. gd_req:: Storage of pull requests documentation - :id: gd_req__general__pull_request_storage - :status: valid - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_7414 - :satisfies: wf__monitor_verify_requirements, wf__mr_vy_arch - - The content of pull requests (conversation, commits, files changed) shall be stored permanently - for every release. - - Note: Expectation is that this should be part of configuration management, but as this process - is not defined at the moment this requirement is added here. - -.. gd_req:: Hash value for inspected requirements - :id: gd_req__general__requirements_hash - :status: valid - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_7414 - :satisfies: wf__monitor_verify_requirements, wf__mr_vy_arch - - The hash value of a requirement shall not change by an inspection. In case the status of the - requirement is used to notify if a requirement is inspected (or another attribute is introduced), - this shall be ignored for hashing (i.e. hash value for valid and valid(inspected) shall be equal). - In case hashing is also used for architecture versioning this shall be done in similar way. - -.. gd_req:: Checklist templates in pull requests - :id: gd_req__general__checklist_templates - :status: valid - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_7414, std_req__iso26262__software_942 - :satisfies: wf__monitor_verify_requirements, wf__mr_vy_arch - - For all the pull requests modifying a work product subject to inspection, - a template for the pull request containing the applicable checklist items shall be provided. - Ideally this is automatically applied based on the files modified in the PR. - The requirements and architecture inspections are not automatically applied. - -.. gd_req:: Status Check - :id: gd_req__general__status_check - :status: valid - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_7414 - :satisfies: wf__monitor_verify_requirements, wf__mr_vy_arch - - It shall be checked that only a PR with the inspection checklist filled out can set a status to valid(inspected). diff --git a/docs/process/general_concepts/score_traceability_concept.rst b/docs/process/general_concepts/score_traceability_concept.rst deleted file mode 100644 index 9ccbc54cdd..0000000000 --- a/docs/process/general_concepts/score_traceability_concept.rst +++ /dev/null @@ -1,89 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _general_concepts_traceability: - -Traceability concept --------------------- - -Traceability is the key to ensure consistency between work products. -Furthermore, traceability supports impact analysis, dependency analysis, coverage determination -for requirements and verification, and tracking of implementation status. - -Therefore **S-CORE** requires at least for safety-relevant work products single-requirement -granularity of traceability. - -The following figures gives an overview about the traceability between different work products -on different levels and detail. - -High level traceability overview -++++++++++++++++++++++++++++++++ - -The following figure shows the traceability between the major **S-CORE** work products on each -requirements level. Starting from top, the platform level, going down to feature, component -to the bottom the unit level. The concept is based on the classical V-model approach. - -Change request are traced to all affected work products. - -.. figure:: _assets/score_traceability_model_wp_overview.drawio.svg - :width: 100% - :name: score_wp_traceability - :align: center - :alt: High level traceability overview for **S-CORE** work products - - High level traceability overview for **S-CORE** work products - -The next figure sets the focus on the feature level and adds the traceability from the Feature -Requirements to the Feature Architecture, Feature Safety Analysis and the Feature Assumption -of use. For convenience also the traceability to upper and lower lever requirements is shown. - -.. figure:: _assets/score_traceability_model_feat_overview.drawio.svg - :width: 100% - :align: center - :alt: High level traceability overview for **S-CORE** feature work products - - High level traceability overview for **S-CORE** feature work products - -The next figures sets the focus on the component level and adds the traceability from the -Component Requirements to the Component Architecture, Component Safety Analysis -and the Component Assumption of use. Further the traceability to Component Assumptions of use -from external Components is included. - - -.. figure:: _assets/score_traceability_model_cmp_overview_1.drawio.svg - :width: 100% - :align: center - :alt: High level traceability overview for **S-CORE** component work products - - High level traceability overview for **S-CORE** component work products - -Component Architecture may either built-up of other components, then the traceability may in -addition also needed to their architectures. - -.. figure:: _assets/score_traceability_model_cmp_overview_2.drawio.svg - :width: 100% - :align: center - :alt: High level traceability overview for **S-CORE** component work products including sub-components - - High level traceability overview for **S-CORE** component work products including sub-components - -Or less complex components may not require a Component Architecture, the traceability is not -required as the architecture can be skipped. - -.. figure:: _assets/score_traceability_model_cmp_overview_3.drawio.svg - :width: 100% - :align: center - :alt: High level traceability overview for **S-CORE** component work products including sub-components - - High level traceability overview for **S-CORE** component work products including sub-components diff --git a/docs/process/index.rst b/docs/process/index.rst deleted file mode 100644 index 86e9d7c282..0000000000 --- a/docs/process/index.rst +++ /dev/null @@ -1,103 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_description: - -Process -======= - -Processes are the basis to describe the way of working within the S-CORE project. - -Introduction ------------- - -.. toctree:: - :maxdepth: 1 - :glob: - - introduction/index.rst - - -Process Model -------------- -The S-CORE process model is described by workflows, executed by roles and is creating work products. -Workflow activities are supported by guidances. - -.. figure:: _assets/score_process_area_overview.drawio.svg - :width: 100% - :align: center - :alt: Process area overview for **S-CORE** platform - - Process area overview for **S-CORE** platform - -General Concepts -~~~~~~~~~~~~~~~~ - -General concepts like traceability of work products, life cycle model, buidling blocks can be found here: - -.. toctree:: - :maxdepth: 1 - - general_concepts/index.rst - -Process Areas -~~~~~~~~~~~~~ - -The process description for the S-CORE project (e.g. requirements, architecture, safety management) can be found here: - -.. toctree:: - :maxdepth: 1 - - process_areas/index.rst - -Process Role definition -~~~~~~~~~~~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 1 - - roles/index.rst - -Workproducts -~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 1 - - workproducts/index.rst - -Workflows -~~~~~~~~~ - -.. toctree:: - :maxdepth: 1 - - workflows/index.rst - -How To Contribute ------------------ - -How to contribute to the S-CORE project (e.g. naming convention, folder structure, IDE setup) can be found here: - -:ref:`contribute` - -Standards ---------- - -The the standard references the S-CORE project's processes are derived from can be found here: - -.. toctree:: - :maxdepth: 1 - - standards/index.rst diff --git a/docs/process/introduction/_assets/score_process_model.drawio.svg b/docs/process/introduction/_assets/score_process_model.drawio.svg deleted file mode 100644 index bd83ac8314..0000000000 --- a/docs/process/introduction/_assets/score_process_model.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -








SCORE
Process
description






































SCORE...
SCORE
Process
SCORE...
StandardsStandardRequirementsWorkproducts
1..n
contains
1..n...
SCORE
Workflow
SCORE...
Process
Development
Community
Proce...
SCORE
Workproduct
SCORE...
1..n
complies
1..n...
1..n
verifies, approves, releases
1..n...
SCORE
Guidance
SCORE...
1..n
complies
1..n...
1:1
has
1:1...
TEXT
FILE
TEXT...
Contributor
Contr...
1..n
executes
1..n...
1..n
creates
1..n...
1..n
uses
1..n...
1..n
defines including roles RASIC
1..n...
TOOLS
TOOLS
fullfils
fullfils
1..n
evaluates, qualifies if applicable
1..n...
Committer
Commi...
fullfils
fullfils
fullfils roles RASIC
fullfils roles RASIC
SCORE
Concept
SCORE...
SCORE
Getting started
SCORE...
Method
Method
Process
Requirements
Process...
Checklist
Checklist
Template
Template
Guideline
Guideline
is codeowner
is codeowner
1..n
contains
including
input/output
1..n...
1:1
has
1:1...
1:n
contains
1:n...
Text is not SVG - cannot display
diff --git a/docs/process/introduction/index.rst b/docs/process/introduction/index.rst deleted file mode 100644 index aa4a4d3b58..0000000000 --- a/docs/process/introduction/index.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -.. _processes_introduction: - -Introduction -============ - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - -Motivation ----------- -| The score process model aims to establish organization rules for developing -| open source software in the automotive industry, which can be used in safety and security context. - -Objectives ----------- -| The process model shall provide processes, which conform to state-of the art standards -| * ASPICE -| * ISO 26262 -| * ISO 21434 -| * ISO PAS 8926 - -Approach --------- - -1. We aim for a process model as common basis for process documentation (compare figure below). -2. We work code centric (trace text as code) and iteratively. -3. We aim to develop the process in conformance to the targeted standards (compare figure below). -4. We aim to establish traceability from the begin (compare figure below, :ref:`wp_traceability_model`). -5. We aim to verify conformity and traceability by tool automation as much as possible (compare figure below). -6. We aim for an iterative collaboration model initiated by change requests (compare :need:`doc__contr_guideline`) - - -.. figure:: _assets/score_process_model.drawio.svg - :width: 100% - :align: center - :alt: S-CORE process model - - S-CORE process model diff --git a/docs/process/process_areas/architecture_design/_assets/architecture_modeling_example.rst b/docs/process/process_areas/architecture_design/_assets/architecture_modeling_example.rst deleted file mode 100644 index 543487ee6a..0000000000 --- a/docs/process/process_areas/architecture_design/_assets/architecture_modeling_example.rst +++ /dev/null @@ -1,234 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _definition_architectural_design: - -Example model of architectural design -##################################### - -This chapter only serves as an example how an architecture could be modeled in *Sphinx Needs*. All the needs are required to print the views which are displayed in the Static- and Interface Views. In the actual process this files would be split into multiple different files: - -Feature Architecture File -========================= - -.. feat_arc_sta:: Feature 1 - :id: feat_arc_sta__archdes_static - :security: YES - :safety: QM - :status: valid - :includes: logic_arc_int__archdes_logical_interface_1, logic_arc_int__archdes_logical_interface_2 - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_feature(need(), needs) }} - -.. Logical Interfaces - -.. logic_arc_int:: Logical Interface 2 - :id: logic_arc_int__archdes_logical_interface_2 - :security: YES - :safety: ASIL_B - :status: valid - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_interface(need(), needs) }} - - -.. logic_arc_int:: Logical Interface 3 - :id: logic_arc_int__archdes_logical_interface_3 - :security: YES - :safety: ASIL_B - :status: valid - :fulfils: feat_req__archdes_example_req - - -.. Logical Interface Operation - -.. logic_arc_int_op:: Logical Operation 1 - :id: logic_arc_int_op__archdes_logical_operation_1 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_1 - -.. logic_arc_int_op:: Logical Operation 2 - :id: logic_arc_int_op__archdes_logical_operation_2 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_1 - -.. logic_arc_int_op:: Logical Operation 3 - :id: logic_arc_int_op__archdes_logical_operation_3 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_2 - -.. logic_arc_int_op:: Logical Operation 4 - :id: logic_arc_int_op__archdes_logical_operation_4 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_2 - -.. logic_arc_int_op:: Logical Operation 5 - :id: logic_arc_int_op__archdes_logical_operation_5 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_3 - -.. logic_arc_int_op:: Logical Operation 6 - :id: logic_arc_int_op__archdes_logical_operation_6 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_3 - -.. logic_arc_int_op:: Logical Operation 7 - :id: logic_arc_int_op__archdes_logical_operation_7 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_3 - -.. logic_arc_int_op:: Logical Operation 8 - :id: logic_arc_int_op__archdes_logical_operation_8 - :security: YES - :safety: ASIL_B - :status: valid - :included_by: logic_arc_int__archdes_logical_interface_3 - - -Module Viewpoint -================ - -.. mod_view_sta:: Module 1 - :id: mod_view_sta__archdes_1 - :includes: comp_arc_sta__archdes_component_1 - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_module(need(), needs) }} - -.. mod_view_sta:: Module 2 - :id: mod_view_sta__archdes_2 - :includes: comp_arc_sta__archdes_component_3 - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_module(need(), needs) }} - -Component Architecure File(s) -============================= - -.. comp_arc_sta:: Component 1 - :id: comp_arc_sta__archdes_component_1 - :status: valid - :safety: ASIL_B - :security: NO - :uses: logic_arc_int__archdes_logical_interface_3 - :implements: logic_arc_int__archdes_logical_interface_1, logic_arc_int__archdes_logical_interface_2 - :fulfils: comp_req__archdes_example_req - :includes: comp_arc_sta__archdes_sub_component_1, comp_arc_sta__archdes_sub_component_2, comp_arc_sta__archdes_sub_component_3 - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component(need(), needs) }} - -.. comp_arc_sta:: Component 3 - :id: comp_arc_sta__archdes_component_3 - :status: valid - :safety: ASIL_B - :security: NO - :implements: logic_arc_int__archdes_logical_interface_3 - :fulfils: comp_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component(need(), needs) }} - -.. Subcomponents - -.. comp_arc_sta:: Lower Level Component 1 - :id: comp_arc_sta__archdes_sub_component_1 - :status: valid - :safety: ASIL_B - :security: NO - :uses: logic_arc_int__archdes_logical_interface_3 - :implements: logic_arc_int__archdes_logical_interface_2 - :fulfils: comp_req__archdes_example_req - -.. comp_arc_sta:: Lower Level Component 2 - :id: comp_arc_sta__archdes_sub_component_2 - :status: valid - :safety: ASIL_B - :security: NO - :uses: logic_arc_int__archdes_logical_interface_3 - :implements: logic_arc_int__archdes_logical_interface_2 - :fulfils: comp_req__archdes_example_req - -.. comp_arc_sta:: Lower Level Component 3 - :id: comp_arc_sta__archdes_sub_component_3 - :status: valid - :safety: QM - :security: NO - :implements: logic_arc_int__archdes_logical_interface_3 - :fulfils: comp_req__archdes_example_req - -.. - Requirements - -.. stkh_req:: Example Stkh Req - :id: stkh_req__archdes_example_req - :reqtype: Functional - :safety: ASIL_B - :rationale: needed for archdes example - :status: valid - -.. feat_req:: Example Feature Req - :id: feat_req__archdes_example_req - :reqtype: Functional - :security: YES - :safety: ASIL_B - :satisfies: stkh_req__archdes_example_req - :status: valid - - The feature shall provide the functionality to .... - -.. comp_req:: Example Component Req - :id: comp_req__archdes_example_req - :reqtype: Functional - :security: YES - :safety: ASIL_B - :satisfies: feat_req__archdes_example_req - :status: valid - - The component shall provide the Logical Operation 4 to get the .. diff --git a/docs/process/process_areas/architecture_design/_assets/architecture_workflow.drawio.svg b/docs/process/process_areas/architecture_design/_assets/architecture_workflow.drawio.svg deleted file mode 100644 index bf392be01f..0000000000 --- a/docs/process/process_areas/architecture_design/_assets/architecture_workflow.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Feature Architecture
(Concept)
Feature Architecture...
Model
Feature Architecture
Model...
Feature Level
Feature Level
Component Level
Component Level
Model
Component  Architecture
Model...
Component
Architecture
[status = valid]
Component...
links
[fulfils= featreq.uid]
[linkhash = featreq.hash]
links...
PR Review
PR Review
1
1
2
2
8
8
9
9
Feature
Requirement
Feature...
4
4
PR Review
PR Review
Feature
Architecture
[status = valid]
Feature...
links
[defined metamodel]
links...
Component Requirements
Component Requiremen...
3
3
5
5
7
7
links
[fulfils= compreq.uid]
[linkhash = compreq.hash]
links...
Component
Architecture
Component...
6
6
6
6
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/process_areas/architecture_design/_assets/component_architecture_dynamic.puml b/docs/process/process_areas/architecture_design/_assets/component_architecture_dynamic.puml deleted file mode 100644 index 0075b0bdf8..0000000000 --- a/docs/process/process_areas/architecture_design/_assets/component_architecture_dynamic.puml +++ /dev/null @@ -1,50 +0,0 @@ -/' - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* -'/ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -@startuml - -participant "Feature User" as actor -participant "«component» :Lower Level Component 1" as sc1 -participant "«component» :Lower Level Component 3" as sc3 - -actor -> sc1: real operation 3 () -sc1 -> sc3: real operation 9 () - -alt success - sc3 --> sc1: success -else error - sc3 --> sc1: error type -end - -alt success - sc1 --> actor: true -else error - sc1 -> actor: error type -end - -@enduml diff --git a/docs/process/process_areas/architecture_design/_assets/feature_architecture_dynamic.puml b/docs/process/process_areas/architecture_design/_assets/feature_architecture_dynamic.puml deleted file mode 100644 index 7f201e7962..0000000000 --- a/docs/process/process_areas/architecture_design/_assets/feature_architecture_dynamic.puml +++ /dev/null @@ -1,45 +0,0 @@ -/' - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* -'/ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -@startuml - -participant "Feature User" as actor -participant "«component» :Component 2" as m2 -participant "«component» :Component 1" as m1 - -actor -> m2: logical operation 3 () -m2 -> m1: logical operation 1 () -m1 --> m2: result - -alt success - m2 --> actor: success -else error - m2 -> actor: error type -end - -@enduml diff --git a/docs/process/process_areas/architecture_design/_assets/metamodel_architectural_design.drawio.svg b/docs/process/process_areas/architecture_design/_assets/metamodel_architectural_design.drawio.svg deleted file mode 100644 index f8889362a1..0000000000 --- a/docs/process/process_areas/architecture_design/_assets/metamodel_architectural_design.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
includes
includes
Feature
Feature
included by
included by
Logical Interface
Logical Interface
Logical Interface
Operation
Logical Interface...
implements
implements
Real Interface
Operation
Real Interface...
included by
included by
Real Interface
Real Interface
implements / uses
implements / uses
includes
includes
Component
Component
includes
includes
Module
Module
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/process/process_areas/architecture_design/architecture_concept.rst b/docs/process/process_areas/architecture_design/architecture_concept.rst deleted file mode 100644 index 95cdfb8240..0000000000 --- a/docs/process/process_areas/architecture_design/architecture_concept.rst +++ /dev/null @@ -1,395 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Architecture Process - :id: doc_concept__arch__process - :status: valid - -In this section a concept for the architecture design will be discussed. - -Inputs -****** - -#. Use cases which require the architectural design? -#. Who needs which information? -#. Which standard requirements need to be fulfilled - -Use Cases which require architectural information -================================================= - -#. **Change Request** - - * Platform High Level Architecture - * Graphical Feature Description - -#. **Safety Analysis** - - * *Dependent Failure Analysis* - - * the interaction of the components with each other - - * *Qualitative safety analysis* - - * decomposition of the architectural element under analysis - * interfaces within the architectural element under analysis (including their AoUs) - * usage of the components (interface of the component under analysis itself) - * allocate safety requirements to architectural elements - -#. **Security Analysis** - - * TBD - -#. **Safety Planning** - - * Decomposition into modules and components for the safety planning - -#. **Security Planing** - - * TBD - -#. **Platform SW Development** - - * Interfaces of own component and their respective contracts (including dynamic architecture) which need to be implemented - * Interfaces of the interacting components which are used to obtain required information (including AoUs) - * White Box view of the component itself - -#. **Testing** - - * Use cases for the component including their AoUs - * On component level an overview of the actual interfaces - * All the interfaces and AoUs of the interacting components which need to be provided for a black box test - -#. **Software Integration** - - * components which need to be integrated - * dependencies for the integrated components including their configuration - * order and task scheduling for all components - -#. **Application SW Development** - - * public interfaces which are provided at the top level including their contracts - * expected sequence of the single operations - * a detailed api description of the interface - -#. **Project Management** - - * High Level Architecture for project structuring and planning - -Requirements based on standards -=============================== - -Additionally also standards specify requirements towards the architectural design: - -* ISO26262 -* ASPICE -* ISO21434 - -Their requirements are linked via the guidances. - -.. _architectural_viewpoints: - -Definition of architectural viewpoints -************************************** - -In this section following questions shall be answered: - -#. Which architectural viewpoints can we derive from the inputs? -#. Which architecture attributes are required? -#. How do the different viewpoints correlate to each other? - -Based on the inputs two architectural levels are defined. - -.. _feature_view: - -Feature View -============ - -Static View ------------ - -The first viewpoint is named as *feature architecture*. It displays the SW modules (= top level SW components) which are required to realize the feature including their interactions. Also the *logical interfaces* and the interaction between the feature and the user are included in this view. On this architectural level the feature requirements shall be allocated. An example for the static architecture is shown here: - -.. feat_arc_sta:: Feature 1 - :id: feat_arc_sta__feature_1 - :security: YES - :safety: QM - :status: valid - :includes: logic_arc_int__archdes_logical_interface_1, logic_arc_int__archdes_logical_interface_2 - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_feature(need(), needs) }} - -In all views the Components which are marked as ASIL_B related are drawn in blue color. - -Dynamic View ------------- - -The next chart shows the dynamic behavior of the feature including the interaction of its modules with the user. Following scenarios should be included: - -* important use cases or features: how do components execute them? -* interactions at critical external interfaces: how do components cooperate with users and neighboring components? -* operation and administration: launch, start-up, stop -* successful use cases -* error and exception use cases - -.. uml:: _assets/feature_architecture_dynamic.puml - :align: center - :caption: Dynamic Feature Architecture - -Interface View --------------- - -On the feature level only *logical interfaces* shall be displayed. This means that only logical names shall be provided for both the interface and the operations within. Those *logical interfaces* shall be connected to component interfaces on the module view. - -.. logic_arc_int:: Logical Interface 1 - :id: logic_arc_int__archdes_logical_interface_1 - :security: YES - :safety: ASIL_B - :status: valid - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_interface(need(), needs) }} - -SW Module View -============== - -A SW Module in S-CORE represents a `Bazel Module `_. It serves only as a container (or package) which can include components. It is not meant to be an architectural element which includes that no requirements can be allocated to it. - -On this level also a view shall be defined which is called *Module View*. It represents the allocation of components into modules and displays the dependencies between the single modules. In this view also cyclic dependencies between modules can be identified. - -.. mod_view_sta:: Module 3 - :id: mod_view_sta__archdes_3 - :includes: comp_arc_sta__archdes_component_1 - - .. needarch:: - :scale: 50 - :align: center - - - {{ draw_module(need(), needs) }} - -Component View -============== - -Static View ------------ - -The second viewpoint is named as *component architecture* and describes the implementation of the functionalities in a white-box view of the platform. It describes the structural decomposition of the *SW components* into *lower level* SW components. In the S-CORE project this viewpoint provides more detailed information concerning the respective interfaces of a component. If a SW component interacts with a different component it is also included via a *use* relationship in the diagram. An example of the *component architecture* is displayed here: - -.. comp_arc_sta:: Component 2 - :id: comp_arc_sta__archdes_component_2 - :status: valid - :safety: ASIL_B - :security: NO - :includes: comp_arc_sta__archdes_sub_component_1, comp_arc_sta__archdes_sub_component_2, comp_arc_sta__archdes_sub_component_3 - :fulfils: comp_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component(need(), needs) }} - -The *lower level components* are optional and rely on the complexity of the component. Thus there is no graphic representation required for it. - -Dynamic View ------------- - -The dynamic view of the component architecture shows the order of the interactions between the respective components. It is displayed via relations to the interface operations which are provided or used by each component. - -.. uml:: _assets/component_architecture_dynamic.puml - :align: center - :caption: Dynamic Component Architecture - -Interface View --------------- - -The component interface view shows the actual interfaces of the component. Also links to their corresponding logical interfaces are displayed in this view: - -.. real_arc_int:: Component Interface 1 - :id: real_arc_int__archdes_component_interface_1 - :status: valid - :safety: ASIL_B - :security: NO - :fulfils: comp_req__archdes_example_req - :language: cpp - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_interface(need(), needs)}} - -Platform View -============= - -Although it is required to create a *DFA* on platform level no additional view is required for this architectural level: - -#. Features should be defined in a such way that they are independent of each other. Any dependencies should be displayed via common components in the feature view. - -#. The feature set depends on the feature selection on platform level. This means that this view would depend highly on the selection of features which an integration choses to integrate on platform level. Thus this view would need to be generated based on the feature selection. - -.. _architectural_design: - -Specification of the architectural design -***************************************** - -The architectural design shall be modeled with the help of static, dynamic and interfaces at each defined level. -For the description a natural language, diagrams or a semi-formal language *(UML)* shall be used. - -The architectural elements itself including their correlations shall be modeled in a database like approach. Therefore following architectural elements shall be used: - -Static view -=========== - -The *static view* shows the *building blocks* of the architecture. It shall be completely modeled in *sphinx needs*. Following elements are defined: - -.. list-table:: Definition of the static architectural elements - :header-rows: 1 - :widths: 15,35,35 - - * - Element - - Sphinx Needs Directive - - Code Template - * - Feature Architecture - - feat_arc_sta - - feat_arc_sta_t - * - Component Architecture - - comp_arc_sta - - comp_arc_sta_t - -To represent the `Bazel Modules `_ an additional container (or package) is introduced. It can only contain components: - -.. list-table:: Definition of the static module view - :header-rows: 1 - :widths: 15,35,35 - - * - Element - - Sphinx Needs Directive - - Code Template - * - Module View - - mod_view_sta - - mod_view_sta_t - -Dynamic view -============ - -The *dynamic view* describes the concrete behavior and interactions of the *building blocks* in form of use cases which were described above. - -The dynamic view shall be modeled partly in Sphinx Needs and PlantUML. The components itself shall be generated from the sphinx needs model into the PlantUML diagram. The dynamic relations between the component and the interfaces shall be modeled in PlantUML as it would be a huge effort to model the dynamic behavior in sphinx needs and would not provide any additional benefit. - -.. list-table:: Definition of the dynamic architectural elements - :header-rows: 1 - :widths: 15,35,35 - - * - Element - - Sphinx Needs Directive - - Code Template - * - Dynamic Feature Architecture - - feat_arc_dyn - - feat_arc_sta_t - * - Dynamic Component Architecture - - comp_arc_dyn - - comp_arc_dyn_t - -Interface view -============== - -The *interface view* focuses on the interfaces of the components and shows the operations within. - -.. list-table:: Definition of the architectural elements - :header-rows: 1 - :widths: 15,35,35 - - * - (Logical) Interface - - logic_arc_int - - logic_arc_int_t - * - (Logical) Interface Operation - - logic_arc_int_op - - logic_arc_int_op_t - * - (Real) Interface - - real_arc_int - - real_arc_int_t - * - (Real) Interface Operation - - real_arc_int_op - - real_arc_int_op_t - -Relations between the architectural elements -============================================ - -The traceability between the architectural elements itself shall be established by modeling the elements in the *docs-as-code* tool. Here a "clickable" architecture can be generated which allows an easy tracing through the element tree. The previously introduced architectural components shall be connected by using following relations: - -.. figure:: _assets/metamodel_architectural_design.drawio.svg - :width: 90% - :align: center - :alt: Definition of the Metamodel for Architectural Design - :name: metamodel_architectural_design - - Definition of the Metamodel for Architectural Design - -Attributes of the architectural elements -**************************************** - -Since the architecture should be modeled in *Sphinx Needs* the corresponding attributes need to be defined. On the top level we can distinguish between attributes which need to be filled manually and attributes which are generated during the sphinx-docs build. - -Following attributes need to be filled manually for each requirement: - -.. list-table:: Manual attributes for architectural elements - :header-rows: 1 - :widths: 15,85 - - * - Attribute - - Description - * - Unique ID - - The naming scheme for the UID is defined here: :need:`gd_req__arch__attribute_uid` - * - Title - - The title of the architectural element shall be expressive. - * - Status - - Status of the architectural element [valid,invalid] - * - Safety - - This attribute describes the impact of the architectural element on functional safety. Currently only following values are defined [QM, ASIL_B, ASIL_D]. Other values are not required at the moment as *ASIL decomposition* is not used so far. - * - Security - - This attribute describes if the architectural element has any impact on the security of the platform. [YES,NO] - * - Fulfils - - With this attribute the relations to the corresponding requirements shall be described - -For creating architectural elements also templates for each level are available: - -* Feature Architecture: :need:`[[title]] ` -* Component Architecture: :need:`[[title]] ` - -.. _traceability of the architecture: - -Establish traceability between requirements and architectural elements -********************************************************************** - -During the architectural design process all feature and component requirements shall be allocated to a single architecture element at the corresponding level via the attribute **fulfils**. - -.. _reviews of the architecture: - -Reviews of the architecture -*************************** - -Some of the checks cannot be performed automatically. Therefore a manual inspection of the architecture is needed. The architecture review itself is included in the PR review which is triggered if a contributor wants to commit code to the main line. For this review a checklist is available: :need:`gd_chklst__arch__inspection_checklist`. diff --git a/docs/process/process_areas/architecture_design/architecture_getstrt.rst b/docs/process/process_areas/architecture_design/architecture_getstrt.rst deleted file mode 100644 index 03e32fd151..0000000000 --- a/docs/process/process_areas/architecture_design/architecture_getstrt.rst +++ /dev/null @@ -1,270 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_getting_started: - -Getting Started -############### - -.. doc_getstrt:: Architecture Design Process - :id: doc_getstrt__arch__process - :status: valid - -As described in the :ref:`Architecture Design Concept ` currently two views are defined. The *getting started* provides an overview which steps need to be done to create the feature architecture and the component architecture. - -For the detailed description both an :need:`[[title]] ` and an :need:`[[title]]` are available. - -General Workflow -**************** - -.. figure:: _assets/architecture_workflow.drawio.svg - :width: 80% - :align: center - :name: architecture_workflow_fig - - Architecture Design Workflow - -:numref:`architecture_workflow_fig` shows all steps which are required to create an architectural design. In this getting started only a short overview is given. A more detailed description of all the step is provided in the :need:`guideline ` - -Tooling support -*************** - -Templates -========= - -For creating the architectural design, snippets in vs code are available: - -* feat_arc__t -* comp_arc__t - -The needs itself which are the basis for the template are defined in the :ref:`Architectural Design `. - -.. _arch_gen_sphinx: - -Architecture Generation for Sphinx-Needs -======================================== - -Overview --------- - -The system provides utilities to generate `PlantUML `_ diagrams from requirement specifications. It supports various architectural elements types including: - -* Features -* Logical Interfaces -* Components -* Component Interfaces - -as well as the linkage between them. - -Usage ------ - -To generate a UML diagram, use the *needarch* directive in your Sphinx-Needs documentation: - -.. code-block:: rst - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_feature(need(), needs) }} - -It's also possible to manually extend the drawing. For an example, check out :ref:`manual_addition_uml` - -Available Drawing Classes -------------------------- - -.. code-block:: none - - # Draw Feature - # Generates a UML representation of a feature and its included components/interfaces. - - {{ draw_feature(need(), needs) }} - - # Draw Any Interface - # Renders a logical interface and its operations or a component interface with its operations and implementations. - - {{ draw_interface(need(), needs) }} - - # Draw Component - # Creates a complete component diagram including internal structure and linkages. - - {{ draw_component(need(), needs) }} - -Rendered Examples ------------------ - -Here are some excerpts of UML diagrams made from the requirements of that file. - -Feature Architecture -^^^^^^^^^^^^^^^^^^^^ -.. feat_arc_sta:: Feature Getting Started - :id: feat_arc_sta__archdes_getstrt - :security: YES - :safety: QM - :status: valid - :includes: logic_arc_int__archdes_logical_interface_1, logic_arc_int__archdes_logical_interface_2 - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_feature(need(), needs) }} - -.. code-block:: rst - - .. feat_arc_sta:: Feature Getting Started - :id: feat_arc_sta__archdes_getstrt - :security: YES - :safety: QM - :status: valid - :includes: logic_arc_int__archdes_logical_interface_1, logic_arc_int__archdes_logical_interface_2 - :fulfils: feat_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_feature(need(), needs) }} - -Component Architecture -^^^^^^^^^^^^^^^^^^^^^^ -.. comp_arc_sta:: Component 1 - :id: comp_arc_sta__component_getstrt - :status: valid - :safety: ASIL_B - :security: NO - :uses: logic_arc_int__archdes_logical_interface_3 - :implements: logic_arc_int__archdes_logical_interface_1 - :fulfils: comp_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component( need(), needs ) }} - -.. code-block:: rst - - .. comp_arc_sta:: Component 1 - :id: comp_arc_sta__component_getstrt - :status: valid - :safety: ASIL_B - :security: NO - :uses: real_arc_int__archdes_component_interface_3 - :implements: real_arc_int__archdes_component_interface_1 - :fulfils: comp_req__archdes_example_req - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component( need(), needs ) }} - -Debugging PlantUML Figures --------------------------- -For debugging PlantUML diagrams which are generated via the *needarch* directive following options are available: - -**Storing the PlantUML File** - -It is possible to store the generate PlantUML file in the directory ``/_build/_plantuml_sources`` -Therefore the *needarch* directive needs to be extended with the attribute ``:save:`` - -.. code-block:: rst - - .. needarch:: - :scale: 50 - :align: center - :save: comp1.puml - - {{ draw_component( need(), needs ) }} - -**Printing the PlantUML Code** - -Besides storing the output it is also possible to display the generated PlantUML text below the rendered Figure. Therefore the *needarch* directive needs to be extended with the attribute ``:debug:`` - -.. _manual_addition_uml: - -Manual Addition to the UML --------------------------- - -We use a similar rst as above, just this time we use *needuml* and add some extra manual UML at the end. -To make *needuml* work we have to replace the *need()* call with a different function call. - - -.. code-block:: rst - - .. comp_arc_sta:: Component Get Started Manually Edited - :id: comp_arc_sta__component_manual_getstrt - :status: valid - :safety: ASIL_B - :security: NO - :uses: real_arc_int__archdes_component_interface_3 - :implements: real_arc_int__archdes_component_interface_1 - :fulfils: comp_req__archdes_example_req - - .. needuml:: - - {{ draw_component( needs.__getitem__('comp_arc_sta__component_getstrt'), needs ) }} - component "Component Manual" as CM { - } - CM -> LI1: EXTRA_LINKAGE_MANUALLY_ADDED - -.. comp_arc_sta:: Component Get Started Manually Edited - :id: comp_arc_sta__component_manual_getstrt - :status: valid - :safety: ASIL_B - :security: NO - :uses: logic_arc_int__archdes_logical_interface_3 - :implements: logic_arc_int__archdes_logical_interface_1 - :fulfils: comp_req__archdes_example_req - - .. needuml:: - - {{ draw_component( needs.__getitem__('comp_arc_sta__component_getstrt'), needs ) }} - component "Component Manual" as CM { - } - CM -> LI1: EXTRA_LINKAGE_MANUALLY_ADDED - -You can add any layout or additional configuration you want before you call the *draw_xyz*. - -Facing Build Issues -------------------- - -If for some reason the docs build gets stuck in an endless loop a more detailed info can be retrieved by using the **incremental build**. Usually this build aborts and points to the failure. - -Using NeedUML directive ------------------------ - -The above syntax is for the *needarch* directive. It is also possible to use the *needuml* directive. -To achieve this the *need()* call needs to be replaced with the following, as *needuml* does not support *need()* - - .. code-block:: none - - # need() => needs.__getitem__('ID OF THE REQUIREMENT YOU ARE IN') - - # For example, drawing the requirement: - `COMP_ARC_STA__component_manual_1` - - would then look as such - {{ draw_component( needs.__getitem__('COMP_ARC_STA__component_manual_1'), needs ) }} - - -Limitations ------------ - -* Grouping functionality needs improvement -* Manual extendability is limited to the same type as the underlying drawing, either class or association diagram types -* Currently only uses the need attributes *includes, uses, implements* diff --git a/docs/process/process_areas/architecture_design/architecture_roles.rst b/docs/process/process_areas/architecture_design/architecture_roles.rst deleted file mode 100644 index 99d3f99e94..0000000000 --- a/docs/process/process_areas/architecture_design/architecture_roles.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For architecture design no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor ` - * :need:`Committer ` - * :need:`Safety Manager ` - * :need:`Security Manager ` - -A detailed overview of the responsibility for the steps of the architecture design process is listed here: - -:ref:`arch_workflow` diff --git a/docs/process/process_areas/architecture_design/architecture_workflow.rst b/docs/process/process_areas/architecture_design/architecture_workflow.rst deleted file mode 100644 index a3b3a50248..0000000000 --- a/docs/process/process_areas/architecture_design/architecture_workflow.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_workflow: - -Architecture Workflow -===================== - -.. workflow:: Create/Maintain Feature architecture - :id: wf__cr_mt_featarch - :status: valid - :tags: architecture_design - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__requirements__feat, wp__issue_track_system - :output: wp__feature_arch - :contains: gd_guidl__arch__design, gd_temp__arch__feature - :has: doc_concept__arch__process, doc_getstrt__arch__process - - The feature architectures are created and maintained. - -.. workflow:: Create/Maintain Components architecture - :id: wf__cr_mt_comparch - :status: valid - :tags: architecture_design - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__feature_arch, wp__requirements__comp, wp__issue_track_system - :output: wp__component_arch - :contains: gd_guidl__arch__design, gd_temp__arch__comp - :has: doc_concept__arch__process, doc_getstrt__arch__process - - The component architectures are created and maintained. - -.. workflow:: Monitor/Verify Architecture - :id: wf__mr_vy_arch - :status: valid - :tags: architecture_design - :responsible: rl__committer - :approved_by: rl__committer - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__feature_arch, wp__component_arch - :output: wp__issue_track_system, wp__sw_arch_verification - :contains: gd_guidl__arch__design, gd_chklst__arch__inspection_checklist - :has: doc_concept__arch__process, doc_getstrt__arch__process - - The architecture designs are monitored and verified. - - The inspection shall be implemented as integral part of the review in GitHub. diff --git a/docs/process/process_areas/architecture_design/architecture_workproducts.rst b/docs/process/process_areas/architecture_design/architecture_workproducts.rst deleted file mode 100644 index 26ae6f4f44..0000000000 --- a/docs/process/process_areas/architecture_design/architecture_workproducts.rst +++ /dev/null @@ -1,52 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_workproducts: - -Architecture Workproducts -========================= - -.. workproduct:: Feature Architecture - :id: wp__feature_arch - :status: valid - :complies: std_wp__iso26262__software_751 - - Feature Architecture linked to Feature Requirements, i.e. interaction of components - - * Static view (Sphinx Needs) - Feature interfaces (to outside of Feature) and interfaces between own components - * Dynamic view (UML) - Sequences of component interactions and state diagrams - * Interface view (Sphinx Needs) - Overview of used and provided interfaces - - Technical concept on platform level. - -.. workproduct:: Component Architecture - :id: wp__component_arch - :status: valid - :complies: std_wp__iso26262__software_751, std_wp__isopas8926__4523 - - Component Architecture linked to Component Requirements - - * Static view (Sphinx Needs) - Component interfaces (to outside of Component) and interfaces between own (sub) components - * Dynamic view (UML) - Sequences of components interactions and components states - * Interface view (Sphinx Needs) - Overview of used and provided interfaces - - Technical concept on component level. - -.. workproduct:: Architecture Verification - :id: wp__sw_arch_verification - :status: valid - :complies: std_wp__iso26262__software_754 - - Depends on architecture guideline and tooling. - May include several methods like inspection, modelling ... Which are selected in SW Verification Plan. diff --git a/docs/process/process_areas/architecture_design/guidance/architecture_guideline.rst b/docs/process/process_areas/architecture_design/guidance/architecture_guideline.rst deleted file mode 100644 index 62561c77f4..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/architecture_guideline.rst +++ /dev/null @@ -1,259 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_design_guideline: - -Architecture Guideline -###################### - -.. gd_guidl:: Architectural Design - :id: gd_guidl__arch__design - :status: valid - :complies: std_req__isopas8926__44411, std_req__isopas8926__44412 - -The guideline focuses on the steps which need to be performed in order to create the architectural design. The concept behind those steps is described in the :need:`[[title]] ` - -General Hints -============= - -Attributes ----------- - -For all architectural need elements following mandatory attributes are defined: - -.. needtable:: Overview of mandatory attributes - :filter: "mandatory" in tags and "attribute" in tags and "architecture_design" in tags and type == "gd_req" - :style: table - :columns: title; id - :colwidths: 30,70 - - -Checks ------- - -For architectural elements following checks are defined: - -.. needtable:: Overview of checks on architectural elements - :filter: "check" in tags and "attribute" in tags and "architecture_design" in tags and type == "gd_req" - :style: table - :columns: title; id - :colwidths: 30,70 - - -Workflow for creating an architectural design -============================================= - -This chapter describes the general guideline for architectural design within the project. In general the workflow for creating an architectural design is shown in :ref:`architecture_workflow_fig` - -Those steps are: - -.. list-table:: Definition of the static architectural elements - :header-rows: 1 - :widths: 10,60,30 - - * - Step - - Description - - Responsible - * - 1. - - :ref:`Create feature architecture (Concept) ` - - :need:`[[title]] ` - * - 2. - - :ref:`Model feature architecture ` - - :need:`[[title]] ` - * - 3. - - :ref:`Allocate feature requirements to architectural elements ` - - :need:`[[title]] ` - * - 4. - - :ref:`Review architectural design ` - - :need:`[[title]] ` - * - 5. - - Merge architectural design into score repository - - :need:`[[title]] ` - * - 6. - - | :ref:`Create component architecture (Concept) ` - | :ref:`Allocate component requirements to architectural elements ` - - :need:`[[title]] ` - * - 7. - - :ref:`Model component architecture ` - - :need:`[[title]] ` - * - 8. - - :ref:`Review component architecture ` - - :need:`[[title]] ` - * - 9. - - Merge component architectural design into module - - :need:`[[title]] ` - -.. _create_feature_architecture: - -Create feature architecture (Concept) ----------------------------------------- - -The feature architecture (= high level architecture) shall be created in the feature tree of the platform repository. -As a starting point a :need:`template ` is available. - -Based on this template the feature architecture shall describe the concept of the feature including supporting figures and drawings. - -For this step following guidances are available: - -* :ref:`Branch Naming Conventions ` -* :ref:`Git Guidelines ` -* :need:`[[title]] Feature Architecture ` - -.. _model_feature_architecture: - -Model feature architecture --------------------------- - -Based on the concept description a model of the feature architecture should be designed. It shall consist of the logical interfaces which the user of the feature can access including also the modules which provide the interfaces. Therefore following elements shall be used: - -.. list-table:: Architectural Elements of the Feature Architecture - :header-rows: 1 - :widths: 10,30,30 - - * - Element - - Sphinx directive - - VS Code Template - * - Feature Architecture - - feat_arc_sta, feat_arc_dyn - - feat_arc_sta_t, feat_arc_dyn_t - * - Logical Interface - - logic_arc_int - - logic_arc_int_t - * - Logical Interface Operation - - logic_arc_int_op - - logic_arc_int_op_t - -The relations of the static elements are described in :numref:`metamodel_architectural_design`. - -.. note:: - For the modeling of the architecture a sphinx extension is available: :ref:`arch_gen_sphinx` - - An example for modeling the architecture can be found :ref:`here ` - -.. _allocate_feature_requirements: - -Allocate feature requirements to architectural elements -------------------------------------------------------- - -In the next step the already derived feature requirements shall be allocated to the architectural elements depending on the content of the requirement. Functional Requirement may either be allocated to static or dynamic architecture. Interface requirements shall only be allocated to the interface architecture. - -If needed also additional feature requirements, which may arise due to architectural decisions, should be created and allocated to the feature architecture itself. - -Those links shall be established from architectural elements to feature requirements via the attribute *fulfils* - -.. _review_architectural_design: - -Review architectural design ---------------------------- - -As soon as the design is in a mature state it can be reviewed according to :need:`doc_concept__wp_inspections` -and merged into the main branch of the score repository. - -For the review process a checklist template is available: :need:`[[title]] ` - -Following roles should be included in the review: - -* :need:`[[title]] ` -* :need:`[[title]] ` -* :need:`[[title]] ` -* :need:`[[title]] ` - -.. _create_component_architecture: - -Create component architecture (Concept) ---------------------------------------- - -Based on the *feature architecture* the concept for the *component architecture* shall be created in the SW module. It shall describe which components need to be created and how they correlate with each other in order to provide the required functionality. As a starting point a :need:`template ` is provided. - -For this step following guidances are available: - -* :ref:`Branch Naming Conventions ` -* :ref:`Git Guidelines ` -* :need:`[[title]] ` - -.. _allocate_component_requirements: - -Allocate component requirements to architectural elements ---------------------------------------------------------- - -In this step the component requirements shall be derived (see :need:`[[title]] `) and allocated to the architectural elements via the attribute *fulfils*. - -.. _model_component_architecture: - -Model component architecture ----------------------------- - -According to the architecture design description the model for the component architecture shall be created. It shall consist of components, real interfaces and real interface operations. Depending on the size of the component it can also be split into multiple (sub) components. - -.. list-table:: Architectural Elements of the Component Architecture - :header-rows: 1 - :widths: 10,30,30 - - * - Element - - Sphinx directive - - VS Code Template - * - Component Architecture - - comp_arc_sta, comp_arc_dyn - - comp_arc_sta_t, comp_arc_dyn_t - * - (Real) Interface - - real_arc_int - - real_arc_int_t - * - (Real) Interface Operation - - real_arc_int_op - - real_arc_int_op_t - -The relations of the static elements are described in :numref:`metamodel_architectural_design` - -.. _review_component_architecture: - -Review component architecture ------------------------------ - -As soon as the design is in a mature state it can be :ref:`reviewed ` and merged into the main branch of the module repository. - -Following roles should be included in the review: - -* :need:`[[title]] ` -* :need:`[[title]] ` -* :need:`[[title]] ` - -For the review process a checklist template is available: - -:need:`[[title]] ` - -UML diagram selection -===================== - -Static architecture -------------------- -As can be seen from the examples presented in :need:`feat_arc_sta__feature_1` and :need:`comp_arc_sta__archdes_component_2` -for the static architecture a UML component diagram is expected (and supported by the tooling). - -Dynamic architecture --------------------- -The :need:`doc_concept__arch__process` shows the usage of UML sequence diagrams to describe dynamic -behaviour. This is also the expected default diagram. Alternatively also state machine diagrams can be used -to describe stateful behaviour. Other types like the activity diagram are not encouraged to use, -if an activity diagram is used instead of a sequence diagram, this has to be argued as part of the -architecture description. - -Generally dynamic views are expected in the feature view and the component view based on the following considerations: - -- Do not use dynamic views, if the fulfillment of the requirements by the architecture is already understandable with the static view. -- Simple caller/callee relation is not expected to be modelled (this would mean that the examples would be too simple for modelling). -- It should be more than two components involved. -- In case of safety related calls/communication also the error cases shall be displayed (see the "alt" boxes in the examples). -- If there would be only small difference between the feature and the component view, one can be omitted, preferrably the feature view. -- If the described feature or components support multiple use cases (e.g. in different life cycle phases). - these should be described also in multiple dynamic views. diff --git a/docs/process/process_areas/architecture_design/guidance/architecture_inspection_checklist.rst b/docs/process/process_areas/architecture_design/guidance/architecture_inspection_checklist.rst deleted file mode 100644 index 5fd72e7de2..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/architecture_inspection_checklist.rst +++ /dev/null @@ -1,155 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _architecture_inspection_checklist: - -Inspection Checklist Template -============================= - -.. gd_chklst:: Architecture Inspection Checklist Template - :id: gd_chklst__arch__inspection_checklist - :status: valid - :tags: architecture_design - :complies: std_req__iso26262__software_647 - -Purpose -------- - -The purpose of the software architecture checklist is to ensure that the design meets the criteria and quality as -defined per S-CORE processes and guidelines for feature and component architectural design elements. -It helps to check the compliance with requirements, identify errors or inconsistencies, and ensure adherence to best -practices. -The checklist guides evaluation of the architecture design, identifies potential problems, and aids in -communication and documentation of architectural decisions to stakeholders. - -Checklist ---------- - -.. list-table:: Architecture Design Review Checklist - :header-rows: 1 - - * - Review Id - - Acceptance criteria - - Type - - Guidance - - passed - - Remarks - - Issue link - * - ARC_01_01 - - Is the traceability from software architectural elements to requirements, and other level architectural - elements (e.g. component to interface) established according to the defined :ref:`metamodel`? - - automated - - Trace should be checked by Sphinx. Will be removed from checklist once requirement is implemented. - - - - - - - * - ARC_01_02 - - If the architectural element is related to any supplier manuals (incl. safety and security) - are the relevant parts covered? - - manual - - If the architecture makes use of supplied elements, their manuals (like safety) have to be considered (i.e. its provided functionality matches the expectation and assumptions are fulfilled). Note that in case of safety component this means that assumed Technical Safety Requirements and AoUs of the safety manual are covered. - - - - - - - * - ARC_01_03 - - Is the architectural element traceable to the lower level artifacts as defined by the workproduct traceability? - - automated - - Will be removed from checklist once requirement is implemented by automated tool check. - Details of possible linking can be depicted from :ref:`general_concepts_traceability` - - - - - - - * - ARC_02_01 - - Is the software architecture design compliant with the (overall) feature architecture? - - manual - - On component level check against the feature architecture, on feature level check other features with common components used. - - - - - - - * - ARC_02_02 - - Is appropriate and comprehensible operation/interface naming present in the architectural design? - - manual - - Check :ref:`arch_design_guideline` - - - - - - - * - ARC_02_03 - - Are correctness of data flow and control flow within the architectural elements considered? - - manual - - E.g. examine definitions, transformations, integrity, and interaction of data; check error handling, data - exchange between elements, correct response to inputs and documented decision making. - Note: consistency is ensured by the process/tooling, by defining each interface only once. - - - - - - - * - ARC_02_04 - - Are the interfaces between the software architectural element and other architectural elements well-defined? - - manual - - Check if the interface reacts on non-defined behavior or errors; can established protocols be used; are the - interfaces for inputs, outputs, error codes documented; is loose coupling considered and only limited exposure; - can unit or integration test be written against the interface; data amount transferred; no sensitive data - exposure; - - - - - - - * - ARC_02_05 - - Does the software architectural element consider the timing constraints (from the parent requirement)? - - manual - - If there are hard requirements on the timing a programming time estimation should be performed and also - deadline supervision considered. - - - - - - - * - ARC_02_06 - - Is the documentation of the software architectural element, including textual and graphical descriptions - (e.g., UML diagrams), comprehensible and complete? - - manual - - Use of semi-formal notation is expected for architectural elements with an allocated ASIL level. - Is the architecture template correctly filled? - - - - - - - * - ARC_03_01 - - Is the architectural element modular and encapsulated? - - manual - - Check e.g. that only minimal interfaces are used. Design should be object oriented. Interfaces and interactions are clearly defined. Usage of access types (private, protected) properly set. Limited global variables. - - - - - - - * - ARC_03_02 - - Is the suitability of the software architecture for future modifications and maintainability considered? - - manual - - Check for e.g. loose coupling, separation of concerns, high cohesion, versioning strategy for interfaces, - decision records, use of established design patterns. - - - - - - - * - ARC_03_03 - - Are simplicity and avoidance of unnecessary complexity present in the software architecture? - - manual - - Indicators for complexity are: number of use cases (corresponding to dynamic diagrams) - allocated to single design element, number of interfaces and operations in an interface, - function parameters, global variables, complex types, limited comprehensibility. - - Note: If the "number" above exceeds "3" a design rationale is mandatory (for all types) - - - - - - - * - ARC_03_04 - - Is the software architecture design following best practices and design principles? - - manual - - Refer to architectural guidelines and recommendations within the project documentation. - - - - - - diff --git a/docs/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst b/docs/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst deleted file mode 100644 index cabd2aa23f..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst +++ /dev/null @@ -1,246 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_process_requirements: - -Process Requirements -==================== - -Architectural Structuring -------------------------- - -.. gd_req:: Hierarchical structure of architectural elements - :id: gd_req__arch__hierarchical_structure - :status: valid - :complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432 - :satisfies: wf__cr_mt_featarch - - Architectural elements shall be hierarchically structured on two levels: - - * Feature - * Component - - Additionally there shall be a view for the *Top Level SW component* container. - -.. gd_req:: Architecture Views - :id: gd_req__arch__viewpoints - :status: valid - :complies: std_req__iso26262__support_6432, std_req__iso26262__software_742 - :satisfies: wf__cr_mt_featarch - - The architecture shall be shown with following views on each architectural level: - - * static view - * dynamic view - * interface view - - An additional view only shall be created on module level. - -.. gd_req:: Architecture Modeling - :id: gd_req__arch__model - :status: valid - :complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432 - :satisfies: wf__cr_mt_featarch - - For architecture design a model based approach should be used. - -.. gd_req:: Structuring of the architectural building blocks - :id: gd_req__arch__build_blocks - :status: valid - :complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432 - :satisfies: wf__cr_mt_featarch - - For modeling the viewpoints following elements shall be used: - - * Feature - * Module - * Component - * Logical Interfaces - * Interfaces - * Interface Operation - -.. gd_req:: Correlations of the architectural building blocks - :id: gd_req__arch__build_blocks_corr - :status: valid - :complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432 - :satisfies: wf__cr_mt_featarch - - For modeling the viewpoints following relations shall be used: - - .. figure:: ../_assets/metamodel_architectural_design.drawio.svg - :width: 100% - :align: center - :alt: Definition of the Metamodel for Architectural Design - -.. gd_req:: Building Blocks Dynamic Architecture - :id: gd_req__arch__build_blocks_dynamic - :status: valid - :satisfies: wf__cr_mt_featarch - - It shall be possible to provide the required architectural building blocks inside the dynamic architecture. - -Attributes of Architectural Elements ------------------------------------- - -.. gd_req:: Architecture attribute: UID - :id: gd_req__arch__attribute_uid - :status: valid - :tags: attribute,mandatory - :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6432 - - Each architectural element shall have a unique ID. It shall be in a format which is also human readable and consists of - - * type of architectural element - * last part of the feature tree - * keyword describing the content of the requirement. - - The naming convention is defined here: :ref:`naming_convention_needs` - -.. gd_req:: Architecture attribute: security - :id: gd_req__arch_attr_security - :status: valid - :tags: attribute, mandatory - - Each requirement shall have a security relevance identifier: - - * Yes - * No - -.. gd_req:: Architecture attribute: safety - :id: gd_req__arch__attr_safety - :status: valid - :tags: attribute, mandatory - :complies: std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - Each requirement shall have a automotive safety integrity level (ASIL) identifier: - - * QM - * ASIL_B - * ASIL_D - -.. gd_req:: Architecture attribute: status - :id: gd_req__arch__attr_status - :status: valid - :tags: attribute, mandatory - :complies: std_req__iso26262__support_6425 - - Each requirement shall have a status: - - * valid - * invalid - -.. gd_req:: Architecture attribute: fulfils - :id: gd_req__arch__attr_fulfils - :status: valid - :tags: attribute, mandatory - :complies: std_req__iso26262__support_6425 - - Each architectural element shall have a link to a requirement. - -Traceability to Requirements ----------------------------- - -.. gd_req:: Architecture traceability - :id: gd_req__arch__traceability - :status: valid - :tags: architecture_design - :complies: std_req__iso26262__support_6432 - :satisfies: wf__cr_mt_featarch - - Requirements shall be fulfilled by the architecture at the corresponding level. - - **Examples:** - - * feat_req <-> feat_arch_(sta|dyn|int) - * comp_req <-> comp_arch_(sta|dyn|int) - - .. note:: - In general the traceability is visualized in :numref:`wp_traceability_model` - -Checks for Architectural Design -------------------------------- - -.. gd_req:: Architecture mandatory attributes - :id: gd_req__arch__attr_mandatory - :status: valid - :tags: attribute, check - - It shall be checked if all mandatory attributes for each architectural element is provided by the user. For all elements following attributes shall be mandatory: - - .. needtable:: Overview mandatory requirement attributes - :filter: "mandatory" in tags and "attribute" in tags and "architecture_design" in tags and type == "gd_req" - :style: table - :columns: title - :colwidths: 30 - -.. gd_req:: Architecture linkage safety - :id: gd_req__arch__linkage_safety - :status: valid - :tags: attribute, check - - It shall be checked that every valid safety architectural element is linked against its top level element as defined in :need:`gd_req__arch__build_blocks_corr`. - -.. gd_req:: Architecture linkage requirement - :id: gd_req__arch__linkage_requirement - :status: valid - :tags: attribute, check - - It shall be checked that each architectural element (safety!=QM) is linked against a safety requirement (safety!=QM). - -.. gd_req:: Architecture linkage requirement type - :id: gd_req__arch__linkage_requirement_type - :status: valid - :tags: attribute, check - - It shall be checked that requirements can only be linked to architectural elements according to the defined traceability: - - * Functional feature requirements <-> static / dynamic feature architecture - * Interface feature requirements <-> interface feature architecture - * Functional component requirements <-> static / dynamic component architecture - * Interface component requirements <-> interface component architecture - -.. gd_req:: Architecture linkage safety - :id: gd_req__arch__linkage_safety_trace - :status: valid - :tags: attribute, check - - It shall be checked that safety architectural elements (Safety != QM) can only be linked against safety architectural elements. - -.. gd_req:: Architecture linkage security - :id: gd_req__arch__linkage_security_trace - :status: valid - :tags: attribute, check - - It shall be checked that security relevant architectural elements (Security == YES) can only be linked against security relevant architectural elements. - -.. gd_req:: Architecture check consistency modules - :id: gd_req__arch__consistency_model - :status: valid - :tags: model, check - - It shall be checked if all mentioned SW components are available in the modules repository. - -.. gd_req:: Architecture check consistency interfaces - :id: gd_req__arch__consistency_interf - :status: valid - :tags: model, check - - It shall be checked if all mentioned component interfaces are available in the modules repository. - -.. gd_req:: Architecture check consistency dynamic architecture - :id: gd_req__arch__consistency_dynamic - :status: valid - :tags: model, check - - It shall be checked if all SW components which are mentioned in the dynamic architecture are defined in the static architecture. diff --git a/docs/process/process_areas/architecture_design/guidance/component_architecture_template.rst b/docs/process/process_areas/architecture_design/guidance/component_architecture_template.rst deleted file mode 100644 index b164f5365f..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/component_architecture_template.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Component Architecture Template -############################### - -.. gd_temp:: Component Architecture Templates - :id: gd_temp__arch__comp - :status: valid - :tags: architecture_design - :complies: std_req__iso26262__software_741, std_req__iso26262__software_742, std_req__iso26262__software_743 - -Component Architecture : / -==================================================== - -Overview --------- -Brief summary - -Requirements Linked to Component Architecture ---------------------------------------------- - -.. code-block:: none - - .. needtable:: Overview of Component Requirements - :style: table - :columns: title;id - :filter: search("comp_arch_sta__archdes$", "fulfils_back") - :colwidths: 70,30 - -Description ------------ - -General Description - -Design Decisions - -Design Constraints - -Rationale Behind Architecture Decomposition -******************************************* -mandatory: a motivation for the decomposition or reason for not further splitting it into sub components. - -.. note:: Common decisions across components / cross cutting concepts is at the higher level. - -Static Architecture -------------------- - -.. code-block:: rst - - .. comp_arc_sta:: - :id: comp_arc_sta__<component>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to component requirement id> - - - -Dynamic Architecture --------------------- - -.. code-block:: rst - - .. comp_arc_dyn:: <Title> - :id: comp_arc_dyn__<component>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to component requirement id> - - -Interfaces ----------- - -.. code-block:: rst - - .. real_arc_int:: <Title> - :id: real_arc_int__<component>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to component requirement id> - :language: cpp - -.. note:: - Architecture can be split into multiple files. At component level the public interfaces to be used by the user and tester to be shown. diff --git a/docs/process/process_areas/architecture_design/guidance/feature_architecture_template.rst b/docs/process/process_areas/architecture_design/guidance/feature_architecture_template.rst deleted file mode 100644 index 8b0ad874c4..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/feature_architecture_template.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Feature Architecture Template -############################# - -.. gd_temp:: Feature Architecture Templates - :id: gd_temp__arch__feature - :status: valid - :complies: std_req__iso26262__software_741, std_req__iso26262__software_742, std_req__iso26262__software_743 - -Feature Architecture : <Feature>/<sub-feature> -================================================== - -Overview --------- -Brief summary - -Description ------------ - -General Description - -Design Decisions - -Design Constraints - -Requirements ------------- - -.. code-block:: none - - .. needtable:: Overview of Component Requirements - :style: table - :columns: title;id - :filter: search("feat_arch_sta__archdes$", "fulfils_back") - :colwidths: 70,30 - - -Rationale Behind Architecture Decomposition -******************************************* -mandatory: a motivation for the decomposition - -.. note:: Common decisions across features / cross cutting concepts is at the high level. - -Static Architecture -------------------- - -.. code-block:: rst - - .. feat_arc_sta:: <Title> - :id: feat_arc_sta__<feature>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to feature requirement id> - -Dynamic Architecture --------------------- - -.. code-block:: rst - - .. feat_arc_dyn:: <Title> - :id: feat_arc_dyn__<feature>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to feature requirement id> - -Logical Interfaces ------------------- - -.. code-block:: rst - - .. logic_arc_int:: <Title> - :id: logic_arc_int__<feature>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :fulfils: <link to feature requirement id> - -.. note:: - Architecture can be split into multiple files,it is an High level architecture_design which can be shown without actual c++/rust interfaces and data types ,and there will be link to lower level architecture till code to get actual api descriptions. diff --git a/docs/process/process_areas/architecture_design/guidance/index.rst b/docs/process/process_areas/architecture_design/guidance/index.rst deleted file mode 100644 index 545c9d0131..0000000000 --- a/docs/process/process_areas/architecture_design/guidance/index.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidances -######### - -.. toctree:: - :maxdepth: 1 - - architecture_guideline - architecture_inspection_checklist - feature_architecture_template - component_architecture_template - architecture_process_reqs diff --git a/docs/process/process_areas/architecture_design/index.rst b/docs/process/process_areas/architecture_design/index.rst deleted file mode 100644 index a54802bb07..0000000000 --- a/docs/process/process_areas/architecture_design/index.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _arch_design_process: - -################### -Architecture Design -################### - -.. toctree:: - :maxdepth: 1 - - architecture_getstrt - architecture_concept - guidance/index - architecture_roles - architecture_workflow - architecture_workproducts - _assets/architecture_modeling_example - - -.. needextend:: "process_areas/architecture_design" in docname - :+tags: architecture_design diff --git a/docs/process/process_areas/change_management/change_management_concept.rst b/docs/process/process_areas/change_management/change_management_concept.rst deleted file mode 100644 index 6a6424ddf1..0000000000 --- a/docs/process/process_areas/change_management/change_management_concept.rst +++ /dev/null @@ -1,197 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__change__process - :status: valid - :tags: change_management - -In this section a concept for the Change Management will be discussed. Inputs for this concepts -are both the requirements of ISO26262 Part-8 and ASPICE Requirements from SUP.10 additionally -including the requirements of the different stakeholders for the Change Management process. - -Key concept -*********** -A Change Request is the **ONLY** way to contribute (compare :need:`doc__contr_guideline`) -new features or to modify the scope of existing features in the **S-CORE** project. -As features are built-up by Components a Change Request is also needed to add new Components or -to modify the scope of existing Components. -As a Software Module is defined as the top-level Component, all statements here for Components -are also valid for Software Modules. - -Inputs -****** - -#. Stakeholders for the Change Requests? -#. Which Change Requests types can we derive from that? -#. Which attributes are required? -#. Which activities are required? - -Stakeholders for the Change Requests -************************************ - -#. :need:`Contributor <rl__contributor>` - - * Contributes features and components to grow the **S-CORE** content - - Contribution include scope modification of existing features/components or adding new - features/components. - -#. :need:`Committer <rl__committer>` - - * Verifies that the contribution fulfills the **S-CORE** policies - * Approves the contribution - -Standard Requirements -===================== - -Also requirements of standards need to be taken into consideration: - -* ISO 26262 -* ASPICE -* ISO SAE 21434 - -Change Request Types -******************** - -Feature -======= - -This Change Request describes a potential new feature for the platform. -The Change Request uses the Feature request template: :ref:`chm_feature_templates`. - -Feature Modification -==================== - -This Change Request describes a scope modification of an existing feature (requirement or work -product). The Change Request modifies the already existing Feature Request template: :ref:`chm_feature_templates`. - -Component -========= - -This Change Request describes a potential new component for the platform. -The Change Request uses the Component request template: :ref:`chm_component_templates`. - -Component Modification -====================== - -This Change Request describes a scope modification of an existing component (requirement or work -product). The Change Request modifies the already existing Component Request template: :ref:`chm_component_templates`. - - -.. _chm_attributes: - -Attributes of Change Requests -***************************** - -The required attributes for the Change Requests are defined in this subchapter. - -Following attributes need to be filled manually for each Change Request: - -.. list-table:: Manual Attributes - :header-rows: 1 - :widths: 15,85 - - * - Attribute - - Description - * - Unique ID - - The unique id - * - Status - - The status of a Change Request can either be "draft", "in review", "accepted" or "rejected". - * - Title - - Reason for the Change Request - * - Description - - Exact description of the Change Request - * - Safety - - These attribute describes the impact on functional safety. - * - Security - - This attribute describes the impact on security - * - Change Request Type - - Following types are defined: [Feature, Feature Modification, Component, Component Modification] - * - Affected work products - - Links to the work products affected by the Change Request - * - Milestone - - Planned date (milestone) of deployment of the Change Request - - -Activities for a Change Request -******************************* - -.. _chm_analysis: - -Analysis of the Change Request -============================== - -The affected work products must be identified. -The potential impact on functional safety and security must be addressed. -Schedule, risks, resources for the realization must be evaluated. -Verification measures must be defined. -Use therefore the : :ref:`Impact Analysis Template <chm_impact_analysis_templates>`. - -.. _chm_evaluation: - -Evaluation of the Change Request -================================ - -Based on the analysis results decision about the acceptance, rejection or delay must be taken -by authorized persons. - -Authorized person includes - -#. :need:`Technical Lead <rl__technical_lead>` -#. :need:`Module Lead <rl__module_lead>` -#. :need:`Safety Manager <rl__safety_manager>` -#. :need:`Security Manager <rl__security_manager>` -#. :need:`Quality Manager <rl__quality_manager>` - -Further prioritization must be done, e.g. based on release planning. - - -.. _chm_implementation: - -Implementation of the Change Request -==================================== -If the Change Request is accepted, it must be implemented. - - -.. _chm_verification: - -Verification of the Change Request -================================== - -The defined verification measures must be use to confirm the implementation. - - -.. _chm_reporting: - -Reporting of the Change Request -=============================== - -The status of the Change Request must be communicated by the -:need:`Technical Lead <rl__technical_lead>` or :need:`Module Lead <rl__module_lead>` until -the implementation is completed and confirmed. - - -.. _chm_traceability: - -Traceability Concept for Change Requests -======================================== - -The standards require that a Change Request can be traced throughout the complete hierarchy levels -including all affected work products. - -In general the traceability is visualized in the general traceability concept (:ref:`general_concepts_traceability`). diff --git a/docs/process/process_areas/change_management/change_management_getstrt.rst b/docs/process/process_areas/change_management/change_management_getstrt.rst deleted file mode 100644 index 0552ff1e4d..0000000000 --- a/docs/process/process_areas/change_management/change_management_getstrt.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Change Management - :id: doc_getstrt__change__process - :status: valid - :tags: change_management - -In case you want to contribute a change to **S-CORE** consider to: - -* Contact the :need:`Technical Lead <rl__technical_lead>` for your contribution to establish planning and reporting -* Create your change requests according to :need:`wf__change__cr_an_change_request` -* Make familiar with the development and supporting process descriptions in :ref:`process_description` -* Make familiar with the relevant sections of the :ref:`Platform Management Plan <pmp>`, here especially with :need:`Change Management Plan <doc__platform_change_management_plan>` diff --git a/docs/process/process_areas/change_management/change_management_roles.rst b/docs/process/process_areas/change_management/change_management_roles.rst deleted file mode 100644 index 85cebaee83..0000000000 --- a/docs/process/process_areas/change_management/change_management_roles.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For change management no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor <rl__contributor>` - * :need:`Committer <rl__committer>` - * :need:`Contributor <rl__technical_lead>` - * :need:`Module Project Lead <rl__module_lead>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - * :need:`Quality Manager <rl__quality_manager>` - -A detailed overview of the responsibility for the steps of the requirement process is listed here: - -:ref:`workflow_chm_requirements` diff --git a/docs/process/process_areas/change_management/change_management_workflow.rst b/docs/process/process_areas/change_management/change_management_workflow.rst deleted file mode 100644 index eaf36443b2..0000000000 --- a/docs/process/process_areas/change_management/change_management_workflow.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Workflow Change Management -########################## - -.. workflow:: Create/Analyze Change Request - :id: wf__change__cr_an_change_request - :status: valid - :tags: change_management - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__technical_lead, rl__module_lead - :input: wp__policies, wp__issue_track_system, wp__feat_request, wp__cmpt_request - :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request - :contains: gd_guidl__change__change_request, gd_temp__change__feature_request, gd_temp__change__component_request, gd_temp__change__impact_analysis, gd_temp__component_classification, gd_req__change__attr_uid, gd_req__change__attr_status, gd_req__change__attr_title, gd_req__change__attr_impact_description, gd_req__change__attr_impact_safety, gd_req__change__attr_impact_security, gd_req__change__attr_types, gd_req__change__attr_affected_wp, gd_req__change__attr_milestone, gd_req__change_tool_impact_analysis - :has: doc_concept__change__process, doc_getstrt__change__process - - The Change Request is created and analyzed. - - The Change Request must be filled out based on existing templates, including affected work - products, impact on functional safety and security, schedule, risk resources and verification - measures. - - All affected work products are traced. - - Until the template is not filled out properly, the Change Request may be kept in “draft” from - the [Committer (rl__committer)]. The possible outcome is either a Change Request with status - “draft” or “in review”. - -.. workflow:: Review/Approve Change Request - :id: wf__change__rv_ap_change_request - :status: valid - :tags: change_management - :responsible: rl__committer - :approved_by: rl__technical_lead, rl__module_lead - :supported_by: rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__issue_track_system, wp__feat_request, wp__cmpt_request - :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request - :contains: gd_guidl__change__change_request, gd_temp__change__feature_request, gd_temp__change__component_request, gd_temp__change__impact_analysis, gd_temp__component_classification, gd_req__change__attr_uid, gd_req__change__attr_status, gd_req__change__attr_title, gd_req__change__attr_impact_description, gd_req__change__attr_impact_safety, gd_req__change__attr_impact_security, gd_req__change__attr_types, gd_req__change__attr_affected_wp, gd_req__change__attr_milestone, gd_req__change_tool_impact_analysis - :has: doc_concept__change__process, doc_getstrt__change__process - - The Change Request is evaluated based on the analysis result either approved, rejected or delayed. - - The Change Request is implemented and verified. The defined verification measures must be - available and pass. - - The final approval is done by the [Technical Lead (rl__technical_lead)] or the - [Module Project Lead (rl__module_lead)] dependent on the scope. - - The possible outcome is either a Change Request with status “accepted” or “rejected” or kept - "in review". diff --git a/docs/process/process_areas/change_management/change_management_workproducts.rst b/docs/process/process_areas/change_management/change_management_workproducts.rst deleted file mode 100644 index dffd893b19..0000000000 --- a/docs/process/process_areas/change_management/change_management_workproducts.rst +++ /dev/null @@ -1,66 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work Products Change Management -############################### - -.. workproduct:: Platform Change Management Plan - :id: wp__chm_plan - :status: valid - :tags: change_management - :complies: std_wp__iso26262__support_851 - - Change Management Plan (Part of the Platform Management Plan) - -.. workproduct:: Issue tracking system - :id: wp__issue_track_system - :status: valid - :tags: change_management - :complies: std_wp__iso26262__support_852, std_wp__iso26262__support_853, std_wp__iso26262__support_854, std_wp__isopas8926__4527, std_req__aspice_40__iic-13-16, std_req__aspice_40__iic-13-07, std_req__aspice_40__iic-15-55, std_req__aspice_40__iic-15-12 - - | - Change request - | - Change request plan - | - Change report - | - Identified safety anomaly report - | - Impact analysis - | - | Safety anomaly: Conditions that deviate from expectations and that can lead to harm. - | The documentation of a change request shall contain the list of changed work products, - the details of the change and the planned date of deployment of the change. - -.. workproduct:: Feature Request - :id: wp__feat_request - :status: valid - :tags: change_management - :complies: std_wp__iso26262__support_852, std_wp__iso26262__support_853, std_req__aspice_40__iic-13-16 - - | - Feature request for a new feature or a feature modification - | - | Change Request for a new platform feature or a modification of an existing platform feature, - | which changes the scope of the feature. - -.. workproduct:: Component Request - :id: wp__cmpt_request - :status: valid - :tags: change_management - :complies: std_wp__iso26262__support_852, std_wp__iso26262__support_853, std_req__aspice_40__iic-13-16 - - | - Component request for a new component or a component modification - | - | Change Request for a new platform component or a modification of an existing platform component, - | which changes the scope of the component. - | Software Modules are also Components (top-level component). - -.. needextend:: "docs/process/change_management" in docname - :+tags: change_management diff --git a/docs/process/process_areas/change_management/guidance/change_management_checklist.rst b/docs/process/process_areas/change_management/guidance/change_management_checklist.rst deleted file mode 100644 index d3dba288d2..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_checklist.rst +++ /dev/null @@ -1,82 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _chm_checklist: - -Checklists -########## - -.. gd_chklst:: Change Request Review Checklist - :id: gd_chklst__change__cr_review - :status: valid - :tags: change_management - :complies: std_req__aspice_40__SUP-10-BP1, std_req__aspice_40__SUP-10-BP3, std_req__aspice_40__SUP-10-BP5, std_req__aspice_40__iic-13-51 - - | **1. Purpose** - | The purpose of this checklist is to collect the topics to be checked during a Change Request from any contributor. - | It will not be filled out but considered during the review of the Change Request. - | - | **2. Checklist** - | - - .. list-table:: Feature/Component Request Review Checklist - :header-rows: 1 - :widths: 10,30,6 - - * - Id - - Topic - - Status [FAIL|PASS] - * - 1 - - Does the Feature/Component Request follow the template? - - - - * - 2 - - Are all required topics of the Feature/Component Request template filled? - - - - * - 3 - - Does the Change Request has a UID as specified? - - - - * - 4 - - Does the Change Request has a title as specified? - - - - * - 5 - - Does the Change Request has a description as specified? - - - - * - 6 - - Does the Change Request has a impact analysis as specified? - - - - * - 7 - - Does the Change Request has a correct safety, security level as specified? - - - - * - 8 - - Does the Change Request has a correct type as specified? - - - - * - 9 - - Does the Change Request has a links to affected work product as specified? - - - - * - 10 - - Does the Change Request has a milestone as specified? - - - - * - 11 - - Does the Change Request has verification measure as specified? - - diff --git a/docs/process/process_areas/change_management/guidance/change_management_component_template.rst b/docs/process/process_areas/change_management/guidance/change_management_component_template.rst deleted file mode 100644 index bbb937d70f..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_component_template.rst +++ /dev/null @@ -1,181 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _chm_component_templates: - -Component Template -================== - -.. gd_temp:: Component Request Template - :id: gd_temp__change__component_request - :status: valid - :complies: std_req__aspice_40__SUP-10-BP1, std_req__aspice_40__SUP-10-BP2, std_req__aspice_40__SUP-10-BP3, std_req__aspice_40__SUP-10-BP5, std_req__aspice_40__iic-18-57, std_req__iso26262__support_8422, std_req__iso26262__support_8431, std_req__iso26262__support_8432 - -.. attention:: - Remove everything above when copying and filling the template. - -[Your Component Name] ---------------------- - -.. note:: Document header - -.. document:: [Your Component Name] - :id: doc__change__component_name - :status: draft - :safety: ASIL_B - :tags: template - -.. attention:: - The above directive must be updated according to your Component. - - - Modify ``name`` to be your Component Name - - Modify ``id`` to be your Component Name in upper snake case preceded by ``DOC_`` - - Adjust ``status`` to be ``valid`` - - Adjust ``asil`` according to your needs - -Abstract --------- - -[A short (~200 word) description of the contribution being addressed.] - - -Motivation ----------- - -[Clearly explain why the existing platform/project solution is inadequate to address the topic that the CR solves.] - - .. note:: - The motivation is critical for CRs that want to change the existing components. - It should clearly explain why the existing solution is inadequate to address the topic that the CR solves. - Motivation may based on criteria as resource requirements, scheduling issues, risks, benefits, etc. - CRs submissions without sufficient motivation may be rejected. - - - -Rationale ---------- - -[Describe why particular design decisions were made.] - - - .. note:: - The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion. - - -Specification -------------- - -[Describe the requirements, architecture of any new component.] or -[Describe the change to requirements, architecture, implementation, documentation of any change request.] - - .. note:: - A CR shall specify the component requirements as part of our platform/project. - Thereby the :need:`rl__module_lead` will approve these requirements as part of accepting the CR (e.g. merging the PR with the CR). - - - -Backwards Compatibility ------------------------ - -[Describe potential impact (especially including safety and security impacts) and severity on pre-existing platform/project elements.] - - -Security Impact ---------------- - -[How could a malicious user take advantage of this new/modified component?] - - .. note:: - If there are security concerns in relation to the CR, those concerns should be explicitly written out to make sure reviewers of the CR are aware of them. - -Which security requirements are affected or has to be changed? -Could the new/modified component enable new threat scenarios? -Could the new/modified component enable new attack paths? -Could the new/modified component impact functional safety? -If applicable, which additional security measures must be implemented to mitigate the risk? - - .. note:: - Use Security Software Critically Analysis, Vulnerability Analysis. - [Methods will be defined later in Process area Security Analysis] - - -Safety Impact -------------- - -[How could the safety be impacted by the new/modified component?] - - .. note:: - If there are safety concerns in relation to the CR, those concerns should be explicitly written out to make sure reviewers of the CR are aware of them. - -Which safety requirements are affected or has to be changed? -Could the new/modified component be a potential common cause or cascading failure initiator? -If applicable, which additional safety measures must be implemented to mitigate the risk? - - .. note:: - Use Dependency Failure Analysis and/or Safety Software Critically Analysis. - [Methods will be defined later in Process area Safety Analysis] - -For new feature/component contributions: - -[What is the expected ASIL level?] -[What is the expected classification of the contribution?] - - .. note:: - Use the component classification method here to classify your component, if it shall to be used in a safety context: :need:`gd_temp__component_classification`. - -License Impact --------------- - -[How could the copyright impacted by the license of the new contribution?] - - -How to Teach This ------------------ - -[How to teach users, new and experienced, how to apply the CR to their work.] - - .. note:: - For a CR that adds new functionality or changes behavior, it is helpful to include a section on how to teach users, new and experienced, how to apply the CR to their work. - - - -Rejected Ideas --------------- - -[Why certain ideas that were brought while discussing this CR were not ultimately pursued.] - - .. note:: - Throughout the discussion of a CR, various ideas will be proposed which are not accepted. - Those rejected ideas should be recorded along with the reasoning as to why they were rejected. - This both helps record the thought process behind the final version of the CR as well as preventing people from bringing up the same rejected idea again in subsequent discussions. - In a way this section can be thought of as a breakout section of the Rationale section that is focused specifically on why certain ideas were not ultimately pursued. - - - -Open Issues ------------ - -[Any points that are still being decided/discussed.] - - .. note:: - While a CR is in draft, ideas can come up which warrant further discussion. - Those ideas should be recorded so people know that they are being thought about but do not have a concrete resolution. - This helps make sure all issues required for the CR to be ready for consideration are complete and reduces people duplicating prior discussion. - - - -Footnotes ---------- - -[A collection of footnotes cited in the CR, and a place to list non-inline hyperlink targets.] diff --git a/docs/process/process_areas/change_management/guidance/change_management_feature_template.rst b/docs/process/process_areas/change_management/guidance/change_management_feature_template.rst deleted file mode 100644 index ab5f2a1809..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_feature_template.rst +++ /dev/null @@ -1,190 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _chm_feature_templates: - -Feature Template -================ - -.. gd_temp:: Feature Request Template - :id: gd_temp__change__feature_request - :status: valid - :complies: std_req__aspice_40__SUP-10-BP1, std_req__aspice_40__SUP-10-BP2, std_req__aspice_40__SUP-10-BP3, std_req__aspice_40__SUP-10-BP5, std_req__aspice_40__iic-18-57, std_req__iso26262__support_8422, std_req__iso26262__support_8431, std_req__iso26262__support_8432 - -.. attention:: - Remove everything above when copying and filling the template. - -[Your Feature Name] -------------------- - -.. note:: Document header - -.. document:: [Your Feature Name] - :id: doc__change__feature_name - :status: draft - :safety: ASIL_B - :tags: template - -.. attention:: - The above directive must be updated according to your Feature. - - - Modify ``name`` to be your Feature Name - - Modify ``id`` to be your Feature Name in upper snake case preceded by ``DOC_`` - - Adjust ``status`` to be ``valid`` - - Adjust ``asil`` according to your needs - -Feature flag ------------- - -To activate this feature, use the following feature flag: - -``experimental_[your_feature_name]`` - - .. note:: - The feature flag must reflect the feature name in snake_case. Further, it is prepended with ``experimental_``, as - long as the feature is not yet stable. - -Abstract --------- - -[A short (~200 word) description of the contribution being addressed.] - - -Motivation ----------- - -[Clearly explain why the existing platform/project solution is inadequate to address the topic that the CR solves.] - - .. note:: - The motivation is critical for CRs that want to change the existing features or infrastructure. - It should clearly explain why the existing solution is inadequate to address the topic that the CR solves. - Motivation may based on criteria as resource requirements, scheduling issues, risks, benefits, etc. - CRs submissions without sufficient motivation may be rejected. - - - -Rationale ---------- - -[Describe why particular design decisions were made.] - - - .. note:: - The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion. - - -Specification -------------- - -[Describe the requirements, architecture of any new feature.] or -[Describe the change to requirements, architecture, implementation, process, documentation, infrastructure of any change request.] - - .. note:: - A CR shall specify the stakeholder requirements as part of our platform/project. - Thereby the :need:`rl__technical_lead` will approve these requirements as part of accepting the CR (e.g. merging the PR with the CR). - - - -Backwards Compatibility ------------------------ - -[Describe potential impact (especially including safety and security impacts) and severity on pre-existing platform/project elements.] - - -Security Impact ---------------- - -[How could a malicious user take advantage of this new/modified feature?] - - .. note:: - If there are security concerns in relation to the CR, those concerns should be explicitly written out to make sure reviewers of the CR are aware of them. - -Which security requirements are affected or has to be changed? -Could the new/modified feature enable new threat scenarios? -Could the new/modified feature enable new attack paths? -Could the new/modified feature impact functional safety? -If applicable, which additional security measures must be implemented to mitigate the risk? - - .. note:: - Use Trust Boundary, Defense in Depth Analysis and/or Security Software Critically Analysis, - Vulnerability Analysis. - [Methods will be defined later in Process area Security Analysis] - -Safety Impact -------------- - -[How could the safety be impacted by the new/modified feature?] - - .. note:: - If there are safety concerns in relation to the CR, those concerns should be explicitly written out to make sure reviewers of the CR are aware of them. - Link here to the filled out :need:`Impact Analysis Template <gd_temp__change__impact_analysis>` or copy the template in this chapter. - -Which safety requirements are affected or has to be changed? -Could the new/modified feature be a potential common cause or cascading failure initiator? -If applicable, which additional safety measures must be implemented to mitigate the risk? - - .. note:: - Use Dependency Failure Analysis and/or Safety Software Critically Analysis. - [Methods will be defined later in Process area Safety Analysis] - -For new feature contributions: - -[What is the expected ASIL level?] - - -License Impact --------------- - -[How could the copyright impacted by the license of the new contribution?] - - -How to Teach This ------------------ - -[How to teach users, new and experienced, how to apply the CR to their work.] - - .. note:: - For a CR that adds new functionality or changes behavior, it is helpful to include a section on how to teach users, new and experienced, how to apply the CR to their work. - - - -Rejected Ideas --------------- - -[Why certain ideas that were brought while discussing this CR were not ultimately pursued.] - - .. note:: - Throughout the discussion of a CR, various ideas will be proposed which are not accepted. - Those rejected ideas should be recorded along with the reasoning as to why they were rejected. - This both helps record the thought process behind the final version of the CR as well as preventing people from bringing up the same rejected idea again in subsequent discussions. - In a way this section can be thought of as a breakout section of the Rationale section that is focused specifically on why certain ideas were not ultimately pursued. - - - -Open Issues ------------ - -[Any points that are still being decided/discussed.] - - .. note:: - While a CR is in draft, ideas can come up which warrant further discussion. - Those ideas should be recorded so people know that they are being thought about but do not have a concrete resolution. - This helps make sure all issues required for the CR to be ready for consideration are complete and reduces people duplicating prior discussion. - - - -Footnotes ---------- - -[A collection of footnotes cited in the CR, and a place to list non-inline hyperlink targets.] diff --git a/docs/process/process_areas/change_management/guidance/change_management_guideline.rst b/docs/process/process_areas/change_management/guidance/change_management_guideline.rst deleted file mode 100644 index 21813e641a..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_guideline.rst +++ /dev/null @@ -1,185 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Change Request Guideline - :id: gd_guidl__change__change_request - :status: valid - :complies: std_req__iso26262__support_8414, std_req__iso26262__support_8432, std_req__iso26262__support_8442, std_req__iso26262__support_8451 - -This document describes the general guidances for Change Management based on the concept which is defined :need:`[[title]]<doc_concept__change__process>`. - -General Hints -============= - -The detailed implementation of the Change Management for **S-CORE** is described in the :need:`[[title]]<doc__platform_change_management_plan>`. - -Templates ---------- - -*Need* templates displaying the correct syntax and attribute definition are provided for each -Change Request type. - -.. list-table:: Overview - :header-rows: 1 - :widths: 37, 37 - - * - Change Request Type - - Template - * - Feature - - :need:`[[title]] <gd_temp__change__feature_request>` - * - Feature Modification - - :need:`[[title]] <gd_temp__change__feature_request>` - * - Component - - :need:`[[title]] <gd_temp__change__component_request>` - * - Component Modification - - :need:`[[title]] <gd_temp__change__component_request>` - -Attributes ----------- - -For all Change Requests following mandatory attributes need to be defined: - -.. needtable:: Overview of mandatory change request attributes - :tags: change_management - :filter: "mandatory" in tags and "attribute" in tags and "chm" in tags - :style: table - :columns: title - :colwidths: 30 - - -A more detailed description can be found here: :ref:`chm_process_requirements` - - -.. _workflow_chm_requirements: - -Activities for Change Requests -============================== - -This section describes in detail which steps need to be performed for a Change Request. They may -be combined in on Change Request or split to multiple Change Requests, if necessary. - -Split may required, if - -| 1. Implementation is to complex and has dependencies, thus separate the activities for analyzing and -| approving and the multiple implementation and verification activities in different Change Requests, -| and link them according their dependencies. - -| 2. Affected work products are in different locations. - -Refer to the :need:`Change Management Plan <doc__platform_change_management_plan>` for examples -how to create simple or more complex Change Requests. - -.. list-table:: Activities for Change Request - :header-rows: 1 - :widths: 10,60,30 - - * - Step - - Description - - Responsible - * - :ref:`1. <chm_create_change_request>` - - Create change request - - :need:`[[title]] <rl__contributor>` - * - :ref:`2. <chm_analyze_change_request>` - - Analyze Change Request - - :need:`[[title]] <rl__contributor>` - * - :ref:`3. <chm_approve_change_request>` - - Approve Change Request - - :need:`[[title]] <rl__committer>` - * - :ref:`4. <chm_implement_change_request>` - - Implement Change Request - - :need:`[[title]] <rl__contributor>` - * - :ref:`5. <chm_verify_change_request>` - - Verify Change Request - - :need:`[[title]] <rl__committer>` - -.. _chm_create_change_request: - -Create Change Request ---------------------- - -:need:`[[title]] <rl__contributor>` creates the Change Request in the defined Issue Tracking -System linked to the created Feature or Component Request work products based on the provided templates. -It is expected, that the UID will be provided by the Issue Tracking System. - -The title of the Change Request should reflect the type (new feature/component request or -feature/component modification). - -The description should reflect the detailed changes. In case of a new feature/component request, -fill-out the template sections properly. For modifications touch only the concerned sections. - -Set the status of the Change Request to "draft", indicating that is not ready for review. - -.. _chm_analyze_change_request: - -Analyze Change Request ----------------------- - -To enable the **S-CORE** :need:`[[title]] <rl__committer>` to take a decision for approval of the -Change Request, :need:`[[title]] <rl__contributor>` analyses and documents the request concerning -the following topics in the created Change Request: - -1. List of all affected work products -2. Provide potential implementation schedule including targeted Milestone -3. Identify risks for implementation, required **S-CORE** resources -4. Identify impact on existing work products and on functional safety, security -5. Define verification measures used to confirm the implementation - -Use therefore the : :ref:`Impact Analysis Template <chm_impact_analysis_templates>` and copy it -into the created Change Request (Issue Tracking System). - -Set the status of the Change Request to "draft", indicating that is not ready for review. -Otherwise, change the status to "in review", so that :need:`[[title]] <rl__committer>` is -informed to start approval. - -.. _chm_approve_change_request: - -Approve Change Request ----------------------- - -:need:`[[title]] <rl__committer>` checks the Change Request in status "in review" based on -checklist questions and provided content. If the check is passed, the Change Request is approved, -which is pre-requisite for the implementation of the Change Request. In this case the status -of the Change Request is changed to "accepted". - -In case information are missing the status will be kept in "in review" and the creator is asked -for resolving the review comments. - -Finally the Change Request may also "rejected", then the implementation is not wanted. - -.. _chm_implement_change_request: - -Implement Change Request ------------------------- - -:need:`[[title]] <rl__contributor>` implements the Change Request. This is indicated by the -Change Request status "in review". During implementation the responsible lead -:need:`[[title]] <rl__technical_lead>` or :need:`[[title]] <rl__module_lead>` reports regularly -the status to the involved **S-CORE** teams until is completed and verified. - -The traceability from the Change Request to the affected work products must be established -during implementation. -Also the verification measures must be executed. - -.. _chm_verify_change_request: - -Verify Change Request ---------------------- -:need:`[[title]] <rl__committer>` must finally check, that implementation is complete -and the defined verification measures are properly executed and successfully pass, before the -Change Request can be finally approved. - -The Change Request is closed by setting the status to "accepted". diff --git a/docs/process/process_areas/change_management/guidance/change_management_impact_analysis_template.rst b/docs/process/process_areas/change_management/guidance/change_management_impact_analysis_template.rst deleted file mode 100644 index e20edaf852..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_impact_analysis_template.rst +++ /dev/null @@ -1,78 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _chm_impact_analysis_templates: - -Impact Analysis Template -======================== - -.. gd_temp:: Impact Analysis Template - :id: gd_temp__change__impact_analysis - :status: valid - :complies: std_req__aspice_40__SUP-10-BP2, std_req__aspice_40__iic-18-57, std_req__iso26262__support_8431, std_req__iso26262__support_8432, std_req__isopas8926__4462 - -Type of Change Request ----------------------- - -[New Feature/Component, Modification of an existing Feature/Component] - - -Dependencies on other Change Requests -------------------------------------- - -[List all dependencies on other Change Request] - - -Estimates for realization -------------------------- - -[List all work products and elements affected by the Change Request] - - .. note:: - For the identification of the affected work products use the Traceability Analysis approach. - Traceability analysis uses the existing links between different elements (requirements, architecture, implementation, etc.) - for the identification of the affected work products and elements. - -[Describe here which work products to be modified by the Change Request] - -[Describe here the verification methods used for the changed work products or elements] - -[Estimate the effort, resources, risk for the realization] - -[Describe here which stakeholder and which roles of the stakeholder are involved to execute the Change Request] - - .. note:: - Typically the :need:`Technical Project Leads <rl__technical_lead>` or :need:`Module Leads <rl__module_lead>` are involved - for planning and approval activities. As well as :need:`Safety Manager <rl__safety_manager>` or :need:`Security Manager <rl__security_manager>` - are responsible for Change Request which has impact on functional safety or security. - -[Describe here which Milestones are considered to realize the Change Request] - - .. note:: - A draft realization plan may support the realization proposal. - - -Potential Impact on Security ------------------------------ - -Add the potential impact in the chapter Security Impact of the concerned Feature Request -(compare :need:`Feature Request Template <gd_temp__change__feature_request>`) or Coponent Request -(compare :need:`Component Request Template <gd_temp__change__component_request>`). - -Potential Impact on Safety --------------------------- - -Add the potential impact in the chapter Safety Impact of the concerned Feature Request -(compare :need:`Feature Request Template <gd_temp__change__feature_request>`) or Coponent Request -(compare :need:`Component Request Template <gd_temp__change__component_request>`). diff --git a/docs/process/process_areas/change_management/guidance/change_management_reqs.rst b/docs/process/process_areas/change_management/guidance/change_management_reqs.rst deleted file mode 100644 index 86b3a0d9f2..0000000000 --- a/docs/process/process_areas/change_management/guidance/change_management_reqs.rst +++ /dev/null @@ -1,163 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _chm_process_requirements: - -Process Requirements -==================== - -.. _chm_process_change_request_attributes: - -Change Request Attributes -------------------------- - -.. gd_req:: Change Request attribute: UID - :id: gd_req__change__attr_uid - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP1, std_req__iso26262__support_8411, std_req__iso26262__support_8421, std_req__iso26262__support_8432, std_req__iso26262__support_8453 - - Each Change Request shall have a unique ID. It shall be in an integer number. - -.. gd_req:: Change Request attribute: status - :id: gd_req__change__attr_status - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP3, std_req__aspice_40__SUP-10-BP5, std_req__aspice_40__SUP-10-BP6, std_req__iso26262__support_8411, std_req__iso26262__support_8422, std_req__iso26262__support_8432, std_req__iso26262__support_8442 - - Each Change Request shall have a status: - - * draft - * in review - * accepted - * rejected - -.. gd_req:: Change Request attribute: title - :id: gd_req__change__attr_title - :status: valid - :tags: attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP1, std_req__iso26262__support_8411, std_req__iso26262__support_8422 - - Reason for the Change Request - -.. gd_req:: Change Request attribute: description - :id: gd_req__change__attr_impact_description - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP2, std_req__iso26262__support_8411, std_req__iso26262__support_8422, std_req__iso26262__support_8431, std_req__iso26262__support_8432, std_req__iso26262__support_8452, std_req__iso26262__support_8453 - - Exact description of the Change Request, including impact analysis on functional safety, - security, implementation (schedule, risks, resources) verification (measures defined). - -.. gd_req:: Change Request attribute: safety - :id: gd_req__change__attr_impact_safety - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP2, std_req__iso26262__support_8422 - - Each Change Request shall have a automotive safety integrity level (ASIL) identifier: - - * QM - * ASIL_B - * ASIL_D - -.. gd_req:: Change Request attribute: security - :id: gd_req__change__attr_impact_security - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP2, std_req__iso26262__support_8422 - - Each Change Request shall have a security relevance identifier: - - * Yes - * No - -.. gd_req:: Change Request attribute: Types - :id: gd_req__change__attr_types - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP1 - - * Feature - * Feature Modification - * Component - * Component Modification - - Feature/Component means new Feature/Component - -.. gd_req:: Change Request attribute: Affected Work Products - :id: gd_req__change__attr_affected_wp - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP4, std_req__iso26262__support_8412, std_req__iso26262__support_8422, std_req__iso26262__support_8452, std_req__iso26262__support_8453 - - Links to the work products affected by the Change Request - -.. gd_req:: Change Request attribute: Milestone - :id: gd_req__change__attr_milestone - :status: valid - :tags: chm, attribute, mandatory - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__SUP-10-BP6, std_req__iso26262__support_8413 - - Milestone until the Change Request must be implemented (used for prioritization) - - -.. _chm_process_change_requests_checks: - -Change Request Checks -''''''''''''''''''''' - -.. gd_req:: Change Requests mandatory attributes provided - :id: gd_req__change_attr_mandatory - :status: valid - :tags: chm, attribute, check - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__iic-13-51 - - It shall be checked if all mandatory attributes for each Change Request - is provided by the user. For all requirements following attributes shall be mandatory: - - .. needtable:: Overview mandatory change request attributes - :filter: "mandatory" in tags and "attribute" in tags and "chm" in tags - :style: table - :columns: title - :colwidths: 30 - - -.. _chm_process_change_requests_impact_analysis_tool: - -Change Request Traceability Impact Analysis Tool -'''''''''''''''''''''''''''''''''''''''''''''''' - -.. gd_req:: Change Requests Impact Analysis Tool - :id: gd_req__change_tool_impact_analysis - :status: valid - :tags: chm, check, tool - :satisfies: wf__change__cr_an_change_request, wf__change__rv_ap_change_request - :complies: std_req__aspice_40__iic-13-51 - - It shall be reported, which work products and elements are affected by adding a new - feature or component or by a modification of an existing feature or component. - -.. needextend:: "process_areas/change_management" in docname - :+tags: change_management diff --git a/docs/process/process_areas/change_management/guidance/index.rst b/docs/process/process_areas/change_management/guidance/index.rst deleted file mode 100644 index fb11477908..0000000000 --- a/docs/process/process_areas/change_management/guidance/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - change_management_guideline - change_management_checklist - change_management_feature_template - change_management_component_template - change_management_impact_analysis_template - change_management_reqs diff --git a/docs/process/process_areas/change_management/index.rst b/docs/process/process_areas/change_management/index.rst deleted file mode 100644 index 0d1d81c41b..0000000000 --- a/docs/process/process_areas/change_management/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _change_management: - -Change Management -################# - -.. toctree:: - :maxdepth: 1 - - - change_management_getstrt - change_management_concept - guidance/index - change_management_roles - change_management_workflow - change_management_workproducts diff --git a/docs/process/process_areas/configuration_management/guidance/process_req.rst b/docs/process/process_areas/configuration_management/guidance/process_req.rst deleted file mode 100644 index d3c21905b7..0000000000 --- a/docs/process/process_areas/configuration_management/guidance/process_req.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Configuration Management Process Requirements -============================================= - -.. gd_req:: Permanent Storage - :id: gd_req__workproducts_storage - :status: valid - :complies: std_req__iso26262__support_745, std_req__aspice_40__SUP-8-BP8 - - At least every platform release shall be stored permanently as a collection of text documents - (docs and code) including the used OSS tooling outside of github servers. - - Note: This is to ensure to have the development artefacts available during the complete lifetime of the - products (cars) the SW platform is used in. - - - -.. gd_req:: Baseline Differences - :id: gd_req__baseline_diff - :status: valid - :complies: std_req__iso26262__support_741 - - It shall be possible to show the differences between two baselines. - - Note: This could be done by showing all the commits which happened between these baselines in one release branch. diff --git a/docs/process/process_areas/configuration_management/index.rst b/docs/process/process_areas/configuration_management/index.rst deleted file mode 100644 index f7ba03340f..0000000000 --- a/docs/process/process_areas/configuration_management/index.rst +++ /dev/null @@ -1,109 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_configuration_management: - -Configuration Management -======================== - -Concept -------- - -.. doc_concept:: Configuration Management Concept - :id: doc_concept__configuration__process - :status: valid - -In this section a concept for the configuration management will be discussed. -Inputs for this concepts are mainly the requirements of ISO26262 "Part 8: Supporting Processes" -and ASPICE Requirements from PAM4.0, SUP.8 - -Inputs -^^^^^^ - -#. Stakeholders for the configuration process work products? -#. Who needs which information? -#. Which work products do we have? -#. What tooling do we need? - -Stakeholders -^^^^^^^^^^^^ - -#. :need:`Technical Lead <rl__technical_lead>` - - * for creating a module or a platform release a baseline of all configuration items is needed - -#. :need:`Contributor <rl__contributor>` and :need:`Committer <rl__committer>` - - * wants know which configuration items version has to be used as input for his work - * wants to share their created work product with others for example to get those reviewed - * wants to integrate share their created work product with other work products - -note: configuration items are all defined S-CORE work products plus additional arefacts not produced by S-CORE -needed for the building of the documentation and verification reports (e.g. tools, external SW libraries) - - -Work Products -^^^^^^^^^^^^^ - -:need:`doc__config_mgt_plan` is a document and part of the work product :need:`wp__platform_mgmt`. - - -Configuration Management Tooling -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Almost all requirements of the standards towards configuration management can be covered by -standard tooling of the Eclipse Foundation (github for versioning) and of the S-CORE project -(sphinx-needs for text based identification of work products). - -For the automated storage additional tooling is created (see :doc:`guidance/process_req`) - -Getting started ---------------- - -.. doc_getstrt:: Configuration Management Get Started - :id: doc_getstrt__configuration__process - :status: valid - -In case you are appointed as a :need:`Technical Lead <rl__technical_lead>` by the :need:`rl__project_lead` in the S-CORE project: - -* On platform level, process community already provided a draft configuration management plan, - see :need:`doc__config_mgt_plan`, just set it to "valid" -* On module level, create a configuration management plan using the platform one as a template. - If no configuration management plan on module level is created, the platform one is adopted. - -As a normal contributor or committer consult the :need:`doc__config_mgt_plan`, but this should not -differ from normal usage of github as a configuration management tool. - -Workflows ---------- - -The main work product is the configuration management plan, which is a part of the platform management plan. -Thus the work flow :need:`wf__platform__cr_mt_platform_mgmt_plan` applies. - -Baselines (sets of workproducts and their versions) defining a SW Release on platform or module level -are created as part of this process but are documented in the respective release notes. - -Guidance --------- - -The configuration management guideline is contained within the configuration management plan, -to have all relevant information in one space, see :need:`gd_guidl__configuration` - -Some process requirements to be automated are available: - -.. toctree:: - :maxdepth: 1 - :glob: - - guidance/process_req.rst diff --git a/docs/process/process_areas/documentation_management/documentation_concept.rst b/docs/process/process_areas/documentation_management/documentation_concept.rst deleted file mode 100644 index a2197ab88c..0000000000 --- a/docs/process/process_areas/documentation_management/documentation_concept.rst +++ /dev/null @@ -1,83 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept -------- - -.. doc_concept:: Documentation Management Concept - :id: doc_concept__documentation__process - :status: valid - -In this section a concept for the documentation management will be discussed. -Inputs for this concepts are mainly the requirements of ISO26262 "Part 2: Management of functional safety" -and "Part 8: Supporting processes". - -Key concept -^^^^^^^^^^^ -The Documentation Management Plan should define the strategy to manage the identifed documentations -in an effective and repeatable way for the project life cycle. - - -Inputs -^^^^^^ - -#. Stakeholders for the documentation work products? -#. What tooling do we need? -#. Which guidance for the work products do we have? - -Stakeholders -^^^^^^^^^^^^ - -#. :need:`Contributor <rl__contributor>` -#. :need:`Committer <rl__committer>` - - * contributing and approving documents - -#. :need:`Technical Lead <rl__technical_lead>` - - * planning and status reporting of work products and their documentation for the platform - -#. :need:`Module Lead <rl__module_lead>` - - * planning and status reporting of work products and their documentation for modules - -#. :need:`Safety Manager <rl__safety_manager>` - - * wants to know when the safety related documents are ready for a release - * wants to know who was the author and approver of a document in case of safety issues - -#. :need:`Security Manager <rl__security_manager>` - - * wants to know when the security related documents are ready for a release - * wants to know who was the author and approver of a document in case of security issues - -#. :need:`Quality Manager <rl__quality_manager>` - - * wants to know when the quality related documents are ready for a release - * wants to know who was the author and approver of a document in case of quality issues - -Document Management Tooling -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For the document attributes to be manually set, `sphinx-needs <https://www.sphinx-needs.com/>`_ will be used. - -For the versioning and version history `github <https://github.com/>`_ is used. - -For the automated attributes additional tooling is created (see :doc:`guidance/documentation_process_reqs`) - - -Guidance -^^^^^^^^ - -The document management guideline can be found here :need:`gd_guidl__documentation`. diff --git a/docs/process/process_areas/documentation_management/documentation_getstrt.rst b/docs/process/process_areas/documentation_management/documentation_getstrt.rst deleted file mode 100644 index d8ea380e87..0000000000 --- a/docs/process/process_areas/documentation_management/documentation_getstrt.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Documentation Management Get Started - :id: doc_getstrt__documentation__process - :status: valid - -In case you are appointed as a :need:`Technical Lead <rl__technical_lead>` by the :need:`rl__project_lead` in the S-CORE project: - -* On platform level, process community already provided a draft documentation management plan, - see :need:`doc__documentation_mgt_plan`, just set it to "valid" -* On module level, create a documentation management plan using the platform one as a template -* On both levels: make sure only the documents in your scope appear in the documents list within the plan diff --git a/docs/process/process_areas/documentation_management/documentation_roles.rst b/docs/process/process_areas/documentation_management/documentation_roles.rst deleted file mode 100644 index d01c217b49..0000000000 --- a/docs/process/process_areas/documentation_management/documentation_roles.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For documentation management no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor <rl__contributor>` - * :need:`Committer <rl__committer>` - * :need:`Technical Lead <rl__technical_lead>` - * :need:`Module Project Lead <rl__module_lead>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - * :need:`Quality Manager <rl__quality_manager>` - -A detailed overview of the responsibility for the steps of the documentation management is listed here: - -:need:`wf__platform__cr_mt_platform_mgmt_plan` diff --git a/docs/process/process_areas/documentation_management/documentation_workflow.rst b/docs/process/process_areas/documentation_management/documentation_workflow.rst deleted file mode 100644 index 8371002ec9..0000000000 --- a/docs/process/process_areas/documentation_management/documentation_workflow.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Workflow Documentation Management -################################# - -The main work product is the documentation management plan, which is a part of the platform -management plan. Thus the work flow :need:`wf__platform__cr_mt_platform_mgmt_plan` applies. - -The documentation management plan should contain the strategy to manage the identified -documentations in an effective and repeatable way for the project life cycle. diff --git a/docs/process/process_areas/documentation_management/documentation_workproducts.rst b/docs/process/process_areas/documentation_management/documentation_workproducts.rst deleted file mode 100644 index 6fdd258e97..0000000000 --- a/docs/process/process_areas/documentation_management/documentation_workproducts.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work Products Documentation Management -###################################### - -.. workproduct:: Documentation Management Plan - :id: wp__document_mgt_plan - :status: valid - :complies: std_wp__iso26262__support_1051, std_wp__iso26262__support_1052 - - Document Management Plan (Part of the Platform Management Plan) - - Defines the documentation strategy which covers the following aspects: - - * What is documented where and when? - * How to review, update, (re-)approve documentations? - * What is the status of a document and how are changes identified? - * How to ensure the avaibility of the documents over time? - * How to ensure the controlled distribution of documents? - * How to avoid distribution of obsolete documents? - * Which formal elements are used? diff --git a/docs/process/process_areas/documentation_management/guidance/documentation_checklist.rst b/docs/process/process_areas/documentation_management/guidance/documentation_checklist.rst deleted file mode 100644 index 6cbf6f86bd..0000000000 --- a/docs/process/process_areas/documentation_management/guidance/documentation_checklist.rst +++ /dev/null @@ -1,68 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Checklists -########## - -.. gd_chklst:: Documentation Review Checklist - :id: gd_chklst__documentation__review - :status: valid - :complies: std_req__iso26262__support_1045 - - | **1. Purpose** - | The purpose of this checklist is to collect the formal topics to be checked during a - Documentation Review from any contributor. It will not be filled out but considered during - the review. - | - | **2. Checklist** - | - - .. list-table:: Documentation Review Checklist - :header-rows: 1 - :widths: 10,30,6 - - * - Id - - Topic - - Status [FAIL|PASS] - * - 1 - - Does the Document have an unique id as specified? - - - - * - 2 - - Does the Document have a date? - - - - * - 3 - - Does the Document have an author information? - - - - * - 4 - - Does the Document have a lifecycle, status as specified? - - - - * - 5 - - Does the Document have a reviewer? - - - - * - 6 - - Does the Document have an approver? - - - - * - 7 - - Does the Document have a versioning, baseline as specified? - - - - * - 8 - - Does the Document have the correct storage location? - - diff --git a/docs/process/process_areas/documentation_management/guidance/documentation_guideline.rst b/docs/process/process_areas/documentation_management/guidance/documentation_guideline.rst deleted file mode 100644 index 7dcacd2611..0000000000 --- a/docs/process/process_areas/documentation_management/guidance/documentation_guideline.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Documentation - :id: gd_guidl__documentation - :status: valid - :complies: std_req__iso26262__support_1041, std_req__iso26262__support_1042, std_req__iso26262__support_1043, std_req__iso26262__support_1044, std_req__iso26262__support_1045, std_req__iso26262__support_1046 - -The planning for the documents is part of the Platform Management Plan. - -The formal elements for documentations in S-CORE are described here: :need:`doc__documentation_mgt_plan`. - -For manual review of the formal elements the -:need:`Documentation Review Checklist <gd_chklst__documentation__review>` may used. - -The review of each document is done as defined for this type of work product in the respective -process description. diff --git a/docs/process/process_areas/documentation_management/guidance/documentation_process_reqs.rst b/docs/process/process_areas/documentation_management/guidance/documentation_process_reqs.rst deleted file mode 100644 index a1fb54bd83..0000000000 --- a/docs/process/process_areas/documentation_management/guidance/documentation_process_reqs.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _documentation_process_requirements: - -Document Management Process Requirements -======================================== - -.. gd_req:: Document Author - :id: gd_req__doc_author - :status: valid - :complies: std_req__iso26262__support_1045 - - Documents headers shall contain an "author" attribute. Every committer who adds more than 50% - of the content shall put his name. - - Note: In the future this may also be automated based on an analysis of content during the - documentation build for every commit of the file containing the document. - -.. gd_req:: Document Approver - :id: gd_req__doc_approver - :status: valid - :complies: std_req__iso26262__support_1045 - - Documents headers shall contain an "approver" attribute, which is added during documentation build - and contains the last PR CODEOWNER reviewer of the file containing the document. - -.. gd_req:: Document Reviewer - :id: gd_req__doc_reviewer - :status: valid - :complies: std_req__iso26262__support_1043 - - Documents headers shall contain "reviewer" attribute, which is added during documentation build - and contains the last PR reviewers of the file containing the document, which were not covered by - :need:`gd_req__doc_approver`. diff --git a/docs/process/process_areas/documentation_management/guidance/index.rst b/docs/process/process_areas/documentation_management/guidance/index.rst deleted file mode 100644 index 990ab606ed..0000000000 --- a/docs/process/process_areas/documentation_management/guidance/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - documentation_guideline - documentation_checklist - documentation_process_reqs diff --git a/docs/process/process_areas/documentation_management/index.rst b/docs/process/process_areas/documentation_management/index.rst deleted file mode 100644 index 1c42c4e828..0000000000 --- a/docs/process/process_areas/documentation_management/index.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_documentation_management: - -Documentation Management -======================== - -.. toctree:: - :maxdepth: 1 - - documentation_getstrt - documentation_concept - guidance/index - documentation_roles - documentation_workflow - documentation_workproducts - -.. needextend:: "process_areas/documentation_management" in docname - :+tags: doc_mgt diff --git a/docs/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml b/docs/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml deleted file mode 100644 index 145506f1f7..0000000000 --- a/docs/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml +++ /dev/null @@ -1,30 +0,0 @@ -/' - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* -'/ -.. - -@startuml - -title Sequence Diagram - unit1 & unit2 - -participant "unit1" as unit1 -participant "unit2" as unit2 - -unit1 -> unit2 : api1 -unit2 --> unit1 : int - -unit1 -> unit2 : api3 -unit2 --> unit1 : int - -@enduml diff --git a/docs/process/process_areas/implementation/_assets/dd_example_ex_sta.puml b/docs/process/process_areas/implementation/_assets/dd_example_ex_sta.puml deleted file mode 100644 index aead29a316..0000000000 --- a/docs/process/process_areas/implementation/_assets/dd_example_ex_sta.puml +++ /dev/null @@ -1,37 +0,0 @@ -/' - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* -'/ -.. - -@startuml - -title Static View - dd example - -skinparam component { - BackgroundColor<<component>> white -} - -skinparam rectangle { - BackgroundColor<<unit>> green -} - -' Define Features -component "component1" <<component>> { - rectangle "unit1" as unit1 <<unit>> - rectangle "unit2" as unit2 <<unit>> -} - -unit1 ..> unit2 : uses - -@enduml diff --git a/docs/process/process_areas/implementation/_assets/detailed_design_example.rst b/docs/process/process_areas/implementation/_assets/detailed_design_example.rst deleted file mode 100644 index 7575167c05..0000000000 --- a/docs/process/process_areas/implementation/_assets/detailed_design_example.rst +++ /dev/null @@ -1,98 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Example: Detailed Design -======================== - -Description ------------ - - - component is split into two units unit1 and unit2 based on single responsibility principle. - - unit2 is injected to unit1 one via dependency injection for testability. - - -Static Diagrams for Unit Interactions -------------------------------------- - -.. dd_sta:: dd example static - :id: dd_sta__dd_example_static - :security: NO - :safety: ASIL_B - :status: valid - :implements: comp_req__archdes_example_req - :satisfies: comp_arc_sta__archdes_sub_component_1 - :includes: sw_unit__unit1, sw_unit__unit2 - -.. uml:: dd_example_ex_sta.puml - -Dynamic Diagrams for Unit Interactions --------------------------------------- - -.. dd_dyn:: dd example dynamic - :id: dd_dyn__dd_example_dynamic - :security: NO - :safety: ASIL_B - :status: valid - :implements: comp_req__archdes_example_req - :satisfies: comp_arc_sta__archdes_sub_component_1 - -.. uml:: dd_example_ex_dyn.puml - -Units within the Component --------------------------- -From here onwards the needs are defined in the source code and will be automatically generated and linked via doxygen. - -SW Unit -******* - -.. sw_unit:: unit1 - :id: sw_unit__unit1 - :security: NO - :safety: ASIL_B - :status: valid - - Placeholder for the description that will be generated from doxygen - -Interface -********* - -.. sw_unit_int:: int1 - :id: sw_unit_int__unit1_int1 - :security: NO - :safety: ASIL_B - :status: valid - - Placeholder for the description that will be generated from doxygen - -SW Unit -******* - -.. sw_unit:: unit2 - :id: sw_unit__unit2 - :security: NO - :safety: ASIL_B - :status: valid - - Placeholder for the description that will be generated from doxygen - -Interface -********* - -.. sw_unit_int:: int2 - :id: sw_unit_int__unit2_int2 - :security: NO - :safety: ASIL_B - :status: valid - - Placeholder for the description that will be generated from doxygen diff --git a/docs/process/process_areas/implementation/_assets/implementation_workflow.drawio.svg b/docs/process/process_areas/implementation/_assets/implementation_workflow.drawio.svg deleted file mode 100644 index f6cab8469d..0000000000 --- a/docs/process/process_areas/implementation/_assets/implementation_workflow.drawio.svg +++ /dev/null @@ -1,443 +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="1041px" height="172px" viewBox="-0.5 -0.5 1041 172" content="<mxfile><diagram name="Seite-1" id="J4VHkeiqsm2Yx-6ox1-8">5VpLb9s4EP4texCwPbjQ03aOTZw+gO4iaApsc6QlWuKGIlWK8qO/fociFT2opNnWsYz2YokzI3L4cWY4Q9oJrvL9O4GK7C+eYOr4brJ3gpXj+3PXg19FOGhC4AWakAqSaJLXEm7JN2yIrqFWJMFlT1ByTiUp+sSYM4Zj2aMhIfiuL7bhtD9qgVJsEW5jRG3qPySRmaYu/UVLf49JmjUje/MLzclRI2xmUmYo4bsOKbh2givBudRv+f4KU4Vdg4v+7u0j3AfFBGbyOR/4+oMtopWZ2wpLRChOgLrCJUmZUVQemtmDzoV6TXhc5fU4l7uMSHxboFjRd7DmQMtkTqHlweuaVyzBycd1Q7DVNJpvsZB43yEZtd9hnmMpDiBiuH5oIDwM2rt2RbwG5qyzGktDQ8YI0oeuW5zgxUA1DltggYITsBDT5EJmPOUM0euWeik0CMB3odXKfOS8MLD8i6U8GHNHleR9FPGeyC+d9zvV1evItFZ703PdOJjGo0CXvBIx7hmBRCLFRsqPNE1N68nVEJgiSbZ9x/gZaMNJoGWg5ZcGQNXogKuaLbp163/BG9nweuFU8EaWw99UtcAn/LXCpTxTb4/mE3r7/JczycWIxwdTmeTCMskRwCmFzR1/3/iOYGvL5cDWFratjZmafwRTW1pYOP6cKqcrC8R6mMy/VipLuIw55cIJ3qilSdd/ghIwits8XtWYQIrD5GyDckIPWvQ9plssSYw6/LK2RcX1vGLfZehBFYdxkSPa4W2RIAielKRIVkKlZU/Kxah4TGRnwFTM0NXG7FLwEixmMP2YsNT+kosiQ8x06WsaLLScIaqSl5ocgzFg0eER8E1mRnKbqdYcKaCzDfTfjMSw5sLi13ljZ5gdF0lfsYe+YC7rewLdqT5LKfg9nhnz6cmtUXyf1rFiNlhHP4r0EnZfXnU0TXDMBXgiZzOZkfie4dKoRxiRpMFnKNtZyyflOur05DaUIzkEJyFlQdGhEacEGL77B8kLiHyo3jRag4W3VD1vPtXbzpbgXWPk4B7azrWEFQaUkqeJAc/Yb+ZH8PcLy9/9SWOfHwb9eV+cLvY11d0vtM96TXXa3Win2mcbZTrGdss3cgdTcFSxt8WUF3WK57s3FJ1r4TfcnU+ZCXp2vexZMJ00V5nQXacpgl/UXUPbXReTuWto2Zo+m3HakxkXMXVQc8UT5cIfWFngWO3eZ+q6C39K37VL3w95QbGCA2nQXCe6LKFRqWFADj6NVmeKpee6U4I5t8B8yynlkMm5VQE/nyEjxed6mmBhFwTeCbGzC96RQ68TbiLRfMJdxK54o0nBWPhDMGzTeDEw7HJgMSkY4CjhZGg0fXTQWJ4XGsHyhGiMJJrnm241dxXt/cSd095c/MxdhfHO3mm62YxOn6ONVevnuyg/DvBkt0GNNt08g7CEsLS0kBcZz9cqdfteKFCHjQbc+XEiw0UwyMXmkRUYgpHAEBwjMExyY/Y8Wxq5+prOlOz8/1br2hRQZ5mrhlOm+b6d5o9U/SfcgkM3eB0NMpLTJauBnZHcYTsQmVPqzszNXcTq4SJCzZjEiL4xjJwkiXZMqOy/oXXdlXLNghMma5WjS1WMQl/gi/qmpu5aXy5c6dP6lTmS3xBKB6RHkB5Zj8ejXDSomiIb+vCFolxToHWg/5v/tsg/3D0cH3lotn8/qnmd/3AF1/8B</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 160 0 L 280 0 L 280 68 Q 250 46.4 220 68 Q 190 89.6 160 68 L 160 12 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: 28px; margin-left: 161px;"> - <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; "> - Detailed Design - </div> - </div> - </div> - </foreignObject> - <text x="220" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Detailed Design - </text> - </switch> - </g> - </g> - <g> - <path d="M 280 40 L 313.63 40" 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 318.88 40 L 311.88 43.5 L 313.63 40 L 311.88 36.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 600 40 L 633.63 40" 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 638.88 40 L 631.88 43.5 L 633.63 40 L 631.88 36.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 480 0 L 600 0 L 600 68 Q 570 46.4 540 68 Q 510 89.6 480 68 L 480 12 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: 28px; margin-left: 481px;"> - <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; "> - Pull Request - </div> - </div> - </div> - </foreignObject> - <text x="540" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Pull Request - </text> - </switch> - </g> - </g> - <g> - <path d="M 820 40 L 840 40 L 830 40 L 843.63 40" 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 848.88 40 L 841.88 43.5 L 843.63 40 L 841.88 36.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> - <ellipse cx="810" cy="40" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 40px; margin-left: 801px;"> - <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="810" y="44" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 6 - </text> - </switch> - </g> - </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: 58px; height: 1px; padding-top: 7px; margin-left: 782px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; 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)); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> - PR Review - </span> - </div> - </div> - </div> - </foreignObject> - <text x="782" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px"> - PR Review - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="173" cy="60" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 60px; margin-left: 164px;"> - <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="173" y="64" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 2 - </text> - </switch> - </g> - </g> - <g> - <path d="M 120 40 L 153.63 40" 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 158.88 40 L 151.88 43.5 L 153.63 40 L 151.88 36.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 0 0 L 120 0 L 120 68 Q 90 46.4 60 68 Q 30 89.6 0 68 L 0 12 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: 28px; 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; "> - Software Development Plan - </div> - </div> - </div> - </foreignObject> - <text x="60" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Software Development... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="13" cy="60" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 60px; margin-left: 4px;"> - <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="13" y="64" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 760 40 L 793.63 40" 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 798.88 40 L 791.88 43.5 L 793.63 40 L 791.88 36.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 640 0 L 760 0 L 760 68 Q 730 46.4 700 68 Q 670 89.6 640 68 L 640 12 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: 28px; margin-left: 641px;"> - <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; "> - Detail Design and Code Inspection - </div> - </div> - </div> - </foreignObject> - <text x="700" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Detail Design and Co... - </text> - </switch> - </g> - </g> - <g> - <path d="M 920 0 L 1040 0 L 1040 68 Q 1010 46.4 980 68 Q 950 89.6 920 68 L 920 12 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: 28px; margin-left: 921px;"> - <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; "> - Implementation [status=valid] - </div> - </div> - </div> - </foreignObject> - <text x="980" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Implementation [stat... - </text> - </switch> - </g> - </g> - <g> - <path d="M 920 91 L 1040 91 L 1040 159 Q 1010 137.4 980 159 Q 950 180.6 920 159 L 920 103 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: 119px; margin-left: 921px;"> - <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; "> - Follow up Ticket - </div> - </div> - </div> - </foreignObject> - <text x="980" y="123" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Follow up Ticket - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="493" cy="60" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 60px; margin-left: 484px;"> - <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="493" y="64" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 4 - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="653" cy="61" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 61px; margin-left: 644px;"> - <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="653" y="65" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 5 - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="934" cy="61" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 61px; margin-left: 925px;"> - <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="934" y="65" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 7 - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="934" cy="151" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 151px; margin-left: 925px;"> - <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="934" y="155" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 8 - </text> - </switch> - </g> - </g> - <g> - <path d="M 865 55 L 865 131 L 913.63 131" 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 918.88 131 L 911.88 134.5 L 913.63 131 L 911.88 127.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 880 40 L 913.63 40" 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 918.88 40 L 911.88 43.5 L 913.63 40 L 911.88 36.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 865 25 L 880 40 L 865 55 L 850 40 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: 28px; height: 1px; padding-top: 40px; margin-left: 851px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 6px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Findings - </div> - </div> - </div> - </foreignObject> - <text x="865" y="42" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="6px" text-anchor="middle"> - Findings - </text> - </switch> - </g> - </g> - <g> - <path d="M 440 40 L 473.63 40" 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 478.88 40 L 471.88 43.5 L 473.63 40 L 471.88 36.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 320 0 L 440 0 L 440 68 Q 410 46.4 380 68 Q 350 89.6 320 68 L 320 12 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: 28px; margin-left: 321px;"> - <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; "> - Source Code - </div> - </div> - </div> - </foreignObject> - <text x="380" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Source Code - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="333.5" cy="60" rx="10" ry="10" 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: 18px; height: 1px; padding-top: 60px; margin-left: 325px;"> - <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="334" y="64" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 3 - </text> - </switch> - </g> - </g> - <g> - <rect x="870" y="110" width="40" 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: 125px; margin-left: 890px;"> - <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; "> - Yes - </div> - </div> - </div> - </foreignObject> - <text x="890" y="129" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Yes - </text> - </switch> - </g> - </g> - <g> - <rect x="870" y="20" width="40" 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: 35px; margin-left: 890px;"> - <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; "> - No - </div> - </div> - </div> - </foreignObject> - <text x="890" y="39" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - No - </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> diff --git a/docs/process/process_areas/implementation/guidance/_assets/dd_traceability.drawio.svg b/docs/process/process_areas/implementation/guidance/_assets/dd_traceability.drawio.svg deleted file mode 100644 index f9e6465984..0000000000 --- a/docs/process/process_areas/implementation/guidance/_assets/dd_traceability.drawio.svg +++ /dev/null @@ -1,225 +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="460px" height="441px" viewBox="-0.5 -0.5 460 441" content="<mxfile><diagram id="B8rM5RgZUIETjYSJwRng" name="Page-1">5VnLbts4FP0aAckmoF6WtYzttDNACxQIiuksaZGWOaFElaJju1/fS5O0Xrbjpp4YmckiIY/4uDrn8JJivHBabD5KXC0/C0K5FyCy8cKZFwQpCuC3BrYGiEapAXLJiIH8BnhkP6gFkUVXjNC601AJwRWrumAmypJmqoNhKcW622wheHfWCud0ADxmmA/RvxhRS4OOY9Tgf1CWL93MPrJPCuwaW6BeYiLWLSh88MKpFEKZUrGZUq65c7yYfh+OPN0HJmmpzulghXjGfGXfbUYVZpwSQGe0ZnnpBSMOY00Ie4Ziros3X0umai0grTPJKsVEaaZVXjDVAtGSSqwouXW9IYTWAPbl1dYxCjxUukhEtip2sU/WS6boY4Uzja/BR4AtVcGh5kNxLlYloeTT3AHDV7dsPFOp6KYFWSo+UlFQJbfQxD1NY9PF+jJ2hls3KvtOumVL4bHFsDVWvh+64R4Klv7DUoQDKR7FSsLbB2gKC+iADFoFeOrvWhQ72t4V26jL9igavR3b0YBtx11d4bJD1+j7Si/HSSa4kF54Dw9lPr9Bxuruz+2OFNfWUX9QQojNTOLkOaZs8E6VhVR4PWXjASmUQPa2VSHVUuSixPyhQSfSkADPEdSaNp+EqCwt/1CltnYrwisluiwCV3L7Tfe/C8OxA/7eAenI1WcbO4Opbdu1L1QyeFcqLVgryKb3erMCYM5F9uTAD0y/u+1J+k0AajU4KmZtjNnOPDB2TlVnX9DMnRRcUo4Ve+7ui7+j3uga6l2G65YHEtTzQBK/xgNnqRe9gXq26xfBdCbaL/PedjlCveVrYrK9eh7Yh3GWLZKrpGv0ZwliLPAO0jPiQmfPcl5Xrbz9cjr/L+TwJI7eLoePXzoLdZTxjynzziXoH5DeVIL0ytsoQnvApNAoTq63j9INU99aZRNSbGtNPLriwjkre4+vlr3D6C5Gaeunm8v9nodM0INcPhjWRyfHjeN/bY9wEV/Jsj27vrThX9aX/qV9mVzNl1GCulmvn83OdeIIje+Q33Vfcp77gHS8bTWrdIP6RMxBL1On0cnQ+u3dqmjMbyJ49VJwe037vHTlc3XGcV2zrOdy/7e+Yl70ouUbvsqSHuOm9lqvuiZisajpaRtGUdfPKUrv2ulxfJYjB8MmvzTqkTXzqz4fJ91J/QvbdngdOWGESZrpG0asmyoJJzA8Z5wpHfhNgUuClZDb24HB4ZSlun7EXN9nghVpuTsgTPRZjGWY39sHBSPEWJ/W7Aee74bSDrTEwLjxxItneixwe22Mb6wuxROdmm+OWSlKPcoCLNyHRKnsevHTyxwTe19h42R4aRmGB06J0QVOif7w1hIUWWHOdYCclU/6Jvk9CHMBIXpJPQ0O3B77B4QILyHE8EJTE1HgHY3/RzXC+Aw5Dq2LV8gB1eZ/NibxNf/4Ch9+Ag==</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 170 0 L 290 0 L 290 68 Q 260 46.4 230 68 Q 200 89.6 170 68 L 170 12 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: 28px; margin-left: 171px;"> - <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; "> - Detailed Design - <div> - (Units description part, generated) - </div> - </div> - </div> - </div> - </foreignObject> - <text x="230" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Detailed Design... - </text> - </switch> - </g> - </g> - <g> - <path d="M 80 136 L 200 136 L 200 204 Q 170 182.4 140 204 Q 110 225.6 80 204 L 80 148 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: 164px; margin-left: 81px;"> - <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; "> - Source Code - <div> - Unit 1 Comment - </div> - </div> - </div> - </div> - </foreignObject> - <text x="140" y="168" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Source Code... - </text> - </switch> - </g> - </g> - <g> - <path d="M 260 136 L 380 136 L 380 204 Q 350 182.4 320 204 Q 290 225.6 260 204 L 260 148 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: 164px; margin-left: 261px;"> - <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));"> - Source Code - </span> - <div> - Unit 2 Comment - </div> - </div> - </div> - </div> - </foreignObject> - <text x="320" y="168" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Source Code... - </text> - </switch> - </g> - </g> - <g> - <path d="M 140 127.88 L 140 108 L 210.6 108 L 210.57 84.92" 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 140 134.88 L 136.5 127.88 L 143.5 127.88 Z" 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 210.56 77.92 L 214.07 84.91 L 207.07 84.92 Z" 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 320 127.88 L 320 108 L 255 108 L 254.97 68.12" 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 320 134.88 L 316.5 127.88 L 323.5 127.88 Z" 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 254.96 61.12 L 258.47 68.12 L 251.47 68.12 Z" 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 260 244 L 380 244 L 380 312 Q 350 290.4 320 312 Q 290 333.6 260 312 L 260 256 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: 272px; margin-left: 261px;"> - <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));"> - Source Code Interface 2 - </span> - <div> - Comment - </div> - </div> - </div> - </div> - </foreignObject> - <text x="320" y="276" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Source Code Interfac... - </text> - </switch> - </g> - </g> - <g> - <path d="M 80 244 L 200 244 L 200 312 Q 170 290.4 140 312 Q 110 333.6 80 312 L 80 256 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: 272px; margin-left: 81px;"> - <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; "> - Source Code Interface 1 - <div> - Comment - </div> - </div> - </div> - </div> - </foreignObject> - <text x="140" y="276" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Source Code Interfac... - </text> - </switch> - </g> - </g> - <g> - <path d="M 71.88 284 L 60 284 L 60 36.6 L 162 36.56" 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 78.88 284 L 71.88 287.5 L 71.88 280.5 Z" 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 169 36.56 L 162 40.06 L 162 33.06 Z" 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 388.12 284 L 400 284 L 400 40 L 298.12 40" 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 381.12 284 L 388.12 280.5 L 388.12 287.5 Z" 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 291.12 40 L 298.12 36.5 L 298.12 43.5 Z" 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 51.37 400 L 62 400 L 406.88 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 46.12 400 L 53.12 396.5 L 51.37 400 L 53.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));"/> - <path d="M 413.88 400 L 406.88 403.5 L 406.88 396.5 Z" 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="70" y="360" width="330" height="40" 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: 380px; margin-left: 235px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 19px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Bidirectional traceability (mandatory) - </div> - </div> - </div> - </foreignObject> - <text x="235" y="386" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="19px" text-anchor="middle"> - Bidirectional traceability (mandato... - </text> - </switch> - </g> - </g> - <g> - <rect x="0" y="410" width="110" 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: 425px; margin-left: 55px;"> - <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; "> - manually linked - </div> - </div> - </div> - </foreignObject> - <text x="55" y="429" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - manually linked - </text> - </switch> - </g> - </g> - <g> - <rect x="330" y="410" width="130" 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: 425px; margin-left: 395px;"> - <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; "> - automatically linked - </div> - </div> - </div> - </foreignObject> - <text x="395" y="429" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - automatically linked - </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> diff --git a/docs/process/process_areas/implementation/guidance/_assets/dynamic_view.drawio.svg b/docs/process/process_areas/implementation/guidance/_assets/dynamic_view.drawio.svg deleted file mode 100644 index 3937a9ab54..0000000000 --- a/docs/process/process_areas/implementation/guidance/_assets/dynamic_view.drawio.svg +++ /dev/null @@ -1,196 +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="460px" height="321px" viewBox="-0.5 -0.5 460 321" content="<mxfile><diagram id="rIOUP6O4cCsxcVKk_kN8" name="Page-1">5VhNc5swEP01nmkvHmTAxsf4I+khnck0h7ZHGWRQIxAVIjb59V2BMMiyk0xKPjr1wYOelkV6b/che+Qu0/2VwHnylUeEjSZOtB+5q9FkMncm8K2AqgG86bwBYkGjBkIdcEsfiAYdjZY0IoURKDlnkuYmGPIsI6E0MCwE35lhW87Mp+Y4JhZwG2Jmo99pJJMGDXynw78QGiftk5GjZ1LcBmugSHDEdz3IXY/cpeBcNlfpfkmY4q7lpbnv8szsYWGCZPI5N2ghClm1eyMRbFUPuZAJj3mG2bpDF4KXWURUAgdGXcw15zmACMBfRMpK64ZLyQFKZMr0bCGxkBdKBwA2jId3LXhJGdN5YQOi+qEGY3/qt8DPGghQ0AKrfT9+VfVHN0TQlEgiNGiTo/kqeClCvX9X1xMWMdFRXgMpZnq3aUKvCIdniAoCBGFY0nuzSLCutfgQ18kBF1qR0+rotdxjVuqkqyrDKQ0BXFEcC5xa+kFF5eoy4mGZ1htd7BIqyW2O6y3uoCNNOTaNntebFjjL0z0Rkuwf5UDPuo4m7dDhuuB3Xb+gtgmSXq8Ezt/T5lm0LXma80xtZ+J8I79LKojipvig7HmOO/YN/lz0hvz5Fn8XIlQshLIUBGb6dK5ZTeUHZRKYe08mp/+CvXqBd2SvM/8t7dUf2l71rTec1hXalsIsMAshmJopmjXpu440PizjWbLPrAYqYOXFloKsxwUBhSxN/TCjcQbXIfCoyF2ocqdw+rjQEymNorpUTjWUWT6DtJBjWrljN9D0RP+4A/RPYBFJ05yd8e4Pz6QXvB+TaGJR+e7eFDJcFHCYMd0J1f4SHRsYQD37OqvGky6itXDG7sx8MejRS12mDeHbbUEMA7GcyPeOnhzMx/PeJ3iWL1lp0fGGHk/buLKVFnjHVS8sVwHFeVtF84n51LnxiwMumowv9VJkH4IXNIIDXCipKj31MhHQt3hDGZVq5Z9SnEVYclF9HtQjBCnoA97UqVQNamYgr78Y+SuVC+q9aEq/KXbB78iSM65ekRmcmADcQhEfQzyTumPQfCDTdkyr8X3balz3hNd4Q3iNfQAHSUrMmFoho9ndwO/BV1NmACWQayoxPWH6CL2W69tHecVEimse/0c5Dj9EH5PjVGO8QA4Ydv/kNNbX/R3mrv8A</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 234 141.88 L 234 115 L 341.3 115 L 341.3 71.81" 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 234 148.88 L 230.5 141.88 L 237.5 141.88 Z" 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 341.3 66.56 L 344.8 73.56 L 341.3 71.81 L 337.8 73.56 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 174 150 L 294 150 L 294 218 Q 264 196.4 234 218 Q 204 239.6 174 218 L 174 162 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: 178px; margin-left: 175px;"> - <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; "> - Dynamic Diagram - </div> - </div> - </div> - </foreignObject> - <text x="234" y="182" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Dynamic Diagram - </text> - </switch> - </g> - </g> - <g> - <path d="M 273.5 0 L 393.5 0 L 393.5 68 Q 363.5 46.4 333.5 68 Q 303.5 89.6 273.5 68 L 273.5 12 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: 28px; margin-left: 275px;"> - <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 Requirements - </div> - </div> - </div> - </foreignObject> - <text x="334" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Component Requiremen... - </text> - </switch> - </g> - </g> - <g> - <path d="M 93.5 0 L 213.5 0 L 213.5 68 Q 183.5 46.4 153.5 68 Q 123.5 89.6 93.5 68 L 93.5 12 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: 28px; margin-left: 95px;"> - <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; "> - Architecture Component Element - </div> - </div> - </div> - </foreignObject> - <text x="154" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Architecture Compone... - </text> - </switch> - </g> - </g> - <g> - <path d="M 234 141.88 L 234 115 L 151.6 115 L 151.58 76.37" 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 234 148.88 L 230.5 141.88 L 237.5 141.88 Z" 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 151.58 71.12 L 155.08 78.12 L 151.58 76.37 L 148.08 78.12 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="90" y="90" 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: 105px; margin-left: 91px;"> - <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; "> - satisfied - </div> - </div> - </div> - </foreignObject> - <text x="120" y="109" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - satisfied - </text> - </switch> - </g> - </g> - <g> - <rect x="350" y="90" 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: 105px; margin-left: 351px;"> - <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; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="380" y="109" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 51.37 280 L 62 280 L 406.88 280" 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 46.12 280 L 53.12 276.5 L 51.37 280 L 53.12 283.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 413.88 280 L 406.88 283.5 L 406.88 276.5 Z" 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="70" y="240" width="330" height="40" 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: 260px; margin-left: 235px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 19px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Bidirectional traceability (mandatory) - </div> - </div> - </div> - </foreignObject> - <text x="235" y="266" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="19px" text-anchor="middle"> - Bidirectional traceability (mandato... - </text> - </switch> - </g> - </g> - <g> - <rect x="0" y="290" width="110" 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: 305px; margin-left: 55px;"> - <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; "> - manually linked - </div> - </div> - </div> - </foreignObject> - <text x="55" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - manually linked - </text> - </switch> - </g> - </g> - <g> - <rect x="330" y="290" width="130" 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: 305px; margin-left: 395px;"> - <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; "> - automatically linked - </div> - </div> - </div> - </foreignObject> - <text x="395" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - automatically linked - </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> diff --git a/docs/process/process_areas/implementation/guidance/_assets/static_view.drawio.svg b/docs/process/process_areas/implementation/guidance/_assets/static_view.drawio.svg deleted file mode 100644 index 34c3c8ed7a..0000000000 --- a/docs/process/process_areas/implementation/guidance/_assets/static_view.drawio.svg +++ /dev/null @@ -1,238 +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="460px" height="451px" viewBox="-0.5 -0.5 460 451" content="<mxfile><diagram id="pM_2ducMiwMa8YR31iTK" name="Page-1">5ZhNc5swEIZ/jWfaSwaQjc0x/kh6SGcy9XTaHmWQsRqBqBCxya/vCoT5EE7d1o7daQ4Z62UtoeddLYsHaBbt7gVONh95QNjAsYLdAM0HjuNZDvxXQl4KQ9crhVDQoJTsWljSF6JFS6sZDUjaCpScM0mTtujzOCa+bGlYCL5th605a6+a4JAYwtLHzFS/0EBuSnUysmr9A6HhplrZtvSVCFfBWkg3OODbhoQWAzQTnMvyU7SbEabYVVzK790duLq/MUFiecwXtBGpzKu9kQC2qodcyA0PeYzZolangmdxQNQEFozqmAfOExBtEL8TKXPtG84kB2kjI6avphILeat8AGHFuP9UiXeUMT0vbEDkX9XgZmShSvhWCJOhWwnzXTN+njdHj0TQiEgitGjC0bxSnglf73+o8wmLkOgot5QUmcbXNNB7wmENkUOAIAxL+txOEqxzLdzH1XbAB+1Ivzvon3AHOR13XPSW7owu5Y6+l2fMMj3pUsIKPmhzikOBI8M+OO6J+hhwP4uKfU63GyrJMsHFDrdQLtturEo7H1aV8EwErIHZLaNhDJpUth6Gp8LJ7lUw1dWqfO2Lsh5v6xLnTLS2aZY3z/p7mCMD5oxHCY/VfhzrE/mRUUEUsvQcUE+AD9ltfPtxA5/t9OCbnICea9C7Fb5i4MtMELjShLlgBcgr5WijC3IcGxxTONHpmkJB7eKC/cg2DqyPpA+7V2XNOKsRDYKiSPdxbRfuM5AcWiZJtwckOgHIiQGSRgk7cICvniSaXI6kZ5D8HFNpGxCv5PS6HVLe+O1Ob1UpOqzMHvc6WCHrkqxsg5WB6a2bTZ/hNIX+qd1u2kXDGHQ7UpAa/ehBO37ZFmozrBs0HrXs0KOj20Y99SOnxVO2CuHrdUpk05o6Rq897Kw8tr0br/E3aS9aNr96jlemta3fmrZss41pgTvOG2GJCkh7NlytWiVStWr7DRQ+lDPWWbo347jEdYzEndIAmkNfUpV66u1AwDHGK8qoVHf+LsJxgCUX+fuTPnoESekLXhVTqRzUZGDe0XQwmqu5IN/TMvXLZBf8icw44+qdJ4Z+DMQ1JHFX4rHUJ8b2ztMLuBPzCYZQT60ZnqLWIMMysCTDjKk7ZDR+OnF7dTZnTuBE5wE5Rj3trX2mXsI2X1kViAgXGP9HN5B3hB195+IP7IBh/cNeWfnqX0fR4ic=</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 230 141.88 L 230 115 L 130.4 115 L 130.37 74.05" 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 230 148.88 L 226.5 141.88 L 233.5 141.88 Z" 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 130.36 68.8 L 133.87 75.8 L 130.37 74.05 L 126.87 75.8 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 230 141.88 L 230 115 L 313.8 115 L 313.83 75.41" 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 230 148.88 L 226.5 141.88 L 233.5 141.88 Z" 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 313.84 70.16 L 317.33 77.16 L 313.83 75.41 L 310.33 77.15 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 90 150 L 370 150 L 370 311.5 Q 300 260.2 230 311.5 Q 160 362.8 90 311.5 L 90 178.5 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 center; width: 278px; height: 1px; padding-top: 157px; margin-left: 91px;"> - <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; "> - Static Diagram - </div> - </div> - </div> - </foreignObject> - <text x="230" y="169" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Static Diagram - </text> - </switch> - </g> - </g> - <g> - <path d="M 250 0 L 370 0 L 370 68 Q 340 46.4 310 68 Q 280 89.6 250 68 L 250 12 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: 28px; 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; "> - Component Requirements - </div> - </div> - </div> - </foreignObject> - <text x="310" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Component Requiremen... - </text> - </switch> - </g> - </g> - <g> - <path d="M 70 0 L 190 0 L 190 68 Q 160 46.4 130 68 Q 100 89.6 70 68 L 70 12 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: 28px; margin-left: 71px;"> - <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; "> - Architecture Component Element - </div> - </div> - </div> - </foreignObject> - <text x="130" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Architecture Compone... - </text> - </switch> - </g> - </g> - <g> - <rect x="70" y="90" 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: 105px; margin-left: 71px;"> - <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; "> - satisfied - </div> - </div> - </div> - </foreignObject> - <text x="100" y="109" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - satisfied - </text> - </switch> - </g> - </g> - <g> - <rect x="320" y="90" 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: 105px; margin-left: 321px;"> - <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; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="350" y="109" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 100 187 L 220 187 L 220 255 Q 190 233.4 160 255 Q 130 276.6 100 255 L 100 199 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: 215px; 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: normal; word-wrap: normal; "> - Unit1 - </div> - </div> - </div> - </foreignObject> - <text x="160" y="219" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Unit1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 240 187 L 360 187 L 360 255 Q 330 233.4 300 255 Q 270 276.6 240 255 L 240 199 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: 215px; margin-left: 241px;"> - <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; "> - Unit2 - </div> - </div> - </div> - </foreignObject> - <text x="300" y="219" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Unit2 - </text> - </switch> - </g> - </g> - <g> - <path d="M 51.37 410 L 62 410 L 406.88 410" 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 46.12 410 L 53.12 406.5 L 51.37 410 L 53.12 413.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 413.88 410 L 406.88 413.5 L 406.88 406.5 Z" 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="70" y="370" width="330" height="40" 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: 390px; margin-left: 235px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 19px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Bidirectional traceability (mandatory) - </div> - </div> - </div> - </foreignObject> - <text x="235" y="396" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="19px" text-anchor="middle"> - Bidirectional traceability (mandato... - </text> - </switch> - </g> - </g> - <g> - <rect x="0" y="420" width="110" 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: 435px; margin-left: 55px;"> - <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; "> - manually linked - </div> - </div> - </div> - </foreignObject> - <text x="55" y="439" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - manually linked - </text> - </switch> - </g> - </g> - <g> - <rect x="330" y="420" width="130" 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: 435px; margin-left: 395px;"> - <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; "> - automatically linked - </div> - </div> - </div> - </foreignObject> - <text x="395" y="439" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - automatically linked - </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> diff --git a/docs/process/process_areas/implementation/guidance/detailed_design_template.rst b/docs/process/process_areas/implementation/guidance/detailed_design_template.rst deleted file mode 100644 index d07d929a68..0000000000 --- a/docs/process/process_areas/implementation/guidance/detailed_design_template.rst +++ /dev/null @@ -1,67 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Detailed Design Template -######################## - -.. gd_temp:: Detailed Design Templates - :id: gd_temp__detailed_design - :status: valid - :complies: std_req__iso26262__software_542, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - -Detailed Design for Component: <Component Name> -=============================================== - -Description ------------ - -| Design Decisions -| Design Constraints - -Rationale Behind Decomposition into Units -****************************************** -| mandatory: a motivation for the decomposition into one or more units. - -.. note:: Reason for split into multiple units could be- - - Based on design principles like SOLID,DRY etc - - Based on design pattern's etc. - -Static Diagrams for Unit Interactions -------------------------------------- -.. code-block:: rst - - .. dd_sta:: <Title> - :id: dd_sta__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :status: <valid|invalid> - :implements: <link to component requirement id> - :satisfies: <link to component architecture id> - - .. image:: <link to drawio image> or .. uml:: <link to plantuml> - -Dynamic Diagrams for Unit Interactions --------------------------------------- -.. code-block:: rst - - .. dd_dyn:: <Title> - :id: dd_dyn__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :status: <valid|invalid> - :implements: <link to component requirement id> - :satisfies: <link to component architecture id> - - .. image:: <link to drawio image> or .. uml:: <link to plantuml> diff --git a/docs/process/process_areas/implementation/guidance/implementation_checklist.rst b/docs/process/process_areas/implementation/guidance/implementation_checklist.rst deleted file mode 100644 index 250a0bba96..0000000000 --- a/docs/process/process_areas/implementation/guidance/implementation_checklist.rst +++ /dev/null @@ -1,103 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* -.. _Implementation checklist: - -Implementation Inspection Checklist -=================================== - -.. gd_chklst:: Implementation Inspection Checklist Template - :id: gd_chklst__impl_inspection_checklist - :status: valid - :tags: implementation - :complies: std_req__iso26262__software_942 - -Purpose -------- - -The purpose of this checklist is to collect the topics to be checked during implementation, -i.e. in the detailed design and the source code of the units. - -The checklist shall be agnostic to which programming language is used. Differences shall be treated -by linking to C++ or Rust specific documentation. - -Checklist ---------- - -.. list-table:: Implementation Checklist - :header-rows: 1 - :widths: 10,30,50,6,6,8 - - * - Review ID - - Acceptance Criteria - - Guidance - - Passed - - Remarks - - Issue link - * - IMPL_01_01 - - Is the design according to guidelines? - - see :need:`gd_temp__detailed_design` and :need:`doc_concept__imp__concept` - (e.g. are the views done with the proposed UML diagrams) - - - - - - - * - IMPL_01_02 - - Are the SOLID design principles applied? - - The Unit Design shall achieve the following principles: - Correct order of execution of the functions, - consistency of the interfaces between the units, - correctness of data flow and data control between the units, - simplicity, readability and comprehensibility, robustness, - suitability for modifications, verifiability - - - - - - - * - IMPL_01_03 - - Is the implementation according to specification? - - Check if the linked component requirements are fulfilled - and detailed design also matches architecture description. - - - - - - - * - IMPL_01_04 - - Are the design decisions and constraints documented? - - Check also for plausibility of these. - - - - - - - * - IMPL_01_05 - - Are all external libraries used by the component specified in the detailed design? - - Check the automated dependency analysis. - Also make sure ASIL rated units also only use ASIL or FFI rated libraries. - - - - - - - * - IMPL_02_01 - - Are the static and dynamic code analysis reports verified for violations? - - All violations in ASIL related code must be justified. This includes the checks of coding guidelines. - - - - - - - * - IMPL_02_02 - - Do manual checks, that are derived from the coding guideline, find no safety critical error? - - Check this list for C++ <link> and this list for Rust <link> - - - - - - - * - IMPL_02_03 - - Are detailed design and source code consistent? - - Check if the static and dynamic design descriptions match the code (e..g. naming of elements) - and that the respective traceability is established (doxygen style comments) - - - - - - diff --git a/docs/process/process_areas/implementation/guidance/implementation_guideline.rst b/docs/process/process_areas/implementation/guidance/implementation_guideline.rst deleted file mode 100644 index 758d33565a..0000000000 --- a/docs/process/process_areas/implementation/guidance/implementation_guideline.rst +++ /dev/null @@ -1,72 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Implementation Guideline - :id: gd_guidl__implementation - :status: valid - -This document describes the general guidances for implementation based on the concept which is defined :need:`[[title]]<doc_concept__imp__concept>`. -In the concept is a example of a Detailed Design included. - -Workflow for Implementation -=========================== - -Detailed description which steps are need for implementation. - -#. Consult which programming languages, design/coding guidelines and tools are used for Software - development within the Software Development Plan :need:`doc__software_development_plan`. -#. Create a Detailed Design by using the template :need:`gd_temp__detailed_design`. - In this step, the components are broken down into smaller, independent units that can be tested - separately during the unit testing phase. The detailed design shall be so exact, that test and - implementation can be run simultaneously. -#. Implement the source code, by using the coding guidelines :need:`doc__cpp_coding_guidelines` for C++, - or <TBD> for Rust. -#. Create a pull request for your change. -#. Detail Design and Code Inspection is done to review the code of the software and detect errors in it. -#. Check the results of the static and dynamic code analysis (this inlcludes compiler warnings). -#. Fix or justify the errors. -#. Merge the pull request. -#. Create a follow up ticket if not all findings could be fixed. - - -Traceability -============ - -The detailed design is created by using the template :need:`gd_temp__detailed_design`. In the template -the static and the dynamic view for unit interactions is described. - -.. figure:: _assets/static_view.drawio.svg - :align: center - :width: 30% - :name: static_view_fig - -The static diagram statisfies the architecture and implements the requirements of the related component. The static diagram includes Unit1+2. - - -.. figure:: _assets/dynamic_view.drawio.svg - :align: center - :width: 30% - :name: dynamic_view_fig - -The dynamic diagram satisfies the architecture and implements the requirements of the related component. - -.. figure:: _assets/dd_traceability.drawio.svg - :align: center - :width: 30% - :name: dd_traceability_fig - -The unit description will be generated automatically based on the comments in the source code and from the interface description. diff --git a/docs/process/process_areas/implementation/guidance/implementation_process_reqs.rst b/docs/process/process_areas/implementation/guidance/implementation_process_reqs.rst deleted file mode 100644 index 54e7606626..0000000000 --- a/docs/process/process_areas/implementation/guidance/implementation_process_reqs.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Process Requirements -#################### - -.. gd_req:: Static Diagram for Unit Interactions - :id: gd_req__static_diagram - :status: valid - :tags: mandatory - :satisfies: wp__sw_implementation - :complies: std_req__iso26262__software_843 - - The static diagram represents the unit and their relationships using UML 2.0 notations by using PlantUML. - -.. gd_req:: Dynamic Diagram for Unit Interactions - :id: gd_req__dynamic_diagram - :status: valid - :tags: mandatory - :satisfies: wp__sw_implementation - :complies: std_req__iso26262__software_843 - - The dynamic diagram represents the unit and their relationships using UML 2.0 notations by using PlantUML. - -.. needextend:: "process_areas/implementation" in docname - :+tags: implementation diff --git a/docs/process/process_areas/implementation/guidance/index.rst b/docs/process/process_areas/implementation/guidance/index.rst deleted file mode 100644 index 145d1ca077..0000000000 --- a/docs/process/process_areas/implementation/guidance/index.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - implementation_guideline - implementation_checklist - detailed_design_template - implementation_process_reqs - software_development_template diff --git a/docs/process/process_areas/implementation/guidance/software_development_template.rst b/docs/process/process_areas/implementation/guidance/software_development_template.rst deleted file mode 100644 index 8568d2db1e..0000000000 --- a/docs/process/process_areas/implementation/guidance/software_development_template.rst +++ /dev/null @@ -1,66 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Software Development Plan Template ----------------------------------- - -.. gd_temp:: Software Development Plan Template - :id: gd_temp__software_development_plan - :status: draft - :complies: std_req__iso26262__software_541 - -Purpose -+++++++ - -The main purpose of the software development plan is to define several software development related conditions: - -* selection of design and programming language -* design guideline -* coding guideline (e.g. MISRA, can also include style guide or naming convention) -* SW configuration guideline -* development tools - -Objectives and Scope -++++++++++++++++++++ - -Objective is to define the main SW development policies as defined in the "Purpose" in an ISO 26262 and ASPICE compliant manner. -Scope is the complete SW platform and the development parts of the process. - -Approach -++++++++ - -Design and programming language -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Description of design an programming languages. - -Design guideline -^^^^^^^^^^^^^^^^ - -Description of used design guidelines. - -Coding guideline -^^^^^^^^^^^^^^^^ - -Description of used coding guidelines. - -SW configuration guideline -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Descriptionof used SW configuration guideline. - -SW development tools -^^^^^^^^^^^^^^^^^^^^ - -Description of used SW development tools. diff --git a/docs/process/process_areas/implementation/implementation_concept.rst b/docs/process/process_areas/implementation/implementation_concept.rst deleted file mode 100644 index d790048a78..0000000000 --- a/docs/process/process_areas/implementation/implementation_concept.rst +++ /dev/null @@ -1,177 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__imp__concept - :status: valid - :tags: implementation - -In this section a concept for the implementation will be discussed. Inputs for this concepts are -both the requirements of ISO26262 Part-6 Chapter 8+9 and ASPICE SWE 3+4. - -Inputs -****** - -#. ISO 26262 Part-6 Chapter 8+9 -#. ASPICE SWE 3+4 -#. Component Requirements :need:`wp__requirements__comp` and Architecture :need:`wp__component_arch` -#. Software Development Plan :need:`gd_temp__software_development_plan` - -Outputs -******* - -Detailed Design -=============== - -In this step, the **components** are broken down into smaller, independent **units** that can be -**tested separately** during the unit testing phase. - -Following the **Detailed Design Template** :need:`gd_temp__detailed_design`, we must document the -**design decisions** and **constraints** that guide the decomposition of the component into multiple -units. These decisions should be made based on the following ideas: - -- **Design principles** -- **Design patterns** -- **Testability strategies** - -The goal is to ensure that the decomposition supports **reusability** , **maintainability**, -**scalability**, **extensibility** and **ease of testing**. - -The detailed design and implementation should follow an **iterative approach**, allowing for -continuous improvements in quality through multiple cycles of refinement. - -Specification of Detailed Design --------------------------------- - -A **unit** is a **granular, independent entity** of a component that can be **tested separately** -during the unit testing phase. Each unit represents a **self-contained functionality** and is -derived from the decomposition of a component. - -**Draft: Characteristics of a Unit** - -- **Independent** – Can be tested in isolation. -- **Granular** – Represents a small, well-defined part of the system. -- **Relational** – Has associations with other units, defined using **UML 2.0 notations** such as - aggregation, composition, and generalization. - -**Units in UML Diagrams** - -- For **Rust development**, a **unit** is modeled using a **combination of `struct` and `trait`**, - as Rust does not have traditional classes. - - -Static View -``````````` -The **static view** represents the **units** and their relationships using **UML 2.0 notations**, -such as **aggregation, composition, and generalization**. This is depicted through -**UML structural diagrams**, including: - -- **Class Diagrams** – Define **classes, attributes, methods, and relationships** (e.g., inheritance, associations, dependencies). - Each **class** can be considered a **unit** in the design. -- **Rust Development Approach** – Instead of traditional classes, **Rust uses `struct` and `trait` - combinations** to represent **units** in UML diagrams. - -This view focuses **only on units and their relationships**. -Details such as **attributes and interfaces** are documented under the **Units within the Component section** -(refer to the template for details). - -Dynamic View -```````````` -The **dynamic view** illustrates how the **units** interact with each other to fulfill a specific -**use case** or **functionality**. This view captures the **behavioral aspects** of the component as it executes. -It is represented using **UML behavioral diagrams**, including: - -- **Sequence Diagrams** – Depict the interactions between objects in a **time-ordered sequence**, - highlighting how methods are invoked and how control flows between objects over time. -- **State Machine Diagrams** – Show how the **state of an object changes** in response to events, - allowing for the modeling of complex state transitions. - -These diagrams are essential for understanding the **dynamic behavior** of the component and how -units collaborate to perform tasks. - -Units within the Component --------------------------- - -For each unit it will have a id and the interfaces are shown in the interface view per unit. -The description of unit and its attributes can be seen in the code documentation. -For this we use the tracing to the documentation generated from the code comments. - -We link the unit id to the comments in the code like - - -For cpp using doxygen style comments- - -.. code-block:: cpp - - /** - * @rst - * .. sw_unit:: cpp unit - * :id: sw_unit__<title> - * :security: - * :safety: - * :status - * - * This implements the .... - * @endrst - */ - -for rust - - -.. code-block:: rust - - //! .. sw_unit:: rust unit - //! :id: sw_unit__<title> - //! :security: - //! :safety: - //! :status - //! - //! This implements the .... - - -Interface View -`````````````` -For every unit, it should show the interface provided by that unit. For each unit and corresponding -interface, there shall be an implementation and documentation which is generated for the implementation -will have the units description and the interface. According the template the attributes shall be -filled and corresponding element is shown in the documentation generated form the implementation. - -For cpp using doxygen comments- - -.. code-block:: cpp - - /** - * @rst - * .. sw_unit_int:: cpp unit - * :id: sw_unit_int__<title> - * :security: - * :safety: - * :status - * - * This implements the .... - * @endrst - */ - -For rust - - -.. code-block:: rust - - //! .. sw_unit_int:: rust unit - //! :id: sw_unit_int__<title> - //! :security: - //! :safety: - //! :status - //! - //! This implements the .... diff --git a/docs/process/process_areas/implementation/implementation_getstrt.rst b/docs/process/process_areas/implementation/implementation_getstrt.rst deleted file mode 100644 index 3fd77db1a0..0000000000 --- a/docs/process/process_areas/implementation/implementation_getstrt.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Implementation - :id: doc_getstrt__imp__getstrt - :status: valid - :tags: Implementation - -This document describes the steps which need to be done to document detailed design and implement the code. - -Therefore a detailed guideline :need:`gd_guidl__implementation` and a :need:`[[title]] <doc_concept__imp__concept>` is available. - - -General Workflow -################ - -Overview of the implemenation workflow. - -.. figure:: _assets/implementation_workflow.drawio.svg - :align: center - :width: 80% - :name: implementation_workflow_fig - -The details of what needs to be done in each steps are described in the :need:`gd_guidl__implementation`. - - -Relevant Documents -****************** - -Concept Document: :need:`doc_concept__imp__concept` provides a high-level overview of the integration concept. - -Implementation Guideline: :need:`gd_guidl__implementation` Details on the implemenation. - -SW Development Plan: :need:`gd_temp__software_development_plan` Process description of SW development including - - selection of design and programming language - - design guideline - - coding guideline (e.g. MISRA, can also include style guide or naming convention) - - SW configuration guideline - - Method selection (e.g. for Architecture Verification) - - development tools - -.. _developer_experience: - -Developer Experience -==================== - -There are some tests forseen to check e.g. format which are described in -https://github.com/eclipse-score/score?tab=readme-ov-file#score-platform. diff --git a/docs/process/process_areas/implementation/implementation_roles.rst b/docs/process/process_areas/implementation/implementation_roles.rst deleted file mode 100644 index a6ba7dbd57..0000000000 --- a/docs/process/process_areas/implementation/implementation_roles.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For implementation no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor <rl__contributor>` - * :need:`Committer <rl__committer>` diff --git a/docs/process/process_areas/implementation/implementation_workflow.rst b/docs/process/process_areas/implementation/implementation_workflow.rst deleted file mode 100644 index e0cfbc8f97..0000000000 --- a/docs/process/process_areas/implementation/implementation_workflow.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workflow Implementation -####################### - -.. workflow:: Create/Maintain Software Development Plan - :id: wf__sw_development_plan - :status: valid - :tags: implementation - :responsible: rl__committer - :approved_by: rl__technical_lead - :input: wp__platform_mgmt - :output: wp__sw_development_plan - :contains: gd_temp__software_development_plan - :has: doc_concept__imp__concept, doc_getstrt__imp__getstrt - - The Software Development Plan shall descirbe - - methods - - Guidelines - - development environment - -.. workflow:: Create/Maintain Implementation - :id: wf__sw_detailed_design - :status: valid - :tags: implementation - :responsible: rl__contributor - :approved_by: rl__committer - :input: wp__requirements__comp, wp__component_arch, wp__sw_development_plan - :output: wp__sw_implementation - :contains: gd_temp__detailed_design - :has: doc_concept__imp__concept, doc_getstrt__imp__getstrt - - The implementation is created, consisting of - - Detailed Design - - Source Code - -.. workflow:: Verify Implementation - :id: wf__sw_verify_implementation - :status: valid - :tags: implementation - :responsible: rl__committer - :approved_by: rl__committer - :input: wp__sw_implementation, wp__sw_development_plan - :output: wp__issue_track_system, wp__sw_implementation_inspection, wp__verification__module_ver_report - :contains: gd_chklst__impl_inspection_checklist, doc_getstrt__imp__getstrt - - The Implementation Verification of the Detailed Design and Code consists of the following topics - - Detailed Design and Code Inspection - - Static and Dynamic Code Analysis performed by a tool diff --git a/docs/process/process_areas/implementation/implementation_workproducts.rst b/docs/process/process_areas/implementation/implementation_workproducts.rst deleted file mode 100644 index a0012ef7b6..0000000000 --- a/docs/process/process_areas/implementation/implementation_workproducts.rst +++ /dev/null @@ -1,50 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workproducts Implementation -########################### - -.. workproduct:: Implementation - :id: wp__sw_implementation - :status: valid - :tags: safety - :complies: std_wp__iso26262__software_851, std_wp__iso26262__software_852 - - Implementation includes source code and detailed design (e.g. in form of comments or linked graphical representations) and SW configuration (e.g. #ifdef) - The "how to" is described in the SW Development Plan guidelines - -.. workproduct:: Implementation Inspection - :id: wp__sw_implementation_inspection - :status: valid - :tags: safety - :complies: std_wp__iso26262__software_952 - - Github review with integrated inspection checklist, only valid Detailed Design and Code get merged - -.. workproduct:: Software Development Plan - :id: wp__sw_development_plan - :status: valid - :tags: safety - :complies: std_wp__iso26262__software_551, std_wp__iso26262__software_app_c_58 - - Process description of SW development including - - selection of design and programming language - - design guideline - - coding guideline (e.g. MISRA, can also include style guide or naming convention) - - SW configuration guideline - - Method selection (e.g. for Architecture Verification) - - development tools - -.. needextend:: "docs/process/implementation" in docname - :+tags: implementation diff --git a/docs/process/process_areas/implementation/index.rst b/docs/process/process_areas/implementation/index.rst deleted file mode 100644 index 26bb067a0d..0000000000 --- a/docs/process/process_areas/implementation/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _implementation: - -Implementation -############## - -.. toctree:: - :maxdepth: 1 - - implementation_getstrt - implementation_concept - guidance/index - implementation_workflow - implementation_workproducts - implementation_roles - _assets/detailed_design_example.rst diff --git a/docs/process/process_areas/index.rst b/docs/process/process_areas/index.rst deleted file mode 100644 index 05cd8d763d..0000000000 --- a/docs/process/process_areas/index.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Process Areas -############# - -.. toctree:: - :maxdepth: 1 - :glob: - - architecture_design/index.rst - change_management/index.rst - configuration_management/index.rst - documentation_management/index.rst - implementation/index.rst - platform_management/index.rst - problem_resolution/index.rst - release_management/index.rst - requirements_engineering/index.rst - safety_management/index.rst - tool_management/index.rst - verification/index.rst diff --git a/docs/process/process_areas/platform_management/guidance/index.rst b/docs/process/process_areas/platform_management/guidance/index.rst deleted file mode 100644 index f86889b941..0000000000 --- a/docs/process/process_areas/platform_management/guidance/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - platform_management_guideline - platform_management_template diff --git a/docs/process/process_areas/platform_management/guidance/platform_management_guideline.rst b/docs/process/process_areas/platform_management/guidance/platform_management_guideline.rst deleted file mode 100644 index 76f10a5b7c..0000000000 --- a/docs/process/process_areas/platform_management/guidance/platform_management_guideline.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Working model - :id: gd_guidl__platform__mgmt_plan - :status: valid - :complies: std_req__aspice_40__MAN-3-BP1, std_req__aspice_40__MAN-3-BP2, std_req__aspice_40__MAN-3-BP3, std_req__aspice_40__MAN-3-BP4, std_req__aspice_40__MAN-3-BP5, std_req__aspice_40__MAN-3-BP6, std_req__aspice_40__MAN-3-BP7, std_req__aspice_40__MAN-3-BP8, std_req__aspice_40__MAN-3-BP9, std_req__aspice_40__MAN-3-BP10 - -This document describes the general guidances for Platform Management based on the concept which is defined :need:`[[title]]<doc_concept__platform__process>`. - -General Hints -============= - -The detailed implementation of the Platform Management Plan for **S-CORE** is described in the :need:`[[title]]<doc__platform_mgt_plan>`. - -An iterative and incremental development model shall be used. - -The project life cycle model shall consider three phases: -Concept, Development and Maintenance (compare: :ref:`general_concepts_lifecycle`) -Within each phase iterative working model shall be applied. - -The traceability shall consider the :ref:`general_concepts_traceability` based on the -:ref:`general_concepts_building_blocks`. - -Templates ---------- - -The content of the Platform Management Plan shall consider the -:need:`[[title]] <gd_temp__platform__mgmt_plan>`. - -Activities for Platform Management Plan -======================================= - -Create/Maintain Platform Management Plan ----------------------------------------- - -The platform management is created and maintained by the :need:`Technical Lead <rl__technical_lead>`. -As it is a container, this activity is valid for all addressed plan documents. - -It may consider: - -* Identifies activities to be performed -* Identifies the expected, and actual, start and completion date for required activities against progress/completion of activities -* Identifies dependencies between activities and critical path -* Has a mapping to scheduled resources and input data -* Identifies resource allocation, resource workload, and critical resources -* Information needed to perform -* Documents ownership for activities e.g., by domains -* Documents critical dependencies to other work packages -* Defines/Identifies work products to be generated -* Documents input and output work products -* Documents the critical dependencies between defined work products -* Integration of third party deliveries -* Applicable standards and legal requirements - -Especially for the Project Management Plan, the following topics may considered: - -The scope of the work is defined. The scope may include: - -* Roadmap - Main features to be realized including -* Schedule - target delivery date and major milestones -* Release dates including major summary of deliverables -* Operational environment, infrastructure -* Reference Hardware, Project Samples - -The stakeholders/stakeholder groups and organisation are defined. These may include: - -* Involved parties -* Weight/importance of each stakeholder (group) -* Representative(s) for each stakeholder (group) -* Information needs of each stakeholder (group) -* Required competences, skills, knowledge - -Communication and reporting pathes are described. These may include: - -* E-mails -* Collaboration tools, like Slack, Teams, etc. -* Meetings and Meeting Notes -* Blog -* Webpages - -Escalation pathes are described. These may include: - -* Defined mechanisms to report and confirm escalation relevant issues -* Identifies stakeholders to be included in the escalation path -* Identifies levels of escalation - -Training pathes are described. These may include: - -* Tutorials -* Training materials -* Online Trainings, Video material - - -Monitor/Improve Platform Management Plan ----------------------------------------- - -:need:`Technical Lead <rl__technical_lead>` is responsible for the monitoring of the -work products and activities against the platform management plan. If deviations are detected, -the plan must be adjusted. Deviations may include estimates, resources, schedules, plans, -interfaces, etc. as defined in the scope of work. - -The status of the project is regularly reported. diff --git a/docs/process/process_areas/platform_management/guidance/platform_management_template.rst b/docs/process/process_areas/platform_management/guidance/platform_management_template.rst deleted file mode 100644 index 014fd838df..0000000000 --- a/docs/process/process_areas/platform_management/guidance/platform_management_template.rst +++ /dev/null @@ -1,108 +0,0 @@ -.. - # ******************************************************************************* - # 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_templates: - -Platform Management Template -============================ - -.. gd_temp:: Platform Management Plan Template - :id: gd_temp__platform__mgmt_plan - :status: valid - :complies: std_req__aspice_40__MAN-3-BP1 - -.. attention:: - Remove everything above when copying and filling the template. - -[Your Project Name] -------------------- - -.. note:: Document header - -' .. document:: [Your Project Name] - :id: doc__platform_mgt_plan - :status: draft - :safety: ASIL_B - :tags: platform_management - -.. attention:: - The above directive must be updated according to your Feature. - - - Modify ``name`` to be your Project Name - - Modify ``id`` to be your Project Name in upper snake case preceded by ``doc_`` - - Adjust ``status`` to be ``valid`` - - Adjust ``asil`` according to your needs - -Content -------- - -This work product's scope is to cover the following aspects including purpose, objectives, scope -and approaches (compare content per plan document): - -* Project Management -* Safety Management -* Security Management -* Quality Management -* Configuration Management -* Tool Management -* Release Management -* Problem Resolution -* Change management -* Documentation Management -* Software Development -* Software Verification - - -Content per plan document -------------------------- - -Purpose -+++++++ - -<The main purpose of the plan is defined> - - -Objectives and Scope -++++++++++++++++++++ - -<The Objectives and Scope of the plan are defined> - -<The Tailoring of the related standards is justified> - -Approach -++++++++ - -<The approaches for the plan activities are defined> - -Plan Work Products -^^^^^^^^^^^^^^^^^^ - -<The output work products of the plan are defined> - -.. list-table:: <Plan> work products - :header-rows: 1 - - * - work product Id - - Link to process - - Process status - - Link to issue - - Link to WP - - WP status - - * - wp__this_plan - - - - - - - - this document - - see above diff --git a/docs/process/process_areas/platform_management/index.rst b/docs/process/process_areas/platform_management/index.rst deleted file mode 100644 index d08a974b3d..0000000000 --- a/docs/process/process_areas/platform_management/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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_management: - -Platform Management -################### - -.. toctree:: - :maxdepth: 1 - - - platform_management_getstrt - platform_management_concept - guidance/index - platform_management_roles - platform_management_workflow - platform_management_workproducts diff --git a/docs/process/process_areas/platform_management/platform_management_concept.rst b/docs/process/process_areas/platform_management/platform_management_concept.rst deleted file mode 100644 index 58a61c5c61..0000000000 --- a/docs/process/process_areas/platform_management/platform_management_concept.rst +++ /dev/null @@ -1,89 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__platform__process - :status: valid - :tags: platform_management - -In this section a concept for the Platform Management will be discussed. Inputs for this concepts -are both the requirements of ISO26262 Part-2 and ASPICE Requirements from MAN.3 additionally -including the requirements of the different stakeholders for the Platform Management process. - -Key concept -*********** -The Platform Management Plan is the container for all plan documents. As container it shall include -the plans defined in the :ref:`Platform Management Plan Template <platform_templates>`. -The concept of the plan documents, beside Project Management is defined in the -corresponding process areas, which generate them. - -The Project Management Plan should identify and control the activities, and establish resources -necessary to develop the project, in the context of the project’s requirements and constraints. - -Inputs -****** - -#. Stakeholders for the Platform Management Plan? -#. Which plans are required? -#. Which activities are required? - -Stakeholders for the Platform Management Plan -********************************************* - -#. :need:`Technical Lead <rl__technical_lead>` - - * Plans, Develops, Controls and Adjust all platform project activities - -#. :need:`Module Lead <rl__module_lead>` - - * Plans, Develops, Controls and Adjust all module project activities - -#. :need:`Committer <rl__committer>` -#. :need:`Contributor <rl__contributor>` - - * Implements and verifies the defined project activities - -Standard Requirements -===================== - -Also requirements of standards need to be taken into consideration: - -* ISO 26262 -* ASPICE -* ISO SAE 21434 - -Plans for Platform Management -***************************** - -Compare :ref:`Platform Management Plan Template <platform_templates>`. - - -Activities for the Platform Management Plan -******************************************* - -Create/Maintain Platform Management Plan -======================================== - -The platform management is created and maintained by the :need:`Technical Lead <rl__technical_lead>`. -As it is a container, this activity is valid for all addressed plan documents. - -Monitor/Improve Platform Management Plan -======================================== - -:need:`Technical Lead <rl__technical_lead>` is responsible for the monitoring of the -work products and activities against the platform management plan. If deviations are detected, -the plan must be adjusted. diff --git a/docs/process/process_areas/platform_management/platform_management_getstrt.rst b/docs/process/process_areas/platform_management/platform_management_getstrt.rst deleted file mode 100644 index 21ed3b0dc4..0000000000 --- a/docs/process/process_areas/platform_management/platform_management_getstrt.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Platform/Project Management - :id: doc_getstrt__platform__process - :status: valid - :tags: platform_management - -In case you want to manage contributions to **S-CORE** consider to: - -* Contact the :need:`Technical Lead <rl__technical_lead>` for your contribution to establish planning and reporting -* Make familiar with the management, development and supporting process descriptions in :ref:`process_description` -* Make familiar with the relevant sections of the :ref:`Platform Management Plan <pmp>`, especially :need:`doc__project_mgt_plan` diff --git a/docs/process/process_areas/platform_management/platform_management_roles.rst b/docs/process/process_areas/platform_management/platform_management_roles.rst deleted file mode 100644 index e3866f2e5c..0000000000 --- a/docs/process/process_areas/platform_management/platform_management_roles.rst +++ /dev/null @@ -1,82 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -.. role:: Technical Lead - :id: rl__technical_lead - :status: valid - - The Technical Leads approve feature requests and perform the project management of the SCORE platform. - - Required skills - - * Degree: Master's degree in electrical engineering/computer science/mathematics, or similar degree, or comparable work experience - * Know-How of project management - * Technical know-how of embedded systems - * Preferred training: Basic and Management specific safety and security trainings - - Experience - - * 2 years of experience in project management or similar position - - Responsibility - - * Review and approval of contributions, e.g. Feature Requests, which add or modify SCORE platform features - * Project management of the platform development - i.e. filling the project management role as defined by ISO26262 - * High-level project control and coordination between multiple software modules - * Escalation instance for software module project leads (external to S-CORE), safety managers and committers - * Planning the releases of the S-CORE SW platform and modules - - Authority - - * Decisions in the technical lead circle - * Approving the releases of the S-CORE SW platform and modules - - -.. role:: Module Project Lead - :id: rl__module_lead - :status: valid - :tags: project_management - :contains: rl__committer - - The Module Project Leads perform the project management on module level. - If a module is developed in a sub-project of S-CORE they have the eclipse project lead role for this. - - For Module Project Leads the same required skills, experiences apply as for the Technical Leads. - - Responsibility - - * Review and approval of contributions, e.g. Feature Requests, which add or modify module features - * Project management of the module development - i.e. filling the project management role as defined by ISO26262 - * High-level project control and coordination between multiple software components within the module - * Escalation instance for software module contributor, safety managers and committers within the module - * Planning the releases of the module - - Authority - - * Decisions in the technical lead circles of the module - * Approving the releases of module - -Contributing Roles: - - * :need:`Process Community <rl__process_community>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - * :need:`Quality Manager <rl__quality_manager>` - -A detailed overview of the responsibility for the steps of the platform management process is listed here: - -:ref:`workflow_platform_management` diff --git a/docs/process/process_areas/platform_management/platform_management_workflow.rst b/docs/process/process_areas/platform_management/platform_management_workflow.rst deleted file mode 100644 index cfac4504aa..0000000000 --- a/docs/process/process_areas/platform_management/platform_management_workflow.rst +++ /dev/null @@ -1,54 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _workflow_platform_management: - -Workflow Platform Management -############################ - -.. workflow:: Create/Maintain Platform Management Plan - :id: wf__platform__cr_mt_platform_mgmt_plan - :status: valid - :tags: platform_management - :responsible: rl__technical_lead - :approved_by: rl__process_community - :supported_by: rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__policies, wp__issue_track_system - :output: wp__platform_mgmt, wp__project_mgt, wp__document_mgt_plan - :contains: gd_temp__platform__mgmt_plan, gd_guidl__platform__mgmt_plan, gd_guidl__documentation, gd_chklst__documentation__review - :has: doc_concept__platform__process, doc_getstrt__platform__process - - The Platform Management Plan shall include the plans as defined by the - :ref:`Platform Management Plan Template <platform_templates>`. - - The project management plan should contain the scope of work, project life cycle, work packages, - planning and monitoring approaches, project schedule, escalation and communication path. - -.. workflow:: Monitor/Improve Platform Management Plan - :id: wf__platform__mr_im_platform_mgmt_plan - :status: valid - :tags: platform_management - :responsible: rl__technical_lead - :approved_by: rl__process_community - :supported_by: rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__platform_mgmt, wp__project_mgt, wp__document_mgt_plan - :output: wp__issue_track_system - :contains: gd_temp__platform__mgmt_plan, gd_guidl__platform__mgmt_plan, gd_guidl__documentation, gd_chklst__documentation__review - :has: doc_concept__platform__process, doc_getstrt__platform__process - - The :need:`Technical Lead <rl__technical_lead>` is responsible for the monitoring and reporting - of the work products and activities against the platform management plan. - - The :need:`Technical Lead <rl__technical_lead>` is responsible to adjust the plan, - if deviations are detected. diff --git a/docs/process/process_areas/platform_management/platform_management_workproducts.rst b/docs/process/process_areas/platform_management/platform_management_workproducts.rst deleted file mode 100644 index a6b01dfb09..0000000000 --- a/docs/process/process_areas/platform_management/platform_management_workproducts.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work Products Platform Management -################################# - -.. workproduct:: Platform Management Plan - :id: wp__platform_mgmt - :status: valid - :complies: - - The Platform Management Plan shall include the plans as defined by the - :ref:`Platform Management Plan Template <platform_templates>`. - - The main purpose of the plan documents is to define strategies, so that - - * all work products can be uniquely identified and reproduced in a controlled manner at any time - * relations and differences between versions can be traced - * contributions are managed, analysed and controlled including changes of the work products during the project life cycle - * documents are concise, clearly structured, understandable for intended users, verifiable, maintainable, and organized according to S-CORE procedures to facilitate information retrieval - -.. workproduct:: Project Management Plan - :id: wp__project_mgt - :status: valid - :complies: std_req__aspice_40__iic-08-53, std_req__aspice_40__iic-14-10, std_req__aspice_40__iic-13-52, std_req__aspice_40__iic-18-52, std_req__aspice_40__iic-08-56, std_req__aspice_40__iic-14-50 - - Project Management Plan (Part of the Platform Management Plan) - - Plan to manage, analyse and control changes of the work products during the project life cycle. - - Defines the project stakeholder. - - Plan to communicate to the project stakeholder. - - Defines the schedule of the project. - - Defines escalation path. - -.. needextend:: "docs/process/platform_management" in docname - :+tags: platform_management diff --git a/docs/process/process_areas/problem_resolution/guidance/index.rst b/docs/process/process_areas/problem_resolution/guidance/index.rst deleted file mode 100644 index 03f6f81bfd..0000000000 --- a/docs/process/process_areas/problem_resolution/guidance/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - problem_resolution_guideline - problem_resolution_checklist - problem_resolution_template - problem_resolution_reqs diff --git a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst b/docs/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst deleted file mode 100644 index b16297b64f..0000000000 --- a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst +++ /dev/null @@ -1,90 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _prm_checklist: - -Problem Checklist -################# - -.. gd_chklst:: Problem Review Checklist - :id: gd_chklst__problem__cr_review - :status: valid - :tags: problem_resolution - :complies: - - | **1. Purpose** - | The purpose of this checklist is to collect the topics to be checked during a Problem report from any contributor. - | It will not be filled out but considered during the review and monitoring to closure of the Problem Report. - | - | **2. Checklist** - | - - .. list-table:: Problem Report Review Checklist - :header-rows: 1 - :widths: 10,30,6 - - * - Id - - Topic - - Status [FAIL|PASS] - * - 1 - - Does the Problem Report follow the template? - - - - * - 2 - - Are all required topics of the Problem template filled? - - - - * - 3 - - Does the Problem report has a UID as specified? - - - - * - 4 - - Does the Problem report has a title as specified? - - - - * - 5 - - Does the Problem report has a status as specified? - - - - * - 6 - - Does the Problem report has a submitter as specified? - - - - * - 7 - - Does the Problem report has a description as specified? - - - - * - 8 - - Does the Problem report has stakeholder as specified? - - - - * - 9 - - Does the Problem report has a category as specified? - - - - * - 10 - - Does the Problem report has a classification as specified? - - - - * - 11 - - Does the Problem report has a expected closure date as specified? - - - - * - 12 - - Does the Problem report has the solution measures specified, verified and reported? - - - - * - 13 - - If the Problem report is not closed and pending solution measures are open, escalated to the :need:`rl__safety_manager`? - - diff --git a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst b/docs/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst deleted file mode 100644 index 6d7944bf97..0000000000 --- a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Problem Resolution Guideline - :id: gd_guidl__problem__problem - :status: valid - :complies: std_req__aspice_40__SUP-9-BP1, std_req__aspice_40__SUP-9-BP5, std_req__aspice_40__SUP-9-BP6, std_req__aspice_40__SUP-9-BP7 - -This document describes the general guidances for Problem Resolution based on the concept which is defined :need:`[[title]]<doc_concept__problem__process>`. - -General Hints -============= - -The detailed implementation of the Problem Resolution for **S-CORE** is described in the :need:`[[title]]<doc__platform_problem_resolution_plan>`. - -Templates ---------- - -To create problem reports, **S-CORE** provides the following template: :need:`[[title]]<gd_temp__problem__template>`. - -Attributes ----------- - -For all Problems following mandatory attributes need to be defined: - -.. needtable:: Overview of mandatory problem resolution attributes - :tags: problem_resolution - :filter: "mandatory" in tags and "attribute" and "problem_resolution" in tags - :style: table - :columns: title - :colwidths: 30 - - -A more detailed description can be found here: :ref:`prm_process_requirements` - -.. _workflow_prm_requirements: - -Activities for Problem Resolution -================================= - -This section describes in detail which steps need to be performed for a Problem resolution. - -Refer to the :need:`Problem Resolution Plan <doc__platform_problem_resolution_plan>` for examples -how to create problem reports. - -.. list-table:: Activities for Problem Resolution - :header-rows: 1 - :widths: 10,60,30 - - * - Step - - Description - - Responsible - * - :ref:`1. <prm_create_problem_report>` - - Create Problem Report - - :need:`[[title]] <rl__contributor>` - * - :ref:`2. <prm_analyze_problem_report>` - - Analyse Problem Report - - :need:`[[title]] <rl__contributor>` - * - :ref:`3. <prm_initiate_problem_resolution>` - - Initiate and Monitor Problem Resolution - - :need:`[[title]] <rl__contributor>` - * - :ref:`4. <prm_monitor_problem_resolution>` - - Close Problem Resolution - - :need:`[[title]] <rl__committer>` - - -.. _prm_create_problem_report: - -Create Problem Report ---------------------- - -:need:`[[title]] <rl__contributor>` (as author) creates the Problem Report in the defined Issue -Tracking System based on the provided template. -It is expected, that the UID will be provided by the Issue Tracking System. - -The title of the Problem Report should reflect the topic accordingly. - -The description should reflect the problem root cause and impact in detail. - -Copy therefore the :need:`Problem Template <gd_temp__problem__template>` into the created Problem -Report (Issue Tracking System). - -Set the status of the Problem to "open", when ready to review and analyse set to "in review". - -.. _prm_analyze_problem_report: - -Analyse Problem Report ----------------------- - -The **S-CORE** :need:`[[title]] <rl__committer>` analyzes the problem together with the -:need:`[[title]] <rl__contributor>` and takes a decision for accepting or rejecting it. - -If accepted, the status is set to "in implementation" and :need:`[[title]] <rl__contributor>` -can start with the iniation of the Problem Resolution, otherwise the status is set to "rejected". - -The author has the freedom to cancel it at any time by setting the status to "rejected". - -.. _prm_initiate_problem_resolution: - -Initiate and Monitor Problem Resolution ---------------------------------------- - -:need:`[[title]] <rl__committer>` initiates the resolution of the Problem. - -Therefore further activities needs to be planned and linked to the Problem Report. - -During the resolution the responsible lead :need:`[[title]] <rl__technical_lead>` or -:need:`[[title]] <rl__module_lead>` reports regularly the status to the affected **S-CORE** teams. - -The author has the freedom to cancel it at any time by setting the status to "rejected". - -.. _prm_monitor_problem_resolution: - -Close Problem Resolution ------------------------- - -During the resolution the :need:`[[title]] <rl__contributor>` monitors all activities linked to -the problem, until they are closed. - -:need:`[[title]] <rl__committer>` checks finally if the problem Resolution is sufficient before -the status is finally closed. -To check, if it is sufficient, :need:`Problem Checklist <gd_chklst__problem__cr_review>` may used. - -:need:`[[title]] <rl__committer>` has the freedom to reject it at any time by setting the status -to "reject". diff --git a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_reqs.rst b/docs/process/process_areas/problem_resolution/guidance/problem_resolution_reqs.rst deleted file mode 100644 index ef8b0ba04e..0000000000 --- a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_reqs.rst +++ /dev/null @@ -1,190 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _prm_process_requirements: - -Process Requirements -==================== - -.. _prm_process_problem_attributes: - -Problem Attributes ------------------- - -.. gd_req:: Problem attribute: UID - :id: gd_req__problem__attr_uid - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a unique ID. It shall be in an integer number. - -.. gd_req:: Problem attribute: status - :id: gd_req__problem__attr_status - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a status: - - * open - * in review - * in implementation - * closed - * rejected - -.. gd_req:: Problem attribute: title - :id: gd_req__problem__attr_title - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Reason for Problem Report - -.. gd_req:: Problem attribute: description - :id: gd_req__problem__attr_impact_description - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1, std_req__aspice_40__SUP-9-BP2 - - Exact description of the Problem, including potential cause and impact of the problem. - - Record especially, if functional safety or cybersecurity may affected here. - - Record potential affected parties, and if it may requried to notify them about the potential - problem. - -.. gd_req:: Problem attribute: analysis results - :id: gd_req__problem__attr_anaylsis_results - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP2 - - Record analysis results (e.g. reason for rejection, safety, security, quality impact) - -.. gd_req:: Problem attribute: stakeholder - :id: gd_req__problem__attr_stakeholder - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP2, std_req__aspice_40__SUP-9-BP5 - - Assign responsible stakeholder for analysing the problem - Assign responsible stakeholder to resolve the problem - -.. gd_req:: Problem attribute: classification - :id: gd_req__problem__attr_classification - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1, std_req__aspice_40__SUP-9-BP2 - - Each Problem shall have a classification identifier: - - * minor - * major - * critical - * blocker - -.. gd_req:: Problem attribute: category - :id: gd_req__problem__attr_category - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a category identifier: - - * User - * Bug - -.. gd_req:: Problem attribute:: safety affected - :id: gd_req__problem__attr_safety_affected - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a safety relevance identifier: - - * Yes - * No - -.. gd_req:: Problem attribute:: security affected - :id: gd_req__problem__attr_security_affected - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a security relevance identifier: - - * Yes - * No - -.. gd_req:: Problem attribute:: quality affected - :id: gd_req__problem__attr_quality_affected - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - Each Problem shall have a quality relevance identifier: - - * Yes - * No - -.. gd_req:: Problem attribute: milestone - :id: gd_req__problem__attr_milestone - :status: valid - :tags: problem_resolution, attribute, mandatory - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1, std_req__aspice_40__SUP-9-BP6 - - Milestone until the Problem must be implemented (used for prioritization) - - -Problem Resolution Checks -''''''''''''''''''''''''' - -.. gd_req:: Problem Resolution mandatory attributes provided - :id: gd_req__problem__check_mandatory - :status: valid - :tags: problem_resolution, attribute, check - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - It shall be checked if all mandatory attributes for each Problem - is provided by the user. For all requirements following attributes shall be mandatory: - - .. needtable:: Overview mandatory problem attributes - :filter: "mandatory" in tags and "attribute" and "problem_resolution" in tags - :style: table - :columns: title - :colwidths: 30 - -.. gd_req:: Problem Report issues closing constraints - :id: gd_req__problem__check_closing - :status: valid - :tags: problem_resolution, attribute, check - :satisfies: wf__problem__create_pr, wf__problem__analyse_pr, wf__problem__initiate_monitor_pr, wf__problem__close_pr - :complies: std_req__aspice_40__SUP-9-BP1 - - ISSUEs related to Problem Reports shall not automatically closed, if linked ISSUEs or PRs are closed or merged and - these ISSUEs shall be closed only manually from the :need:`Committer <rl__committer>`. diff --git a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_template.rst b/docs/process/process_areas/problem_resolution/guidance/problem_resolution_template.rst deleted file mode 100644 index 5bacca2237..0000000000 --- a/docs/process/process_areas/problem_resolution/guidance/problem_resolution_template.rst +++ /dev/null @@ -1,174 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _prm_templates: - -Problem Report Template -======================= - -.. gd_temp:: Problem Template - :id: gd_temp__problem__template - :status: valid - :complies: std_req__aspice_40__SUP-9-BP1, std_req__aspice_40__SUP-9-BP2, std_req__aspice_40__SUP-9-BP3, std_req__aspice_40__SUP-9-BP4, - - -Parts of the Problem Template shall be created automatically by the defined Issue Tracking System, -this is currently planned here: https://github.com/eclipse-score/score/issues/869. - -Problem status --------------- -[“open”, “in review”, “in implementation”, “closed”, “rejected”] - -If possible, use for problem status the properties of the selected Issue Tracking System -(for implementation see here :need:`doc__platform_problem_resolution_plan`) - -| (to be filled out during :need:`wf__problem__create_pr`) -| (to be updated during :need:`wf__problem__analyse_pr`) -| (to be updated during :need:`wf__problem__initiate_monitor_pr`) - -Problem submitter ------------------ -[Who is the reporter of the problem?] - -If possible, use for problem submitter the properties of the selected Issue Tracking System -(for implementation see here :need:`doc__platform_problem_resolution_plan`) - -(to be filled out during :need:`wf__problem__create_pr`) - -Problem description -------------------- - -[What is the problem?] - -| Determine the cause of the problem, if possible. -| Determine the impact of the problem, if possible. -| Is notification required due to determined impact on affected parties? - -| (to be filled out during :need:`wf__problem__create_pr`) -| (to be updated during :need:`wf__problem__analyse_pr`) - -Problem supporting information ------------------------------- - -[How to reproduce the problem?] - -(to be filled out during :need:`wf__problem__create_pr`) - -Problem analysis results ------------------------- - -[What is the problem analysis result?] - -| Especially document rejection Reason -| Determine the safety/security impact, if applicable - -(to be filled out during :need:`wf__problem__analyse_pr`) - -Problem stakeholder -------------------- - -[What are the potential stakeholder to resolve the problem?] - -Add affected feature, if possible - -If possible, use for problem stakeholder the properties of the selected Issue Tracking System -(see implementation here :need:`doc__platform_problem_resolution_plan`) - -(to be filled out during :need:`wf__problem__create_pr`) - -Problem category ----------------- - -[User, Bug] - -[Safety affected, Security affected, Quality affected] - -User: - -* Problems relating to requirements, design, ore code found by user of the platform. - -Bug: - -* Problems found by contributor based on component, feature or platform integration tests. -* Problems or gaps found by Quality Management activities as defined in the Quality Management Plan. - -Safety, Security, Quality: Additional qualifier to highlight, if safety, security or quality is affected - -If possible, use for problem category the properties of the selected Issue Tracking System -(for implementation see here :need:`doc__platform_problem_resolution_plan`) - -(to be filled out during :need:`wf__problem__create_pr`) - -Problem classification ----------------------- - -[minor, major, critical, blocker] - -Classify the problem severity - -| Use minor, if the impact is not significant of the project -| The problem does not restrict usage of features in a significant manner -| Resolution may be scheduled to any planned future SW release - -| Use major, if the impact does effect the quality of the project -| The problem can be solved with work-arounds for affected features -| Resolution shall be scheduled to next planned future SW release - -| Use critical, if the impact does not prohibit to use the project, but quality cannot be guaranteed -| The problem affects a complete feature, that they are partly or complete not behave as expected -| Resolution shall be scheduled to next planned future SW release or to a new planned intermediate release, if urgent resolution is required - -| Use blocker, if the impact prohibits using the project -| The problem affects more than one feature, that they are partly or complete not behave as expected -| Safety or Security risks identified -| Resolution shall be provided upon availability - -Determine if Urgent resolution is required? (yes, no, only valid for critical, blocker) - -| (to be filled out during :need:`wf__problem__create_pr`) -| (to be updated during :need:`wf__problem__analyse_pr`) - -Problem expected closure date ------------------------------ - -[Milestone when the problem should be resolved] - -If possible, use for problem closure date the properties of the selected Issue Tracking System -(for implementation see here :need:`doc__platform_problem_resolution_plan`) - -(to be filled out during :need:`wf__problem__create_pr`) - -Problem solutions ------------------ - -[What are measures to solve the problem?] - -Specifiy the measures to resolve the problem, based on a rationale - -Verify the effectiveness of the implemented measure - -Report the results of the verification - -Are all arguments convincing - -| (to be filled out during :need:`wf__problem__initiate_monitor_pr`) -| (to be updated during :need:`wf__problem__close_pr`) - -Problem escalations -------------------- - -[Document escalation activities?] - -| (to be filled out during :need:`wf__problem__initiate_monitor_pr`) -| (to be updated during :need:`wf__problem__close_pr`) diff --git a/docs/process/process_areas/problem_resolution/index.rst b/docs/process/process_areas/problem_resolution/index.rst deleted file mode 100644 index 9b52a14396..0000000000 --- a/docs/process/process_areas/problem_resolution/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _problem_resolution: - -Problem Resolution -################## - -.. toctree:: - :maxdepth: 1 - - - problem_resolution_getstrt - problem_resolution_concept - guidance/index - problem_resolution_roles - problem_resolution_workflow - problem_resolution_workproducts diff --git a/docs/process/process_areas/problem_resolution/problem_resolution_concept.rst b/docs/process/process_areas/problem_resolution/problem_resolution_concept.rst deleted file mode 100644 index 1cba5df944..0000000000 --- a/docs/process/process_areas/problem_resolution/problem_resolution_concept.rst +++ /dev/null @@ -1,132 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__problem__process - :status: valid - :tags: problem_resolution - -In this section a concept for the Problem Resolution will be discussed. Inputs for this concepts -are both the requirements of ISO26262 Part-2 and ASPICE Requirements from SUP.9 additionally -including the requirements of the different stakeholders for the Problem Resolution process. - -Key concept -*********** -A Problem Report is the **ONLY** way to report (compare :need:`doc__contr_guideline`) -deviations of an expected result for existing features in the **S-CORE** project. -Deviations include problems found by user, bugs found during verification activites by tester, -quality issues found by quality checks, safety anomalies, vulnerabilites or any other malfunction. - -Inputs -****** - -#. Stakeholders for the Problem report? -#. Which categories are required? -#. Which attributes are required? -#. Which activities are required? - -Stakeholders for the Problem Report -*********************************** - -#. :need:`Contributor <rl__contributor>` - - * Contributes features and components to grow the **S-CORE** content - -#. :need:`Committer <rl__committer>` - - * Verifies that the contribution fulfills the **S-CORE** policies - * Approves the contribution - -Standard Requirements -===================== - -Also requirements of standards need to be taken into consideration: - -* ISO 26262 -* ASPICE -* ISO SAE 21434 - -Problem Report Categories -************************* - -User: Problems relating to requirements, design, or code found by user of the platform. - -Bug: Problems found by contributor based on component, feature or platform integration tests including verification and quality assurance activities. - - -.. _prm_attributes: - -Problem Report Attributes -************************* - -The required attributes for the Problem Report are defined here: :ref:`prm_process_problem_attributes`. - -Activities for Problem Resolution -********************************* - -.. _prm_creation: - -Creation of the Problem Report -============================== - -Use the :ref:`Problem Report Template <prm_templates>` to create the Problem Report. - -In case safety or security is affected, in addition the impact analysis template -: :ref:`Impact Analysis Template <chm_impact_analysis_templates>` can be used to detail out the -impact on safety/security as part of the description. - -.. _prm_analysis: - -Anaylsis of the Problem Report -============================== - -Based on the analysis results decision about the acceptance or rejection must be taken -by authorized persons. - -Authorized person includes - -#. :need:`Technical Lead <rl__technical_lead>` -#. :need:`Module Lead <rl__module_lead>` -#. :need:`Safety Manager <rl__safety_manager>` -#. :need:`Security Manager <rl__security_manager>` -#. :need:`Quality Manager <rl__quality_manager>` - -Further prioritization must be done, e.g. based on release planning. - -.. _prm_implementation_monitoring: - -Implementation and Monitoring of the Problem Resolution -======================================================= -If the Problem Report is accepted, the implementation of the resolution must be initiated and -monitored. - -The Problem Resolution implementation must be tracked until it is closed. - -The status of the Problem Report must be communicated by the -:need:`Technical Lead <rl__technical_lead>` or :need:`Module Lead <rl__module_lead>` until -the implementation is completed and confirmed. - -.. _prm_closing: - -Closing of the Problem Resolution -================================= - -Use the :ref:`Problem Report Checklist <prm_checklist>` to control the completeness of the -Problem Report to be closed. - -Especially the effectiveness of the solution measures must be shown, based on convincing -arguments, e.g. verification measures must be used to confirm the implementation. diff --git a/docs/process/process_areas/problem_resolution/problem_resolution_getstrt.rst b/docs/process/process_areas/problem_resolution/problem_resolution_getstrt.rst deleted file mode 100644 index 5ecf68b6cc..0000000000 --- a/docs/process/process_areas/problem_resolution/problem_resolution_getstrt.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Problem Resolution - :id: doc_getstrt__problem__process - :status: valid - :tags: problem_resolution - -In case you want to report a Problem to **S-CORE** consider to: - -* Create your Problem Report according to :need:`wf__problem__create_pr` -* Make familiar with the development and supporting process descriptions in :ref:`process_description` -* Make familiar with the relevant sections of the :ref:`Platform Management Plan <pmp>`, here especially with :need:`Problem Resolution Plan <doc__platform_problem_resolution_plan>` -* In case of any questions, contact the :need:`Technical Lead <rl__technical_lead>` for your problem to establish reporting and planning diff --git a/docs/process/process_areas/problem_resolution/problem_resolution_roles.rst b/docs/process/process_areas/problem_resolution/problem_resolution_roles.rst deleted file mode 100644 index acec91ecdc..0000000000 --- a/docs/process/process_areas/problem_resolution/problem_resolution_roles.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For problem resolution no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor <rl__contributor>` - * :need:`Committer <rl__committer>` - * :need:`Technical Lead <rl__technical_lead>` - * :need:`Module Project Lead <rl__module_lead>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - * :need:`Quality Manager <rl__quality_manager>` - -A detailed overview of the responsibilities for the steps of the problem resolution process is -listed here: - -:ref:`workflow_prm_requirements` diff --git a/docs/process/process_areas/problem_resolution/problem_resolution_workflow.rst b/docs/process/process_areas/problem_resolution/problem_resolution_workflow.rst deleted file mode 100644 index 69ab7cc849..0000000000 --- a/docs/process/process_areas/problem_resolution/problem_resolution_workflow.rst +++ /dev/null @@ -1,111 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Workflow Problem Resolution -########################### - -.. workflow:: Create Problem Report - :id: wf__problem__create_pr - :status: valid - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__technical_lead, rl__module_lead, rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__issue_track_system, wp__prm_plan - :output: wp__issue_track_system - :contains: gd_temp__problem__template, gd_chklst__problem__cr_review, gd_guidl__problem__problem - :has: doc_concept__problem__process, doc_getstrt__problem__process - - The Problem Report is created. - - For creating the Problem Report template must be used. - - To start the review and the analysis the Problem status is changed to "in review" - -.. workflow:: Analyse Problem Report - :id: wf__problem__analyse_pr - :status: valid - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__technical_lead, rl__module_lead, rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__issue_track_system, wp__prm_plan - :output: wp__issue_track_system - :contains: gd_temp__problem__template, gd_chklst__problem__cr_review, gd_guidl__problem__problem - :has: doc_concept__problem__process, doc_getstrt__problem__process - - The Problem Report is analysed. - - Until the template is not filled out properly, the Problem may be set back to “open” from the - :need:`Committer <rl__committer>`. - - If the Problem shall be resolved, the Problem status is set to "in implementation", otherwise - to "rejected". - - The author of the Problem Report may cancel it, thus the status is set to "rejected". - -.. workflow:: Initiate and Monitor Problem Resolution - :id: wf__problem__initiate_monitor_pr - :status: valid - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__technical_lead, rl__module_lead, rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__issue_track_system, wp__prm_plan - :output: wp__issue_track_system - :contains: gd_temp__problem__template, gd_chklst__problem__cr_review, gd_guidl__problem__problem - :has: doc_concept__problem__process, doc_getstrt__problem__process - - The Problem Resolution is implemented and monitored. - - This may require Change Requests or other activities, inlcuding creating ISSUEs and PRs. - These are linked to the Problem and monitored until closure. - - The Problem Resolution is done, if all linked activities has been closed and confirmed. - Before closing the Problem Resoultion, :need:`Committer <rl__committer>` must check the - correctness. - - The :need:`Committer <rl__committer>` may still reject it, thus the status is set to "rejected". - - The author of the Problem Report may cancel it, thus the status is set to "rejected". - -.. workflow:: Close Problem Resolution - :id: wf__problem__close_pr - :status: valid - :responsible: rl__committer - :approved_by: rl__technical_lead, rl__module_lead - :supported_by: rl__safety_manager, rl__security_manager, rl__quality_manager - :input: wp__issue_track_system, wp__prm_plan - :output: wp__issue_track_system - :contains: gd_temp__problem__template, gd_chklst__problem__cr_review, gd_guidl__problem__problem - :has: doc_concept__problem__process, doc_getstrt__problem__process - - The Problem Resolution is closed. - - The Problem Resolution is closed only, if the implementation is sufficient. That is verified - by the :need:`Committer <rl__committer>` finally. - - Otherwise the :need:`Committer <rl__committer>` keeps the status "in implementation". - -.. needextend:: "process_areas/problem_resolution" in docname - :+tags: problem_resolution - -RAS(IC) for Problem Resolution: -******************************* - -.. needtable:: RASIC Overview for Problem Resolution - :tags: problem_resolution - :filter: "problem_resolution" in tags and type == "workflow" - :style: table - :sort: status - :columns: id as "Activity";responsible as "Responsible";approved_by as "Approver";supported_by as "Supporter" - :colwidths: 30,30,30,30 diff --git a/docs/process/process_areas/problem_resolution/problem_resolution_workproducts.rst b/docs/process/process_areas/problem_resolution/problem_resolution_workproducts.rst deleted file mode 100644 index 440c56befd..0000000000 --- a/docs/process/process_areas/problem_resolution/problem_resolution_workproducts.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work Products Problem Resolution -################################ - -.. workproduct:: Platform Problem Resolution Plan - :id: wp__prm_plan - :status: valid - :tags: problem_resolution - :complies: std_wp__iso26262__support_851 - - Problem Resolution Plan (Part of the Platform Management Plan) - -.. needextend:: "docs/process/problem_resolution" in docname - :+tags: problem_resolution diff --git a/docs/process/process_areas/release_management/guidance/index.rst b/docs/process/process_areas/release_management/guidance/index.rst deleted file mode 100644 index 819bcbb8b8..0000000000 --- a/docs/process/process_areas/release_management/guidance/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - release_guideline - release_templates diff --git a/docs/process/process_areas/release_management/guidance/release_guideline.rst b/docs/process/process_areas/release_management/guidance/release_guideline.rst deleted file mode 100644 index a8803e1d61..0000000000 --- a/docs/process/process_areas/release_management/guidance/release_guideline.rst +++ /dev/null @@ -1,125 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Release Management Guideline - :id: gd_guidl__rel_management - :status: valid - :complies: std_req__iso26262__management_64131, std_req__iso26262__management_64132, std_req__iso26262__management_64133 - -.. _workflow_release: - -Software Module Release ------------------------ - -1. **Repository Management**: - - * Each software module is contained in its own GitHub repository. - * Ensure that the repository follows the standard naming conventions and structure. - -2. **Release Planning**: - - * Create a release plan for each software module. - * The release plan should include timelines, milestones, and deliverables. - * Coordinate with other module owners and platform to align release schedules. - -3. **Development and Testing**: - - * According process, feature teams implement and test. - * Check the :need:`wp__verification__module_ver_report` to ensure that all tests pass before proceeding to the release. - * In case of failed test, evaluate and possibly justify their failure. - -4. **Release Preparation**: - - * Update the version number according to the versioning policy (defined in :need:`doc__platform_release_management_plan`). - * Prepare release notes documenting the changes, improvements, and bug fixes. - * Ensure the relevant safety packages are available and complete. - * Tag the release in the GitHub repository. - -5. **Release Execution**: - - * Create a release in the GitHub repository release branch and attach the release notes. For this consider the `GitHub Howto Release <https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository/>`_ - * Notify the project lead circle about the release for approval. - - -Platform Release ----------------- - -1. **Integration of Software Modules**: - - * The platform release integrates various software modules. - * Ensure that all software modules are released and tagged before the platform release. - -2. **Platform Release Planning**: - - * Create a platform release plan that consumes the timelines from the software module release plans. - * Define the overall release schedule, including major and minor releases. - -3. **Development and Testing**: - - * Integrate the software modules release candidates into the platform. - * Conduct comprehensive testing to ensure compatibility and stability. - * Check the :need:`wp__verification__platform_ver_report` to ensure that all tests pass before proceeding to the release. - * Address any integration issues promptly to initiate bugfixing of the modules. - * In case of still failed test, evaluate and possibly justify their failure. - -4. **Release Preparation**: - - * Check if modules are released. - * Update the platform version number according to the versioning policy (defined in :need:`doc__platform_release_management_plan`). - * Prepare platform release notes summarizing the updates from all integrated software modules. - * Ensure the relevant safety packages are available and complete. - * Tag the platform release in the GitHub repository. - -5. **Release Execution**: - - * Create a release in the GitHub repository release branch and attach the platform release notes. For this consider the `GitHub Howto Release <https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository/>`_ - * Notify the project lead circle about the release for approval. - * Publish within Eclipse SDV. - - -Tracking and Communication ---------------------------- - -1. **Tracking**: - - * Use the github project management tools to track the progress of software module releases and the platform release. - * Maintain a release calendar to visualize the timelines and milestones. - -2. **Communication**: - - * Regularly update all stakeholders on the release status as part of the project lead circle. - * Hold periodic meetings to discuss progress, issues, and dependencies within the tech lead circle. - * meeting definition and schedule see :ref:`pmp_pm_steering_committees`. - - -Templates -========= - -For the release note a template has been created for module level and for platform level - -.. list-table:: Overview - :header-rows: 1 - :widths: 37, 37 - - * - Project scope - - Template - * - Module Release Notes - - :need:`[[title]] <gd_temp__rel__mod_rel_note>` - * - Platform Release Notes - - :need:`[[title]] <gd_temp__rel__plat_rel_note>` - -The above templates shall be used diff --git a/docs/process/process_areas/release_management/guidance/release_templates.rst b/docs/process/process_areas/release_management/guidance/release_templates.rst deleted file mode 100644 index a9619fd560..0000000000 --- a/docs/process/process_areas/release_management/guidance/release_templates.rst +++ /dev/null @@ -1,155 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Templates -========= - -.. gd_temp:: Platform Release Note Template - :id: gd_temp__rel__plat_rel_note - :status: valid - :complies: std_req__iso26262__management_64134, std_req__iso26262__management_64135, std_req__aspice_40__SUP-8-BP7 - - | Platform Release Notes - | ====================== - | Release Tag: vX.Y.Z - | Release Commit Hash: a1b2c3d4e5f6g7h8i9j0 - | Release Date: YYYY-MM-DD - | - | Overview - | -------- - | This document provides an overview of the changes, improvements, and bug fixes included in the platform release version vX.Y.Z. - | - | New Features - | ------------ - | - **Feature 1**: Brief description of the new feature. - | - **Feature 2**: Brief description of the new feature. - | - **Feature 3**: Brief description of the new feature. - | - | Improvements - | ------------ - | - **Improvement 1**: Brief description of the improvement. - | - **Improvement 2**: Brief description of the improvement. - | - **Improvement 3**: Brief description of the improvement. - | - | Bug Fixes - | --------- - | - **Bug 1**: Brief description of the bug fix. - | - **Bug 2**: Brief description of the bug fix. - | - **Bug 3**: Brief description of the bug fix. - | - | Integrated Software Modules - | --------------------------- - | - **Module 1**: Version and brief description of the module. Link to Software module release note. - | - **Module 2**: Version and brief description of the module. Link to Software module release note. - | - **Module 3**: Version and brief description of the module. Link to Software module release note. - | - | Known Issues - | ------------ - | - **Issue 1**: Brief description of the known issue. Justification regarding safety impact. - | - **Issue 2**: Brief description of the known issue. Justification regarding safety impact. - | - **Issue 3**: Brief description of the known issue. Justification regarding safety impact. - | - | Upgrade Instructions - | -------------------- - | - | 1. **Step 1**: Description of the first step. - | 2. **Step 2**: Description of the second step. - | 3. **Step 3**: Description of the third step. - | - | Contact Information - | ------------------- - | - | For any questions or support, please contact the *Project Lead* or raise an issue/discussion. - -.. gd_temp:: Module Release Note Template - :id: gd_temp__rel__mod_rel_note - :status: valid - :complies: std_req__iso26262__management_64134, std_req__iso26262__management_64135 - - | Software Module Release Notes - | ============================= - | - | Module Name: [Module Name] - | Release Tag: vX.Y.Z - | Release Commit Hash: a1b2c3d4e5f6g7h8i9j0 - | Release Date: YYYY-MM-DD - | - | Overview - | -------- - | - | This document provides an overview of the changes, improvements, and bug fixes included in the software module release version vX.Y.Z. - | - | New Features - | ------------ - | - | - **Feature 1**: Brief description of the new feature. - | - **Feature 2**: Brief description of the new feature. - | - **Feature 3**: Brief description of the new feature. - | - | Improvements - | ------------ - | - | - **Improvement 1**: Brief description of the improvement. - | - **Improvement 2**: Brief description of the improvement. - | - **Improvement 3**: Brief description of the improvement. - | - | Bug Fixes - | --------- - | - | - **Bug 1**: Brief description of the bug fix. - | - **Bug 2**: Brief description of the bug fix. - | - **Bug 3**: Brief description of the bug fix. - | - | Compatibility - | ------------- - | - | - **Dependencies**: List any dependencies and their versions. - | - | Known Issues - | ------------ - | - | - **Issue 1**: Brief description of the known issue. Justification regarding safety impact. - | - **Issue 2**: Brief description of the known issue. Justification regarding safety impact. - | - **Issue 3**: Brief description of the known issue. Justification regarding safety impact. - | - | Upgrade Instructions - | -------------------- - | - | 1. **Step 1**: Description of the first step. - | 2. **Step 2**: Description of the second step. - | 3. **Step 3**: Description of the third step. - | - | Contact Information - | ------------------- - | - | For any questions or support, please contact the *Project lead* or raise an issue/discussion. - -.. gd_temp:: Release Issue Template - :id: gd_temp__rel__issue - :status: valid - :complies: std_req__iso26262__management_64131, std_req__iso26262__management_64132, std_req__iso26262__management_64133 - -Copy the below steps into the release ticket: - -Release <add version number> for <platform/module_name> -------------------------------------------------------- - -1. Link this issue to the correct milestone and assign to the technical lead -2. Check respective Verification report on the release candidate's github tag -3. Check bugfixes or justify failed tests -4. Check the safety package completeness (includes "valid" documents and work products status, supported by the safety manager) -5. Create/update the release note (pull request to close this issue) -6. Document safety manager's "recommendation to release" by asking his GitHub review approval of the release note -7. Create the "release" in GitHub according to :need:`gd_guidl__rel_management` -8. Merge PR and close this issue to complete the release diff --git a/docs/process/process_areas/release_management/index.rst b/docs/process/process_areas/release_management/index.rst deleted file mode 100644 index 7a03f99ff7..0000000000 --- a/docs/process/process_areas/release_management/index.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _release_management: - -Release Management -######################## - -.. toctree:: - :maxdepth: 1 - - release_concept - release_workflow - guidance/index - release_workproducts - release_roles - -.. needextend:: "process_areas/release_management" in docname - :+tags: release_mgt diff --git a/docs/process/process_areas/release_management/release_concept.rst b/docs/process/process_areas/release_management/release_concept.rst deleted file mode 100644 index ede5d76010..0000000000 --- a/docs/process/process_areas/release_management/release_concept.rst +++ /dev/null @@ -1,127 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__rel__process - :status: valid - -This section describes the general concept for the release management process. -The release process can be separated into two parts. On the first level are the software module -releases. These are independent from the platform and can be separated over various repositories. -Once a software module is released it can be contained within a platform release which -can include multiple software module releases within a platform release scope. - -Inputs -****** - -#. Module safety package -#. Platform safety package -#. Module verification report -#. Platform verification report -#. Issue tracking system -#. Platform Management Plan - -Outputs -******* -#. Module release plan -#. Module release note -#. Platform release plan -#. Platform release note - -Platform Release Plan -===================== - -The platform release plan provides a reliable plan on what software modules can be expected in the -upcoming platform release. The platform release plan is reflected by feature requests which are -demanded. Therefore it is of importance that the *Technical Leads* on platform level are aligned with -the various software module *Technical Leads* and to align the platform release -plan properly with the module release plan as the platform release plan has a clear dependency on -its output. - -#. :need:`Tech Lead Circle <rl__technical_lead>` - - * Defines and proposes scope of individual module release - * Creates and maintains the platform release plan - * Aligns module release timeline with platform release plan - -#. :need:`Project Lead Circle <rl__project_lead>` - - * Approves the platform release plan - -Platform Release -================ - -The Platform Release contains the full *S-CORE* scope which spans over many modules. The releases -are proposed by the *Technical Leads* and approved by *Project Leads*. Every software module -has its own repository which contains multiple components, their requirements, architecture, -implementation and tests. - -#. :need:`Tech Lead Circle <rl__technical_lead>` - - * Define and proposes scope of release - * Writes platform release notes - -#. :need:`Project Lead Circle <rl__project_lead>` - - * Approves the platform release notes - * Adds and removes software modules to the platform - * Releases the platform - -Module Release Plan -=================== - -The module release plan gives a guidance when certain features can be expected on a module level. -It is created by the respective *Tech Leads* and *Project Leads* of the module. - -#. :need:`Tech Lead Circle <rl__technical_lead>` - - * Define and proposes scope of individual module Release - * Creates and maintains the module release plan - -#. :need:`Project Lead Circle <rl__project_lead>` - - * Approves the module release plan - -Module Release -============== - -Each software module needs to have its dedicated release and the accompanying release notes. -Only released software modules can be included into a platform release. - -#. :need:`Tech Lead Circle <rl__technical_lead>` - - * Provides the software module release notes - -#. :need:`Project Lead Circle <rl__project_lead>` - - * Approves the module release notes - * Adds and removes Software modules to the Platform - * Releases the module - -Branching Strategy -================== - -Branches: -* master: for implementation and documentation in development phase. -* release/\*: Branches for distinct releases, named release/<version-number>, no functional changes, only bugfixes, quality and documentation improvements. - - -Workflow: - -When ready for a new release, create a branch release/<version-number> from master. -Perform final testing and adjustments on the release branch. -Tag the release in the release branch. diff --git a/docs/process/process_areas/release_management/release_roles.rst b/docs/process/process_areas/release_management/release_roles.rst deleted file mode 100644 index 58dd669014..0000000000 --- a/docs/process/process_areas/release_management/release_roles.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For Release Management no additional roles need to be defined. - -Contributing Roles: - - * :need:`Technical Lead <rl__technical_lead>` - * :need:`Project Lead <rl__project_lead>` - -A detailed overview of the responsibility for the steps of the Release Management process -is listed here: :need:`doc_concept__rel__process` diff --git a/docs/process/process_areas/release_management/release_workflow.rst b/docs/process/process_areas/release_management/release_workflow.rst deleted file mode 100644 index a1392749bb..0000000000 --- a/docs/process/process_areas/release_management/release_workflow.rst +++ /dev/null @@ -1,67 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Workflow Release Management -################################# - -.. workflow:: Create/Maintain Module Release Note - :id: wf__rel__mod_rel_note - :status: valid - :responsible: rl__technical_lead - :approved_by: rl__project_lead - :input: wp__module_safety_package, wp__module_sw_release_plan, wp__verification__module_ver_report - :output: wp__module_sw_release_note - :contains: gd_temp__rel__mod_rel_note, gd_guidl__rel_management - :has: doc_concept__rel__process - - The module release note is created for each release by the module technical lead. It may be updated - later in case of bugs found after the release is published. - -.. workflow:: Create/Maintain Platform Release Note - :id: wf__rel__platform_rel_note - :status: valid - :responsible: rl__technical_lead - :approved_by: rl__project_lead - :input: wp__platform_safety_package, wp__platform_sw_release_plan, wp__verification__platform_ver_report - :output: wp__platform_sw_release_note - :contains: gd_temp__rel__plat_rel_note, gd_guidl__rel_management - :has: doc_concept__rel__process - - The platform release note is created for each release by the technical lead circle. It may be updated - later in case of bugs found after the release is published. - -.. workflow:: Plan Module Release - :id: wf__rel__mod_rel_plan - :status: valid - :responsible: rl__technical_lead - :approved_by: rl__project_lead - :input: wp__issue_track_system, wp__platform_mgmt - :output: wp__module_sw_release_plan - :contains: gd_temp__rel__issue, gd_guidl__rel_management - :has: doc_concept__rel__process - - The module release plan is created as part of the modules planning and documented as part of the module's project planning. - -.. workflow:: Plan Platform Release - :id: wf__rel__plat_rel_plan - :status: valid - :responsible: rl__technical_lead - :approved_by: rl__project_lead - :input: wp__issue_track_system, wp__platform_mgmt - :output: wp__platform_sw_release_plan - :contains: gd_temp__rel__issue, gd_guidl__rel_management - :has: doc_concept__rel__process - - The platform release plan is created as part of the project planning and documented in the platform management plan. diff --git a/docs/process/process_areas/release_management/release_workproducts.rst b/docs/process/process_areas/release_management/release_workproducts.rst deleted file mode 100644 index c13f74d9a5..0000000000 --- a/docs/process/process_areas/release_management/release_workproducts.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workproducts -############ - -.. workproduct:: Platform Release Notes - :id: wp__platform_sw_release_note - :status: valid - :complies: std_wp__iso26262__management_656 - - The platform release note provides clarity what is included in the current version of the platform - release. The platform release note mentions all individual software modules used in the platform - release and their used released versions. It shall indicate also the distinct changes to previous - platform versions and provide information regarding the time of the release. - It includes known bugs from own testing and field reporting, with clear statement, - that these bugs do not lead to violation of any safety requirements or which workaround measures need to be applied. - -.. workproduct:: Module Release Notes - :id: wp__module_sw_release_note - :status: valid - :complies: std_wp__iso26262__management_656 - - The module release note provides clarity what is included in the current version of the software - module release. It shall indicate also the distinct changes to previous versions and provide - information regarding the time of the release. It includes known bugs from own testing and field reporting, - with clear statement, that these bugs do not lead to violation of any safety requirements or - which workaround measures need to be applied. - -.. workproduct:: Platform Release Plan - :id: wp__platform_sw_release_plan - :status: valid - - The platform release plan is a high-level document that outlines which software modules - will be included in the overall platform and what features can be expected within the platform. - It provides a strategic overview of the platform's development, ensuring that all - stakeholders are aligned on the platform's future direction and the integration of - various software modules. - -.. workproduct:: Module Release Plan - :id: wp__module_sw_release_plan - :status: valid - - The module release plan is a strategic document that outlines the features planned for upcoming - module releases along with their estimated release dates. It provides a roadmap for the - development and release of new features, ensuring that all stakeholders are aligned on the - module's future direction. diff --git a/docs/process/process_areas/requirements_engineering/_assets/aou_traceability.drawio.svg b/docs/process/process_areas/requirements_engineering/_assets/aou_traceability.drawio.svg deleted file mode 100644 index 90e463bdf8..0000000000 --- a/docs/process/process_areas/requirements_engineering/_assets/aou_traceability.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="981px" height="911px" viewBox="-0.5 -0.5 981 911" content="<mxfile host="Electron" modified="2025-03-04T10:12:11.283Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="BbsGulo8tHe4tWx9A7fs" version="21.6.5" type="device"> <diagram id="0w90vh-N4AjfHz9zUi27" name="Model"> <mxGraphModel dx="2284" dy="2064" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="1HuV_3KbINTHhJpnpn9_-48" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="-660" y="-930" width="980" height="140" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-5" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="-660" y="-775" width="980" height="375" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-29" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="-660" y="-390" width="660" height="370" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-19" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.506;entryY=0.874;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-4" target="E6zD7x6681FsFhgOgvuB-1" edge="1"> <mxGeometry x="0.3594" relative="1" as="geometry"> <Array as="points"> <mxPoint x="-579" y="-230" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-20" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-19" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-4" value="Component Assumption of use" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-520" y="-270" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-2" value="Stakeholder&lt;br&gt;Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-383" y="-890" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.525;entryY=0.813;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-10" target="DKWFivreG9tPJ3AW_U5m-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-30" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-29" vertex="1" connectable="0"> <mxGeometry x="-0.1871" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-10" value="Feature Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-380" y="-745" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.508;entryY=0.9;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-11" target="DKWFivreG9tPJ3AW_U5m-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-37" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-36" vertex="1" connectable="0"> <mxGeometry x="-0.2531" y="-2" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-14" value="mitigates" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.625;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-11" target="E6zD7x6681FsFhgOgvuB-3" edge="1"> <mxGeometry x="0.41" relative="1" as="geometry"> <Array as="points"> <mxPoint x="-80" y="-320" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-11" value="Component Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-379" y="-370" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.733;entryY=0.7;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-13" target="DKWFivreG9tPJ3AW_U5m-11" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-24" value="fulfils" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-23" vertex="1" connectable="0"> <mxGeometry x="-0.0524" relative="1" as="geometry"> <mxPoint x="1" y="-12" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-35" value="[ is containted in]" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.497;entryY=0.862;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-13" target="DKWFivreG9tPJ3AW_U5m-14" edge="1"> <mxGeometry x="0.2949" relative="1" as="geometry"> <mxPoint y="-2" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-13" value="Component&lt;br&gt;&amp;nbsp;Architecture" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-270" y="-250" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.692;entryY=0.713;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-14" target="DKWFivreG9tPJ3AW_U5m-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-32" value="fulfils" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-31" vertex="1" connectable="0"> <mxGeometry x="-0.2063" y="-1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-1" value="Module Safety Manual" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-640" y="-372" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-11" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.859;entryY=0.737;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-3" target="DKWFivreG9tPJ3AW_U5m-13" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-3" value="Component&lt;br&gt;Safety Analysis" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-140" y="-160" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.692;exitY=0.727;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.532;entryY=0.815;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-4" target="E6zD7x6681FsFhgOgvuB-3" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="363" y="-110" as="targetPoint" /> <Array as="points"> <mxPoint x="-437" y="-40" /> <mxPoint x="-76" y="-40" /> </Array> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-16" value="mitigates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-15" vertex="1" connectable="0"> <mxGeometry x="-0.0928" y="1" relative="1" as="geometry"> <mxPoint x="103" y="1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-14" value="Feature&lt;br&gt;Architecture" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-270" y="-635" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="0OzCtDxK0i0DIKa0IOpE-4" value="&lt;div style=&quot;font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 19px;&quot;&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=6;fontColor=#000000;" parent="1" vertex="1"> <mxGeometry x="-335" y="-710" width="20" height="30" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-1" value="Feature&lt;br&gt;Safety Analysis" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-149" y="-540" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-2" value="Feature&lt;br&gt;Assumption of use" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-500" y="-640" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.508;entryY=0.838;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0.825;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-2" target="tyBHiRBJImQJOawUhfXX-1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="379" y="-503" as="targetPoint" /> <Array as="points"> <mxPoint x="-440" y="-420" /> <mxPoint x="-88" y="-420" /> </Array> <mxPoint x="-427" y="-620" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-6" value="mitigates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-5" vertex="1" connectable="0"> <mxGeometry x="-0.0928" y="1" relative="1" as="geometry"> <mxPoint x="180" y="1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-14" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="tyBHiRBJImQJOawUhfXX-7" target="DKWFivreG9tPJ3AW_U5m-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-7" value="Platform Safety Manual" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-618" y="-890" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-8" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.542;entryY=0.775;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-2" target="tyBHiRBJImQJOawUhfXX-7" edge="1"> <mxGeometry x="0.3737" relative="1" as="geometry"> <Array as="points"> <mxPoint x="-553" y="-600" /> </Array> <mxPoint x="-452" y="-188" as="sourcePoint" /> <mxPoint x="-569" y="-292" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-9" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-8" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-10" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-2" target="tyBHiRBJImQJOawUhfXX-7" edge="1"> <mxGeometry x="0.1652" relative="1" as="geometry"> <Array as="points" /> <mxPoint x="-460" y="-546" as="sourcePoint" /> <mxPoint x="-543" y="-818" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-11" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-10" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="16" as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-13" value="mitigates" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-10" target="tyBHiRBJImQJOawUhfXX-1" edge="1"> <mxGeometry x="0.8101" relative="1" as="geometry"> <Array as="points"> <mxPoint x="-89" y="-685" /> </Array> <mxPoint as="offset" /> <mxPoint x="-250" y="-310" as="sourcePoint" /> <mxPoint x="315" y="-130" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-15" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.733;entryY=0.713;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.017;exitY=0.613;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-1" target="DKWFivreG9tPJ3AW_U5m-14" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="315" y="-110" as="sourcePoint" /> <mxPoint x="3" y="-181" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-4" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#bbccba;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="10" y="-390" width="310" height="370" as="geometry" /> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-5" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.506;entryY=0.874;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="bLQh_xpertova4O8Tr1G-7" target="bLQh_xpertova4O8Tr1G-8" edge="1"> <mxGeometry x="0.3594" relative="1" as="geometry"> <Array as="points"> <mxPoint x="94" y="-250" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-6" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="bLQh_xpertova4O8Tr1G-5" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-7" value="(external) Component Assumption of use" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="153" y="-270" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-8" value="(external) Module Safety Manual" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="33" y="-372" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-13" target="bLQh_xpertova4O8Tr1G-7" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="-119" y="-226" as="sourcePoint" /> <mxPoint x="-140" y="-330" as="targetPoint" /> <Array as="points"> <mxPoint x="110" y="-210" /> <mxPoint x="110" y="-210" /> </Array> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-10" value="fulfils" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="bLQh_xpertova4O8Tr1G-9" vertex="1" connectable="0"> <mxGeometry x="-0.0524" relative="1" as="geometry"> <mxPoint x="-34" as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-14" target="bLQh_xpertova4O8Tr1G-7" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="-250" y="-190" as="sourcePoint" /> <mxPoint x="-271" y="-294" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-12" value="fulfils" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="bLQh_xpertova4O8Tr1G-11" vertex="1" connectable="0"> <mxGeometry x="-0.0524" relative="1" as="geometry"> <mxPoint x="18" y="145" as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-15" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="bLQh_xpertova4O8Tr1G-7" target="tyBHiRBJImQJOawUhfXX-7" edge="1"> <mxGeometry x="0.4144" relative="1" as="geometry"> <Array as="points"> <mxPoint x="213" y="-800" /> <mxPoint x="-480" y="-800" /> <mxPoint x="-480" y="-850" /> </Array> <mxPoint x="-373" y="-840" as="sourcePoint" /> <mxPoint x="-488" y="-840" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="bLQh_xpertova4O8Tr1G-16" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="bLQh_xpertova4O8Tr1G-15" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="16" as="offset" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><rect x="0" y="0" width="980" height="140" fill="#b1ddf0" stroke="#10739e" stroke-dasharray="3 3" pointer-events="all"/><rect x="0" y="155" width="980" height="375" fill="#fff2cc" stroke="#d6b656" stroke-dasharray="3 3" pointer-events="all"/><rect x="0" y="540" width="660" height="370" fill="#d5e8d4" stroke="#82b366" stroke-dasharray="3 3" pointer-events="all"/><path d="M 133.63 700 L 80.7 700 L 80.72 627.92" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 138.88 700 L 131.88 703.5 L 133.63 700 L 131.88 696.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 670px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="81" y="674" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 670px; margin-left: 80px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="80" y="673" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 140 660 L 260 660 L 260 728 Q 230 706.4 200 728 Q 170 749.6 140 728 L 140 672 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 688px; margin-left: 141px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Assumption of use</div></div></div></foreignObject><text x="200" y="692" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Assumption...</text></switch></g><path d="M 277 40 L 397 40 L 397 108 Q 367 86.4 337 108 Q 307 129.6 277 108 L 277 52 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 68px; margin-left: 278px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Stakeholder<br />Requirements</div></div></div></foreignObject><text x="337" y="72" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Stakeholder...</text></switch></g><path d="M 340 185 L 340 111.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340 106.16 L 343.5 113.16 L 340 111.41 L 336.5 113.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 154px; margin-left: 341px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="341" y="157" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 280 185 L 400 185 L 400 253 Q 370 231.4 340 253 Q 310 274.6 280 253 L 280 197 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 213px; margin-left: 281px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature Requirements</div></div></div></foreignObject><text x="340" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature Requirements</text></switch></g><path d="M 340.96 560 L 340.96 263.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340.96 258.12 L 344.46 265.12 L 340.96 263.37 L 337.46 265.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 448px; margin-left: 343px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="343" y="451" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 401 610 L 580 610 L 580 763.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 580 768.88 L 576.5 761.88 L 580 763.63 L 583.5 761.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 670px; margin-left: 580px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="580" y="673" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 281 560 L 401 560 L 401 628 Q 371 606.4 341 628 Q 311 649.6 281 628 L 281 572 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 588px; margin-left: 282px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Requirements</div></div></div></foreignObject><text x="341" y="592" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Requiremen...</text></switch></g><path d="M 390 720 L 369 720 L 368.96 622.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 368.96 617.12 L 372.46 624.12 L 368.96 622.37 L 365.46 624.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 671px; margin-left: 370px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfils</div></div></div></foreignObject><text x="370" y="674" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfils</text></switch></g><path d="M 450 680 L 450 527.5 L 449.65 370.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 449.64 365.08 L 453.16 372.07 L 449.65 370.33 L 446.16 372.09 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 473px; margin-left: 450px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">[ is containted in]</div></div></div></foreignObject><text x="450" y="477" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">[ is containted in]</text></switch></g><path d="M 390 680 L 510 680 L 510 748 Q 480 726.4 450 748 Q 420 769.6 390 748 L 390 692 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 708px; margin-left: 391px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component<br /> Architecture</div></div></div></foreignObject><text x="450" y="712" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component...</text></switch></g><path d="M 390 335 L 363 335 L 363.04 248.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 363.04 243.16 L 366.54 250.16 L 363.04 248.41 L 359.54 250.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 315px; margin-left: 365px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfils</div></div></div></foreignObject><text x="365" y="318" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfils</text></switch></g><path d="M 20 558 L 140 558 L 140 626 Q 110 604.4 80 626 Q 50 647.6 20 626 L 20 570 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 586px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Module Safety Manual</div></div></div></foreignObject><text x="80" y="590" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Module Safety Manual</text></switch></g><path d="M 520 810 L 493.1 810 L 493.08 745.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 493.08 740.08 L 496.58 747.08 L 493.08 745.33 L 489.58 747.08 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 788px; margin-left: 493px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="493" y="791" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 520 770 L 640 770 L 640 838 Q 610 816.4 580 838 Q 550 859.6 520 838 L 520 782 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 798px; margin-left: 521px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component<br />Safety Analysis</div></div></div></foreignObject><text x="580" y="802" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component...</text></switch></g><path d="M 223.04 718.16 L 223 890 L 583.8 890 L 583.84 841.57" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 583.84 836.32 L 587.33 843.32 L 583.84 841.57 L 580.33 843.32 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 891px; margin-left: 421px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="421" y="894" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 390 295 L 510 295 L 510 363 Q 480 341.4 450 363 Q 420 384.6 390 363 L 390 307 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 323px; margin-left: 391px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Architecture</div></div></div></foreignObject><text x="450" y="327" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><rect x="325" y="220" width="20" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 235px; margin-left: 335px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 6px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 19px;"><br /></div></div></div></div></foreignObject><text x="335" y="237" fill="#000000" font-family="Helvetica" font-size="6px" text-anchor="middle"> </text></switch></g><path d="M 511 390 L 631 390 L 631 458 Q 601 436.4 571 458 Q 541 479.6 511 458 L 511 402 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 418px; margin-left: 512px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Safety Analysis</div></div></div></foreignObject><text x="571" y="422" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><path d="M 160 290 L 280 290 L 280 358 Q 250 336.4 220 358 Q 190 379.6 160 358 L 160 302 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 318px; margin-left: 161px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Assumption of use</div></div></div></foreignObject><text x="220" y="322" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><path d="M 220 356 L 220 510 L 572 510 L 571.96 463.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 571.96 458.16 L 575.47 465.16 L 571.96 463.41 L 568.47 465.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 511px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="501" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 162 80 L 270.63 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 275.88 80 L 268.88 83.5 L 270.63 80 L 268.88 76.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 42 40 L 162 40 L 162 108 Q 132 86.4 102 108 Q 72 129.6 42 108 L 42 52 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 68px; margin-left: 43px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Platform Safety Manual</div></div></div></foreignObject><text x="102" y="72" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Platform Safety Manu...</text></switch></g><path d="M 153.63 330 L 107 330 L 107.04 102" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 158.88 330 L 151.88 333.5 L 153.63 330 L 151.88 326.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 190px; margin-left: 107px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="107" y="193" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 186px; margin-left: 107px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="107" y="189" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 270.63 80 L 162 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 275.88 80 L 268.88 83.5 L 270.63 80 L 268.88 76.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 80px; margin-left: 210px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="210" y="83" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 81px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="211" y="84" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 400 245 L 571 245 L 571 383.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 571 388.88 L 567.5 381.88 L 571 383.63 L 574.5 381.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 360px; margin-left: 571px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="571" y="363" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 508.96 439.04 L 478 439 L 477.96 358.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 477.96 353.16 L 481.46 360.16 L 477.96 358.41 L 474.46 360.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 411px; margin-left: 478px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="478" y="414" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><rect x="670" y="540" width="310" height="370" fill="#bbccba" stroke="#82b366" stroke-dasharray="3 3" pointer-events="all"/><path d="M 806.63 680 L 753.7 680 L 753.72 627.92" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 811.88 680 L 804.88 683.5 L 806.63 680 L 804.88 676.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 663px; margin-left: 754px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="754" y="667" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 665px; margin-left: 753px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="753" y="668" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 813 660 L 933 660 L 933 728 Q 903 706.4 873 728 Q 843 749.6 813 728 L 813 672 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 688px; margin-left: 814px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">(external) Component Assumption of use</div></div></div></foreignObject><text x="873" y="692" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">(external) Component...</text></switch></g><path d="M 693 558 L 813 558 L 813 626 Q 783 604.4 753 626 Q 723 647.6 693 626 L 693 570 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 586px; margin-left: 694px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">(external) Module Safety Manual</div></div></div></foreignObject><text x="753" y="590" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">(external) Module Sa...</text></switch></g><path d="M 510 720 L 770 720 L 806.63 720" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 811.88 720 L 804.88 723.5 L 806.63 720 L 804.88 716.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 721px; margin-left: 621px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfils</div></div></div></foreignObject><text x="621" y="724" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfils</text></switch></g><path d="M 510 335 L 843 335 L 843 653.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 843 658.88 L 839.5 651.88 L 843 653.63 L 846.5 651.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 481px; margin-left: 841px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfils</div></div></div></foreignObject><text x="841" y="484" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfils</text></switch></g><path d="M 873 653.63 L 873 130 L 180 130 L 180 80 L 162 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 873 658.88 L 869.5 651.88 L 873 653.63 L 876.5 651.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 130px; margin-left: 490px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="490" y="133" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 131px; margin-left: 489px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="489" y="134" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></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> diff --git a/docs/process/process_areas/requirements_engineering/_assets/requirements_versioning.drawio.svg b/docs/process/process_areas/requirements_engineering/_assets/requirements_versioning.drawio.svg deleted file mode 100644 index 2adc5603bb..0000000000 --- a/docs/process/process_areas/requirements_engineering/_assets/requirements_versioning.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="691px" height="471px" viewBox="-0.5 -0.5 691 471" content="<mxfile host="Electron" modified="2024-10-16T13:04:06.587Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="M3R_EShx2tEZ_m6WQM1A" version="21.6.5" type="device"> <diagram name="Seite-1" id="J4VHkeiqsm2Yx-6ox1-8"> <mxGraphModel dx="810" dy="473" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="MRJbabSn3vB_kUc8ObHd-22" value="Commit 1" style="rounded=0;align=left;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;textDirection=ltr;html=1;whiteSpace=wrap;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="170" y="180" width="690" height="230" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-37" value="Commit 3" style="rounded=0;align=left;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;textDirection=ltr;html=1;whiteSpace=wrap;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="210" y="240" width="220" height="410" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-25" value="Commit 2" style="verticalLabelPosition=middle;verticalAlign=top;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=left;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="530" y="230" width="240" height="410" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-2" value="Requirement&lt;br&gt;&lt;ul style=&quot;line-height: 120%;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;UID: REQ_11&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Hash: 11&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Satisfies: REQ_1&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Satisfies Hash: 1&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;spacingTop=0;" parent="1" vertex="1"> <mxGeometry x="237" y="270" width="170" height="110" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-23" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.tick;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;" parent="1" vertex="1"> <mxGeometry x="800" y="200" width="50" height="50" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-27" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#e51400;strokeColor=#B20000;fontColor=#ffffff;" parent="1" vertex="1"> <mxGeometry x="710" y="250" width="50" height="50" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-30" value="Satisfies" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;align=right;labelPosition=center;verticalLabelPosition=middle;verticalAlign=bottom;" parent="1" source="MRJbabSn3vB_kUc8ObHd-2" edge="1"> <mxGeometry x="0.2157" y="-2" width="50" height="50" relative="1" as="geometry"> <mxPoint x="560" y="620" as="sourcePoint" /> <mxPoint x="560" y="297.5" as="targetPoint" /> <mxPoint y="1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-32" value="Satisfies Hash" style="endArrow=classic;html=1;rounded=0;entryX=0.008;entryY=0.622;entryDx=0;entryDy=0;entryPerimeter=0;align=right;labelPosition=left;verticalLabelPosition=top;verticalAlign=bottom;" parent="1" edge="1"> <mxGeometry x="0.3249" y="1" width="50" height="50" relative="1" as="geometry"> <mxPoint x="410" y="331" as="sourcePoint" /> <mxPoint x="560.96" y="330.98" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-34" value="Requirement&lt;br&gt;&lt;ul style=&quot;line-height: 120%;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;UID: REQ_1&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Hash: 1&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;spacingTop=0;" parent="1" vertex="1"> <mxGeometry x="560" y="270" width="130" height="110" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-40" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="MRJbabSn3vB_kUc8ObHd-34" target="MRJbabSn3vB_kUc8ObHd-35" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-35" value="Requirement&lt;br&gt;&lt;ul style=&quot;line-height: 120%;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;UID: REQ_1&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Hash: 2&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;spacingTop=0;" parent="1" vertex="1"> <mxGeometry x="560" y="496.25" width="130" height="110" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-38" value="Requirement&lt;br&gt;&lt;ul style=&quot;line-height: 120%;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;UID: REQ_11&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Hash: 12&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Satisfies: REQ_1&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Satisfies Hash:2&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;spacingTop=0;" parent="1" vertex="1"> <mxGeometry x="237" y="496.25" width="170" height="110" as="geometry" /> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="314.5" y="380.25" as="sourcePoint" /> <mxPoint x="314.5" y="496.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-45" value="Depends On" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.802;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="MRJbabSn3vB_kUc8ObHd-37" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="570" as="sourcePoint" /> <mxPoint x="610" y="490" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="MRJbabSn3vB_kUc8ObHd-46" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.tick;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;" parent="1" vertex="1"> <mxGeometry x="470" y="506.25" width="50" height="50" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><rect x="0" y="0" width="690" height="230" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" dir="ltr" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 688px; height: 1px; padding-top: 7px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Commit 1</div></div></div></foreignObject><text x="2" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Commit 1</text></switch></g><rect x="40" y="60" width="220" height="410" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" dir="ltr" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 218px; height: 1px; padding-top: 67px; margin-left: 42px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Commit 3</div></div></div></foreignObject><text x="42" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Commit 3</text></switch></g><path d="M 360 50 L 600 50 L 600 460 L 360 460 L 360 50 Z" fill="#f8cecc" stroke="none" pointer-events="all"/><path d="M 365 55 L 365 455 L 365 455 L 595 455 L 595 55 L 365 55" fill="none" stroke="none" pointer-events="all"/><path d="M 360 50 L 600 50 L 600 460 L 360 460 L 360 50 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 57px; margin-left: 362px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Commit 2</div></div></div></foreignObject><text x="362" y="69" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Commit 2</text></switch></g><rect x="67" y="90" width="170" height="110" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 145px; margin-left: 68px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement<br /><ul style="line-height: 120%;"><li style="text-align: left;">UID: REQ_11</li><li style="text-align: left;">Hash: 11</li><li style="text-align: left;">Satisfies: REQ_1</li><li style="text-align: left;">Satisfies Hash: 1</li></ul></div></div></div></foreignObject><text x="152" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement...</text></switch></g><path d="M 630.21 54.19 C 630.75 52.5 632.08 51.08 633.89 50.3 C 635.7 49.52 637.81 49.44 639.69 50.09 C 642.43 51.24 644.55 53.26 645.62 55.72 C 650.5 43.7 657.94 32.58 667.54 22.92 C 670.26 20.78 674.07 20 677.61 20.87 C 678.51 20.99 679.28 21.51 679.64 22.24 C 680 22.96 679.9 23.8 679.38 24.45 C 666.34 37.2 656.64 52.24 650.95 68.54 C 647.59 70 643.64 70 640.28 68.54 C 637.75 63.67 634.35 59.17 630.21 55.21 C 630 54.89 630 54.5 630.21 54.19 Z" fill="#60a917" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all"/><path d="M 540 70 L 554.58 70 L 565 84.8 L 575.42 70 L 590 70 L 572.29 95 L 590 120 L 575.42 120 L 565 105.2 L 554.58 120 L 540 120 L 556.67 95 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><path d="M 237 117.5 L 383.63 117.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 388.88 117.5 L 381.88 121 L 383.63 117.5 L 381.88 114 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 118px; margin-left: 328px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Satisfies</div></div></div></foreignObject><text x="328" y="118" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="end">Satisfies</text></switch></g><path d="M 240 151 L 384.59 150.98" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 389.84 150.98 L 382.84 154.48 L 384.59 150.98 L 382.84 147.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 147px; margin-left: 338px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Satisfies Hash</div></div></div></foreignObject><text x="338" y="147" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="end">Satisfies...</text></switch></g><rect x="390" y="90" width="130" height="110" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 145px; margin-left: 391px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement<br /><ul style="line-height: 120%;"><li style="text-align: left;">UID: REQ_1</li><li style="text-align: left;">Hash: 1</li></ul></div></div></div></foreignObject><text x="455" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement...</text></switch></g><path d="M 455 200 L 455 309.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 455 315.13 L 451.5 308.13 L 455 309.88 L 458.5 308.13 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="390" y="316.25" width="130" height="110" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 371px; margin-left: 391px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement<br /><ul style="line-height: 120%;"><li style="text-align: left;">UID: REQ_1</li><li style="text-align: left;">Hash: 2</li></ul></div></div></div></foreignObject><text x="455" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement...</text></switch></g><rect x="67" y="316.25" width="170" height="110" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 371px; margin-left: 68px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement<br /><ul style="line-height: 120%;"><li style="text-align: left;">UID: REQ_11</li><li style="text-align: left;">Hash: 12</li><li style="text-align: left;">Satisfies: REQ_1</li><li style="text-align: left;">Satisfies Hash:2</li></ul></div></div></div></foreignObject><text x="152" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement...</text></switch></g><path d="M 144.5 200.25 L 144.5 309.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 144.5 315.13 L 141 308.13 L 144.5 309.88 L 148 308.13 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 350 390 L 266.37 388.9" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 261.12 388.83 L 268.16 385.43 L 266.37 388.9 L 268.07 392.43 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 389px; margin-left: 305px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Depends On</div></div></div></foreignObject><text x="305" y="393" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Depends On</text></switch></g><path d="M 300.21 360.44 C 300.75 358.75 302.08 357.33 303.89 356.55 C 305.7 355.77 307.81 355.69 309.69 356.34 C 312.43 357.49 314.55 359.51 315.62 361.97 C 320.5 349.95 327.94 338.83 337.54 329.17 C 340.26 327.03 344.07 326.25 347.61 327.12 C 348.51 327.24 349.28 327.76 349.64 328.49 C 350 329.21 349.9 330.05 349.38 330.7 C 336.34 343.45 326.64 358.49 320.95 374.79 C 317.59 376.25 313.64 376.25 310.28 374.79 C 307.75 369.92 304.35 365.42 300.21 361.46 C 300 361.14 300 360.75 300.21 360.44 Z" fill="#60a917" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all"/></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/docs/process/process_areas/requirements_engineering/_assets/requirements_workflow.drawio.svg b/docs/process/process_areas/requirements_engineering/_assets/requirements_workflow.drawio.svg deleted file mode 100644 index a06cc5452a..0000000000 --- a/docs/process/process_areas/requirements_engineering/_assets/requirements_workflow.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="989px" height="422px" viewBox="-0.5 -0.5 989 422" content="<mxfile host="Electron" modified="2025-02-20T16:40:40.520Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="SxQ1LWyBYnX7ThCrZUCZ" version="21.6.5" type="device"> <diagram name="Page-1" id="2YBvvXClWsGukQMizWep"> <mxGraphModel dx="1900" dy="1824" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="Hntfi4oxYQpWDpjlRvIa-56" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fff2cc;strokeColor=#d6b656;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Hntfi4oxYQpWDpjlRvIa-51" target="Hntfi4oxYQpWDpjlRvIa-54" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="570" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-57" value="PR Review" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="Hntfi4oxYQpWDpjlRvIa-56" vertex="1" connectable="0"> <mxGeometry x="0.2444" y="-2" relative="1" as="geometry"> <mxPoint x="-16" y="-2" as="offset" /> </mxGeometry> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-51" value="Linkage Document" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="320" y="-39" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="VYMki3NM2-EhGKRzBOK4-4" value="Parent Requirement" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-30" y="112" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="j39KOtYZw7OI244otOMr-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="375" y="112" as="sourcePoint" /> <mxPoint x="25" y="112" as="targetPoint" /> <Array as="points"> <mxPoint x="375" y="70" /> <mxPoint x="25" y="70" /> </Array> </mxGeometry> </mxCell> <mxCell id="VYMki3NM2-EhGKRzBOK4-5" value="Parent Requirement&lt;br&gt;[status = valid]" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="320" y="112" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="VYMki3NM2-EhGKRzBOK4-7" value="PR Review" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="VYMki3NM2-EhGKRzBOK4-4" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="560" y="412" as="sourcePoint" /> <mxPoint x="190" y="152" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="VYMki3NM2-EhGKRzBOK4-17" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.583;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="VYMki3NM2-EhGKRzBOK4-5" target="Hntfi4oxYQpWDpjlRvIa-60" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="570" y="252" as="sourcePoint" /> <mxPoint x="540" y="152" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="GX6SRqhSHNFPypbdxTB8-1" value="Requirement Level n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#9673a6;fillColor=#e1d5e7;" parent="1" vertex="1"> <mxGeometry x="-90" y="1" width="130" height="30" as="geometry" /> </mxCell> <mxCell id="GX6SRqhSHNFPypbdxTB8-2" value="Requirement Level n+1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#9673a6;fillColor=#e1d5e7;" parent="1" vertex="1"> <mxGeometry x="-90" y="280" width="150" height="30" as="geometry" /> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-1" value="Requirement" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="320" y="302" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-29" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="H3sdo_UL-sM59cVTIrCO-2" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="890" y="340" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-2" value="Requirement&lt;br&gt;[status = valid]" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="670" y="300" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-4" value="" style="endArrow=classic;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endFill=1;fontStyle=1;entryX=0.502;entryY=0.905;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="H3sdo_UL-sM59cVTIrCO-1" target="VYMki3NM2-EhGKRzBOK4-5" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="495" y="290" as="sourcePoint" /> <mxPoint x="545" y="240" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-5" value="links&lt;br&gt;[satisfies = parentreq.uid]&lt;br&gt;[linkhash = parentreq.hash]" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="H3sdo_UL-sM59cVTIrCO-4" vertex="1" connectable="0"> <mxGeometry x="-0.2825" y="-3" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="H3sdo_UL-sM59cVTIrCO-10" value="PR Review" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="440" y="340" as="sourcePoint" /> <mxPoint x="530" y="340" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Q-ckJXsvLhkkJXZH8a_q-2" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-90" y="240" as="sourcePoint" /> <mxPoint x="880" y="240" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-1" value="1" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="-20" y="164" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-6" value="3" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="330" y="164" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-7" value="4" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="330" y="352" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-19" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="KzL9urL_T9ZUXgweVbVl-9" target="H3sdo_UL-sM59cVTIrCO-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-9" value="5" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="330" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-17" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Hntfi4oxYQpWDpjlRvIa-1" target="VYMki3NM2-EhGKRzBOK4-5" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="220" y="152" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-18" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;[status = valid]&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="220" y="154" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-20" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;[status = valid]&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="570" y="340" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-22" value="6" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="680" y="350" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="KzL9urL_T9ZUXgweVbVl-23" value="7" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="330" y="8" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-1" value="2" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="190" y="142" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-3" value="Parent Requirement&lt;br&gt;[reqcovered&amp;nbsp;= yes]" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="770" y="111" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-64" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" source="Hntfi4oxYQpWDpjlRvIa-54" target="Hntfi4oxYQpWDpjlRvIa-60" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-54" value="Formal Review&amp;nbsp;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="610" y="-39" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-55" value="8" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="620" y="11" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-63" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" source="Hntfi4oxYQpWDpjlRvIa-60" target="Hntfi4oxYQpWDpjlRvIa-3" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="Hntfi4oxYQpWDpjlRvIa-60" value="&amp;amp;" style="html=1;whiteSpace=wrap;aspect=fixed;shape=isoRectangle;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="650" y="139" width="40" height="24" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><path d="M 530 40 L 693.63 40" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 698.88 40 L 691.88 43.5 L 693.63 40 L 691.88 36.5 Z" fill="#d6b656" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 41px; margin-left: 621px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">PR Review</div></div></div></foreignObject><text x="621" y="44" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">PR Review</text></switch></g><path d="M 410 0 L 530 0 L 530 68 Q 500 46.4 470 68 Q 440 89.6 410 68 L 410 12 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 28px; margin-left: 411px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linkage Document</div></div></div></foreignObject><text x="470" y="32" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Linkage Document</text></switch></g><path d="M 60 151 L 180 151 L 180 219 Q 150 197.4 120 219 Q 90 240.6 60 219 L 60 163 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 179px; margin-left: 61px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Parent Requirement</div></div></div></foreignObject><text x="120" y="183" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Parent Requirement</text></switch></g><path d="M 465 151 L 465 109 L 115 109 L 115 144.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 115 149.88 L 111.5 142.88 L 115 144.63 L 118.5 142.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 410 151 L 530 151 L 530 219 Q 500 197.4 470 219 Q 440 240.6 410 219 L 410 163 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 179px; margin-left: 411px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Parent Requirement<br />[status = valid]</div></div></div></foreignObject><text x="470" y="183" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Parent Requirement...</text></switch></g><path d="M 180 191 L 273.63 191" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 278.88 191 L 271.88 194.5 L 273.63 191 L 271.88 187.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 191px; margin-left: 230px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">PR Review</div></div></div></foreignObject><text x="230" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">PR Review</text></switch></g><path d="M 530 191 L 733.63 191.96" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 738.88 191.99 L 731.87 195.45 L 733.63 191.96 L 731.9 188.45 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="40" width="130" height="30" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 55px; margin-left: 65px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Requirement Level n</div></div></div></foreignObject><text x="65" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement Level n</text></switch></g><rect x="0" y="319" width="150" height="30" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 334px; margin-left: 75px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Requirement Level n+1</div></div></div></foreignObject><text x="75" y="338" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement Level n+1</text></switch></g><path d="M 410 341 L 530 341 L 530 409 Q 500 387.4 470 409 Q 440 430.6 410 409 L 410 353 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 369px; margin-left: 411px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement</div></div></div></foreignObject><text x="470" y="373" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement</text></switch></g><path d="M 880 379 L 930 379 L 973.63 379" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 978.88 379 L 971.88 382.5 L 973.63 379 L 971.88 375.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 760 339 L 880 339 L 880 407 Q 850 385.4 820 407 Q 790 428.6 760 407 L 760 351 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 367px; margin-left: 761px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Requirement<br />[status = valid]</div></div></div></foreignObject><text x="820" y="371" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requirement...</text></switch></g><path d="M 470 341 L 470.22 231.64" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 470.24 225.64 L 474.22 233.64 L 470.22 231.64 L 466.22 233.63 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 474px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">links<br />[satisfies = parentreq.uid]<br />[linkhash = parentreq.hash]</div></div></div></foreignObject><text x="474" y="303" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">links...</text></switch></g><path d="M 530 379 L 613.63 379" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 618.88 379 L 611.88 382.5 L 613.63 379 L 611.88 375.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 379px; margin-left: 575px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">PR Review</div></div></div></foreignObject><text x="575" y="382" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">PR Review</text></switch></g><path d="M 0 279 L 970 279" fill="none" stroke="#9673a6" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><ellipse cx="80" cy="213" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 213px; margin-left: 71px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1</div></div></div></foreignObject><text x="80" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><ellipse cx="430" cy="213" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 213px; margin-left: 421px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">3</div></div></div></foreignObject><text x="430" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">3</text></switch></g><ellipse cx="430" cy="401" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 401px; margin-left: 421px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">4</div></div></div></foreignObject><text x="430" y="405" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">4</text></switch></g><path d="M 640 379 L 753.63 379" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 758.88 379 L 751.88 382.5 L 753.63 379 L 751.88 375.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="630" cy="379" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 379px; margin-left: 621px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">5</div></div></div></foreignObject><text x="630" y="383" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">5</text></switch></g><path d="M 300 191 L 403.63 191" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 408.88 191 L 401.88 194.5 L 403.63 191 L 401.88 187.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="310" y="193" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 200px; margin-left: 312px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">[status = valid]</span></div></div></div></foreignObject><text x="312" y="212" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[status = val...</text></switch></g><rect x="660" y="379" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 386px; margin-left: 662px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">[status = valid]</span></div></div></div></foreignObject><text x="662" y="398" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[status = val...</text></switch></g><ellipse cx="780" cy="399" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 399px; margin-left: 771px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">6</div></div></div></foreignObject><text x="780" y="403" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">6</text></switch></g><ellipse cx="430" cy="57" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 57px; margin-left: 421px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">7</div></div></div></foreignObject><text x="430" y="61" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">7</text></switch></g><ellipse cx="290" cy="191" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 191px; margin-left: 281px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2</div></div></div></foreignObject><text x="290" y="195" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><path d="M 860 150 L 980 150 L 980 218 Q 950 196.4 920 218 Q 890 239.6 860 218 L 860 162 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 178px; margin-left: 861px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Parent Requirement<br />[reqcovered = yes]</div></div></div></foreignObject><text x="920" y="182" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Parent Requirement...</text></switch></g><path d="M 760 80 L 760 171.63" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 760 176.88 L 756.5 169.88 L 760 171.63 L 763.5 169.88 Z" fill="#d6b656" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 700 0 L 820 0 L 820 68 Q 790 46.4 760 68 Q 730 89.6 700 68 L 700 12 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 28px; margin-left: 701px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Formal Review </div></div></div></foreignObject><text x="760" y="32" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Formal Review </text></switch></g><ellipse cx="720" cy="60" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 60px; margin-left: 711px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">8</div></div></div></foreignObject><text x="720" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">8</text></switch></g><path d="M 780 190 L 853.63 190" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 858.88 190 L 851.88 193.5 L 853.63 190 L 851.88 186.5 Z" fill="#d6b656" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 740 190 L 760 178.45 L 780 190 L 760 201.55 L 740 190 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 190px; margin-left: 741px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">&</div></div></div></foreignObject><text x="760" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">&</text></switch></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/docs/process/process_areas/requirements_engineering/guidance/index.rst b/docs/process/process_areas/requirements_engineering/guidance/index.rst deleted file mode 100644 index e88604cad2..0000000000 --- a/docs/process/process_areas/requirements_engineering/guidance/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - requirements_guideline - requirements_inspection_checklist - requirements_templates - requirements_process_reqs diff --git a/docs/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst b/docs/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst deleted file mode 100644 index be1b18a877..0000000000 --- a/docs/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst +++ /dev/null @@ -1,218 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guideline -######### - -.. gd_guidl:: Requirements Guideline - :id: gd_guidl__req__engineering - :status: valid - :complies: std_req__isopas8926__44421, std_req__isopas8926__44422, std_req__isopas8926__44423 - -This document describes the general guidances for requirements based on the concept which is defined :need:`[[title]]<doc_concept__req__process>`. - -General Hints -============= - -Templates ---------- - -*Need* templates displaying the correct syntax and attribute definition are provided for each requirement type. For VScode code snippets are included in the workspace settings which will provide in-place the definition of requirements including all mandatory attributes: - -.. list-table:: Overview - :header-rows: 1 - :widths: 37, 37, 25 - - * - Requirement Level - - Template - - VS Code Snippet - * - Stakeholder Requirements - - :need:`[[title]] <gd_temp__req__stkh_req>` - - stkh_req_t - * - Feature Requirements - - :need:`[[title]] <gd_temp__req__feat_req>` - - feat_req_t - * - Component Requirements - - :need:`[[title]] <gd_temp__req__comp_req>` - - comp_req_t - * - AoU Requirements - - :need:`[[title]] <gd_temp__req__aou_req>` - - aou_req_t - * - Process Requirements - - :need:`[[title]] <gd_temp__req__process_req>` - - gd_req_t - -Additionally for the formulation of requirements following template is available: :need:`[[title]]<gd_temp__req__formulation>` - -Attributes ----------- - -For all requirements following mandatory attributes need to be defined: - -.. needtable:: Overview of mandatory requirement attributes - :tags: requirements_engineering - :filter: "mandatory" in tags and "attribute" in tags and type == "gd_req" - :style: table - :columns: title - :colwidths: 30 - - -* Title and description: For the formulation of requirements following template shall be used :need:`[[title]]<gd_temp__req__formulation>` -* ID: The naming convention for the ID is defined :ref:`here <naming_convention_needs>`. -* Furthermore the requirements need to be versioned. Therefore a hash value of the requirement will to be calculated. The concept is described: :ref:`traceability concept for requirements` -* For the remaining attributes only predefined values can be used. A more detailed description can be found here: :ref:`attributes of the requirements` - -Checks ------- - -During the sphinx build checks will be performed on the requirements. Those are specified via following process requirements: - -.. needtable:: Overview checks for requirement - :tags: requirements_engineering - :filter: "check" in tags and "attribute" in tags and type == "gd_req" - :style: table - :columns: title;id - :colwidths: 60,40 - -.. _workflow_requirements: - -Workflow for Creating a Requirement -=================================== - -This section describes in detail which steps need to be performed to create a requirement based on :numref:`requirements_workflow_fig` - -.. list-table:: Workflow for creating a requirement - :header-rows: 1 - :widths: 10,60,30 - - * - Step - - Description - - Responsible - * - :ref:`1. <create_parent_requirement>` - - Create parent requirement - - :need:`[[title]] <rl__contributor>` - * - :ref:`2. <review_parent_requirement>` - - Review parent requirement - - :need:`[[title]] <rl__committer>` - * - 3. - - Merge valid parent requirement to main branch - - :need:`[[title]] <rl__committer>` - * - :ref:`4. <derive_child_requirement>` - - Derive child requirement and establish traceability - - :need:`[[title]] <rl__contributor>` - * - :ref:`5. <review_child_requirement>` - - Review child requirement - - :need:`[[title]] <rl__committer>` - * - 6. - - Merge valid child requirement to main branch - - :need:`[[title]] <rl__committer>` - * - :ref:`7. <generate_linkage_document>` - - Generate linkage document - - :need:`[[title]] <rl__contributor>` - * - :ref:`8. <formal_requirement_review>` - - Perform formal review of requirements - - :need:`[[title]] <rl__committer>` - -.. _create_parent_requirement: - -Create parent requirement -------------------------- - -In this step the parent requirements shall be created. Stakeholder- and feature requirements should be generated in the score repository. - -Therefore following guidelines are available: - -* :ref:`Branch Naming Conventions <branch_naming>` -* :ref:`Git Guidelines <git_guidelines>` -* :ref:`Requirement Templates <requirement templates>` - -.. _review_parent_requirement: - -Review parent requirement -------------------------- - -As soon as the parent requirements are in a mature state it can be :ref:`reviewed <review_concept>` and merged into the main branch of the score repository. However this is not the formal inspection of the requirements, this will follow in an upcoming step. - -Following roles should be included in the review: - -* :need:`[[title]] <rl__safety_manager>` -* :need:`[[title]] <rl__security_manager>` -* :need:`[[title]] <rl__committer>` - -.. _derive_child_requirement: - -Derive child requirement and establish traceability ---------------------------------------------------- - -In an upcoming step the child requirements shall be derived from the parent requirements. Feature requirements shall be placed in the score repository again, while component requirements shall be placed in the module repository. During this process the derived requirements shall also be linked according to the defined traceability matrix to the parent requirements. - -Following guidelines are available: - -* :ref:`Branch Naming Conventions <branch_naming>` -* :ref:`Git Guidelines <git_guidelines>` -* :ref:`Requirement Templates <requirement templates>` - -.. _review_child_requirement: - -Review child requirement ------------------------- - -As soon as also the child requirements are in a mature state they can be :ref:`reviewed <review_concept>` and merged into the main branch of the respective repository. Again this is not a formal inspection as it will be performed in a later step. - -.. _generate_linkage_document: - -Generate linkage document -------------------------- - -As parent and child requirements are now available the linkage of the requirements can be established. This should be performed as described in :ref:`coverage_of_requirements` - - -.. _formal_requirement_review: - -Perform formal review of requirements -------------------------------------- - -In a last step the requirements shall be formally inspected. Therefore a checklist exists: :need:`[[title]] <gd_chklst__req__inspection>` - -Following roles should be included in the review: - -* :need:`[[title]] <rl__safety_manager>` -* :need:`[[title]] <rl__security_manager>` -* :need:`[[title]] <rl__committer>` - - -Workflow for Creating and Linking Assumption of Use (AoU) -********************************************************* - -An AoU is a category of requirement which is originates from a safety concept of an architectural element (and thus it is confirmed by a safety analysis). As it can not be fulfilled by the architecture element (e.g. component) itself, it needs to be fulfilled by the user of the module. -In Safety Elements out of Context (SEooC) the AoUs will normally be part of the safety manual. -In this project (as it develops SEooCs) these AoUs are created both internally and externally - if existing SEooCs are integrated into the platform (e.g. a qualified Operating System). -For AoU which arise from S-CORE specific modules the template is almost identical to the one for feature/component requirements. The only difference is that it defined such that the attribute "satisfies" is replaced with the attribute "mitigates" (see picture below). -For externally provided AoUs of course the sentence template cannot be taken into account, as these are only imported from an external safety manual. It is also not possible to link it to other development artifacts via the attribute "mitigates". - -AoUs can be of different class and shall be handled by tracing those - -* to Feature/Component Architecture (via satisfies), if those are on Component Level and can be fulfilled there -* to Stakeholder Requirements (via satisfies), if AoU are of general nature and can be fulfilled by platform -* or by containing those in Platform Safety Manual, if AoU cannot be fulfilled by platform but need to be satisfied by the user of the platform - - -.. figure:: ../_assets/aou_traceability.drawio.svg - :align: center - :width: 100% - :name: aou_traceability - - AoU Traceability - -:numref:`aou_traceability` is an extension of the workproduct traceability to show the handling of (external) AoU. Note that the component level displayed in green shows two components - on the right the one exporting AoU to be fulfilled by others, left the component which fulfills and exports AoU (but without the traceability shown on the right to reduce complexity). diff --git a/docs/process/process_areas/requirements_engineering/guidance/requirements_inspection_checklist.rst b/docs/process/process_areas/requirements_engineering/guidance/requirements_inspection_checklist.rst deleted file mode 100644 index 3b50a24101..0000000000 --- a/docs/process/process_areas/requirements_engineering/guidance/requirements_inspection_checklist.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _requirement inspection checklist: - -Requirement Inspection Checklist -================================ - -.. gd_chklst:: Requirements Inspection Checklist Template - :id: gd_chklst__req__inspection - :status: valid - :tags: requirements_engineering - - **Purpose** - The purpose of this requirement inspection template is to collect the topics to be checked during requirements inspection. - It will be filled out within the github "inspection" pull request review of every requirement type. - - **Checklist** - - .. list-table:: Requirement Inspection Checklist - :header-rows: 1 - :widths: 10,30,50,6,6,8 - - * - Review ID - - Acceptance Criteria - - Guidance - - Passed - - Remarks - - Issue link - * - REQ_01_01 - - Is the requirement sentence template used? - - see :need:`gd_temp__req__formulation`, this includes the use of "shall". - - - - - - - * - REQ_02_01 - - Is the requirement description *comprehensible* ? - - If you think the requirement is hard to understand, comment here. - - - - - - - * - REQ_02_02 - - Is the requirement description *unambiguous* ? - - Especially search for "weak words" like "about", "etc.", "relevant" and others (see the internet documentation on this). This check shall be supported by tooling. - - - - - - - * - REQ_02_03 - - Is the requirement description *atomic* ? - - A good way to think about this is to consider if the requirement may be tested by one (positive) test case or needs more of these. The sentence template should also avoid being non-atomic already. Note that there are cases where also non-atomic requirements are the better ones, for example if those are better understandable. - - - - - - - * - REQ_02_04 - - Is the requirement description *feasible* ? - - Expectation is that at the time of the inspection the requirement has already some implementation. This can be checked via traces, but also :need:`gd_req__req__attr_impl` shows this. In case the requirement is not mature enough at the time of inspection (i.e. not implemented at least as "proof-of-concept"), a development expert should be invited to the Pull-Request review to explicitly check this item. - - - - - - - * - REQ_02_05 - - Is the requirement description *independent from implementation* ? - - This checkpoint should improve requirements definition in the sense that the "what" is described and not the "how" - the latter should be described in architecture/design derived from the requirement. But there can also be a good reason for this, for example we would require using a file format like JSON and even specify the formatting standard already on stakeholder requirement level because we want to be compatible. A finding in this checkpoint does not mean there is a safety problem in the requirement. - - - - - - - * - REQ_03_01 - - For stakeholder requirements: Is the *rationale* correct? - - Rationales explain why the top level requirements were invented. Do those cover the requirement? - - - - - - - * - REQ_03_02 - - For other requirements: Is the *linkage to the parent requirement* correct? - - Linkage to correct levels and ASIL attributes is checked automatically, but it needs checking if the child requirement implements (at least) a part of the parent requirement. - - - - - - - * - REQ_04_01 - - Is the requirement *internally and externally consistent*? - - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. - - - - - - - * - REQ_05_01 - - Do the software requirements consider *timing constraints of the parent requirement*? - - This bullet point encourages to think about timing constraints even if those are not explicitly mentioned in the parent requirement. If the reviewer of a requirement already knows or suspects that the implementation will be time consuming, one should think of the expectation of a "user". - - - - - - - * - REQ_06_01 - - Does the Requirement consider *external interfaces*? - - The SW platform's external interfaces (to the user) are defined in the Feature Architecture, so the Feature and Component Requirements should determine the data consumed and set on these interfaces. Are output values completely defined? - - - - - - - * - REQ_07_01 - - Is the *ASIL Attribute* set correctly? - - Derived requirements are checked automatically, see :need:`gd_req__req__linkage_safety`. But for the top level requirements this needs to be checked for correctness. Also AoU from external components need check for correct ASIL as those are the "origin" of safety requirements towards the SW platform. - - - - - - - * - REQ_07_02 - - Is the attribute *security* set correctly? - - Stakeholder requirements security attribute should be set based on Threat Analysis and Risk Assessment (TARA) (process is TBD). Checklist item is supported by automated check: "Every requirement which satisfies a requirement with security attribute set to YES inherits this". Expectation is that the feature/component requirements/architecture may also be subject to a Software Security Criticality Analysis (process is TBD). - - - - - - - * - REQ_08_01 - - Is the requirement *verifiable*? - - Expectation is that at the time of the inspection already tests are created for the requirement. This can be checked via traces, but also :need:`gd_req__req__attr_test_covered` shows this. In case the requirement is not mature enough at the time of inspection (i.e. missing test cases), a test expert should be invited to the Pull-Request review to explicitly check this item. - - - - - - diff --git a/docs/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst b/docs/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst deleted file mode 100644 index 277232df61..0000000000 --- a/docs/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst +++ /dev/null @@ -1,275 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_requirements: - -Process Requirements -==================== - -.. gd_req:: Requirements Structure - :id: gd_req__req__structure - :status: valid - :tags: structure - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432 - - Requirements shall be hierarchically grouped into different levels. - - Following levels are defined: - - * Stakeholder requirement - * Feature requirement - * Component requirement - * Assumption of use requirement - * Process requirement - -.. _process_requirement_attributes: - -Process Requirement Attributes ------------------------------- - -.. gd_req:: Requirement attribute: UID - :id: gd_req__req__attr_uid - :status: valid - :tags: attribute,mandatory - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6432 - - Each requirement shall have a unique ID. It shall be in a format which is also human readable and consists of - - * type of requirement - * last part of the feature tree - * keyword describing the content of the requirement. - - The naming convention is defined here: :ref:`naming_convention_needs` - -.. gd_req:: Requirement attribute: title - :id: gd_req__requirements_attr_title - :status: valid - :tags: attribute, mandatory - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6424 - - The title of the requirement shall provide a short summary of the description. This means that e.g. the word "shall" must not be used int the title for: - - * Stakeholder Requirements - * Feature Requirements - * Component Requirements - -.. gd_req:: Requirement attribute: description - :id: gd_req__requirements_attr_description - :status: valid - :tags: attribute, mandatory - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6424 - - Each requirement shall have a description. - - .. note:: - - *ISO/IEC/IEEE/29148 - Systems and software engineering — Life cycle processes — Requirements engineering* defines general concepts including terms and examples for functional requirements syntax. - - The concepts shall apply. - -.. gd_req:: Requirement attribute: type - :id: gd_req__req__attr_type - :status: valid - :tags: attribute, mandatory - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - Each requirement shall have a type of one of following options: - - * Functional - * Interface - * Process - * Legal - * Non-Functional - -.. gd_req:: Requirements attribute: security - :id: gd_req__requirements_attr_security - :status: valid - :tags: attribute, mandatory - :satisfies: wf__req__feat_req, wf__req__comp_req - - Each requirement shall have a security relevance identifier: - - * Yes - * No - -.. gd_req:: Requirement attribute: safety - :id: gd_req__req__attr_safety - :status: valid - :tags: attribute, mandatory - :complies: std_req__iso26262__support_6421, std_req__iso26262__support_6425 - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - Each requirement shall have a automotive safety integrity level (ASIL) identifier: - - * QM - * ASIL_B - * ASIL_D - -.. gd_req:: Requirement attribute: status - :id: gd_req__req__attr_status - :status: valid - :tags: attribute, mandatory - :complies: std_req__iso26262__support_6425 - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - Each requirement shall have a status: - - * valid - * invalid - -.. gd_req:: Requirement attribute: rationale - :id: gd_req__req__attr_rationale - :status: valid - :tags: attribute, mandatory - :satisfies: wf__req__stkh_req - - Each stakeholder requirement shall provide a in the attribute rationale the reason why that the requirement is needed. - -.. _process_requirement_linkage: - -Process Requirement Linkage -''''''''''''''''''''''''''' - -.. gd_req:: Requirement Linkage - :id: gd_req__req__linkage - :status: valid - :tags: attribute, automated - :complies: std_req__iso26262__support_6432 - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - Requirements shall be linked to its adjacent level via the attribute satisfies. - - * stakeholder requirements <-> feature requirements - * feature requirements <-> component requirements - * workflow <-> process requirements - -.. gd_req:: Requirement attribute: requirement covered - :id: gd_req__req__attr_req_cov - :status: valid - :tags: attribute, automated - :complies: std_req__iso26262__support_6423 - :satisfies: wf__req__stkh_req, wf__req__feat_req - - It shall be possible to specify the requirement coverage. - - * Yes - * No - -.. gd_req:: Requirement attribute: link to implementation - :id: gd_req__req__attr_impl - :status: valid - :tags: attribute, automated - :satisfies: wf__req__feat_req, wf__req__comp_req - - It shall be possible to link requirements to code and include a link to github to the respective line of code in an attribute of the requirement. - -.. gd_req:: Requirement attribute: link to test - :id: gd_req__req__attr_testlink - :status: valid - :tags: attribute, automated - :satisfies: wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_944 - - It shall be possible to link requirements to tests and automatically include a link to the test case in the attribute testlink. - -.. gd_req:: Requirement attribute: test covered - :id: gd_req__req__attr_test_covered - :status: valid - :tags: attribute, automated - :satisfies: wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6433, std_req__iso26262__software_944 - - It shall be possible to specify if requirements are completely covered by the linked test cases. - - * Yes - * No - -.. gd_req:: Requirement attribute: versioning - :id: gd_req__req__attr_hash - :status: valid - :tags: attribute, automated - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6425, std_req__iso26262__support_6434 - - It shall be possible to provide a versioning for requirements. It shall be possible to detect if any of the mandatory attributes differ from the versioning: :need:`gd_req__req__attr_mandatory` - - A more detailed description of the concept can be found here: :need:`gd_req__req__attr_hash` - -.. _process_requirement_checks: - -Process Requirements Checks -''''''''''''''''''''''''''' - -.. gd_req:: Requirements mandatory attributes provided - :id: gd_req__req__attr_mandatory - :status: valid - :tags: attribute, check - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - It shall be checked if all mandatory attributes for each requirement is provided by the user. For all requirements following attributes shall be mandatory: - - .. needtable:: Overview mandatory requirement attributes - :filter: "mandatory" in tags and "attribute" in tags and "requirements_engineering" in tags and type == "gd_req" - :style: table - :columns: title - :colwidths: 30 - -.. gd_req:: Requirements no weak words - :id: gd_req__req__attr_desc_weak - :status: valid - :tags: attribute, check - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - It shall be ensured that no *weak words* are contained in the requirement description for: - - * Stakeholder Requirements - * Feature Requirements - * Component Requirements - - -.. gd_req:: Requirements linkage level - :id: gd_req__req__linkage_fulfill - :status: valid - :tags: attribute, check - :complies: std_req__iso26262__support_6432 - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - - Every feature- and component requirement shall be linked to at least one parent requirement according to the defined traceability scheme: - - :ref:`traceability concept for requirements` - -.. gd_req:: Requirements linkage architecture - :id: gd_req__req__linkage_architecture - :status: valid - :tags: attribute, check - :complies: std_req__iso26262__support_6423 - :satisfies: wf__req__feat_req, wf__req__comp_req - - It shall be checked if every feature- and component requirement is linked at least to one architectural element. - -.. gd_req:: Requirements linkage safety - :id: gd_req__req__linkage_safety - :status: valid - :tags: attribute, check - :satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req - :complies: std_req__iso26262__support_6422 - - It shall be checked that safety requirements (Safety != QM) can only be linked against safety requirements. - -.. needextend:: "process_areas/requirements_engineering" in docname - :+tags: requirements_engineering diff --git a/docs/process/process_areas/requirements_engineering/guidance/requirements_templates.rst b/docs/process/process_areas/requirements_engineering/guidance/requirements_templates.rst deleted file mode 100644 index 242c3b2945..0000000000 --- a/docs/process/process_areas/requirements_engineering/guidance/requirements_templates.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _requirement templates: - -Templates -========= - -.. gd_temp:: Stakeholder Requirements Templates - :id: gd_temp__req__stkh_req - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - .. code-block:: rst - - .. stkh_req:: <Title> - :id: stkh_req__<Title> - :reqtype: <Functional|Interface|Process|Legal|Non-Functional> - :safety: <QM|ASIL_B|ASIL_D> - :rational: <The rationale provides the reason that the requirement is needed.> - :status: <valid|invalid> - -.. gd_temp:: Feature Requirements Templates - :id: gd_temp__req__feat_req - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - .. code-block:: rst - - .. feat_req:: <Title> - :id: feat_req__<Feature>__<Title> - :reqtype: <Functional|Interface|Process|Legal|Non-Functional> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :satisfies: <link to stakeholder requirement id> - :status: <valid|invalid> - -.. gd_temp:: Component Requirements Templates - :id: gd_temp__req__comp_req - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - .. code-block:: rst - - .. comp_req:: <Title> - :id: comp_req__<Component>__<Title> - :reqtype: <Functional|Interface|Process|Legal|Non-Functional> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :satisfies: <link to feature requirement id> - :status: <valid|invalid> - -.. gd_temp:: AoU Requirement Templates - :id: gd_temp__req__aou_req - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - .. code-block:: rst - - .. aou_req:: <Title> - :id: aou_req__<Component>__<Title> - :reqtype: <Functional|Interface|Process|Legal|Non-Functional> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_D> - :status: <valid|invalid> - :mitigates: <link to safety analysis> - -.. gd_temp:: Process Requirements Templates - :id: gd_temp__req__process_req - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - .. code-block:: rst - - .. gd_req:: <Title> - :id: gd_req__<Tool>__<Title> - :satisfies: <link to guidance id> - :complies: <link to standard requirement> - :status: <valid|invalid> - -.. gd_temp:: Requirement Formulation Template - :id: gd_temp__req__formulation - :status: valid - :complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425 - - Requirements shall be specified according to the following schema: - - <The SW Platform|Feature|Component> shall <main verb> <object> <parameter> <temporal/logical conjunction> - - <Note: (optional, not to be verified)> - - .. list-table:: Sentence Table - :header-rows: 1 - - * - Addressee of the requirement (subject) - - shall - - main verb - - object of the requirement - - parameter of the requirement - - temporal/logical conjunction - * - The development object (who/what) - - shall - - do something - - for whom or what - - which target value/condition - - when, under which conditions - * - Example 1: The component - - shall - - detect - - if a key-value pair got corrupted - - and set its status to INVALID - - during every restart of the SW platform. - * - Example 2: The software platform - - shall - - enable - - users - - to ensure the compatibility of application software - - across vehicle variants and vehicle software releases. - * - Example 3: The linter-tool - - shall - - check - - correctness of .rst files format - - - - upon each commit. - - - .. note:: - Of the last three columns of the above sentence template table, filling one is mandatory the others are optional. diff --git a/docs/process/process_areas/requirements_engineering/index.rst b/docs/process/process_areas/requirements_engineering/index.rst deleted file mode 100644 index 2372d392c2..0000000000 --- a/docs/process/process_areas/requirements_engineering/index.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _requirements_engineering: - -Requirements Engineering -######################## - -.. toctree:: - :maxdepth: 1 - - requirements_getstrt - requirements_concept - guidance/index - requirements_roles - requirements_workflow - requirements_workproducts diff --git a/docs/process/process_areas/requirements_engineering/requirements_concept.rst b/docs/process/process_areas/requirements_engineering/requirements_concept.rst deleted file mode 100644 index 5e4c48d2c0..0000000000 --- a/docs/process/process_areas/requirements_engineering/requirements_concept.rst +++ /dev/null @@ -1,291 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Requirements Concept - :id: doc_concept__req__process - :status: valid - :tags: requirements_engineering - -In this section a concept for the requirements management will be discussed. Inputs for this concepts are both the requirements of ISO26262 Part-8 and ASPICE Requirements from SWE.1 additionally including the requirements of the different stakeholders for the requirement process. - -Inputs -****** - -#. Stakeholders for the requirements? -#. Who needs which information? -#. Which Requirement Levels can we derive from that? -#. Which Attributes are required? -#. How do the different requirement levels correlate to each other? - -Stakeholders for the requirements -================================= - -#. :need:`Tech Lead Circle <rl__technical_lead>` - - * Define specification and content for the platform - * Creation of a project timeline - * Track project progress - -#. :need:`SW Architect <rl__committer>` - - * Break down the platform specification into features (High Level) - * Derive component architecture for each feature - * Allocate requirements to architecture elements for specification of features/components - * Define AoUs which arise from architecture - -#. :need:`Tester <rl__committer>` - - * Verify that the specification is fulfilled by the elements under test - * Consider AoUs for test case specification - -#. :need:`Safety Architect <rl__safety_manager>` - - * *Dependent Failure Analysis* - - * Requires inputs towards independence and interference of the element under investigation - - * *Qualitative safety analysis* (e.g. FMEA) - - * Detailed element description to identify systematic errors within the element under investigation - -#. :need:`Security Architect <rl__security_manager>` - - * Trust Boundary Analysis - * Defense in Depth Analysis - * Qualitative Security Analysis (TARA or at least Attack Potential Analysis with impact category Safety) - -#. :need:`Platform/Tooling SW Developer <rl__committer>` - - * Implement the SW according to its specification - * Create traceability by linking its specification to code - * Consider AoUs of other components - * Create AoUs for component under development - -#. Feature User - - * Get detailed information concerning the specification of a feature - * Be informed about its boundary conditions (AoUs) - -#. :need:`Platform SW Developer of the Reference Integration <rl__committer>` - - * Requirements for Integration - -Standard Requirements -===================== - -Also requirements of standards need to be taken into consideration: - -* ISO26262 -* ASPICE -* ISO SAE 21434 - -Requirement Levels -****************** - -Based on the inputs of the previous chapter the types of requirements which need to be implemented in the project can be derived. The defined levels are shown in the :ref:`Traceability Concept <score_wp_traceability>`. - -Stakeholder Requirements -======================== - -On the platform level the *Stakeholder (=customer) Requirements* are defined. These requirements describe which content the platform needs to contain, and serve as a project description of the top-level functionality. An example could be e.g. - -.. code-block:: text - - The platform shall support configuration of applications via files (e.g. yaml, json) - -Feature Requirements -==================== - -The *Feature Requirements* addresses mainly the integration level of SW modules and components. These shall describe the behavior of the feature on platform level shall be described including the correlations of the integrated components. They serves mainly as an input for (SW + Safety) Architects, Testers, Integrators and are derived from the *Stakeholder Requirements*. To provide an example - -.. code-block:: text - - The feature shall accept JSON formatted string input according to RFC-8259 - -However the detailed interaction of the underlying components itself which is required to form a feature shall be defined in the feature architecture. - -Component Requirements -====================== - -The lowest abstraction level is represented by the *component requirements*. They are derived from *feature requirements* and describe component specific implementation details. It is described which behavior a component itself needs to fulfil in the context of the feature, e.g. - -.. code-block:: text - - The component shall provide API calls to read and interpret every field of a JSON body in C++ - -Assumption of Use Requirements -============================== - -Last but not least a requirement type is needed which describes e.g. the boundary conditions which need to be fulfilled when using a software module. Those requirements are called *Assumption of Use* (AoUs) - -.. code-block:: text - - The user shall provide a string as input which is not corrupted due to HW or QM SW errors. - -Process Requirements -==================== - -Besides those four types of requirements which describe the contents of the platform also a type, describing the requirements towards the tooling from a process point of view, needs to be specified. These *process requirements* can be derived from a process description. Here it is defined which part of the process need to be performed manually and which parts of the process should be implemented by tooling - -.. code-block:: text - - It shall be checked that safety requirements (Safety != QM) can only be linked against safety requirements. - - -.. _attributes of the requirements: - -Attributes of the Requirements -****************************** - -The required attributes for the requirements are defined in this subchapter. On the top level we can distinguish between attributes which need to be filled manually and attributes which are generated during the *docs build*. - -Following attributes need to be filled manually for each requirement: - -.. list-table:: Manual Attributes - :header-rows: 1 - :widths: 15,85 - - * - Attribute - - Description - * - Status - - The status for a requirement can either be valid or invalid. The reasoning for this is that the goal is to only have valid requirements in the main branch. So a status *draft* is not required. It is obvious that the requirement is in the status draft as long as the PR is not merged. - * - Unique ID - - The unique id consist of a prefix for the requirement type followed by a keyword for the feature/component and a short keyword describing its content. It is used as a unique identifier for a requirement which can be used e.g. for linking the requirements. - * - Title - - The title of the requirement shall be expressive and rely to the description of the requirement. - * - Description - - In this attribute the content for the requirement will be specified. Please be aware that a note in a requirement is not part of the requirement itself. This means that notes should only be used to give additional explanation or context to the requirement. - * - Rationale / Linkage - - In either of those attributes the reasoning for the requirement is included. - For *Stakeholder Requirements* a rationale which provides some more background infos shall be provided. - For any other requirement the reasoning can be deduced from the top level requirement. - * - Safety - - This attribute describes the impact of the requirement on functional safety. Currently only following values are defined [QM, ASIL_B, ASIL_D]. Other values are not required at the moment as *ASIL decomposition* is not used so far. - * - Security - - This attribute describes if the requirement has any impact on security of the platform. - * - Requirements Type - - The requirement type defines which category the requirement relates to. Following categories are defined: [Functional, Interface, Process, Legal, Non-Functional] - -.. list-table:: Automated Attributes - :header-rows: 1 - :widths: 15,70,15 - - * - Attribute - - Description - - Tool - * - Satisfied by - - This attribute is automatically generated into the parent requirement based on the attribute satisfies of the current requirement - - Sphinx Needs Build - * - Hash - - This attribute contains a hash value which is calculated over all mandatory requirement attributes. However this script needs to be executed manually, as this information is required to be present in the rst file. - - Script / Bazel Target - * - Satisfies Hash - - It contains the hash of the parent requirement. If the parent requirement is changed the hash will also change and the linkage has to be revisited again. A more detailed description is provided here: :need:`gd_req__req__attr_hash` - - Script / Bazel Target - * - Implemented by - - During Build the code files are parsed for a defined tag which includes the requirement id. If this is located a link to the code will be added in the requirement - - Sphinx Needs Build - * - Verified by - - During build the junit test files are parsed for a defined marker which includes the requirement id. If the marker is located in the test a link to the test case will be added to the requirement - - Sphinx Needs Build - * - Requirement Covered - - During build it will be checked if the requirements hashes which are mentioned in the coverage file match the hashes of the linked child requirements. If so then this attribute will be set to yes. - - Sphinx Needs Build - -More details about the generation of the automated attributes are explained in the following chapter where the general workflow for generating requirements including their status is shown. - -.. _requirement_versioning: - -Requirements Versioning -*********************** - -Individual Requirements -======================= - -For the requirements the version management is basically provided by the git history. However it needs to be identified if the content of a requirement changed. So this concept aims only at identifying a change in the mandatory attributes of a requirement. - -Calculate hash for current requirements -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For each requirement a hash shall be calculated and stored in its dedicated own attribute *Hash* in the RST file. It shall include all mandatory manual attributes: - -.. _requirement_mandatory_attributes: - -.. needtable:: Overview mandatory requirement attributes - :filter: "mandatory" in tags and "attribute" in tags and "requirements_engineering" in tags and type == "gd_req" - :style: table - :columns: title;id - :colwidths: 60,40 - -There shall be a tooling available which can be executed by the user during the creation of the requirements. This tooling shall calculate the hashes based on the mandatory attributes, calculate the hash values and enter the calculated hash values into the rst file for each requirement in the attribute *hash*. - -During Sphinx build it shall be checked if the attribute hash matches the actual has value of the requirement. - -Linking child requirements including hashes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If a requirement is linked to a top level requirement also the hash of the target requirement shall be part of the link. It shall automatically be written into the attribute *satisfies hash*. Upon Sphinx Build it shall be checked if the attribute *satisfies hash* matches the calculated hash of the requirement which is linked via *satisfies*. - -As this check is included in the sphinx build as a warning it can be guaranteed that a change of a parent requirement can only be merged if the `linkhashes` in the requirements are also updated in a `Depends-On` PR. - -.. figure:: _assets/requirements_versioning.drawio.svg - :alt: Requirements Versioning - :align: center - :width: 50% - - Versioning of Requirements - -.. _reviews of the requirements: - -Sets of Requirements / Baselines -================================ - -GitHub standard functionality provides the means to version sets of requirements, as those are collected in files. - -* The files commit history can be displayed, to show change date, author and differences -* via git "Blame" also the changes on every line are available - -Requirement baseline generation is part of the configuration management, it is also done with GitHub means by tagging a complete set of artifacts/files in a repository. - -Reviews of the Requirements -*************************** - -Some of the checks cannot be performed automatically. Therefore a manual inspection of the requirements is needed. The requirement review itself is triggered when a contributor wants to trigger a requirement review. - -In the general for the reviews a :ref:`guideline <review_concept>` exists. - -.. _coverage_of_requirements: - -Coverage of requirements -************************ - -According to the standards, requirements shall be derived from top to bottom. This means that at the point in time when the parent requirement is generated the coverage for itself can not be evaluated. In a second step all the parent requirements need to be broken down into child requirements which are linked to the parent requirement again. If during the creation of the child requirements any of the parent requirements would be touched again the hash value of the parent requirement would change and the linkage from the child to the parent requirement would be invalid again. - -Therefore the information concerning requirement coverage is stored in a config file located in the same folder as the requirements file. It contains the parent requirements and it´s links to child requirements including hashes to the of the child requirements. If it is merged to the main branch it will specify exactly the coverage of child requirements which are required to fulfil the coverage of the parent requirement. - -If this file will now be merged to the main branch a review will be triggered again. During this review it will only be checked if the parent requirement is covered by its child requirements. - -Additionally during build it shall be checked if exactly the requirements and hashes which are specified in this file are linked to the requirement in the current documentation. If all items match then the requirement can be seen as covered. If now a child requirement is changed its hash will also be changed and the requirement coverage needs to be revisited again. - -.. _traceability concept for requirements: - -Traceability Concept for Requirements -************************************* - -The standards require that a requirement can be traced throughout the complete hierarchy levels including its :ref:`implementation <implementation>` and :ref:`verification <process_verification>`. In this project it is implemented the following way: - -In general the traceability is visualized in main development work product traceability model (:numref:`wp_traceability_model`). diff --git a/docs/process/process_areas/requirements_engineering/requirements_getstrt.rst b/docs/process/process_areas/requirements_engineering/requirements_getstrt.rst deleted file mode 100644 index 6bf165070c..0000000000 --- a/docs/process/process_areas/requirements_engineering/requirements_getstrt.rst +++ /dev/null @@ -1,81 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Requirements - :id: doc_getstrt__req__process - :status: valid - :tags: requirements_engineering - -This document describes the steps which need to be done to create requirements, derive child requirements and finally to perform the formal requirement inspection. - -Therefore both a :need:`[[title]] <gd_guidl__req__engineering>` and a :need:`[[title]] <doc_concept__req__process>` are available. - -The subsequent steps of linking requirements to code and test cases are described in different guidelines: - -Linking Requirements - -* to code: :need:`gd_guidl__implementation` -* to tests: :need:`gd_guidl__verification_guide` - -General Workflow -**************** - -.. figure:: _assets/requirements_workflow.drawio.svg - :align: center - :width: 80% - :name: requirements_workflow_fig - - Requirements Workflow - -The details of what needs to be done in each steps are described in the :ref:`workflow_requirements` - -Tooling Support -*************** - -Linking Requirements to Source Code -=================================== - -For linking requirements to source code a tool is available: - -<TBD Linking Reqs to Source> - -Linking Requirements to Tests -============================= - -For linking Requirements to tests metatags shall be used :need:`gd_req__link_tests` - - -Developer Experience -==================== - -Additionally tooling is provided to assist the :need:`[[title]] <rl__contributor>` to define the requirements in spinx needs. The current feature set is described as IDE requirements: - -.. needtable:: Implemented IDE Requirements - :tags: sphinx, ide - :style: table - :columns: title;id - :filter: "ide" in tags and type == "tool_req" - :colwidths: 70,30 - -A *HowTo* which describes the setup of the development environment for Sphinx Needs is available :ref:`here <setting_up_dev_env>`. - -For all RST files also a linter is configured, it will be automatically run in the CI upon check-in. -Locally it can be run via - -.. code-block:: shell - - bazel test //:format.check diff --git a/docs/process/process_areas/requirements_engineering/requirements_roles.rst b/docs/process/process_areas/requirements_engineering/requirements_roles.rst deleted file mode 100644 index 70be862ccc..0000000000 --- a/docs/process/process_areas/requirements_engineering/requirements_roles.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For requirements engineering no additional roles need to be defined. - -Contributing Roles: - - * :need:`Contributor <rl__contributor>` - * :need:`Committer <rl__committer>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - -A detailed overview of the responsibility for the steps of the requirement process is listed here: - -:ref:`workflow_requirements` diff --git a/docs/process/process_areas/requirements_engineering/requirements_workflow.rst b/docs/process/process_areas/requirements_engineering/requirements_workflow.rst deleted file mode 100644 index 3a33a23668..0000000000 --- a/docs/process/process_areas/requirements_engineering/requirements_workflow.rst +++ /dev/null @@ -1,73 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - - -Workflow Requirements Engineering -################################# - -.. workflow:: Create/Maintain Stakeholder requirements - :id: wf__req__stkh_req - :status: valid - :tags: requirements_engineering - :responsible: rl__contributor - :approved_by: rl__technical_lead - :supported_by: rl__safety_manager - :input: wp__policies, wp__issue_track_system - :output: wp__requirements__stkh - :contains: gd_temp__req__stkh_req, gd_temp__req__formulation - :has: doc_concept__req__process, doc_getstrt__req__process - - Stakeholder requirements can be created during a change request. Any contributor can create a stakeholder requirement and propose it for approval. - -.. workflow:: Create/Maintain Feature requirements - :id: wf__req__feat_req - :status: valid - :tags: requirements_engineering - :responsible: rl__contributor - :approved_by: rl__technical_lead - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__requirements__stkh, wp__issue_track_system, wp__feature_safety_analysis, wp__feature_dfa - :output: wp__requirements__feat, wp__requirements__feat_aou, wp__platform_safety_manual - :contains: gd_temp__req__feat_req, gd_temp__req__formulation - :has: doc_concept__req__process, doc_getstrt__req__process - - Depending on the stakeholder requirements feature requirements can be derived. This can be done by any contributor and will be approved by a contributor. If needed safety and security managers can provide support. - - -.. workflow:: Create/Maintain Component requirements - :id: wf__req__comp_req - :status: valid - :tags: requirements_engineering - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__requirements__feat, wp__issue_track_system, wp__sw_component_safety_analysis, wp__sw_component_dfa - :output: wp__requirements__comp, wp__requirements__comp_aou, wp__platform_safety_manual - :contains: gd_temp__req__comp_req, gd_temp__req__formulation - :has: doc_concept__req__process, doc_getstrt__req__process - - On the lowest level the component requirements are created and maintained. This can be done by any contributor and will be approved by a committer. If needed safety and security managers can provide support. - -.. workflow:: Monitor/Verify Requirements - :id: wf__monitor_verify_requirements - :status: valid - :tags: requirements_engineering - :responsible: rl__committer - :approved_by: rl__committer - :supported_by: rl__safety_manager - :input: wp__requirements__stkh, wp__requirements__feat, wp__requirements__comp, wp__requirements__feat_aou, wp__requirements__comp_aou, wp__platform_safety_manual, wp__module_safety_manual - :output: wp__issue_track_system, wp__requirements__inspect - :contains: gd_chklst__req__inspection - - The requirements are monitored and verified. The inspection shall be implemented as integral part of the review in GitHub. diff --git a/docs/process/process_areas/requirements_engineering/requirements_workproducts.rst b/docs/process/process_areas/requirements_engineering/requirements_workproducts.rst deleted file mode 100644 index d855c65dc6..0000000000 --- a/docs/process/process_areas/requirements_engineering/requirements_workproducts.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workproducts Requirements Engineering -##################################### - -.. workproduct:: Stakeholder Requirements - :id: wp__requirements__stkh - :status: valid - :complies: std_wp__iso26262__system_651, std_wp__iso26262__software_651 - - Technical requirements from a stakeholder viewpoint and assumptions of use based on the integration as SW platform SEooC in an assumed context. - -.. workproduct:: Feature Requirements - :id: wp__requirements__feat - :status: valid - :complies: std_wp__iso26262__software_651 - - Feature requirements describe in a more detailed way the functionality which will fulfill a set of stakeholder requirements. A "feature" itself represents a set of requirements. It describes the interaction of the components to form a feature. It shall also be the basis for integration testing on platform level. - -.. workproduct:: Component Requirements - :id: wp__requirements__comp - :status: valid - :complies: std_wp__iso26262__software_651, std_wp__isopas8926__4521 - - SW Requirements for components - -.. workproduct:: Feature Assumptions of Use - :id: wp__requirements__feat_aou - :status: valid - :complies: std_wp__iso26262__software_651 - - SW Safety Requirements for the user of the feature, exportable requirements for the user to integrate in their req mgt system. - -.. workproduct:: Component Assumptions of Use - :id: wp__requirements__comp_aou - :status: valid - :complies: std_wp__iso26262__software_651, std_wp__isopas8926__4521 - - SW Safety Requirements for the user of the component, exportable requirements for the user to integrate in their req mgt system. - -.. workproduct:: Requirements Inspection - :id: wp__requirements__inspect - :status: draft - :complies: std_wp__iso26262__software_653 - - | Depends on requirements management tooling, expect text based requirements maintained in git. - | - github review with integrated inspection checklist, only valid requirements get merged - | - | Compare also `Gitub documentationt <https://docs.github.com/en>`_ - -.. needextend:: "docs/process/requirements_engineering" in docname - :+tags: requirements_engineering diff --git a/docs/process/process_areas/safety_management/guidance/_assets/wf_component_classification.drawio.svg b/docs/process/process_areas/safety_management/guidance/_assets/wf_component_classification.drawio.svg deleted file mode 100644 index 2481f8743d..0000000000 --- a/docs/process/process_areas/safety_management/guidance/_assets/wf_component_classification.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than diagrams.net --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="921px" height="533px" viewBox="-0.5 -0.5 921 533" content="<mxfile host="Electron" modified="2024-09-25T12:19:00.070Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="Dr2kFcBIPZogryeB3tlC" version="20.3.0" type="device"><diagram id="2l3uRb8Z-sBo-CX1GEvO" name="wf-component-classification">7VpbV6M6FP41XWvOQ11Aml4e7UVHx9Fe5oz1vHSlkFLOBFJDqq2//oQSWiAUq73gjKc+mOyEAPv79iU7lEDLXVwyNJt+pxYmJUOzFiXQLhmGAYEm/gWSZSipNmAosJljhSJ9Ixg4L1gK5XX23LGwn5jIKSXcmSWFJvU8bPKEDDFGn5PTJpQk7zpDNlYEAxMRVXrvWHwaSutQ28i/YseeRnfWNTniomiyFPhTZNHnmAh0SqDFKOVhy120MAmUF+klvO5iy+j6wRj2+C4XDK+M0cPLaARNq2oM2z/bDnkoy1WeEJnLF24R5PvOxDERd6hXMqpErN4cM9Gyg9b/kuIkKxrxZcRNRueehQN4NTH8PHU4HsyQGYw+C2sUsil3iejpoomIY3uiTfAkWGziENKihLLVUmACg79ATj0ek4c/Ifc5o79wbKS6+q0fK87DiFSYcbyIiSQvLzF1MWdLMUWOltfmvlybUdh/3thcIzKkaczeQF26EyTt3F4vvjEF0ZDWkG0ZV+611fLvr3GLvDR6t1+dUQ+WK4q6sSU8g+xSxqfUph4inY20mQRkM+eG0pmE4V/M+VK6OTTnNAmSUCFbDoPrz2AFRIIHIShrZ5q2ntJeyHuEvWW818XMESrALBIuHC6XlL2H6G6ivVkp6EQLbcXUp3NmSn386gPdHenGnT2/rnVhv3L/TzlyKBwxG/Mc9VbDeYFOcxnCMBGO6CnpjbPAlpd2qSMeec0sEYGSxKqk+BI+qLwqRZn1Y+zEojx1xPyrSitCRDDDh7GktCFFrxuzI5BlRtr+VtRenN9eXz35TrWr//T6Fiw3Z+WM1z2lFcUtSPI/x3x2Yn0em+Osz1SHfhTWnzOGlrEJs4DN/naj0FMkARCmgA5XfK8l5KkoZgntwEm5jofVUNei7owEHmmpjn3HyJ8z7CvMEgnWLGgKABEhmFCbIVdcMIs5xMRYzFO+Fj0nzgJH2al+GFOFqZDXUE1Vzwp51QPYaiZC9c9hq7WiItRe4NTURH0fG7GoOXdXqnuN+eMQ4ZsxORz1y3otRf76juSvHytQgULJr7+N/EdL6R67eu3FG95dO2737hx6jW/fjKyU7gMHNwCPG9zyVLRbcOsyamLf/3Mjm9EoMLRl4lNMGlr0xiuPqkffeIHkxiu9Tw/fR9l3qbmqAc/0qrb+AT2xrKFVzhqVzbC22/burU5F2UYCmPvUaSeUmn8cJ1RIxeL9YQUURdi9PAlQPP373XmxSRhMc/SUOVimbtUt4pfWX0Kwamsl2BQv1BIzWqAE24pWxWvz7JKnKZS0CoWBchwTkXM54DqWFZoB9p0XNF4tFRiC9AdiXdgM7iXWEsz3N1EyWQ71qIdTNVUpOgBOupb0PQZUcWqcsqZTLSSYRqnyqhC6TpBlvtz4UIXRvOz41SwaHiU+vz3gNRKkq0DjoAEs89UbhRIrtu16SJDojQWI45e0k9DASm2nnOfVhUDasW/J0bZzaY/qeZ7N7FgzTB1c/t57KL2aAsc44R4qzzHFwOivNB0clQcH6wIIzZLw5EPwsfKeinbCvGdp41oTPV7cX6H2qNNkoNP3y7qqWtUTrk+JYuqJFIo9a8ART+cgiSSlSdAYE+EhLcwOn6QYejJJWTulExw8ZX7YoNZLBz86XSHRFdUWmDiWDDCuwwrUSuqJfN3EplkKT+SjGJjx0ceboapoqbw/I5+sHgmq2rDXJES/HF54/YHNH/2hoWd4+S/dPyLtVzDJQG67RVWTMJ0y7c+EyVBhat2cDwaju79/JODqCahEq9cP/9/2PhVsIB1d1C9Z9PopcVMrFtITqkHm9/OE+2H1wRxhZRtS6uHUJ0NKT1WTs6zqpFCpGZuESi3CfjKoYD1pVaBWMFRqVVFCBT87VOkUIytpPxBUorv50jksD2y+Fwed/wA=</diagram></mxfile>"><defs/><g><rect x="0" y="65" width="920" height="385" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 918px; height: 1px; padding-top: 258px; margin-left: 2px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Classification<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="2" y="261" fill="#333333" font-family="Helvetica" font-size="12px">Classification...</text></switch></g><path d="M 435 30 L 435.03 90 L 325.2 90 L 325.16 143.57" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325.16 148.82 L 321.67 141.82 L 325.16 143.57 L 328.67 141.82 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="435" cy="15" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 320 210 L 320 310 L 382.63 310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.88 310 L 380.88 313.5 L 382.63 310 L 380.88 306.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 260 210 L 280 150 L 380 150 L 360 210 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 180px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Determine<br />Complexity<br />Measures</div></div></div></foreignObject><text x="320" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Determine...</text></switch></g><path d="M 160 180 L 263.63 180" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 268.88 180 L 261.88 183.5 L 263.63 180 L 261.88 176.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 40 140 L 160 140 L 160 208 Q 130 186.4 100 208 Q 70 229.6 40 208 L 40 152 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 168px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Complexity<br />Measures</div></div></div></foreignObject><text x="100" y="172" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Complexity...</text></switch></g><path d="M 560 210 L 560 310 L 495.37 310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 490.12 310 L 497.12 306.5 L 495.37 310 L 497.12 313.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 500 210 L 520 150 L 620 150 L 600 210 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 180px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Determine<br />Process<br />Measures</div></div></div></foreignObject><text x="560" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Determine...</text></switch></g><path d="M 435 30 L 435.03 90 L 560 90 L 560 143.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560 148.88 L 556.5 141.88 L 560 143.63 L 563.5 141.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 760 180 L 616.37 180" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 611.12 180 L 618.12 176.5 L 616.37 180 L 618.12 183.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 760 140 L 880 140 L 880 208 Q 850 186.4 820 208 Q 790 229.6 760 208 L 760 152 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 168px; margin-left: 761px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Process<br />Measures</div></div></div></foreignObject><text x="820" y="172" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Process...</text></switch></g><rect x="315" y="210" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 225px; margin-left: 360px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">(C) = [1,2,3]</div></div></div></foreignObject><text x="360" y="229" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">(C) = [1,2,3]</text></switch></g><path d="M 439 340 L 439.03 407.2 L 753.03 407.2" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 758.28 407.2 L 751.28 410.7 L 753.03 407.2 L 751.28 403.7 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 439 335 L 439 495.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 439 500.88 L 435.5 493.88 L 439 495.63 L 442.5 493.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 379 340 L 399 280 L 499 280 L 479 340 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 380px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Determine<br />Classification</div></div></div></foreignObject><text x="439" y="314" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Determine...</text></switch></g><path d="M 760 360 L 880 360 L 880 428 Q 850 406.4 820 428 Q 790 449.6 760 428 L 760 372 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 388px; margin-left: 761px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Rationale for determination</div></div></div></foreignObject><text x="820" y="392" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Rationale for determ...</text></switch></g><ellipse cx="440" cy="517" rx="11" ry="11" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="440" cy="517" rx="15" ry="15" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="610" y="110" width="60" height="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 125px; margin-left: 640px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">STEP 1</div></div></div></foreignObject><text x="640" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">STEP 1</text></switch></g><rect x="470" y="210" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 225px; margin-left: 515px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">(P) = [1,2,3]</div></div></div></foreignObject><text x="515" y="229" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">(P) = [1,2,3]</text></switch></g><rect x="440" y="355" width="180" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 530px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">(CLASS_OUT) = [Q, QR, NQ]</div></div></div></foreignObject><text x="530" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">(CLASS_OUT) = [Q, QR, NQ]</text></switch></g><rect x="230" y="110" width="60" height="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 125px; margin-left: 260px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">STEP 2</div></div></div></foreignObject><text x="260" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">STEP 2</text></switch></g><rect x="345" y="355" width="60" height="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 375px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">STEP 3</div></div></div></foreignObject><text x="375" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">STEP 3</text></switch></g><rect x="790" y="325" width="60" height="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 340px; margin-left: 820px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">STEP 4</div></div></div></foreignObject><text x="820" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">STEP 4</text></switch></g><rect x="470" y="502" width="60" height="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 517px; margin-left: 500px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">STEP 5</div></div></div></foreignObject><text x="500" y="521" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">STEP 5</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/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> diff --git a/docs/process/process_areas/safety_management/guidance/checklist_safety_package.rst b/docs/process/process_areas/safety_management/guidance/checklist_safety_package.rst deleted file mode 100644 index 5eec16e099..0000000000 --- a/docs/process/process_areas/safety_management/guidance/checklist_safety_package.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Safety Package Formal Review Checklist -========================================= - -.. gd_chklst:: Safety Package Formal Review Checklist - :id: gd_chklst__safety_package - :status: valid - :complies: std_req__iso26262__management_6491, std_req__iso26262__management_6492, std_req__iso26262__management_6493, std_req__iso26262__management_64101, std_req__iso26262__management_64102, std_req__iso26262__management_64103, std_req__iso26262__management_64104, std_req__iso26262__management_64105 - - **1. Purpose** - - The purpose of this review checklist is to report status of the formal review for the safety package. - - **2. Checklist** - -.. list-table:: Safety Package Checklist - :header-rows: 1 - - * - Id - - Safety package activity - - Compliant to ISO 26262? - - Comment - - * - 1 - - Is a safety package provided which matches the safety plan (i.e. all planned workproducts referenced)? - - [YES | NO ] - - <Rationale for result> - - * - 2 - - Is the argument how functional safety is achieved, provided in the safety package, plausible and sufficient? - - NO - - The argument is intentionally not provided by S-CORE. - - * - 3 - - Are the referenced work products available? - - [YES | NO ] - - <Rationale for result> - - * - 4 - - Are the referenced work products in released state, including the process safety audit? - - [YES | NO ] - - <Rationale for result> - - * - 5 - - If safety related deviations from the process or safety concept are documented, are these argued understandably? - - [YES | NO ] - - <Rationale for result> diff --git a/docs/process/process_areas/safety_management/guidance/checklist_safety_plan.rst b/docs/process/process_areas/safety_management/guidance/checklist_safety_plan.rst deleted file mode 100644 index 9b97cd764a..0000000000 --- a/docs/process/process_areas/safety_management/guidance/checklist_safety_plan.rst +++ /dev/null @@ -1,90 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Safety Plan Confirmation Review Checklist -========================================= - -.. gd_chklst:: Safety Plan Confirmation Review Checklist - :id: gd_chklst__safety_plan - :status: valid - :complies: std_req__iso26262__management_6491, std_req__iso26262__management_6492, std_req__iso26262__management_6493, std_req__iso26262__management_64101, std_req__iso26262__management_64102, std_req__iso26262__management_64103, std_req__iso26262__management_64104, std_req__iso26262__management_64105 - - **1. Purpose** - - The purpose of this safety plan confirmation review checklist is to report status of the confirmation review for the safety plan. - - **2. Checklist** - -.. list-table:: Safety Plan Checklist - :header-rows: 1 - - * - Id - - Safety plan activity - - Compliant to ISO 26262? - - Comment - - * - 1 - - Is the rationale for the safety work products tailoring included? - - [YES | NO ] - - <Rationale for result> - - * - 2 - - Is impact analysis planned in case of re-use of SW (needed for every release following the first formal release)? - - [YES | NO ] - - <Rationale for result> - - * - 3 - - Does the safety plan define all needed activities for safety management (incl. Confirmation review and Safety Audit)? - - [YES | NO ] - - <Rationale for result> - - * - 4 - - Does the safety plan define all needed activities for System and SW development, integration and verification? - - [YES | NO ] - - <Rationale for result> - - * - 5 - - Does the safety plan define all needed activities for safety analysis and DFA? - - [YES | NO ] - - <Rationale for result> - - * - 6 - - Does the safety plan define all needed activities for supporting processes (incl. tool mgt)? - - [YES | NO ] - - <Rationale for result> - - * - 7 - - Does the safety plan document a responsible for all activities? - - [YES | NO ] - - <Rationale for result> - - * - 8 - - If OSS software components is used, is it planned to be qualified? - - [YES | NO ] - - <Rationale for result> - - * - 9 - - Is a safety manager and a project manager appointed for the project? - - [YES | NO ] - - <Rationale for result> - - * - 10 - - Is safety plan sufficiently linked to the project plan? - - [YES | NO ] - - <Rationale for result> - - * - 11 - - Is safety plan updated iteratively to show the progress? - - [YES | NO ] - - <Rationale for result> diff --git a/docs/process/process_areas/safety_management/guidance/guideline_component_classification.rst b/docs/process/process_areas/safety_management/guidance/guideline_component_classification.rst deleted file mode 100644 index e70cbcc0d8..0000000000 --- a/docs/process/process_areas/safety_management/guidance/guideline_component_classification.rst +++ /dev/null @@ -1,262 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Component Classification Guideline -================================== - -.. gd_guidl:: Classification of a component - :id: gd_guidl__component_classification - :status: valid - :complies: std_req__isopas8926__441, std_req__isopas8926__4421, std_req__isopas8926__4422, std_req__isopas8926__4423, std_req__isopas8926__4424, std_req__isopas8926__4425, std_req__isopas8926__4426, std_req__isopas8926__4427, std_req__isopas8926__4428, std_req__isopas8926__4429, std_req__isopas8926__44210, std_req__isopas8926__44321, std_req__isopas8926__44322, std_req__isopas8926__4433 - -Purpose -------- -Re-use of existing elements like open source software in safety context is wanted. - -Objectives ----------- -Definition of a method to classify existing elements to be qualifiable for a safety context. - -The classification shall have three outcomes: - -* Existing element is qualifiable according part 8 clause 12 of ISO 26262 for the safety context (Q) -* Existing element may qualifiable for the safety context, but some additional effort is required (QR) -* Existing element is NOT qualifiable for the safety context (NQ) - -Approach --------- - -The classification is based on two criteria: - -* The uncertainty of the Processes (P) applied for the development of the existing element -* The uncertainty of finding systematic faults based on the Complexity (C) of the existing element - -| Assumption is that the context for the usage of the existing element is always the operation environment and context of the *S-CORE* platform. -| (P) shall be natural values out of the set[1,2,3] -| (C) shall be natural values out of the set[1,2,3] -| -| Both criteria may influence the presence of systematic faults, which may increases the likelihood for violating safety relevant requirements allocated to the existing element. -| -| The outcome of the classification (CLAS_OUT) shall be a function of (P) and (C). -| (CLAS_OUT) shall be values out of the set[Q, QR, NQ] -| -| Step 1: Determine (P): the uncertainty of the Processes applied -| Step 2: Determine (C): the uncertainty of finding systematic faults based on the Complexity -| Step 3: Determine (CLAS_OUT): the classification outcome -| Step 4: Document all results and rationale for choosing (P) and (C) and (CLAS_OUT) -| Step 5: Based on (CLAS_OUT) select the following activities: -| - Q: Follow the processes for qualification of software components in a safety context. -| - QR: Follow the process for impact analysis, define sub-elements, if applicable, define in the safety plan the additional effort required in addition to processes for qualification of software components -| - NQ: Do no use this element in safety context -| - -Figure 1: Overview of the workflow component classification - -.. image:: _assets/wf_component_classification.drawio.svg - :width: 800 - :alt: Overview of the workflow component classification - - - -Step 1: Determination of (P) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Apply the process measures to determine (P). - -The result of a process measure shall have as outcome [NE, PE, NE] - -* HE: High Evidence -* PE: Partly Evidence but Manageable within *S-CORE* -* NE: No Evidence - -.. list-table:: Determination of P - :header-rows: 1 - - * - **Id** - - **Indicator for applying process** - - **Process measure/Tool** - - **HE** - - **PE** - - **NE** - * - 1 - - Are rules, state-of-the art processes applied for the design, implementation and verification? - - Community Rules, Language specific compiler rules Rust: compiler (e.g. rustc) warnings, linter (e.g. clippy) warnings - - available enforced - - available - - Not available - * - 2 - - Are requirements available? - - Documented requirements - - available - - available partly - - Not available - * - 3 - - Are specifications for functionalities and properties available (architecture)? - - Documented functionalities and properties - - available - - available partly - - Not available - * - 4 - - Are design specifications available? - - Documented specification - - available - - available partly - - Not available - * - 5 - - Are configuration specification and data available, if applicable? - - Documented specification and data - - available - - available partly - - Not available - * - 6 - - Are verification measures including tests and reports available? - - Available and executable tests - - available passing - - available partly pass - - Not available - * - 7 - - to be extended, if required - - - - - - - - - - -| (P=1) shall be selected when none of the determined process measures indicate PE or NE. -| (P=2) shall be selected when at least one of the determined process measures indicate PE or NE but the gaps evaluated are acceptable, means the risk of systematic faults due to these gaps is sufficiently low in the context of *S-CORE* or manageable by mitigating the gaps. -| (P=3) in all other cases. -| -| Other existing documentation could be used to cover lack in other documents 1-6 to get from NE to HE or PE - - -Step 2: Determination of (C) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -| Apply the complexity measures to determine (C). -| The result of a complexity measure shall have as outcome [NH, HM, NM] -| - NH: Not High -| - HM: High but Manageable within *S-CORE* -| - NM: high and Not Manageable within *S-CORE* - -**Complexity measure for programming language: RUST** - -.. list-table:: Determination of C - :header-rows: 1 - - * - **Id** - - **Indicator for high complexity** - - **Process measure/Tool** - - **NH** - - **HM** - - **NM** - * - 1 - - High amount of Lines of Code - - Lines of Code (without comments), (generated code is excluded, e.g. ProtoCmpl) - - lower as 1000 - - ~ 1000 - - higher as 1000 - * - 2 - - Unsafe code used / total unsafe code - - Count: - * LoUC+N: lines of unsafe code with safety note - * LoUC : lines of unsafe code, no safety note - - lower as 10 LoUC+N - - higher as 10 LoUC+N or lower as 10 LoUC - - higher as 10 LoUC - * - 3 - - Test exists / Coverage (Function, Line) (maybe better testability, but how to measure?) - - Existing Tests / Coverage - - Yes / higher 90% - - Yes / higher 60% - - No - * - 4 - - High amount of public function interfaces - - Number of public function interfaces - - lower as 5 - - ~ 5 - - higher as 5 - * - 5 - - High amount of function parameters - - Number of parameters - - lower as 5 - - ~ 5 - - higher as 5 - * - 6 - - Cyclomatic complexity or others (t.b.d.) - - rust-code-analysis (mozilla) (?) - - t.b.d - - t.b.d - - t.b.d - * - 7 - - to be extended, if required - - - - - - - - - -| **Complexity measure for programming language: CPP** -| TODO -| -| (C=1) shall be selected when none of the determined complexity measures indicate HM or NM. -| (C=2) shall be selected when at least one of the determined complexity measures indicate HM or NM, but the gaps evaluated are acceptable, means the risk of systematic faults due to these gaps is sufficiently low in the context of *S-CORE* or manageable by mitigating the gaps. -| (C=3) in all other cases. - - -Step 3: Determination of (CLAS_OUT) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Select CLAS_OUT depending on the determined values of (C) and (P) - -+-------+-----------------------+ -| ( C ) | ( P ) | -+-------+-------+-------+-------+ -| | 1 | 2 | 3 | -+=======+=======+=======+=======+ -| 1 | Q | Q | QR | -+-------+-------+-------+-------+ -| 2 | QR | QR | QR | -+-------+-------+-------+-------+ -| 3 | QR | QR | NQ | -+-------+-------+-------+-------+ - -Step 4: Document all results and rationale for choosing (P) and (C) and (CLAS_OUT) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For this the template :need:`gd_temp__component_classification` shall be used. - -Step 5: Based on (CLAS_OUT) select the activities -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As soon as the change request containing this is in status "Accepted", the module safety plan for the component development is created/adapted based on the following: (select according to above result) - -**If CLAS_OUT=Q : Follow the processes for qualification of software components in a safety context** - -This is namely (for ASIL B) to provide the following work products according to the SW platform process: - -* :need:`wp__requirements__comp` including their inspection -* :need:`wp__requirements__comp_aou` derived from the OSS components user manual and interface description, includes specification of the component's configuration -* :need:`wp__verification__comp_int_test` to test requirement and AoU implementation - -Integration of the OSS component is performed via the modules's SW build config and checked by feature integration tests (component integration if the OSS element is considered as a sub-component). - -**If CLAS_OUT=QR : Follow the process for pre-existing software architectural elements** - -* Based on the gaps detected in this classification which lead to a QR instead of a Q, add additional work products or improve the existing work products with the goal to get a better P or C rating ("1"). -* In case of too high complexity based on the Ids 1 and 4, a :need:`wf__cr_mt_comparch` shall be derived from the OSS component source code and a classification done on the sub-components in this architecture. This could be repeated again and again until sufficiently low complex sub-components were broken down. -* If the classification of the (sub-)component is Q after the above, do as in section "Q:" - -**If CLAS_OUT=NQ : Do no use this element in safety context** - -* In case of NQ only the component classification document from Step 4 will be stored for this OSS component. -* Then either another OSS component will be selected or a development from scratch is planned. diff --git a/docs/process/process_areas/safety_management/guidance/guideline_safety_management.rst b/docs/process/process_areas/safety_management/guidance/guideline_safety_management.rst deleted file mode 100644 index 38148b5c9b..0000000000 --- a/docs/process/process_areas/safety_management/guidance/guideline_safety_management.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _guideline_safety_management: - -Safety Management Guideline -=========================== - -.. gd_guidl:: Safety plan definitions - :id: gd_guidl__saf_plan_definitions - :status: valid - :complies: std_req__iso26262__management_6465, std_req__iso26262__management_6466, std_req__iso26262__management_6467, std_req__iso26262__management_6468, std_req__iso26262__management_6469 - - | **Overall safety management:** - | Safety culture: - | Safety culture is planned to grow in the SW platform. This shall be fostered by doing a lessons learned after each feature development completion, using the ISO 26262-2 Table B.1 as a questionnaire. - | This lessons learned is the main input for process improvement managed by :need:`wp__process_impr_report` - | As starting point for safety culture we define a Committer selection process to already have professionals with safety experience in the teams. - | Additionally the SW platform's processes are defined with experience of several companies already performing successful safe SW development. This also improves independence of reviews for the process definitions. - | - | Quality Management: - | ASPICE standard is selected for quality management. Processes will always link to the :ref:`standard_iso26262` standard and to the ASPICE (todo, add link) standard. - | - | Competence management: - | The :need:`rl__safety_manager` on SW platform level is responsible to define a competence management for the whole platform. - | Expectation is that the safety competence of the persons nominated for the roles is already given and only has to be checked. - | The exception from this are the committers, for these no safety competence needs to be enforced. - | So the module safety managers shall consult the :need:`doc__platform_safety_plan` and perform accordingly in their module project. - | - | Communication: - | Development teams are interdisciplinary, so the regular (sprint) planning and review meetings enable communication (as defined in :need:`doc__project_mgt_plan`). Another main communication means are the Pull Request reviews. - | Also the standard Eclipse Foundation communication strategies are used (e.g. mailing lists) - | - | Safety anomalies: - | As the SW platform organization does not have own vehicles in the field, it relies on feedback from OEMs and Distributors on bugs discovered in the field. The need for this feedback is part of each safety manual. - | But also during development of change requests to existing features, bug reporting by the Open Source community or integration of existing SW components into new features may lead to the discovery of new safety anomalies. - | Safety anomalies can also be deviations from the development process with impact on safety. - | If these are known at the time of creation of a release they will be part of the :need:`wp__module_safety_package` or :need:`wp__platform_safety_package` for the SEooC. - | Safety anomalies relevant for already delivered releases will be identified as such and communicated (as defined in Problem Resolution part of :need:`wp__platform_mgmt`) via the :need:`wp__issue_track_system` (which is also Open Source). - | - | **Tailoring safety activities:** - | Main tailoring driver is that the SW platform is pure SW development and is provided as "SEooC" - this explains mainly the generic, platform wide tailoring. - | Tailoring is done for the whole SW platform by defining only the relevant work products and an argumentation why the others are not needed in :ref:`standard_iso26262` and :need:`doc__platform_safety_plan`. - | But there may be also additional tailoring for each module SEooC development to restrict further the work products. This is documented in every feature safety plan. Here the usage of already existing components is the main tailoring driver. - | - | **Planning safety activities:** - | In the safety plan the nomination of the safety manager and the project manager is documented. - | The planning of safety activities is done using issues in the :need:`wp__issue_track_system` as specified in the :need:`doc__project_mgt_plan` - | It contains for each issue - | * objective - as part of the issue description - | * dependencies on other activities or information - by links to the respective issues - | * responsible person for the activity - as issue assignee - | * required resources for the activity - by selecting a team label (or "project") pointing to a team of committers dedicated to the issue resolution - | * duration in time, including start and end point - by selecting a milestone - | * UID of the resulting work products - stated in the issue title - | - | The planning of safety activities is divided into the - | * platform SEooC planning, dealing with all work products needed only once for the platform. This is included in :need:`wp__platform_safety_plan` - | * module SEooC planning, dealing with all work products needed for each module development (initiated by a change request), included in :need:`wp__module_safety_plan`. This module safety planning also includes the planning of OSS component qualification based on :need:`gd_guidl__component_classification`. - | A template exists to guide this: :need:`gd_temp__module_safety_plan`. - | - | **Planning supporting processes:** - | Supporting processes (Requirements Management, Configuration Management, Change Management, Documentation Management, Tool Management) are planned within the :need:`wp__platform_mgmt` - | - | **Planning integration and verification:** - | Integration on the target hardware is not done in the scope of the SW platform project, but SW/SW integration up to the feature level is performed and its test results are part of the :need:`wp__verification__platform_ver_report`. - | The integration on the target hardware done by the distributor or OEM is supported by delivering a set of HW/SW integration tests which were already run successfully on a reference HW platform. - | This is planned by the respective work products: - | * :need:`wp__verification__feat_int_test` - | * :need:`wp__verification__platform_test` - | Verification planning is documented in :need:`wp__verification__plan` - | - | **Scheduling of confirmation reviews, audit and assessment:** - | Scheduling is done in the same way as for all work products definition by issues. The respective work products are :need:`wp__fdr_reports` and :need:`wp__audit_report` - | - | **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` - | - | **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. - | Components developed in C++ and Rust will have different toolchains. Both will be qualified once for the SW platform. - | - | **(OSS) Component qualification planning:** - | Based on the component classification as described in :need:`gd_guidl__component_classification`, - | the qualification of the component is planned as part of the :need:`gd_temp__module_safety_plan`. - | The template contains guidance how to do this and to document in the "OSS (sub-)component <name> Workproducts" list. - -.. gd_guidl:: Safety manual generation - :id: gd_guidl__saf_man - :status: valid - :complies: std_req__iso26262__system_6411, std_req__iso26262__system_6412, std_req__iso26262__system_6413, std_req__iso26262__system_6414, std_req__iso26262__system_6421, std_req__iso26262__system_6422, std_req__iso26262__software_641, std_req__iso26262__software_642, std_req__iso26262__software_645, std_req__iso26262__support_12421 - - | The safety manual collects several workproducts and adds some additional content mainly to instruct the user of - | a SEooC (in this project on platform and module level) to safely use it in the context of the user's own safety - | element. - | Its main content is described in :need:`wp__platform_safety_manual` and :need:`wp__module_safety_manual` - | A template exists to guide the definition of the safety manual on platform and module level (:need:`gd_temp__safety_manual`). - -.. gd_guidl:: Safety package automated generation - :id: gd_guidl__saf_package - :status: valid - :complies: std_req__iso26262__management_6481, std_req__iso26262__management_6482 - - | The safety package shall be generated progressively and automatically compiling the work products. diff --git a/docs/process/process_areas/safety_management/guidance/index.rst b/docs/process/process_areas/safety_management/guidance/index.rst deleted file mode 100644 index 298a76a3c6..0000000000 --- a/docs/process/process_areas/safety_management/guidance/index.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - :glob: - - guideline_safety_management.rst - guideline_component_classification.rst - template_feature_safety_wp.rst - template_module_safety_plan.rst - template_component_classification.rst - template_safety_manual.rst - checklist_safety_plan.rst - checklist_safety_package.rst - process_req.rst diff --git a/docs/process/process_areas/safety_management/guidance/process_req.rst b/docs/process/process_areas/safety_management/guidance/process_req.rst deleted file mode 100644 index 0251566fa6..0000000000 --- a/docs/process/process_areas/safety_management/guidance/process_req.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Safety Management Process Requirements -====================================== - -.. gd_req:: Safety Management Process Requirement 1 - :id: gd_req__sm_doc_status - :status: valid - :complies: std_req__iso26262__management_6468 - - Safety plans shall contain documents references where the status is derived automatically. - - Note: This can be done by defining the document as a sphinx-need and using sphinx mechanisms. - -.. gd_req:: Safety Management Process Requirement 2 - :id: gd_req__sm_wp_status - :status: valid - :complies: std_req__iso26262__management_6468 - - Safety plans shall contain work product references where the accumulated status is derived automatically. - - Note: This can be done as for documents if the work product is a single sphinx-need. - For work products collections (e.g. all requirements of a component) an accumulated status is needed (e.g. like "% valid state") diff --git a/docs/process/process_areas/safety_management/guidance/template_component_classification.rst b/docs/process/process_areas/safety_management/guidance/template_component_classification.rst deleted file mode 100644 index f288b7e406..0000000000 --- a/docs/process/process_areas/safety_management/guidance/template_component_classification.rst +++ /dev/null @@ -1,184 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Component Classification Template -================================= - -.. gd_temp:: Component Classification Template - :id: gd_temp__component_classification - :status: valid - :complies: std_req__isopas8926__441, std_req__isopas8926__4421, std_req__isopas8926__4422, std_req__isopas8926__4423, std_req__isopas8926__4424, std_req__isopas8926__4425, std_req__isopas8926__4426, std_req__isopas8926__4427, std_req__isopas8926__4428, std_req__isopas8926__4429, std_req__isopas8926__44210 - - -| Classification of <component> -| -| <Link to OSS component source (e.g. in github) including the selected version> -| -| Additional documentation considered: -| <list of documentation links> - - -Step 1: Determine (P): the uncertainty of the Processes applied ---------------------------------------------------------------- - -| Apply the process measures to determine (P). -| The result of a process measure shall have as outcome [HE, PE, NE] -| - HE: High Evidence -| - PE: Partly Evidence but Manageable -| - NE: No Evidence - -.. list-table:: Determine (P) - :header-rows: 1 - - * - Id - - Indicator for applying process - - Result - - Rationale for result - - * - 1 - - Are rules, state-of-the art processes applied for the design, implementation and verification? - - <HE|PE|NE> - - <Rationale for result> - - * - 2 - - Are requirements available? - - <HE|PE|NE> - - <Rationale for result> - - * - 3 - - Are specifications for functionalities and properties available (architecture)? - - <HE|PE|NE> - - <Rationale for result> - - * - 4 - - Are design specifications available? - - <HE|PE|NE> - - <Rationale for result> - - * - 5 - - Are configuration specification and data available, if applicable? - - <HE|PE|NE> - - <Rationale for result> - - * - 6 - - Are verification measures including tests and reports available? - - <HE|PE|NE> - - <Rationale for result> - - -| (P=1) shall be selected when none of the determined process measures indicate PE or NE. -| (P=2) shall be selected when at least one of the determined process measures indicate PE or NE, but the gaps evaluated are acceptable, means -| the risk of systematic faults due to these gaps is sufficiently low or manageable by mitigating the gaps. -| (P=3) in all other cases. - -<component name> is determined as P=<1|2|3> - - -Step 2: Determine (C): the uncertainty of finding systematic faults based on the Complexity -------------------------------------------------------------------------------------------- - -| Apply the complexity measures to determine (C). -| The result of a complexity measure shall have as outcome [NH, HM, NM] -| - NH: Not High -| - HM: High but Manageable -| - NM: high and Not Manageable -| -| **Complexity measure for programming language: <C++ or RUST>** - -<select the correct table below (table for C++ is TBD)> - -.. list-table:: Determine (C) for RUST - :header-rows: 1 - - * - Id - - Indicator for high Complexity - - Complexity measure Tool - - Result - - Number - - * - 1 - - High amount of Lines of Code - - Lines of Code (without comments) (generated code is excluded, e.g. ProtoCmpl) - - <NH|HM|NM> - - <Number> - - * - 2 - - Unsafe code used / total unsafe code - - Count: - * LoUC+N: lines of unsafe code with safety note - * LoUC : lines of unsafe code, no safety note - - <NH|HM|NM> - - <Number> - - * - 3 - - | Test exists / Coverage (Function, Line) - | (maybe better: testability, but how to measure?) - - Existing Tests Coverage - - <NH|HM|NM> - - <Number> - - * - 4 - - High amount of public function interfaces - - Number of public function interfaces - - <NH|HM|NM> - - <RNumber> - - * - 5 - - High amount of function parameters - - Number of parameters - - <NH|HM|NM> - - <Number> - - -| (C=1) shall be selected when none of the determined complexity measures indicate HM or NM. -| (C=2) shall be selected when at least one of the determined complexity measures indicate HM or NM, but the gaps evaluated are acceptable, means -| the risk of systematic faults due to these gaps is sufficiently low in the context of S-CORE or manageable by mitigating the gaps. -| (C=3) in all other cases. -| - -<component name> is determined as C=<1|2|3> - - -Step 3: Determine (CLAS_OUT): the classification outcome --------------------------------------------------------- - -| Select CLAS_OUT depending on the determined values of (C) and (P) - -+-------+-----------------------+ -| ( C ) | ( P ) | -+-------+-------+-------+-------+ -| | 1 | 2 | 3 | -+=======+=======+=======+=======+ -| 1 | Q | Q | QR | -+-------+-------+-------+-------+ -| 2 | QR | QR | QR | -+-------+-------+-------+-------+ -| 3 | QR | QR | NQ | -+-------+-------+-------+-------+ - -<component name> is classified as CLAS_OUT=<Q|QR|NQ> - - -Step 4: Document all results and rationale for choosing (P) and (C) and (CLAS_OUT) ----------------------------------------------------------------------------------- -This document - - -Step 5: Based on (CLAS_OUT) select the activities -------------------------------------------------- - -| As soon as the change request containing this is in status "Accepted", the module safety plan for the component development is adapted based on the following: (select according to above result) -| - Q: Follow the processes for qualification of software components in a safety context. -| - QR: Follow the process for pre-existing software architectural elements -| - NQ: Do no use this element in safety context diff --git a/docs/process/process_areas/safety_management/guidance/template_feature_safety_wp.rst b/docs/process/process_areas/safety_management/guidance/template_feature_safety_wp.rst deleted file mode 100644 index e9219223e3..0000000000 --- a/docs/process/process_areas/safety_management/guidance/template_feature_safety_wp.rst +++ /dev/null @@ -1,88 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Feature Safety Work Products Template -===================================== - -.. gd_temp:: Feature Safety Work Products Template - :id: gd_temp__feature_safety_wp - :status: valid - :complies: std_req__iso26262__management_6465, std_req__iso26262__management_6466, std_req__iso26262__management_6467, std_req__iso26262__management_6468, std_req__iso26262__management_6469 - - -.. list-table:: Feature <feature> Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to process - - Process status - - Link to issue - - Link to WP - - WP status - - * - :need:`wp__feat_request` - - :need:`gd_temp__change__feature_request` - - :ndf:`copy('status', need_id='gd_temp__change__feature_request')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__requirements__feat` - - :need:`gd_temp__req__feat_req` - - :ndf:`copy('status', need_id='gd_temp__req__feat_req')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__requirements__feat_aou` - - :need:`gd_temp__req__aou_req` - - :ndf:`copy('status', need_id='gd_temp__req__aou_req')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wf__cr_mt_featarch` - - :need:`gd_temp__arch__feature` - - :ndf:`copy('status', need_id='gd_temp__arch__feature')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__feature_safety_analysis` - - <link to process> - - <automated> - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__requirements__inspect` - - :need:`gd_chklst__req__inspection` - - :ndf:`copy('status', need_id='gd_chklst__req__inspection')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_arch_verification` - - :need:`gd_chklst__arch__inspection_checklist` - - :ndf:`copy('status', need_id='gd_chklst__arch__inspection_checklist')` - - <link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__verification__feat_int_test` - - :need:`gd_guidl__verification_guide` - - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - - <link to issue> - - <Link to WP> - - <automated> diff --git a/docs/process/process_areas/safety_management/guidance/template_module_safety_plan.rst b/docs/process/process_areas/safety_management/guidance/template_module_safety_plan.rst deleted file mode 100644 index 50f158633a..0000000000 --- a/docs/process/process_areas/safety_management/guidance/template_module_safety_plan.rst +++ /dev/null @@ -1,299 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Module Safety Plan Template -=========================== - -.. gd_temp:: Module Safety Plan Template - :id: gd_temp__module_safety_plan - :status: valid - :complies: std_req__iso26262__management_6465, std_req__iso26262__management_6466, std_req__iso26262__management_6467, std_req__iso26262__management_6468, std_req__iso26262__management_6469, std_req__isopas8926__44341, std_req__isopas8926__44342, std_req__isopas8926__44611, std_req__isopas8926__4463 - -This document implements <add "need" link> - - - | **1. Functional Safety Management Context** - | This Safety Plan adds to the :ref:`process_safety_management` all the module development relevant workproducts needed for ISO 26262 conformity. - | - | **2. Functional Safety Management Scope** - | This Safety Plan's scope is a SW module of the SW platform <link to module documentation in platform/modules/<modulename>/index.rst>. - | The module consists of one or more SW components and will be qualified as a SEooC. - | - | **3. Functional Safety Management Roles** - - +---------------------------+--------------------------------------------------------+ - | Safety Manager | <link to Module's Safety Manager assignment or name> | - +---------------------------+--------------------------------------------------------+ - | Project Manager | <link to Module's Project Manager assignment or name> | - +---------------------------+--------------------------------------------------------+ - - | **4. Tailoring** - | Additional to the tailoring in the SW platform project as defined in the :ref:`process_safety_management` we define here the additional tailoring on module level. - | - | - Excluded for this module are additionally the following workproducts (and their related requirements): - | - <ISO 26262 reference>: <workproduct/requirement> - <Argumentation why it is not needed or replaced by another workproduct or activity.> - | - | **5. Functional Safety Module Workproducts** - | One set of workproducts for the module and one set for each component of the module: - -.. list-table:: Module Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to process - - Process status - - Link to issue - - Link to WP - - WP status - - * - :need:`wp__module_safety_plan` - - :ref:`guideline_safety_management` - - <automated> - - <Link to issue> - - this document - - see above - - * - :need:`wp__module_safety_package` - - :ref:`guideline_safety_management` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__fdr_reports` (module Safety Plan) - - :need:`gd_chklst__safety_plan` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__fdr_reports` (module Safety Package) - - :need:`gd_chklst__safety_package` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__fdr_reports` (module's Safety Analyses & DFA) - - Safety Analysis FDR tbd - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__audit_report` - - performed by external experts - - n/a - - <Link to issue> - - <Link to WP> - - <WP status (manual)> - - * - :need:`wp__sw_component_dfa` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__module_sw_build_config` - - :ref:`sw_development` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__module_safety_manual` - - :need:`gd_temp__safety_manual` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__verification__module_ver_report` - - :ref:`process_verification` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__module_sw_release_note` - - :ref:`release_management` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - -.. list-table:: Component <name> Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to process - - Process status - - Link to issue - - Link to WP - - WP status - - * - :need:`wp__requirements__comp` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__requirements__comp_aou` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__hsi` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__requirements__inspect` - - <Link to process> - - <automated> - - n/a - - Checklist used in Pull Request Review - - n/a - - * - :need:`wf__cr_mt_comparch` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_component_safety_analysis` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_arch_verification` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_implementation` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__verification__sw_unit_test` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_implementation_inspection` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__verification__comp_int_test` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__verification__comp_int_test` - - <Link to process> - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - * - :need:`wp__sw_component_class` - - :need:`gd_guidl__component_classification` - - <automated> - - <Link to issue> - - <Link to WP> - - <automated> - - -| **6. OSS (sub-)component qualification plan** -| For the selected OSS component the following workproducts will be implemented (and why): -| If the OSS element is classified as a -| - component, then the below table shall match the above, adding the reasoning for tailoring of work products according to the OSS component classification. -| - sub-component, then no workproducts additional to the component’s will be planned and activities below are part of the component’s issues. - -.. list-table:: OSS (sub-)component <name> Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to issue - - Reasoning for tailoring - - * - :need:`wp__requirements__comp` - - <Link to issue> - - Always needed (for Q and QR classification) and also improves process Id 2 - - * - :need:`wp__requirements__comp_aou` - - <Link to issue> - - Always needed (for Q and QR classification) and also improves process Id 5 - - * - :need:`wp__hsi` - - n/a - - OSS needing special HW is an extreme exception. - - * - :need:`wp__requirements__inspect` - - n/a - - Checklist used in Pull Request Review - - * - :need:`wf__cr_mt_comparch` - - <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` - - <Link to issue> - - <Reasoning for tailoring, could help arguing too high cyclomatic complexity covered by safety mechanisms> - - * - :need:`wp__sw_arch_verification` - - <Link to issue> - - <Reasoning for tailoring, needed if also wf__cr_mt_comparch is required> - - * - :need:`wp__sw_implementation` - - n/a - - If source code is modified, this is not a OSS qualification any more. - - * - :need:`wp__verification__sw_unit_test` - - <Link to issue> - - <Reasoning for tailoring, can improve deficits in process Id 6 and complexity Id 3> - - * - :need:`wp__sw_implementation_inspection` - - <Link to issue> - - <Reasoning for tailoring, can improve deficits in process Id 6 and complexity Id 2> - - * - :need:`wp__verification__comp_int_test` - - <Link to issue> - - Always needed (for Q and QR classification) - - * - :need:`wp__sw_component_class` - - <Link to issue> - - Always needed as basis for tailoring. diff --git a/docs/process/process_areas/safety_management/guidance/template_safety_manual.rst b/docs/process/process_areas/safety_management/guidance/template_safety_manual.rst deleted file mode 100644 index b2f503c62b..0000000000 --- a/docs/process/process_areas/safety_management/guidance/template_safety_manual.rst +++ /dev/null @@ -1,88 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Safety Manual Template -====================== - -.. gd_temp:: Safety Manual Template - :id: gd_temp__safety_manual - :status: valid - :complies: std_req__iso26262__system_6411, std_req__iso26262__system_6412, std_req__iso26262__system_6413, std_req__iso26262__system_6414, std_req__iso26262__system_6421, std_req__iso26262__system_6422, std_req__iso26262__software_641, std_req__iso26262__software_642, std_req__iso26262__software_645, std_req__iso26262__support_12421 - -This document implements <add "need" link> - -Introduction/Scope ------------------- -| <Describe here which module (or the platform) is covered by this manual.> - -Assumed Platform Safety Requirements ------------------------------------- -| For the <S-CORE platform / module name> the following safety related stakeholder requirements are assumed to define the top level functionality (purpose) of the <S-CORE platform / module name>. I.e. from these all the feature and component requirements implemented are derived. -| <List here all the stakeholder requirements, with safety not equal to QM, the module's components requirements are derived from.> - -Assumptions of Use ------------------- - -Assumptions on the Environment -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -| Generally the assumption of the S-CORE platform SEooC is that it is integrated in a safe system, i.e. the POSIX OS it runs on is qualified and also the HW related failures are taken into account by the system integrator, if not otherwise stated in the module's safety concept. -| <List here all the OS calls the S-CORE platform expects to be safe.> - -List of AoUs expected from the environment the platform / module runs on: - -.. needtable:: - :style: table - :columns: title;id;status - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["aou_req"]): - if need and "environment" in need["tags"]: - results.append(need) - -Assumptions on the User -^^^^^^^^^^^^^^^^^^^^^^^ -| As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety case. -| Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: <link to add>. Assumptions from components to their users can be fulfilled in two ways: -| 1. There are assumption which need to be fulfilled by all SW components, e.g. "every user of an IPC mechanism needs to make sure that he provides correct data (including appropriate ASIL level)" - in this case the AoU is marked as "platform". -| 2. There are assumption which can be fulfilled by a safety mechanism realized by some other S-CORE platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module SEooC stand-alone - in this case the AoU is marked as "module". An example would be the "JSON read" which requires "The user shall provide a string as input which is not corrupted due to HW or QM SW errors." - which is covered when using together with safe S-CORE platform persistency feature. - -List of AoUs on the user of the platform features or the module of this safety manual: - -.. needtable:: - :style: table - :columns: title;id;status - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["aou_req"]): - if need and "environment" not in need["tags"]: - results.append(need) - -Safety concept of the SEooC ---------------------------- -| <Describe here the safety concept incl. which faults are taken care of, reactions of the implemented functions under anomalous operating conditions ... if this is not already documented sufficiently in the feature documentation "safety impact" section of all the features the module is used in.> - -Safety Anomalies ----------------- -| Anomalies (bugs in ASIL SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes <add link to release note>. - -References ----------- -| <link to the user manual> -| <other links> diff --git a/docs/process/process_areas/safety_management/index.rst b/docs/process/process_areas/safety_management/index.rst deleted file mode 100644 index 6fccc7dbe2..0000000000 --- a/docs/process/process_areas/safety_management/index.rst +++ /dev/null @@ -1,123 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_safety_management: - -Safety Management -================= - -Concept -------- - -.. doc_concept:: Safety Management Concept - :id: doc_concept__safety_management__process - :status: valid - -In this section a concept for the safety management will be discussed. Inputs for this concepts are mainly the requirements of ISO26262 "Part 2: Management of functional safety" - -Inputs -^^^^^^ - -#. Stakeholders for the safety management work products? -#. Who needs which information? -#. Which safety plans do we have? -#. Which other work products of safety management are important? -#. What tooling do we need? - -Stakeholders -^^^^^^^^^^^^ - -#. :need:`Technical Lead <rl__technical_lead>` - - * planning of development for module and for platform projects - * status reporting of safety activities - -#. :need:`Safety Manager <rl__safety_manager>` - - * he is the main responsible for the safety management work products (as in :doc:`workproducts`). - See also his role definition in :doc:`roles`. - -#. :need:`External Auditor <rl__external_auditor>` - - * understand activities planning, processes definition and execution - -#. "Distributor" (external role) - - * use the platform in a safe way - * integrate the platform in his product (distribution) and safety case - * plan this integration (also in time) - * qualify the SW platform as part of his product - -Safety Plans -^^^^^^^^^^^^ - -This SW platform project defines two levels of planning: platform and module. There will be one safety plan on platform level and several safety plans on module level (one for each module). -This is how we organize our development teams and repositories. Each of these safety plan "creates" one SEooC. -The :need:`Platform Safety Plan <doc__platform_safety_plan>` exists only once and is part of the :ref:`Platform Management Plan <pmp>` of S-CORE. - -Safety Management Work Products -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Apart from the safety plans the main work products of safety management are (see also the link to workflows below): - -* :need:`Safety Manual <wp__platform_safety_manual>` - the safety manual defines the requirements for safe usage or integration of the SW platform (or its individual modules) -* :need:`Confirmation Reviews <wp__fdr_reports>` - on safety plan, safety package and safety analyses, according to ISO 26262 requirements -* :need:`Safety Package <wp__platform_safety_package>` - the safety package does not contain the safety argumentation. By this the S-CORE project ensures it does not take over liability for the SW platform (or its individual modules). But it enables the distributors to integrate the SW platform (or its individual modules) in their safety package. - -Safety Management Tooling -^^^^^^^^^^^^^^^^^^^^^^^^^ - -For the safety planning and safety manual, sphinx-needs will be used for referencing. - -For the activities planning (who, when) we use github issues and monitor these in github projects. - -For the reporting (e.g. displaying the status of the work products) additional tooling is created (see :doc:`guidance/process_req`) - -Getting started ---------------- - -.. doc_getstrt:: Safety Management Get Started - :id: doc_getstrt__safety_management__process - :status: valid - - -In case you are appointed as a :need:`Safety Manager <rl__safety_manager>` by the :need:`rl__project_lead` in the S-CORE project: - -* Contact the :need:`Technical Lead <rl__technical_lead>` for your SEooC to establish planning and reporting (the TL should already have established a Github project for planning) -* Create your safety plan according to :need:`wf__cr_mt_safety_plan` -* Make familiar with your role description and the other workflows of safety management (see below) -* Make familiar with the development and supporting process descriptions in :ref:`process_description` plus the relevant sections of the :ref:`Platform Management Plan <pmp>` - -Workflows ---------- - -.. toctree:: - :maxdepth: 1 - :glob: - - roles.rst - workproducts.rst - workflows.rst - -Guidance --------- - -.. toctree:: - :maxdepth: 1 - :glob: - - guidance/index.rst - -.. needextend:: "process_areas/safety_management" in docname - :+tags: safety_mgt diff --git a/docs/process/process_areas/safety_management/roles.rst b/docs/process/process_areas/safety_management/roles.rst deleted file mode 100644 index 2036872812..0000000000 --- a/docs/process/process_areas/safety_management/roles.rst +++ /dev/null @@ -1,85 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles ------ - -.. role:: Safety Manager - :id: rl__safety_manager - :status: valid - :contains: rl__committer - - The safety manager is responsible for making sure that ISO26262 is complied to in the project. He/She shall lead and monitor the safety relevant activities of the project. - - Required skills - - * Degree: Master's degree in electrical engineering/computer science/mathematics, or similar degree, or comparable work experience - * Solid understanding of functional safety management - * Knowledge in project management - * Deep understanding of quality criteria and the correlating methods and procedures to achieve and verify them - * Technical know-how of embedded systems - * Preferred training: Automotive Functional Safety Expert (AFSE) or similar - - Knowledge of standards - - * ISO 26262 - - Experience - - * 2 years of experience in the management of safety topics - * Experience in managing projects - * Experience in managing safety anomalies - - Responsibility - - * Creating the Safety Plan - * Functional Safety related project status reporting - * Creation and Monitoring of completeness of the safety case - * Reporting of safety anomalies - * Verify, that the preconditions for the "release for production", which are part of the release notes, are fulfilled, and the correctness, completeness and consistency of the release notes - * Coaching the project team w.r.t all questions related to functional safety - * Planning of safety audit - * Approval of OSS component classification and safety analyses (incl. DFA) - * Creating the safety manuals on platform and module level - * Checking that every person in his team has sufficient safety skills for his role - - Authority - - * Escalation of planning topics to the project manager defined in the safety plan - * Initiate the publication of a safety anomaly - * Recommend the Release of a SW platform or a module - * Refusing the approval of work products as defined in the workflows - * Refusing the approval of his team's role nomination (i.e. requesting that the role will be withdrawn) - - - - - -.. role:: External Auditor - :id: rl__external_auditor - :status: valid - - Required skills, Knowledge of standards, Experience - - * External Auditor comes from organization specialized in safety audits and assessment, thus sufficient skill should be guaranteed by the sending organization. - * For performing the confirmation reviews also a safety manager from another (S-CORE) project can play the role of an external auditor, in this case the same skills apply as for the safety manager. - - Responsibility - - * Performing and reporting of safety audit - * Performing of confirmation reviews on safety plans, safety case and safety analysis (incl. DFA) - - Authority - - * Decision on the passing or failing of an audit diff --git a/docs/process/process_areas/safety_management/workflows.rst b/docs/process/process_areas/safety_management/workflows.rst deleted file mode 100644 index 246aca5d86..0000000000 --- a/docs/process/process_areas/safety_management/workflows.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workflows ---------- - -.. workflow:: Create/Maintain Safety Plan - :id: wf__cr_mt_safety_plan - :status: valid - :responsible: rl__safety_manager - :approved_by: rl__technical_lead - :input: wp__platform_mgmt, wp__issue_track_system, wp__sw_component_class, wp__tailoring - :output: wp__module_safety_plan, wp__platform_safety_plan - :contains: gd_guidl__saf_plan_definitions, gd_temp__feature_safety_wp, gd_temp__module_safety_plan - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The Safety Manager is responsible for the planning and coordination of the safety activities for the platform. - | The Safety Manager creates and maintains the safety plan. - | For this a template exists to guide the creator of the safety plan. - -.. workflow:: Create Component Classification - :id: wf__cr_comp_class - :status: valid - :responsible: rl__committer - :approved_by: rl__safety_manager - :input: wp__platform_mgmt, wp__issue_track_system - :output: wp__sw_component_class - :contains: gd_guidl__component_classification, gd_temp__component_classification - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The Safety Manager shall approve the OSS component classification performed by an expert on this component. - -.. workflow:: Create/Maintain Safety Package - :id: wf__cr_mt_safety_package - :status: valid - :responsible: rl__safety_manager - :approved_by: rl__technical_lead - :input: wp__module_safety_plan, wp__platform_safety_plan, wp__issue_track_system - :output: wp__module_safety_package, wp__platform_safety_package - :contains: gd_guidl__saf_package, gd_temp__feature_safety_wp, gd_temp__module_safety_plan - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The Safety Manager in S-CORE is NOT responsible to provide the argument for the achievement of functional safety. - | But the Safety Manager creates and maintains the safety package in the sense of a collection of safety related work products. - | The generation and the maintainance of this draft safety package shall be automtated as much as possible. - | It does not contain the final argumentation of the safety of the product. - | As the safety package is only a collection of work products, the safety plan (template) can be used for documentation. - -.. workflow:: Perform Safety Audit - :id: wf__p_fs_audit - :status: valid - :responsible: rl__external_auditor - :approved_by: rl__safety_manager - :input: wp__module_safety_plan, wp__platform_safety_plan, wp__module_safety_package, wp__platform_safety_package - :output: wp__audit_report - :contains: gd_guidl__saf_plan_definitions - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The external auditor is responsible to perform a safety audit. - | The Safety Manager and the process community shall support the external auditor during this. - | The Project Manager and and the Safety Manager shall approve the audit report. - -.. workflow:: Perform Formal Reviews - :id: wf__p_formal_rv - :status: valid - :responsible: rl__external_auditor - :approved_by: rl__safety_manager - :input: wp__module_safety_plan, wp__platform_safety_plan, wp__module_safety_package, wp__platform_safety_package - :output: wp__fdr_reports - :contains: gd_guidl__saf_plan_definitions, gd_chklst__safety_plan, gd_chklst__safety_package - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The external auditor is responsible to perform the formal reviews on Safety plan and Safety Analysis. - | The Safety Manager shall support the external auditor during the reviews. - | The Project Manager and and the Safety Manager shall approve the formal reviews. - | Therefore a checklists exist to guide the creator of the relevant safety documents. - -.. workflow:: Create/Maintain Safety Manual - :id: wf__cr_mt_safety_manual - :status: valid - :responsible: rl__safety_manager - :approved_by: rl__technical_lead - :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 - :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 - - | The Safety Manager collects the necessary input for the safety manuals on platform and module level and documents it. - | He makes sure all items are in valid state for a release of the safety manual. - | Also for the safety manual a template exists as a guidance. - -.. workflow:: Monitor/Verify Safety - :id: wf__mr_vy_safety - :status: valid - :responsible: rl__safety_manager - :approved_by: rl__technical_lead - :input: wp__module_safety_plan, wp__platform_safety_plan, wp__module_safety_package, wp__platform_safety_package, wp__audit_report, wp__fdr_reports - :output: wp__issue_track_system, wp__module_sw_release_note, wp__platform_sw_release_note - :contains: gd_guidl__saf_plan_definitions - :has: doc_concept__safety_management__process, doc_getstrt__safety_management__process - - | The Safety Manager is responsible for the monitoring of the safety activities against the safety plan. - | The Safety Manager is responsible to verify, that the preconditions for the "release for production", which are part of the release notes, are fulfilled. - | The Safety Manager is responsible to verify the correctness, completeness and consistency of the release notes. diff --git a/docs/process/process_areas/safety_management/workproducts.rst b/docs/process/process_areas/safety_management/workproducts.rst deleted file mode 100644 index 7fd356de1a..0000000000 --- a/docs/process/process_areas/safety_management/workproducts.rst +++ /dev/null @@ -1,137 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work products -------------- - -.. workproduct:: Platform Safety Plan - :id: wp__platform_safety_plan - :status: valid - :complies: std_wp__iso26262__management_551, std_wp__iso26262__management_552, std_wp__iso26262__management_653, std_wp__iso26262__support_853 - - Plan to manage and guide the execution of the safety activities of a project including dates, milestones, tasks, deliverables, responsibilities (including the Safety Manager appointment) and resources. - - This platform safety plan also takes into accout the eclipse organization's rules relevant for safety development. - - Guidelines on how an change impact analysis shall be concluded on each item or element involved together with it's connected items or elements. - - This is on following level: - - * Project/Platform (contains definitions how safety planning is performed generally in the project) - -.. workproduct:: Module Safety Plan - :id: wp__module_safety_plan - :status: valid - :complies: std_wp__iso26262__management_552, std_wp__iso26262__management_653, std_wp__iso26262__support_853, std_wp__iso26262__support_1251, std_wp__iso26262__support_1252, std_wp__isopas8926__4512 - - Plan to manage and guide the execution of the safety activities of a project including dates, milestones, tasks, deliverables, responsibilities (including the Safety Manager appointment) and resources. - - Guidelines on how an impact analysis shall be concluded on each item or element involved together with it's connected items or elements. - - This is on following level: - - * Module (contains activities planning based on a Change Request) - -.. workproduct:: Platform Safety Package - :id: wp__platform_safety_package - :status: valid - :complies: std_wp__iso26262__management_654 - - Compiled Safety Relevant Work Products. For Platform SEooC. - - Note that the platform safety package does not contain an argument that the platform is safe. - -.. workproduct:: Module Safety Package - :id: wp__module_safety_package - :status: valid - :complies: std_wp__iso26262__management_654 - - Compiled Safety Relevant Work Products. For Module SEooC. - - Note that the module safety package does not contain an argument that the module is safe. - -.. workproduct:: Formal Document Review Reports - :id: wp__fdr_reports - :status: valid - :complies: std_wp__iso26262__management_655 - - Review that a work product provides sufficient and convincing evidence of their contribution to the achievement of functional safety considering the corresponding objectives and requirements of ISO 26262. - - Will contain formal review report for Safety Plan, Safety Package, Safety Analyses and DFA - -.. workproduct:: Process Safety Audit Report - :id: wp__audit_report - :status: valid - :complies: std_wp__iso26262__management_655 - - Examination of an implemented process with regard to the process objectives and that those match the ISO 26262. - -.. workproduct:: Platform Safety Manual - :id: wp__platform_safety_manual - :status: valid - :complies: std_wp__iso26262__software_651, std_wp__iso26262__system_651 - - The safety manual describes: - - * The Assumed Platform Requirements (Safety related); - * the safety concept of the SEooC (i.e. which faults are taken care of); - * the Assumptions of Use (of the features); - * a link to the user manual; - * the reactions of the implemented functions under anomalous operating conditions; and - * a description of known anomalies with corresponding workaround measures. - - This is on platform level. Only one manual for the entire platform. - -.. workproduct:: Module Safety Manual - :id: wp__module_safety_manual - :status: valid - :complies: std_wp__iso26262__software_651, std_wp__iso26262__system_651, std_wp__iso26262__support_1251 - - The safety manual describes: - - * The Assumed Platform Requirements (Safety related); - * the safety concept of the SEooC (i.e. which faults are taken care of); - * the Assumptions of Use (of the modules's components); - * a link to the user manual; - * the reactions of the implemented functions under anomalous operating conditions; and - * a description of known anomalies with corresponding workaround measures. - - This is on module level. One manual per each module. - -.. workproduct:: Software component classification - :id: wp__sw_component_class - :status: valid - :complies: std_wp__iso26262__support_1251, std_wp__isopas8926__4511 - - The classification shall include: - - * the unique identification of the pre-developed software component; - * the maximum ASIL of the safety requirements allocated to it; - * a development processes analysis; and - * a complexity analysis of the pre-developed SW component; and - * finally a SW component classification as input for the safety planning (which is to cover the determined gaps, if any, by additional verification measures). - -.. workproduct:: Tailoring Documents - :id: wp__tailoring - :status: valid - :complies: std_wp__iso26262__management_653 - - This work product argues why some work products are not needed in the project. - - It may have several levels: - - * Project/Platform - * Feature/Component - - It belongs to the Safety Plan. diff --git a/docs/process/process_areas/tool_management/guidance/index.rst b/docs/process/process_areas/tool_management/guidance/index.rst deleted file mode 100644 index 287e35a4a2..0000000000 --- a/docs/process/process_areas/tool_management/guidance/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - tool_management_checklist - tool_management_template - tool_management_reqs diff --git a/docs/process/process_areas/tool_management/guidance/tool_management_checklist.rst b/docs/process/process_areas/tool_management/guidance/tool_management_checklist.rst deleted file mode 100644 index 3bc4154750..0000000000 --- a/docs/process/process_areas/tool_management/guidance/tool_management_checklist.rst +++ /dev/null @@ -1,101 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _tlm_checklist: - -Tool Verification Report Review Checklist -######################################### - -.. gd_chklst:: Tool Verification Report Review Checklist - :id: gd_chklst__tool__cr_review - :status: valid - :tags: tool_management - :complies: std_req__iso26262__support_1141, std_req__iso26262__support_1142, std_req__iso26262__support_1143, std_req__iso26262__support_11441, std_req__iso26262__support_11442, std_req__iso26262__support_11451, std_req__iso26262__support_11452, std_req__iso26262__support_11453, std_req__iso26262__support_11454, std_req__iso26262__support_11461, std_req__iso26262__support_11462 - - | **1. Purpose** - | The purpose of this checklist is to collect the topics to be checked during a tool verification. - | It will not be filled out, but considered during the review and monitoring to complete the Tool Verification Report. - | - | **2. Checklist** - - .. list-table:: Tool Verification Report Review Checklist - :header-rows: 1 - :widths: 10,30,6 - - * - Id - - Topic - - Status [FAIL|PASS] - * - 1 - - Is the tool uniquely by name and/or UID defined? - - - - * - 2 - - Is the tool version defined? - - - - * - 3 - - Is the tool verification status (draft, evaluated, qualified, released, rejected) defined? - - - - * - 4 - - Are the purposes of the tool (e.g. use cases) defined? - - - - * - 5 - - Are the inputs of the tool defined? - - - - * - 6 - - Are the outputs of the tool defined? - - - - * - 7 - - Are the configurations of the tool defined? - - - - * - 8 - - Are the environmental constraints/limitations defined? - - - - * - 9 - - Are the links to the tool documentations available? - - - - * - 10 - - Are the tool usage constraints/limitations available? - - - - * - 11 - - Are the possible malfunctions of the tool described? - - - - * - 12 - - Are the threats of the tool described? - - - - * - 13 - - Is the tool impact based on malfunctions/threats defined? - - - - * - 14 - - Are safety measures/security controls against the tool malfunctions/threats defined? - - - - * - 15 - - Is the tool error detection based on confidence on the defined safety measures/security controls defined? - - - - * - 16 - - Is the tool confidence level based on tool impact and tool error detection defined? - - diff --git a/docs/process/process_areas/tool_management/guidance/tool_management_reqs.rst b/docs/process/process_areas/tool_management/guidance/tool_management_reqs.rst deleted file mode 100644 index 765a119082..0000000000 --- a/docs/process/process_areas/tool_management/guidance/tool_management_reqs.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _tlm_process_requirements: - -Process Requirements -==================== - -.. _tlm_process_attributes: - -Tool Verification Report Attributes ------------------------------------ - -.. gd_req:: Tool attribute: UID - :id: gd_req__tool__attr_uid - :status: valid - :tags: tool_management, attribute, mandatory - :satisfies: wf__tool__create_tool_verification_report - :complies: std_req__iso26262__support_1141, std_req__aspice_40__SUP-8-BP1 - - Each Tool Verification Report shall have a unique ID. - -.. gd_req:: Tool attribute: status - :id: gd_req__tool__attr_status - :status: valid - :tags: tool_management, attribute, mandatory - :satisfies: wf__tool__create_tool_verification_report - :complies: std_req__iso26262__support_1141, std_req__aspice_40__SUP-8-BP1 - - Each Tool Verification Report shall have a status. - - * draft - * evaluated - * qualified - * released - * rejected - -.. gd_req:: Tool attribute:: safety affected - :id: gd_req__tool__attr_safety_affected - :status: valid - :tags: tool_management, attribute, mandatory - :satisfies: wf__tool__create_tool_verification_report - :complies: std_req__iso26262__support_1141, std_req__aspice_40__SUP-8-BP1 - - Each Tool Verification Report shall have a safety relevance identifier: - - * Yes - * No - -.. gd_req:: Tool attribute:: security affected - :id: gd_req__tool_attr_security_affected - :status: valid - :tags: tool_management, attribute, mandatory - :satisfies: wf__tool__create_tool_verification_report - :complies: std_req__isosae21434__org_management_5451, std_req__aspice_40__SUP-8-BP1 - - Each Tool Verification Report shall have a security relevance identifier: - - * Yes - * No - - -Tool Verification Report Checks -''''''''''''''''''''''''''''''' - -.. gd_req:: Tool Management mandatory attributes provided - :id: gd_req__tool__check_mandatory - :status: valid - :tags: tool_management, attribute, check - :satisfies: wf__tool__create_tool_verification_report - :complies: std_req__aspice_40__SUP-8-BP1 - - It shall be checked if all mandatory attributes for each Tool Verification Report - is provided by the user. For all requirements following attributes shall be mandatory: - - .. needtable:: Overview mandatory problem attributes - :filter: "mandatory" in tags and "attribute" and "tool_management" in tags - :style: table - :columns: title - :colwidths: 30 diff --git a/docs/process/process_areas/tool_management/guidance/tool_management_template.rst b/docs/process/process_areas/tool_management/guidance/tool_management_template.rst deleted file mode 100644 index 0b0898246f..0000000000 --- a/docs/process/process_areas/tool_management/guidance/tool_management_template.rst +++ /dev/null @@ -1,164 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _tlm_templates: - -Tool Verification Report Template -================================= - -.. gd_temp:: Tool Verification Report Template - :id: gd_temp__tool_management__verif_rpt_template - :status: valid - :complies: std_req__iso26262__support_1141, std_req__iso26262__support_1142, std_req__iso26262__support_1143, std_req__iso26262__support_11441, std_req__iso26262__support_11442, std_req__iso26262__support_11451, std_req__iso26262__support_11452, std_req__iso26262__support_11453, std_req__iso26262__support_11454, std_req__iso26262__support_11461, std_req__iso26262__support_11462, std_req__isosae21434__org_management_5451, std_req__aspice_40__SUP-8-BP1, std_req__aspice_40__SUP-8-BP2 - - -[Your Tool Name] ----------------- - -.. note:: Document header - - | .. document:: [Your Tool Name] - | :id: doc__tool__tool_name_version - | :status: draft - | :safety_affected: YES - | :scurity_affected: YES - | :tags: tool_management - -.. attention:: - The above directive must be updated according to your tool. - -Identification --------------- -[Identify the tool] - -E.g. by unique name or UID? - -Add the tool version - -Add tool verification status (draft, evaluated, qualified) defined? - - -Introduction ------------- -[Describe the scope and purpose of the tool] - -May also add some general information about the tool - -May add some comments to get started - -May add links to the public available information, if applicable. - - -Use cases ---------- -[Describe the use case for the tool in the project] - -Add the purposes of the tool (e.g. use cases, scenarios, etc.) - -What are the inputs for the tool? - -What are the output for the tool? - -Add tool usage constraints/limitations - - -Installation ------------- -[Describe here how to install the tool] - -How is the tool is configured in order to be used in safe/secure way? - -Describe environment and its constraints/limitations - -(Constraints/Limitation must cover functional, safety, security) - -E.g. version >= x.yz, access/usage protection required?, execution authority required? - -May add links to the public available information, if applicable. - - -Integration ------------ -[Describe here how to integrate the tool in existing toolchain] - -How works the tool together ? - -Where is the tool located? - -How are bugs of the tool tracked? - -May add links to the public available information, if applicable. - -Add malfunctions which the tool could introduce. - -Add threats which the tool could introduce, e.g. unintended, non-authorized use. - - -Documentation -------------- -[Describe here detailed information about the tool documentation] - -Where are the tool documents like User Manual, Guidelines, Erratas, etc. located? - -May add links to the public available information, if applicable. - - -Evaluation ----------- -[Describe here detailed information about the tool evaluation] - -Determine the tool impact based on the malfunctions/threats - -Define safety measures/security controls against the tool malfunctions/threats - -Determine the tool error detection based on confidence on the defined safety measures/security controls - -Determine the tool confidence level based on tool impact and tool error detection - -Determine if tool qualification is required - - -**Optional Section for Tool Qualification** -------------------------------------------- -Based on method: validation of the software tool - - -Requirements and testing aspects --------------------------------- -[Describe here requirements and their tests from user point of view] - -Where are tool requirements defined? - -Where are the test cases for the requirements defined? - -Where are the requirements coverage documented? - - -Usage and analysis perspective ------------------------------- -[Describe here usage and analysis perspective] - -Where is the tool input and output described? - -Where are the use cases of the tool defined? - -Where are workflows for the tool defined? - -Optional: - -Where is the architectural design of the tool defined? - -Where is the safety analysis for the tool defined? - -Where is the security analysis for the tool defined? diff --git a/docs/process/process_areas/tool_management/index.rst b/docs/process/process_areas/tool_management/index.rst deleted file mode 100644 index 32380bb4bc..0000000000 --- a/docs/process/process_areas/tool_management/index.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _tool_management: - -Tool Management -############### - -.. toctree:: - :maxdepth: 1 - - tool_management_getstrt - tool_management_concept - guidance/index - tool_management_roles - tool_management_workflow - tool_management_workproducts diff --git a/docs/process/process_areas/tool_management/tool_management_concept.rst b/docs/process/process_areas/tool_management/tool_management_concept.rst deleted file mode 100644 index 9d5c6b9570..0000000000 --- a/docs/process/process_areas/tool_management/tool_management_concept.rst +++ /dev/null @@ -1,85 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Concept Description -################### - -.. doc_concept:: Concept Description - :id: doc_concept__tool__process - :status: valid - :tags: tool_management - -In this section a concept for the Tool Management will be discussed. Inputs for this concepts -are the requirements of ISO2 6262 Part-8, Clause 11, ASPICE PAM 4.0, SUP.8 and -ISO SAE 21434 Clause 5, 5.4.5 additionally including the requirements of the different stakeholders -for the Tool Management process. - -Key concept -*********** -In general all Tools to generate the S-CORE product must be identified. As it is a S-CORE objective -to use Tools wherever applicable to generate any kind of work products, the selection criteria for -any Tool including OSS Tools must include therefore the determination of the Tool Confidence Level -`(TCL) <https://www.validas.de/publications/automotive2012.pdf>`_ for the tool under consideration. - -Based on the resulting TCL additional Tool Qualification activities may required. - - -Inputs -****** - -#. Stakeholders for the Tool Management? -#. Which documentations are required? -#. Which activities are required? - -Stakeholders for the Tool Management -************************************ - -#. :need:`Contributor <rl__contributor>` - :need:`Infrastructure, Tooling Community <rl__infrastructure_tooling_community>` - - * Contributes tooling, infrastructure elements to grow and mature the **S-CORE** development environment - -#. :need:`Safety Manager<rl__safety_manager>`, :need:`Security Manager <rl__security_manager>`, - :need:`Committer <rl__committer>` - - * Verifies and approves the the tool verification report - -Standard Requirements -===================== - -Also requirements of standards need to be taken into consideration: - -* ISO 26262 -* ASPICE -* ISO SAE 21434 - -Required documentation -********************** - -For each tool the :need:`gd_temp__tool_management__verif_rpt_template` shall be used to document -the relevant information. - -Activities for Tool Management -****************************** - -The main work product is the :need:`Tool Verification Report <wp__tool_verification_report>`. -Thus the workflow :need:`Create Tool Verification Report <wf__tool__create_tool_verification_report>` -applies. - - -Attributes for Tool Management -****************************** - -The required attributes for the Tool Verification Report are defined here: -:ref:`tlm_process_attributes`. diff --git a/docs/process/process_areas/tool_management/tool_management_getstrt.rst b/docs/process/process_areas/tool_management/tool_management_getstrt.rst deleted file mode 100644 index 8f212d4f8e..0000000000 --- a/docs/process/process_areas/tool_management/tool_management_getstrt.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Getting Started on Tool Management - :id: doc_getstrt__tool__process - :status: valid - :tags: tool_management - -In case you want to use a tool within **S-CORE** consider to: - -* Check the tool list first: :ref:`platform_tool_list`. If the tool is already there and covers the intended use case, no further activity is needed -* Make yourself familiar with the development and supporting process descriptions in :ref:`process_description` -* Make yourself familiar with the relevant sections of the :ref:`Platform Management Plan <pmp>`, here especially with :need:`Tool Management Plan <doc__platform_tool_management_plan>` -* If the tool is not on the list or does not cover the intended uses cases, continue with creation of a Tool Verification Report according to :need:`wf__tool__create_tool_verification_report` -* In case of any questions, contact the :need:`Technical Lead <rl__technical_lead>` diff --git a/docs/process/process_areas/tool_management/tool_management_roles.rst b/docs/process/process_areas/tool_management/tool_management_roles.rst deleted file mode 100644 index a93965aaf3..0000000000 --- a/docs/process/process_areas/tool_management/tool_management_roles.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Roles -##### - -For tool management no additional roles need to be defined. - -Contributing Roles: - - * :need:`Infrastructure, Tooling Community <rl__infrastructure_tooling_community>` - * :need:`Technical Lead <rl__technical_lead>` - * :need:`Module Project Lead <rl__module_lead>` - * :need:`Safety Manager <rl__safety_manager>` - * :need:`Security Manager <rl__security_manager>` - -A detailed overview of the responsibilities for the steps of the tool management process is -listed here: - -:ref:`tlm_workflows` diff --git a/docs/process/process_areas/tool_management/tool_management_workflow.rst b/docs/process/process_areas/tool_management/tool_management_workflow.rst deleted file mode 100644 index 863ed06b08..0000000000 --- a/docs/process/process_areas/tool_management/tool_management_workflow.rst +++ /dev/null @@ -1,54 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _tlm_workflows: - -Workflow Tool Management -######################## - -.. workflow:: Create Tool Verification Report - :id: wf__tool__create_tool_verification_report - :status: valid - :responsible: rl__contributor - :approved_by: rl__committer, rl__safety_manager, rl__security_manager, - :supported_by: rl__technical_lead, rl__module_lead, rl__infrastructure_tooling_community - :input: wp__issue_track_system, wp__tlm_plan - :output: wp__tool_verification_report - :contains: gd_temp__tool_management__verif_rpt_template, gd_chklst__tool__cr_review - :has: doc_concept__tool__process, doc_getstrt__tool__process - - The Tool Verification Report is created during identification of a tool in status draft. - - Each identified tool is evaluated and if applicable, qualified. During evaluation and - qualification the Tool Verification Report is updated and the status is set accordingly to - evaluated or qualified. - - Finally the Tool Verification Report is verified and approved, and thus set to status released. - - For creating the Tool Verification Report the content of the linked template be used. - - -.. needextend:: "process_areas/tool_management" in docname - :+tags: tool_management - -RAS(IC) for Tool Management: -**************************** - -.. needtable:: RASIC Overview for Tool Management - :tags: tool_management - :filter: "tool_management" in tags and type == "workflow" - :style: table - :sort: status - :columns: id as "Activity";responsible as "Responsible";approved_by as "Approver";supported_by as "Supporter" - :colwidths: 30,30,30,30 diff --git a/docs/process/process_areas/tool_management/tool_management_workproducts.rst b/docs/process/process_areas/tool_management/tool_management_workproducts.rst deleted file mode 100644 index e02ab52c42..0000000000 --- a/docs/process/process_areas/tool_management/tool_management_workproducts.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Work Products Tool Management -############################# - -.. workproduct:: Platform Tool Management Plan - :id: wp__tlm_plan - :status: valid - :complies: std_wp__isosae21434__org_management_554, std_req__aspice_40__iic-16-03, std_req__aspice_40__iic-01-52, std_req__aspice_40__iic-10-52 - - Tool Management Plan (Part of the Platform Management Plan) - -.. workproduct:: Tool Verification Report - :id: wp__tool_verification_report - :status: valid - :complies: std_wp__iso26262__support_1151, std_wp__iso26262__support_1152, std_wp__isosae21434__org_management_554 - - According to the safety tool process, each tool's confidence level (TCL) must be determined. - In addition security topics must be considered, as tool user manuals, access control for tools, - proper tool documentation, guidelines, protection against malware introduction, etc. - - Based on TCL the appropriate qualification methods shall be applied. For S-CORE - the method **validation of software tool** must be used. - - -.. needextend:: "docs/process/tool_management" in docname - :+tags: tool_management diff --git a/docs/process/process_areas/verification/_assets/requirements_workflow_verification.drawio.svg b/docs/process/process_areas/verification/_assets/requirements_workflow_verification.drawio.svg deleted file mode 100644 index c07f5c6484..0000000000 --- a/docs/process/process_areas/verification/_assets/requirements_workflow_verification.drawio.svg +++ /dev/null @@ -1,589 +0,0 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1676px" height="509px" viewBox="-0.5 -0.5 1676 509" content="<mxfile><diagram name="Page-1" id="2YBvvXClWsGukQMizWep">7Vzbl6I2GP9b+jDntA/M4S4+7jh7OzvTbmev05eeCFHTQcJCHHX/+gZIFJKIqAhuu/uwykdIwnf55bs5V9ZovnqdgHh2jwMYXpl6sLqybq9M0zR0l35klHVBcQdeQZgmKChIxpbwAX2HjKgz6gIFMK0MJBiHBMVVoo+jCPqkQgNJgpfVYRMcVleNwRRKhA8+CGXqFxSQWUH1HH1LfwPRdMZXNnR2Zw74YEZIZyDAyxLJenlljRKMSfFtvhrBMGMe50vx3KsddzcbS2BEmjzwJiITZOPV45/xl9v4n/Dh+S3QDKeY5hmEC/bGbLdkzVkAA8oRdokTMsNTHIHw5ZZ6k+BFFMBsHZ1ebcfcYRxTokGJ/0BC1ky8YEEwJc3IPGR3U5LgJzjCIU7yNS3PHFuuS+9MUBiW6IEDvcCmdPntGUNSvEh8tvPPj/dPyPr93tRezl6/e/h+88c7WxsyLQLJFJI61jBOZK9fWoEx9zXEc0iSNR2QwBAQ9FxVGMD0broZtxUN/cKkc4ikXElS7x/o9QN8RnCpFNodGFNrrDAahGga0e8+ZRukPL15hglBVN1fsBtzFASFTGGKvoNxPl8m1RijiOQv5dxcObdKEdSrGF0JrlRGy1ap2EWFw+wpTb+2TY/xgeGJxqZqLAQ2+/vsdbZTc7gRZuUT4MkkpcoiynCzxUZirdPGklQ/FAps6iMKppJcKYrE2dcA+4t5zvib5QwR+CEGudYvKQxXRT4ujPNufJixRTiCdXYmiXOn2NxBlbm2y66XW0A1OErOSmDq6eeyJe8iUO94DOPqWgExKw3w35/utPTeGfqfP75NRn9optMXiNXuu8T4B/htgRKY67LphplCj5OKKNxvC5yTcRLARPMLBX2RT5P8qmll+m85W/kT9Ns0/3Ru0DwO80VgsT99Tb0K5/a/YF/GxniYgVm60aGBqdTOqBdz+zxvgY2WxEWzZy6a8uHQB0xRlibrr/SCnr86BRRGecxmvLYdjxNuV2yN4mpdvnoPE0SZkrkcObER9KmZ0tR9G7aNfGrPwfMEtbEFdSh2yp46yYGo48d+RN1AYUoAWaT0mQII6ZN0gfNA4Rm8B0vv0ntQgpt8iNV64lHwIgtEM687BGmK/CrTqvYJV4h85YZHvxdW5rCrrYllF9zCdnJ5r+6XeOgoWMhpJ5qIbe8xkcLoJRORJnKsfm3NkI2tmbgDkM5yERtV2Wf094BQXIxyiqlbGweCpxtMWUei4BUKJXjWrw3brKLzcOAcg85cCbeK91jWu8OUsIzoi/u7d28/rr88Du/MV/eG4958mm2Qer8ze1Fa7QoxoyMCTlOtdg2rMpFtNNNqqmZgXRrGIvTGG7ZYKm5rJMWM7ZqMJZlMiKKn9Jy+Pj1c0ASxrCEV87frBTvhOliT6ho16s3pmq2eExQHbD85mlpgayNHY3o86uTZFKsVg9Msq/pIK1kZNdLIAYxSetzzTuE085DKbve+Y99fJM8bRJfwnTnjXn4agISUrkt479AIoYr3W8IheC9FrK7vwfFEkX4F0Jv4ZTflWnfMqqti2LXnRHZxVDSgPDu4XNpLhHRzeFCPtQrGLmXbUafHUMyu8eO0q/jjB8ql1WrGfhVyG6pQ+wWBuu0cEPkRmBIfU5CnnDZdMM/Ct2icZh9XZ06KKVJfu1FnpzAPSIrZevUQ6j8pZsmukGwphwWLpaOgehDontXOQeDq+mjUin1dCvJaTlUxzGOjUWkmyxpeD4fGkP8bCP5Ke0j87vvdcJHc/f1x+Nenr9Ml/Dz+HGoDSb1sWb/CEMUp3G/ALZigJUbrjilZoMoAzRYMUMkg4zLyqY1MSfkCbQfKrR9Udbsucd3pVS+lLJIlZxQ71UtTTijy4zuNQaQMVktRajId/0pnoGvr/KMIU/UJjog2AXMUrouhb2D4DLNYsnQ/zfU0u2uY8ap8o1g0uxPhZA7C0j0aGSNAP2lECsgiyWLt2nE+iHcNWTIWZzdtvQgH9BBmSTGNvr6Poqn8JE7iGYjYlGZBo+InGgueM/Imfub3ELXbiK2k81fN75CETjah8/OVWG0uU4m8hai0zBInQXVjm7nou4yfEJ0um7M4SzWmVJVxY+A/TXMc0QQ5mo5RiLD85bfSTgPo44QaLY40MkP+UwRTtj0UIYI4f8SxJVnWjittpzJuEmJAROYEKI1DsObDQxRlbQu/oHlMURFEZFeuZGcBotB5akOF2rMHRKzI9twNUIilB1sGCk8BFNa5PEhT1a3F/Pjif4lZJY6oGAbSuOiam6BVdqbdcFcfpfghS/tE0/zQ25UHOK8Pb1mCg8UroiUB2Cqktk8XgBqpTUkAbq9nmStWH53uzjJl2bWJi9V5heSIckbfHYmXX/9whKqeYwlTNK7qieVBUTlbzGApOwVk9+vsJYpNOxIrUizUJfjL6eLkdn2RBYJ2CwKq1z+0IPBj9UmrzYK323ffaXNac6csKqGlVpEZpUsDAqYbn7RcNGw/Gdp1h+DQFWoE/Xfg2v8/ezKb2lPT7p2O7En2eRWyaurz7uLrbkm0oP9ij5497NlLVmZ8/uPqr/Bya3vEL0X9VRFNLzF3J6Zi6LrojXcXc6ttRS6bGRLLLxt/xCjdMfrGH/n4tX4wnop9D/3zVE7OnVB/68f4DanBdtAvU225u+SE4lE/WUxb7LvsMEenbrj1+nA2julsr/z0RN90v5UePbTDoUUVOKqxubaL7dy/VaGHezXx4oqndnuptlqOlMz5I0yzHY5AClNJLc8Rayt7G9uLtR1HOJe8DmNttXbJwUaLDlQnGKoZAlcHntcvhl5IQvB4cOL73Q9Og7bB6TTGy+mIfuKxyQS6vlLzg8FwrNf2NZ8Qj7m6rPnnisfUAmjSxnh+zW9RGvttRdEirB7YWypcvR05zLu4vxlSr2Mnl5v0a9O27YoF8TrqqT9HMVzltK0Wo2rVsSTWOxQ9ZX/JyNRvuat0Bl+qFwQUkyeu12Ejt5r/cue9AgI77AIZCG79wJJZ1K13JPciqzS03x+n96LNYinuArT5Mn7A0+l53jgwvzDfVw6fT0jbtqDNYmFtYPQMPJYc6/5spf7ZSv2zlbrnVmpPqNaoPJRztVKrgULO3/T7a6nhsDMfjl5u/+xoEZRs/3ir9fJf</diagram></mxfile>"> - <defs/> - <g> - <path d="M 940 200 L 1023.63 200" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1028.88 200 L 1021.88 203.5 L 1023.63 200 L 1021.88 196.5 Z" fill="#82b366" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 201px; margin-left: 977px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> - PR Review - </div> - </div> - </div> - </foreignObject> - <text x="977" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> - PR Review - </text> - </switch> - </g> - <path d="M 820 160 L 940 160 L 940 228 Q 910 206.4 880 228 Q 850 249.6 820 228 L 820 172 Z" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 188px; margin-left: 821px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Source Code - </div> - </div> - </div> - </foreignObject> - <text x="880" y="192" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Source Code - </text> - </switch> - </g> - <path d="M 1390 41 L 1478.63 41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1483.88 41 L 1476.88 44.5 L 1478.63 41 L 1476.88 37.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1270 1 L 1390 1 L 1390 69 Q 1360 47.4 1330 69 Q 1300 90.6 1270 69 L 1270 13 Z" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 29px; margin-left: 1271px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Requirement - <br style="border-color: var(--border-color);"/> - [implemented= yes] - </div> - </div> - </div> - </foreignObject> - <text x="1330" y="33" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Requirement... - </text> - </switch> - </g> - <path d="M 470 2 L 590 2 L 590 70 Q 560 48.4 530 70 Q 500 91.6 470 70 L 470 14 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 30px; margin-left: 471px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Requirement - </div> - </div> - </div> - </foreignObject> - <text x="530" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Requirement - </text> - </switch> - </g> - <path d="M 940 39.99 L 1142.63 39.99" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1147.88 39.99 L 1140.88 43.49 L 1142.63 39.99 L 1140.88 36.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 820 0 L 940 0 L 940 68 Q 910 46.4 880 68 Q 850 89.6 820 68 L 820 12 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 28px; margin-left: 821px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Requirement - <br/> - [status = valid] - </div> - </div> - </div> - </foreignObject> - <text x="880" y="32" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Requirement... - </text> - </switch> - </g> - <path d="M 590 40 L 673.63 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 678.88 40 L 671.88 43.5 L 673.63 40 L 671.88 36.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 40px; margin-left: 635px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> - PR Review - </div> - </div> - </div> - </foreignObject> - <text x="635" y="43" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> - PR Review - </text> - </switch> - </g> - <path d="M 760 280 L 760 78 L 828.8 78" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/> - <path d="M 834.8 78 L 826.8 82 L 828.8 78 L 826.8 74 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 181px; margin-left: 731px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> - links - <br style="border-color: var(--border-color);"/> - [verifies= req.uid] - <br style="border-color: var(--border-color);"/> - [verifies hash = req.hash] - </div> - </div> - </div> - </foreignObject> - <text x="731" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> - links... - </text> - </switch> - </g> - <path d="M 1192.08 320.34 L 1506.2 320.3 L 1506.16 59.16" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1506.16 52.41 L 1510.66 61.41 L 1506.16 59.16 L 1501.66 61.41 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1525 41 L 1545 41 L 1535 41 L 1548.63 41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1553.88 41 L 1546.88 44.5 L 1548.63 41 L 1546.88 37.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1555 1 L 1675 1 L 1675 69 Q 1645 47.4 1615 69 Q 1585 90.6 1555 69 L 1555 13 Z" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 29px; margin-left: 1556px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Requirement - <br/> - [testcovered = yes] - </div> - </div> - </div> - </foreignObject> - <text x="1615" y="33" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Requirement... - </text> - </switch> - </g> - <path d="M 1505 29 L 1505 33.62" fill="none" stroke="#6600cc" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1505 38.87 L 1501.5 31.87 L 1505 33.62 L 1508.5 31.87 Z" fill="#6600cc" stroke="#6600cc" stroke-miterlimit="10" pointer-events="all"/> - <ellipse cx="490" cy="62" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 62px; margin-left: 481px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 4 - </div> - </div> - </div> - </foreignObject> - <text x="490" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 4 - </text> - </switch> - </g> - <path d="M 700 40 L 813.63 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 818.88 40 L 811.88 43.5 L 813.63 40 L 811.88 36.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <ellipse cx="690" cy="40" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 40px; margin-left: 681px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 5 - </div> - </div> - </div> - </foreignObject> - <text x="690" y="44" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 5 - </text> - </switch> - </g> - <rect x="720" y="40" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 47px; margin-left: 722px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - <span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> - [status = valid] - </span> - </div> - </div> - </div> - </foreignObject> - <text x="722" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"> - [status = val... - </text> - </switch> - </g> - <path d="M 1485 41 L 1505 29.45 L 1525 41 L 1505 52.55 L 1485 41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 41px; margin-left: 1486px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - & - </div> - </div> - </div> - </foreignObject> - <text x="1505" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - & - </text> - </switch> - </g> - <ellipse cx="840" cy="60" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 60px; margin-left: 831px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 6 - </div> - </div> - </div> - </foreignObject> - <text x="840" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 6 - </text> - </switch> - </g> - <path d="M 880 160 L 880 88.24" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/> - <path d="M 880 82.24 L 884 90.24 L 880 88.24 L 876 90.24 Z" fill="#82b366" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 132px; margin-left: 884px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> - links - <br style="border-color: var(--border-color);"/> - [implements= uid] - </div> - </div> - </div> - </foreignObject> - <text x="884" y="135" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> - links... - </text> - </switch> - </g> - <path d="M 1170 160 L 1170 59.37" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1170 54.12 L 1173.5 61.12 L 1170 59.37 L 1166.5 61.12 Z" fill="#82b366" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1110 160 L 1230 160 L 1230 228 Q 1200 206.4 1170 228 Q 1140 249.6 1110 228 L 1110 172 Z" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 188px; margin-left: 1111px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Source Code - <br/> - [metatag = req.uid] - </div> - </div> - </div> - </foreignObject> - <text x="1170" y="192" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Source Code... - </text> - </switch> - </g> - <path d="M 1050 200 L 1103.63 200" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1108.88 200 L 1101.88 203.5 L 1103.63 200 L 1101.88 196.5 Z" fill="#82b366" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <ellipse cx="1040" cy="200" rx="10" ry="10" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 200px; margin-left: 1031px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 2 - </div> - </div> - </div> - </foreignObject> - <text x="1040" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 2 - </text> - </switch> - </g> - <path d="M 1190 41 L 1263.63 41" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1268.88 41 L 1261.88 44.5 L 1263.63 41 L 1261.88 37.5 Z" fill="#82b366" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1150 41 L 1170 29.45 L 1190 41 L 1170 52.55 L 1150 41 Z" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 41px; margin-left: 1151px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - & - </div> - </div> - </div> - </foreignObject> - <text x="1170" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - & - </text> - </switch> - </g> - <ellipse cx="840" cy="220" rx="10" ry="10" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 220px; margin-left: 831px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="840" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - <ellipse cx="1130" cy="220" rx="10" ry="10" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 220px; margin-left: 1121px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 3 - </div> - </div> - </div> - </foreignObject> - <text x="1130" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 3 - </text> - </switch> - </g> - <ellipse cx="1290" cy="57" rx="10" ry="10" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 57px; margin-left: 1281px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 4 - </div> - </div> - </div> - </foreignObject> - <text x="1290" y="61" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 4 - </text> - </switch> - </g> - <ellipse cx="1570" cy="60" rx="10" ry="10" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 60px; margin-left: 1561px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 5 - </div> - </div> - </div> - </foreignObject> - <text x="1570" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 5 - </text> - </switch> - </g> - <path d="M 820 320 L 1143.31 320" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1148.56 320 L 1141.56 323.5 L 1143.31 320 L 1141.56 316.5 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 700 280 L 820 280 L 820 348 Q 790 326.4 760 348 Q 730 369.6 700 348 L 700 292 Z" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 308px; margin-left: 701px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Test Cases - </div> - </div> - </div> - </foreignObject> - <text x="760" y="312" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Test Cases - </text> - </switch> - </g> - <ellipse cx="10" cy="498" rx="10" ry="10" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 498px; margin-left: 1px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="10" y="502" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - <path d="M 1170 332 L 1170 374.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1170 379.88 L 1166.5 372.88 L 1170 374.63 L 1173.5 372.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/> - <path d="M 1150 320 L 1170 308.45 L 1190 320 L 1170 331.55 L 1150 320 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 320px; margin-left: 1151px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - & - </div> - </div> - </div> - </foreignObject> - <text x="1170" y="324" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - & - </text> - </switch> - </g> - <path d="M 950 421 L 1023.63 421" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1028.88 421 L 1021.88 424.5 L 1023.63 421 L 1021.88 417.5 Z" fill="#d79b00" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 422px; margin-left: 985px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> - PR Review - </div> - </div> - </div> - </foreignObject> - <text x="985" y="425" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> - PR Review - </text> - </switch> - </g> - <path d="M 830 381 L 950 381 L 950 449 Q 920 427.4 890 449 Q 860 470.6 830 449 L 830 393 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 409px; margin-left: 831px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Linkage Document - </div> - </div> - </div> - </foreignObject> - <text x="890" y="413" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Linkage Document - </text> - </switch> - </g> - <ellipse cx="865" cy="441" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 441px; margin-left: 856px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 2 - </div> - </div> - </div> - </foreignObject> - <text x="865" y="445" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 2 - </text> - </switch> - </g> - <path d="M 1110 381 L 1230 381 L 1230 449 Q 1200 427.4 1170 449 Q 1140 470.6 1110 449 L 1110 393 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 409px; margin-left: 1111px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - Linkage Document - <br/> - [status = valid] - </div> - </div> - </div> - </foreignObject> - <text x="1170" y="413" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - Linkage Document... - </text> - </switch> - </g> - <path d="M 1050 421 L 1103.63 421" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/> - <path d="M 1108.88 421 L 1101.88 424.5 L 1103.63 421 L 1101.88 417.5 Z" fill="#d79b00" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/> - <ellipse cx="1040" cy="421" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 421px; margin-left: 1031px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 3 - </div> - </div> - </div> - </foreignObject> - <text x="1040" y="425" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 3 - </text> - </switch> - </g> - <rect x="1020" y="431" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 438px; margin-left: 1022px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - <span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> - [status = valid] - </span> - </div> - </div> - </div> - </foreignObject> - <text x="1022" y="450" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"> - [status = val... - </text> - </switch> - </g> - <ellipse cx="1155" cy="441" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"> - <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: 441px; margin-left: 1146px;"> - <div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"> - <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> - 4 - </div> - </div> - </div> - </foreignObject> - <text x="1155" y="445" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle"> - 4 - </text> - </switch> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/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> diff --git a/docs/process/process_areas/verification/guidance/index.rst b/docs/process/process_areas/verification/guidance/index.rst deleted file mode 100644 index 68706162e2..0000000000 --- a/docs/process/process_areas/verification/guidance/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_guidance: - -Guidance -######## - -.. toctree:: - :maxdepth: 1 - - verification_guideline - verification_specification - verification_process_toolreqs - verification_templates - verification_plan_template - verification_report_template - verification_methods diff --git a/docs/process/process_areas/verification/guidance/verification_guideline.rst b/docs/process/process_areas/verification/guidance/verification_guideline.rst deleted file mode 100644 index 61e851229c..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_guideline.rst +++ /dev/null @@ -1,136 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Verification Guideline -====================== -.. gd_guidl:: Verification Guideline - :id: gd_guidl__verification_guide - :status: valid - :complies: std_req__isopas8926__445 - - This guideline outlines the responsibilities and procedures for developers performing - verification activities (testcase creation, inspection, and review) for documentation, - Rust and C/C++ elements of the platform and its tooling. - - Note that rust, python and gTest are used for test case creation. - -General Principles ------------------- - -* **Verification is everyone's responsibility:** While dedicated testing responsible may exist, every developer is - accountable for the quality and correctness of their code and related artifacts. -* **Early and often:** Verification activities should be integrated throughout the development lifecycle, - not just at the end. This includes unit tests, integration tests, code reviews, and inspections. -* **Traceability:** All verification activities should be traceable to requirements, architectural design, etc. -* **Independence:** Where possible, verification activities should be performed by someone other than the original author of the code or documentation. -* **Documentation:** All verification activities and their results must be documented appropriately. - -More details on the test strategy and execution can be found in the :need:`wp__verification__plan` implemented by -:need:`doc__verification_plan`. - - -Test Case Description ---------------------- - -A good test description clearly explains the purpose and scope of a test case. -It provides enough information for anyone (including someone unfamiliar with the system) to understand -what is being tested and how. - -Basic qualities of a good test case description are that the test is: - - Clear: Easy to understand and avoids ambiguity. - - Specific: Provides enough detail to reproduce the test. - - Measurable: Defines clear pass/fail criteria. - - Complete: Covers all relevant aspects of the test. - -Test specifications should follow :need:`gd_guidl__verification_specification` - -Structuring of the Test Case -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To fulfill the demands of the work product :need:`wp__verification__plan` the -templates in :ref:`verification_process_reqs` shall be used and the :need:`gd_guidl__verification_specification` -should be followed . This includes general information and templates for the allowed programming languages. - - -Verify Requirements Execution Work Flow ---------------------------------------- - -Simplified in a nutshell: - -#. Implement test case -#. Link test case to requirements and specify metatags -#. Confirm requirement test coverage by creating linkage document -#. Set requirement attribute [testcovered=YES] during Sphinx build - -More information on the concept of requirements verification can be found in :ref:`requirement_verification_workflow` - -A more detailed description of how to link code to requirements is available here: :need:`gd_req__link_tests` - -Traceability matrix and consistency checks will be automatically established with tool support. - -Two properties exists; one to show partial and one to show full coverage of a requirement. -For multiple test cases having a "partial coverage" a review has to be conducted to confirm -that a requirement is fully covered. The pull request description should indicate which requirements -are fully covered by the PR commits and which test cases are needed to fully cover the test case. -This is important, as multiple PRs may be needed to fully verify a single requirement. - - -Test case execution -------------------- - -The execution of the tests is based on a full automation defined by build pipelines. -The analysis of the test results needs to be performed by the contributor. - -In order to check the test results for the impact of a change or addition, it is recommended to -execute affected test cases locally upfront using the execution framework of the build tooling -following basically the steps the CI does locally. - -There may be the need for limited number of manually executed test cases. -These manually executed test cases are execution script driven, where a script guides through the -test cases and reports the result in the same logging format as automated tests do. - -Reporting of failing test cases -------------------------------- - -Any failing test case requires an ISSUE. -The passing rate of safety-critical test cases need to be 100% in order to release the affected component. -In case of a lower pass rate than 100% for QM level tests, the :need:`rl__technical_lead` and -:need:`rl__project_lead` can decide, if the platform is in a releasable state. The accepted minimal -path rate is defined in the :need:`wp__verification__plan`. Due to the high degree of automation, a -it is recommended that a path rate lower 95% is not acceptable. - -In case an existing test case is failing due to regression in the CI, the respective issuer of the -PR in their role as :need:`rl__contributor` is responsible for fixing the test case as part of -respective PR. - -Reuse of existing test cases ----------------------------- - -In case pre-existing test cases from components can be used, they have to be reviewed and checked -for their fit to the defined requirements. The test cases should get patch files to cover missing -specification parts following :need:`gd_guidl__verification_specification` and have the necessary -:need:`gd_req__link_tests` followed. These patches are applied on top of the untouched actual -implementation of the software code. - -Additionally needed test cases should be added as standalone parts. They are developed as any -other test case as part of the platform. If upstreaming of the newly created tests is judged as -useful, this shall be planned and added to the project milestone plan. - -Verification types and methods ------------------------------- - -Verification types and methods are described in the :need:`gd_meth__verification__methods` and the -derivation techniques in :need:`gd_meth__verification__derivation`. The detailed method guideline -helps to get an understanding what the different methods and derivation techniques mean and how to -create test cases using the same. diff --git a/docs/process/process_areas/verification/guidance/verification_methods.rst b/docs/process/process_areas/verification/guidance/verification_methods.rst deleted file mode 100644 index 6f7ed004f6..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_methods.rst +++ /dev/null @@ -1,348 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_methods: - -Verification methods and derivation techniques ----------------------------------------------- - -This guide helps to get an understanding what the different methods and derivation techniques mean -and how to create test cases using the same. - -Methods -^^^^^^^ - -.. gd_method:: Verification Methods - :id: gd_meth__verification__methods - :status: valid - - Following methods are explained - - * :ref:`Fault Injection <ver_fault>` - * :ref:`Interface Test <ver_interface>` - * :ref:`Structural Coverage <ver_structural>` - -.. _ver_fault: - -Fault Injection -""""""""""""""" - -As part of ``fault-injection`` instrumentation of source code is the preferred method. -While it is theoretically possible to modify binaries, this is not considered as it is hard to -maintain and should only be done, when no source code access is possible. Therefore, this is not -applicable to software provided as open source. - -Practical approaches are: - - - **Conditional Fault Injection with Macros** - - Use preprocessor macros and conditional compilation to enable or disable fault injection code. - This makes it easy to turn fault injection on during testing and off during normal operation. - - **Function wrapping** - - Create wrapper functions around critical functions to inject faults before or after the original - function call. - - **Instrumentation with Error Code Injection** - - Modify the code to explicitly return error codes under certain conditions to simulate failures. - This is especially useful if the components use a standardized error handling mechanism. - - **Data Corruption** - - Introduce code to corrupt data structures or variables in memory. - -.. _ver_interface: - -Interface Test -"""""""""""""" - -Interface testing is a type of software testing that focuses on verifying the proper communication -and data exchange between different software components or features. It's about ensuring that the -interfaces (the points where different parts of the system connect and interact) are working -correctly and reliably. This includes validating data formats, protocols, error handling, and -overall communication integrity. - -It can be distinguished between internal and external interfaces. Internal interfaces are best covered -on unit level. External interfaces work best on component integration and feature level. - -Types of ``interface-test`` are: - - - **Parameter Passing Tests** - - Verify that parameters are passed correctly between components (data types, ranges, units). - - **Data Format Tests** - - Ensure that data is formatted correctly according to the interface specification - (e.g., byte order, data alignment, encoding). - - **Protocol Tests** - - Verify that the communication protocol is implemented correctly (e.g., message sequencing, - checksums, error handling). - - **Error Handling Tests** - - Test how the software handles communication errors (e.g., lost messages, corrupted data, timeouts). - - **Stress Tests** - - Stress the interfaces to see how they behave under heavy load (e.g., sending a large number of - messages simultaneously). - - **Security Tests:** (Relevant for code interacting with security critical parts) - - Verify that the interfaces are protected against unauthorized access and data breaches. - - **Timing and Performance Tests** (Relevant for realtime constraints) - - Measure the latency and throughput of the interfaces. This is mainly on integration level and is - hard to have reasonable testing in the reference implementation - -.. _ver_structural: - -Structural Coverage -""""""""""""""""""" - -Structural coverage is a white-box testing technique used to check if the testing is sufficient by -analyzing if code constructs were called during testing. - -In S-CORE we do both: - -* **Statement Coverage:** Measures whether each executable source code statement has been executed. - -* **Branch Coverage:** Measures whether each possible branch (decision outcome) in the code has - been executed. It focuses on the overall boolean result of a decision point (if, while, etc.). - -S-CORE evaluates this coverage using the compiler selected for the target reference platform. - -If a sufficient structural coverage is not reached then additional test cases are added. -What is sufficient and how to determine the coverage is defined in the :need:`doc__verification_plan`. - - -Derivation Techniques -^^^^^^^^^^^^^^^^^^^^^ - -.. gd_method:: Verification Derivation Technique - :id: gd_meth__verification__derivation - :status: valid - - Following derivation techniques are explained - - * :ref:`Boundary Values <ver_boundary>` - * :ref:`Equivalence Classes <ver_equivalence>` - * :ref:`Fuzzy Testing <ver_fuzzy>` - -.. _ver_boundary: - -Boundary Values -""""""""""""""" - -Boundary Value Analysis (BVA) is a software testing technique where test cases are designed to -focus on the boundaries of input domains. The underlying principle is that errors tend to cluster -at or near the boundaries of input values. Instead of randomly selecting test values, BVA -systematically targets these boundary conditions, increasing the likelihood of finding defects. -BVA is often considered a type of black-box testing, meaning it doesn't require knowledge of the -internal code structure. - -Examples to derive the scope of middleware layers following ``boundary-values`` - - - **Sensor Ranges** - - For example temperature, pressure, and acceleration sensors have minimum and maximum values they can report. - - **Control Signals** - - PWM duty cycles, motor speeds, valve positions have upper and lower limits. - - **Communication Protocols** - - For example CAN message IDs, data lengths, signal values have boundaries defined by the protocol specification. - - **Memory Allocation** - - Buffer sizes, data structures have defined limits. - -How to perform the analysis: - - **1. Identify Input Variables** - - List all the input variables (parameters) of the component or function you want to test. - - This includes: - - - Input parameters of functions - - Data received from sensors - - Data received from other ECUs (via CAN, Ethernet, etc.) - - Configuration parameters - - **2. Determine Boundaries** - - For each input variable, identify its boundaries: - - - **Minimum Value** - - The smallest possible value. - - **Maximum Value** - - The largest possible value. - - **Nominal/Typical Value** - - A representative value within the normal operating range. This is *not* strictly required - for BVA but can be helpful for context. - - **Consider Data Types** - - Use appropriate data types to define the variables and boundaries. - ``int8_t`` (signed 8-bit integer), ``uint16_t`` (unsigned 16-bit integer), ``float``, ``double``, etc. - - **3. Define Test Values** - - For each input variable, create test values using the following: - - - **Minimum Value** - - **Maximum Value** - - **Just Above the Minimum Value** (Minimum + 1 or next representable value) - - **Just Below the Maximum Value** (Maximum - 1 or previous representable value) - - **A Value Within the Nominal Range** (Although not strictly *boundary* it provides a basis for comparison). - - **4. Design Test Cases** - - Create test cases that combine the test values for all input variables. - - Follow these guidelines: - - - **Single Variable Variation:** - - Vary one input variable at a time, keeping other variables at their nominal values. - This helps isolate the impact of each variable. - - **Combination Tests** - - In some cases, you may want to create test cases that combine boundary values for multiple - input variables simultaneously. This is especially important if there are dependencies - between the variables. - -.. _ver_equivalence: - -Equivalence Classes -""""""""""""""""""" -Equivalence Classes or also called Equivalence Partitioning (EP) is a software testing technique -that divides the input domain of a program into equivalence classes or partitions. The principle -is that all values within a single partition are treated equivalently by the software. Therefore, -only one test case from each partition is needed to achieve adequate test coverage. This reduces -the number of test cases significantly compared to testing all possible inputs. - -Equivalence Classes provide a different perspective compared to Boundary Value Analysis. - -The following perspectives are included in ``equivalence-classes``: - -- **Reduce Test Case Volume** - - Components may have complex input domains. EP allows you to focus testing efforts on - representative values within each partition, drastically reducing the number of test cases needed. -- **Improve Test Coverage** - - By testing at least one value from each partition, you ensure that you've covered all the - different behaviors of the software. -- **Address Different Input Types** - - EP is applicable to various input types, including numerical ranges, enumerated values, - boolean flags, and more. -- **Find Different Types of Errors** - - While BVA focuses on boundary-related errors, EP helps find errors related to how the software - processes different categories of inputs. - -How to perform the analysis: - - **1. Identify Input Variables** - - List all the input variables (parameters) of the component or function you want to test. - - This includes: - - - Input parameters of functions - - Data received from sensors - - Data received from other system elements (via Ethernet, CAN, etc.) - - Configuration parameters - - **2. Divide into Equivalence Classes** - - For each input variable, divide the input domain into equivalence classes. - - Consider: - - - **Valid Input Classes** - - Classes that contain valid input values according to the specifications. - - **Invalid Input Classes** - - Classes that contain invalid input values (out of range, incorrect data type, etc.). - - **Special Cases** - - Classes representing specific or unusual input values that might trigger special behavior - in the software. - - **3. Define Test Values** - - Choose one representative test value from each equivalence class. It doesn't matter *which* - value you choose, as long as it's within the class. As an easy example consider the motor speed. - Test Values could be: - - - Class 1 (Valid): 50 (A value within the valid range) - - Class 2 (Below Minimum): -10 - - Class 3 (Above Maximum): 150 - - **4. Design Test Cases** - - Create test cases using the representative values from each equivalence class. - Aim to cover all classes in your test suite. - -.. _ver_fuzzy: - -Fuzzy Testing -""""""""""""" - -Fuzzy Testing, often called Fuzz Testing, is a software testing technique that involves providing -invalid, unexpected, or random data as inputs to a component or system to detect defects. The goal -of fuzzy testing is to expose unhandled exceptions, memory leaks, assertion failures, and other -critical issues by generating semi-random inputs and observing the system's behavior. - -The following perspectives are included in ``fuzz-testing``: - - **Detect Security Vulnerabilities** - - By feeding malformed or unexpected inputs, fuzzy testing can reveal security vulnerabilities - like buffer overflows, SQL injections, and other input validation issues. - - **Uncover Edge Cases** - - Fuzzy testing can discover edge cases that might not be covered by traditional testing methods, - as it generates inputs that developers might not have anticipated. - - **Automate Input Generation** - - Instead of manually creating test inputs, fuzzy testing automates the process, allowing for a - much larger number of test cases to be executed. - - **Improve Robustness** - - By exposing the system to a wide variety of inputs, fuzzy testing helps ensure that the - software can handle unexpected situations gracefully. - -How to perform fuzzy testing: - - **1. Identify Target Functions** Determine which functions or interfaces are suitable for - fuzzy testing, focusing on those that process external inputs. - - **2. Define Input Structure** Understand the basic structure or format of valid inputs to - create effective fuzzers that can produce semi-valid inputs. - - **3. Generate Fuzzy Inputs** Create inputs that are slightly malformed or unexpected, either - through complete randomization or by mutating valid inputs. - - **4. Monitor System Behavior** Execute the system with fuzzy inputs and monitor for crashes, - hangs, memory leaks, or other unexpected behaviors. - - **5. Analyze and Fix Issues** When a problem is detected, analyze the input that caused it - and fix the underlying issue in the code. diff --git a/docs/process/process_areas/verification/guidance/verification_plan_template.rst b/docs/process/process_areas/verification/guidance/verification_plan_template.rst deleted file mode 100644 index d08cbc131b..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_plan_template.rst +++ /dev/null @@ -1,194 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_plan_template: - -Verification Plan Template -########################## - -.. gd_temp:: Platform Verification Plan Template - :id: gd_temp__verification__plan - :status: valid - :complies: std_wp__iso26262__support_951, std_wp__iso26262__support_1252 - - This document implements :need:`wp__verification__plan`. - - It provides a template for a software verification plan and should be adapted to the specific - project needs. - - The document should start with a header following the :need:`doc__documentation_mgt_plan`. - - .. code-block:: rst - - .. document:: Software Verification Plan - :id: doc__verification_plan - :status: draft - :safety: ASIL_B - :tags: platform_management - - Software Verification Plan - ************************** - - This document provides a template for a software verification plan. - It should be adapted to the specific needs of project. - - - Purpose - ======= - - This section should briefly describe the overall goal of the verification plan. - It should state the plan's intended audience and the information it aims to provide. - This might include clarifying the scope of the verification activities and linking to - other relevant documents. - - - Objectives and Scope - ==================== - - Objectives - ---------- - - This section outlines the key objectives of the software verification effort. - Examples include correctness, completeness, reliability, performance, maintainability, - compliance, and traceability. Each objective should be clearly defined and measurable. - - Verification Scope and Constraints - ---------------------------------- - - This section details what software components and functionalities are included in the - verification process. It should also clearly specify any limitations or exclusions. - This section should address external dependencies and integrations. - - - Risks and Mitigation - -------------------- - - This section identifies potential risks associated with the verification activities and outlines - strategies to mitigate those risks. This may involve referencing the :need:`wp__platform_mgmt`. - - - Schedules - --------- - - This section defines the timeline for different verification activities. - It might include milestones, deadlines, and dependencies between tasks. - - - Approach - ======== - - General Approach - ---------------- - - This section provides a high-level overview of the verification strategy. - It should describe the overall methodology (e.g., Continuous Integration), - approaches used, and rationale behind the choices made. - - Software Integration - -------------------- - - This section details how software components are integrated into the system. - It should describe the integration process, including procedures for handling new features, - bug fixes, and code changes. - - Levels of Integration and Verification - -------------------------------------- - - This section defines the different levels of integration and verification that will be performed - (e.g., unit, component, system). Each level should be clearly defined, with associated criteria - for successful completion. - - Verification Methods - -------------------- - - This section lists the specific verification methods used, such as static analysis, - dynamic testing, reviews, and inspections. Each method should be briefly described, - including its purpose and applicability at different levels of verification. - Reference tables can list methods, identifiers, applicable levels and ASIL relevance. - - Test Derivation Methods - ^^^^^^^^^^^^^^^^^^^^^^^ - - This section details the techniques used to derive test cases (e.g., boundary value analysis, - equivalence partitioning, requirements tracing). It should clarify which techniques are used - at each level of testing and for different ASIL levels. Again, a reference table is recommended. - - Quality Criteria - ---------------- - - This section specifies the quality criteria that must be met for successful verification. - These criteria might include code coverage metrics, defect density, or other relevant measures. - The criteria should be defined with quantifiable goals for different ASIL levels. - - Test Development - ---------------- - - This section describes the process for developing and maintaining test cases. - It should cover aspects such as test automation, test data management, and version control. - - Pre-existing test cases - ^^^^^^^^^^^^^^^^^^^^^^^ - This section describes how pre-existing test cases are handled which are e.g. available - from an OSS component. It should be stated how they are reviewed, integrated, extended - (e.g. with respective documentation), and adopted to the needs described in the project - (e.g. usage of documentation templates and traceability) - - Test Execution and Result Analysis - ---------------------------------- - - This section describes how tests will be executed and the procedures for analyzing the results. - It should outline the tools and processes used for test execution and reporting. - - Test Selection and Regression Testing - ------------------------------------- - - This section describes the approach to selecting test cases for execution and the strategy for - regression testing to ensure that new changes don't introduce regressions. - - Work Products and Traceability - ------------------------------ - - This section lists all the key deliverables related to the verification process. - It should also describe how traceability between requirements, design, code, and test - cases is maintained. - - - Environments and Resources - ========================== - - Roles - ----- - - This section defines the roles and responsibilities of individuals involved in the - verification process. It can refer and should be based on the definition in the - verification process :ref:`verification_roles`. - - Tools - ----- - - This section lists the tools used for verification, including build systems, test frameworks, - static analysis tools, and other relevant software. - - Verification Setups and Variants - -------------------------------- - - This section describes the different test environments and configurations used for verification. - - Test Execution Environment and Reference Hardware - ------------------------------------------------- - - This section describes the hardware and software environments used for test execution. - It should include information about any specific hardware platforms or simulators used. - It should also define how the verification environment interacts with the CI system, including - access control and maintenance. diff --git a/docs/process/process_areas/verification/guidance/verification_process_toolreqs.rst b/docs/process/process_areas/verification/guidance/verification_process_toolreqs.rst deleted file mode 100644 index 2ef9c5ffb1..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_process_toolreqs.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_process_reqs: - -Test Linking to Requirements -============================ - - -.. gd_req:: Linking Requirements to Tests - :id: gd_req__link_tests - :status: valid - :complies: std_req__iso26262__support_6432 - - For linking test suites to requirements following metadata shall be used: - - * Verifies - * PartiallyVerifies - * FullyVerifies - * ASIL - * QM - * ASIL_B - * Description - * Status - * valid - * invalid - * TestType - * Fault Injection (fault-injection) - * Interface Test (interface-test) - * Requirements-based Test (requirements-based) - * Resource Usage Evaluation (resource-usage) - - * DerivationTechnique - * Analysis of requirements (requirements-analysis) - * Analysis of design (design-analysis) - * Analysis of boundary values (boundary-values) - * Analysis of equivalence classes (equivalence-classes) - * Fuzzy testing (fuzz-testing) - * Error guessing based on knowledge or experience (error-guessing) - * Explorative testing (explorative-testing) - - - More information can be found in the :need:`gd_guidl__verification_guide`, :need:`doc_concept__verification__process`, - and :need:`gd_guidl__verification_specification`. - -.. gd_req:: Linking Requirements to Tests (C++) - :id: gd_req__link_tests_cpp - :status: valid - :complies: std_req__iso26262__support_6432 - - For linking C++ test suites to requirements **record properties** shall be used. Attributes - which are common for all test cases can be specified in the Setup Function (SetUp()), the other - attributes which are specific for each test case need to be specified within the test case: - - .. code-block:: cpp - - class TestSuite : public ::testing::Test{ - public: - void SetUp() override - { - RecordProperty("Status", "<Status>"); - RecordProperty("ASIL", "<ASIL>"); - RecordProperty("TestType", "<TestType>"); - RecordProperty("DerivationTechnique", "<DerivationTechnique>"); - ... - } - }; - - TEST_F(TestSuite, <Test Case>) - { - RecordProperty("PartiallyVerifies", "ID_2, ID_3, ..."); - RecordProperty("FullyVerifies", "ID_4, ID_5, ..."); - RecordProperty("Description", "<Description>"); - - ASSERT ... - } - -.. gd_req:: Linking Requirements to Tests (Python) - :id: gd_req__link_tests_python - :status: valid - :complies: std_req__iso26262__support_6432 - - For linking python tests to requirements **metadata** shall be used. Attributes which are - common for all test cases can be specified in the Test Suite (above the class), the other - attributes which are specific for each test case need to be specified above the test case: - - .. code-block:: python - - @pytest.fixture(scope="session", autouse=True) - def add_metadata(record_testsuite_property): - record_testsuite_property("ASIL", "<ASIL>") - record_testsuite_property("TestType", "<TestType>") - record_testsuite_property("DerivationTechnique", "<DerivationTechnique>") - class Testclass(TestSim): - - def TestFunction(self, record_property): - record_property("PartiallyVerifies", "ID_2, ID_3, ...") - record_property("FullyVerifies", "ID_4, ID_5, ...") - record_property("Description","<Description>") - -.. gd_req:: Linking Requirements to Tests (Rust) - :id: gd_req__link_tests_rust - :status: valid - :complies: std_req__iso26262__support_6432 - - For linking Rust tests to requirements **#[record_property]** shall be used: - - .. code-block:: rust - - use test_properties::record_property; - - #[record_property("PartiallyVerifies", "ID_2, ID_3, ...")] - #[record_property("FullyVerifies", "ID_4, ID_5, ...")] - #[record_property("Description", "<Description>")] - #[record_property("Status", "<Status>")] - #[record_property("ASIL", "<ASIL>")] - #[record_property("TestType", "<TestType>")] - #[record_property("DerivationTechnique", "<DerivationTechnique>")] - #[test] - fn test_case_function() { - ... - } - -.. gd_req:: Test Independence - :id: gd_req__verification_independence - :status: draft - - The approver of a pull request shall differ from the author(s) of the pull request in all pull requests. diff --git a/docs/process/process_areas/verification/guidance/verification_report_template.rst b/docs/process/process_areas/verification/guidance/verification_report_template.rst deleted file mode 100644 index da44d64762..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_report_template.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_report_templates: - -Verification Report Templates -============================= - -.. gd_temp:: Module Verification Report Template - :id: gd_temp__mod_ver_report - :status: valid - :complies: std_wp__iso26262__software_952, std_wp__iso26262__software_1053, std_wp__iso26262__support_953, std_wp__iso26262__support_1253, std_wp__iso26262__analysis_752, std_wp__iso26262__analysis_852, std_wp__iso26262__support_1252 - - This document implements :need:`wp__verification__module_ver_report`. - - | Place the document header here following the :need:`doc__documentation_mgt_plan`. - | - | This verification report is based on the :need:`wp__verification__plan`. - | It covers all the components of the above stated module. - | - | Verification Report contains: - | - | **1. Verification Coverage** - | - | **1.1. on Requirements** - | - Lists of component requirements (incl. AoU satisfied by the component) tested by which test case, passed/failed and completeness verdict - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - For external component Assumptions of Use: coverage by platform safety manual or feature/components incl. test case, passed/failed and completeness verdict - | - This is split in a list of QM requirements tested and a separate list of tests for ASIL rated requirements. - | - List of component requirements (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | **1.2. on Architecture** - | - List of component architecture tags tested by which test case, passed/failed and completeness verdict - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. - | - List of component architecture tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | **1.3. on Detailed Design** - | - List of detailed design tags tested by which test case, passed/failed and completeness verdict - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. - | - List of detailed design tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | - The lists may also contain other verification methods like "Analysis" - process tbd - | - | **2. DFA Report** - | - List of the performed component DFA, pass/fail with open mitigations - | - | **3. Safety Analysis Report** - | - List of the performed component Safety Analysis, pass/fail with open mitigations - | - | **4. Unit Verification Coverage** - | - | **4.1. Structural Coverage** - | - List of the units with C0(line) and C1(branch) coverage absolute and percentage - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - List includes a column for the safety rating of each unit. - | - | **4.2. Static Code Analysis** - | - List of the units with compiler warning numbers and coding rule violation numbers - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - List includes a column for the safety rating of each unit. - | - | **4.3. Manual Code Inspection** - | - List of components (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | **5. Software component qualification verification report** - | - Contains the needed verification results if for some components a qualification of pre-developed SW is performed. - - **Note1:** The verification report is valid for the module version tagged together with the report - - **Note2:** All the above lists are generated automatically - -.. gd_temp:: Platform Verification Report Template - :id: gd_temp__platform_ver_report - :status: valid - :complies: std_wp__iso26262__software_1053, std_wp__iso26262__support_953, std_wp__iso26262__analysis_752, std_wp__iso26262__analysis_852 - - This document implements :need:`wp__verification__platform_ver_report`. - - | Place the document header here following the :need:`doc__documentation_mgt_plan`. - | - | This verification report is based on the :need:`wp__verification__plan`. - | It covers all the selected features of the SW platform. - | - | Verification Report contains: - | - | **1. Verification Coverage** - | - | **1.1. on Requirements** - | - Lists of feature requirements tested by which test case, passed/failed and completeness verdict - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - For external component Assumptions of Use: coverage by platform safety manual or feature - | - This is split in a list of QM requirements tested and a separate list of tests for ASIL rated requirements. - | - List of feature requirements (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | **1.2. on Architecture** - | - List of feature architecture tags tested by which test case, passed/failed and completeness verdict - | (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - | - This is split in a list of QM features tested and a separate list of tests for ASIL rated features. - | - List of feature architecture tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - | - | - The lists may also contain other verification methods like "Analysis" - process tbd - | - | **2. DFA Report** - | - List of the performed Feature DFA, pass/fail with open mitigations - | - | **3. Safety Analysis Report** - | - List of the performed Feature Safety Analysis, pass/fail with open mitigations - - **Note1:** The verification report is valid for the platform version tagged together with the report - - **Note2:** All the above lists are generated automatically diff --git a/docs/process/process_areas/verification/guidance/verification_specification.rst b/docs/process/process_areas/verification/guidance/verification_specification.rst deleted file mode 100644 index 31fc60ab15..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_specification.rst +++ /dev/null @@ -1,133 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -Test Specification Guideline -============================ - -.. gd_guidl:: Test Specification Guideline - :id: gd_guidl__verification_specification - :status: valid - :complies: std_wp__iso26262__support_952 - -Test specification ------------------- - -A test specification contains the following attributes. - -.. list-table:: Test specification properties - :header-rows: 1 - :widths: 10 30 40 20 - - * - Property - - Type / Values - - Description - - Helpful links - * - Partially and/or Fully Verifies - - Sphinx-needs Id(s) - - Links to one or more requirement Ids. Can be partial or full coverage of a - requirement, as per test property. - - - * - Description - - Text - - The description should include - - - The objective of the test. - - Inputs - - Expected outcome (e.g. "A success message is displayed.") - - Test environment (e.g. network configuration, clean system state) - - - * - Status - - - - valid - - invalid - - - - - * - TestType - - Examples are: - - - requirements-based - - interface-test - - boundary - - coverage (various types apply, shall be tool supported) - - for :need:`wp__verification__sw_unit_test` also fault-injection - - These are example values and an incomplete list. - A full list of test types is available in :need:`doc_concept__verification__process` at - :ref:`verification_concept_types_methods`. - - - * - DerivationTechnique - - Examples are: - - - requirements-analysis - - boundary-values - - equivalence-classes - - error-guessing - - These are example values and an incomplete list. - A full list of test methods is available in :need:`doc_concept__verification__process` at - :ref:`verification_concept_types_methods`. - - - -The implementation of :need:`wp__verification__plan` defines the full list of allowed types and methods. - - -Test description ----------------- - -Following Given-When-Then is a preferred way to write test specifications. - -* | Given (alternatively // Setup ) - | This section contains the setup of the input. -* | Expected - | This Section contains the expectation for calls to mocks or stubs -* | When (alternatively // Call ) - | This section contains the call to the software under test. -* | Then (alternatively // Expect ) - | This section contains the verification criteria of the test (e.g. all EXPECT statements). - -.. code-block:: cpp - - TEST(CreateObjectHistory, GivenVehicleInFront_ExpectHistoryBehindFrontVehicle) - { - // Given - const auto whatever_input_values = CreateVehicleInFront(); - - // Expected - EXPECT_CALL(..., ...); - - // When - const auto history = CreateObjectHistory(whatever_input_values, ...); - - // Then - for (const auto point : history) - { - EXPECT_EQ(..., ...); - } - } - -Another example for a good test description could be: - - | Verify successful login with valid credentials. - | Input: - | - Username: testuser - | - Password: password123 - | Expected Outcome: - | - User is redirected to the home page and the welcome message "Hello, testuser!" is displayed. - -A example for a bad test description could be: - - Test user login - -Additional information can also be found in :need:`gd_guidl__verification_guide`. - -The specification is part of the test implementation and has to comply to the requirements -specified in :need:`gd_req__link_tests`. diff --git a/docs/process/process_areas/verification/guidance/verification_templates.rst b/docs/process/process_areas/verification/guidance/verification_templates.rst deleted file mode 100644 index bfa9f000bd..0000000000 --- a/docs/process/process_areas/verification/guidance/verification_templates.rst +++ /dev/null @@ -1,57 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. _verification_test_templates: - -Verification Templates -====================== - -gTest ------ - -gTest is the preferred and accepted test framework to write test cases for C/C++ code in the project. - -Each test case requires a link to one or more requirement/design element. -A more detailed description of how to link code to requirements is available here: :need:`gd_req__link_tests_cpp` - -Writing test cases using gTest shall follow the recommendations from the official gTest documentation. -For very basic start follow http://google.github.io/googletest/primer.html -For advanced information follow http://google.github.io/googletest/advanced.html - -Rust ----- - -The rust community uses the terms unit test and integration test. Where unit test basically represents what the project -considers as unit tests the term "integration test" in rust can be treated for component and feature testing. -Details on the definition an the test organization in rust can be found here: -https://doc.rust-lang.org/book/ch11-03-test-organization.html - -Each test case requires a link to one or more requirement/design element. -A more detailed description of how to link code to requirements is available here: :need:`gd_req__link_tests_rust` - -Writing test cases in rust shall follow the recommendations from the official rust documentation. -https://doc.rust-lang.org/book/ch11-01-writing-tests.html - - -Python ------- - -Writing test cases in python should be done using pytest. -Note that python unittest does not support metatags and therefore should not be considered as test framework. - -Each test case requires a link to one or more requirement/design element. -A more detailed description of how to link code to requirements is available here: :need:`gd_req__link_tests_python` - -Writing test cases in python shall follow the recommendations from the official python and community documentation. -https://docs.python-guide.org/writing/tests/ diff --git a/docs/process/process_areas/verification/index.rst b/docs/process/process_areas/verification/index.rst deleted file mode 100644 index 56ba31c2b4..0000000000 --- a/docs/process/process_areas/verification/index.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _process_verification: - -Verification -############ - -.. toctree:: - :maxdepth: 1 - - verification_getstrt - verification_concept - guidance/index - verification_roles - workflows - workproducts diff --git a/docs/process/process_areas/verification/verification_concept.rst b/docs/process/process_areas/verification/verification_concept.rst deleted file mode 100644 index d2a4c8aab2..0000000000 --- a/docs/process/process_areas/verification/verification_concept.rst +++ /dev/null @@ -1,205 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Verification Concept -#################### - -.. doc_concept:: Verification Concept - :id: doc_concept__verification__process - :status: valid - :tags: requirements_engineering - - In this section a concept for the verification activities will be discussed. - Inputs for this concepts are mainly the requirements and work products from - - * ISO26262 Part 6: "Product development at the software level" - * ISO26262 Part 8: "Supporting processes" - * ISO26262 Part 9: "Automotive Safety Integrity Level (ASIL)-oriented and safety-oriented analysis" - -Inputs -====== - -#. Stakeholders for the verification work products? -#. What kind of tests are developed? -#. How is traceability established? -#. What tooling do we use? - - -Stakeholder -=========== - -#. :need:`Technical Lead <rl__technical_lead>` - - * Set the scope of platform and testing - * Status reporting of verification activities - * Defining release content - * Judge the releasable software state in case of failing test cases. - - This may need involvement of :need:`rl__project_lead`, - :need:`rl__safety_manager`, and :need:`rl__security_manager` - -#. :need:`SW developer/Architects <rl__contributor>` - - * Create work products based on the requirements - * Provides the input work products for verification activities - * SW developer create unit tests. - -#. :need:`Test Contributors <rl__contributor>` - - * Create verification artifacts - -#. :need:`Test Committer <rl__committer>` - - * Review and approve verification artifacts - * Get support by the :need:`rl__safety_manager` for safety-critical artifacts - -#. :need:`Technical Lead <rl__committer>` - - * Set the scope of platform and testing - * Status reporting of verification activities - * Defining release content - -#. :need:`Infrastructure/Tooling Developer <rl__infrastructure_tooling_community>` - - * Enables execution of test cases in CI - * Generation of verification reports - * Provides tools for test generation - * Integrates static analysis, linting, test frameworks into CI - -#. :need:`Safety Manager <rl__safety_manager>` - - * Supports the verification activities for safety-critical work products. - -#. :need:`External Auditor <rl__external_auditor>` - - * Understand activities, planning, processes definition, and execution reports for verification activities - -#. "Distributor" (external role) - - * Re-execution of test cases - * Testing OSS parts on product hardware - * Integrate the test cases in their product (distribution) - * Create issue reports and provide improvements - -.. _verification_concept_types_methods: - -Verification Methods -===================== - -A verification is based on different methods. An overview of the different methods that are -applicable are: - - * Control Flow Analysis (control-flow-analysis) - * Data Flow Analysis (data-flow-analysis) - * Fault Injection (fault-injection) - * Inspection (inspection) - * Interface Test (interface-test) - * Requirements-based Test (requirements-based) - * Resource Usage Evaluation (resource-usage) - * Static Code Analysis (static-code-analysis) - * Structural Statement coverage (structural-statement-coverage) - * Structural Branch Coverage (structural-branch-coverage) - * Walkthrough (walkthrough) - -The derivation of test cases can also be based on certain methods. - - * Analysis of boundary values (boundary-values) - * Analysis of equivalence classes (equivalence-classes) - * Analysis of requirements (requirements-analysis) - * Error guessing based on knowledge or experience (error-guessing) - * Fuzzy testing (fuzz-testing) - * Exlporative testing (explorative-testing) - -Usually the defined methods are not applied on each verification level between unit and platform level. -Also their execution may differ whether it is a QM or ASIL rated test case. -The rigor is described in the implementation of :need:`wp__verification__plan`. - - -Automated test cases should contain further information about which methods have been applied. -The corresponding guidance is given here: :need:`gd_guidl__verification_guide`. -The identifier of the respective method is to be used as meta data (*TestType* and *DerivationTechnique*). - -Test Case Development -===================== - -Following aspect should be considered when developing test cases: - -* **Comprehensive Coverage:** Test cases should cover all functional and tool requirements, including - positive, negative, and boundary conditions. Specific attention should be given to corner cases and error handling. -* **Requirements Testing:** Guarantees testing of Component, Feature, and Stakeholder requirements. -* **Unit Testing:** Focus on isolating and testing individual units or components of the code. - Strive for high code coverage for branches and lines. - Coverage goals are defined in the :need:`wp__verification__plan`. - - Use the following frameworks for unit testing: - - * **Rust:** Utilize the built-in testing framework with ``#[test]`` attributes and the ``cargo test`` command. - * **Python:** Use ``pytest`` frameworks. - * **C++:** Use Google Test frameworks. -* **Integration Testing:** Verify the interaction between different components or modules. - For integration testing, the ITF (Integration Test Framework) is used. - - For more information, see ``[TODO: Link to ITF documentation once available. Related feature request is #599]``. -* **Platform Testing:** Test the platform with configured features as a whole. -* **Regression Testing:** Ensure that changes do not introduce new defects. - Automate regression tests where possible as they will get executed as part of the CI. -* **Performance Testing (when applicable):** Evaluate the performance characteristics of the code, - such as execution time, memory usage, and resource utilization. -* **Tool Qualification Testing:** Test the platform tools based on their tool requirements to achieve tool qualification. - - -General Traceability Concept -============================ - -To allow a traceability of code to a written requirement, unit tests are linked to other unit -tests or component tests. This linking is done using metatags. This is also true for component -integration tests linking to the component architecture. - -Component tests are linked to component requirements directly. - -Traceability of feature integration tests shall be established through linking those test cases to -feature requirements and architecture as features describe the integrated behavior of all components. - -Traceability of platform integration tests shall be established through linking those test cases to -stakeholder requirements as stakeholder requirements describe the platform behavior. - -Requirements always include Assumptions Of Use. - -A more detailed description of how to link code to requirements is available here: :need:`gd_req__link_tests` - -Workflow for Verification Guidance ----------------------------------- - -.. _requirement_verification_workflow: - -.. figure:: ./_assets/requirements_workflow_verification.drawio.svg - :alt: Requirements Versioning - :align: center - :width: 100% - - Requirements Workflow - -The :ref:`requirement_verification_workflow` above displays the whole workflow including the traceability concept for the -requirements where requirements shall be linked to test cases on the respective level. However also a statement -concerning the completeness of the test suite shall be generated. This means that also a linkage document shall be -generated including: - -- the hash and UID of the requirement which was evaluated for test coverage -- the UIDs of the test cases which are required to fully cover the requirement. - -So if the content of the requirement is altered also the hash will change making it necessary to -revisit the linkage of all test cases to the requirement again. - -If the status of the linked test case and the linkage document is valid the attribute *testcovered* shall be set to *YES* during the Sphinx Build. -Further information can also be depicted from the :ref:`requirements_engineering` process. diff --git a/docs/process/process_areas/verification/verification_getstrt.rst b/docs/process/process_areas/verification/verification_getstrt.rst deleted file mode 100644 index 0294380416..0000000000 --- a/docs/process/process_areas/verification/verification_getstrt.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Getting Started -############### - -.. doc_getstrt:: Verification Get Started - :id: doc_getstrt__verification__process - :status: valid - :tags: verification - - This document guides you through the initial steps of the software verification process, - from creating test cases to executing and result reporting. - It leverages the :need:`doc_concept__verification__process` and :need:`gd_guidl__verification_guide`. - -Relevant Documents -****************** - -Key documents to get an understanding about verification activities are: - -* **Concept Document:** :need:`doc_concept__verification__process` provides a high-level overview of the verification concept. -* **Verification Guideline:** :need:`gd_guidl__verification_guide` details test case development, execution, and reporting procedures. -* **Verification Plan:** :need:`wp__verification__plan` implementation outlines the overall verification strategy and objectives. - (Note that the implementation of the verification plan can be found in the platform management plan.) - - -General Workflow -**************** - -The workflows can be split into 4 major parts: - -* Test planning filling the template :need:`gd_temp__verification__plan`. -* Test specification and implementation for the respective testing level -* Test execution by the CI. - (Manual test cases are treated as automated test with user interaction and timeouts.) -* Test reports are created when all verification artifacts on a module and platform level are - available for a specific baseline. - -The details of what needs to be done in each part are described in the :ref:`verification_workflows`. - -Tooling Support -*************** - -The following tools support the verification process: - -* **Bazel:** For building the software and running tests (supported by ITF). -* **Google Test:** For unit testing in C++. -* **Rust's built-in testing framework:** For unit testing in Rust. -* **Pytest:** For component to integration testing in Python. -* **ITF (Integration Test Framework):** As framework for integration testing based on pytest. -* **Sphinx-needs:** Tracing artifacts like requirements to test cases. - -Additionally, tools will be provided to automatically generate coverage tests based on the unit source code. diff --git a/docs/process/process_areas/verification/verification_roles.rst b/docs/process/process_areas/verification/verification_roles.rst deleted file mode 100644 index 36a4949769..0000000000 --- a/docs/process/process_areas/verification/verification_roles.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_roles: - -Roles -##### - -Verification activities are a shared effort by :need:`Contributor <rl__contributor>` as well as -:need:`Committer <rl__committer>`. There is also a dedicated :need:`Testing Community <rl__testing_community>` -which develops and reviews tests and is involved in the requirements review. - -Verification artifacts in form of test cases and specification are mainly created by: - - * :need:`rl__contributor` - * :need:`rl__committer` - -With focus on testability, requirements getting reviewed by: - - * :need:`rl__testing_community` - -The tool verification and qualification is handled by: - - * :need:`rl__infrastructure_tooling_community`. diff --git a/docs/process/process_areas/verification/workflows.rst b/docs/process/process_areas/verification/workflows.rst deleted file mode 100644 index e0094ff682..0000000000 --- a/docs/process/process_areas/verification/workflows.rst +++ /dev/null @@ -1,196 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_workflows: - -Workflow Verification -##################### - -.. workflow:: Create/Perform Unit Test - :id: wf__verification__unit_test - :status: valid - :tags: implementation - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__safety_manager - :input: wp__sw_implementation, wp__verification__plan - :output: wp__verification__sw_unit_test - :has: doc_concept__verification__process, doc_getstrt__verification__process, - doc_concept__imp__concept, doc_getstrt__imp__getstrt - - Every Unit shall have at least one Unit Test. They verify the detailed design of the implementation. - Unit tests are automatically executed as part of the CI after PR merge. - In case of changes at inputs, the workflow need to be executed again as part of maintenance. - Any contributor can create a component test and create a PR for it. - During the review process the test cases will be approved by a committer. - Committer and contributor need to differ. - The actual :need:`rl__committer` of the implementation can also be the creator of the unit tests. - Independence is achieved by different approver at PRs and by the :need:`wp__verification__module_ver_report`. - - The typical steps when creating a unit tests are: - - #. Check the detailed design of the component. Create a test for every interface of the unit - showing at least every flow in dynamic diagrams. - #. Follow the detailed design to the component requirements and test these requirements. - #. Fill in the test attributes based on the previous steps and provide a description. - #. Link the test against detailed design or component requirement. - -.. workflow:: Create/Maintain Component Integration Test - :id: wf__verification__comp_int_test - :status: valid - :tags: verification - :responsible: rl__contributor - :approved_by: rl__committer, rl__testing_community - :supported_by: rl__safety_manager - :input: wp__component_arch, wp__sw_implementation, wp__requirements__comp, wp__requirements__comp_aou, wp__verification__plan - :output: wp__verification__comp_int_test - :contains: gd_req__link_tests, gd_guidl__verification_specification - :has: doc_concept__verification__process, doc_getstrt__verification__process - - Component Integration test cases are based on component architecture and component requirements. - They also cover the detailed design and integration of units forming a component. - The integration testing of component architecture is optional in case a component is standalone - and has no (sub-)components. - Any contributor can create a component integration test and create a PR for it. - During the review process the test cases will be approved by a committer. - Committer and contributor need to differ. - The tests are automatically executed as part of the CI after PR merge. - In case of changes at inputs, the workflow need to be executed again as part of maintenance. - - -.. workflow:: Create/Maintain Feature Integration Test - :id: wf__verification__feat_int_test - :status: valid - :tags: verification - :responsible: rl__contributor - :approved_by: rl__committer, rl__testing_community - :supported_by: rl__safety_manager - :input: wp__feature_arch, wp__requirements__feat, wp__requirements__feat_aou, - wp__verification__plan - :output: wp__verification__feat_int_test - :contains: gd_req__link_tests, gd_guidl__verification_specification - :has: doc_concept__verification__process, doc_getstrt__verification__process - - Feature Integration test cases are based on feature requirements and architecture of a specific feature. - Any contributor can create a feature integration test and create a PR for it. - During the review process the test cases will be approved by a committer. - Committer and contributor need to differ. - The tests are automatically executed as part of the CI after PR merge. - In case of changes at inputs, the workflow need to be executed again as part of maintenance. - -.. workflow:: Create/Maintain Platform Test - :id: wf__verification__platform_test - :status: valid - :tags: verification - :responsible: rl__contributor - :approved_by: rl__committer, rl__testing_community - :supported_by: rl__safety_manager - :input: wp__requirements__stkh, wp__verification__plan - :output: wp__verification__platform_test - :contains: gd_req__link_tests, gd_guidl__verification_specification - :has: doc_concept__verification__process, doc_getstrt__verification__process - - Platform test cases are based on Stakeholder requirements. This is the highest test level. - Any contributor can create a platform test and create a PR for it. - During the review process the test cases will be approved by a committer. - Committer and contributor need to differ. - The tests are automatically executed as part of the CI after PR merge. - In case of changes at inputs, the workflow need to be executed again as part of maintenance. - -.. workflow:: Create Verification Plan - :id: wf__verification__plan - :status: valid - :tags: verification - :responsible: rl__committer, rl__testing_community - :approved_by: rl__technical_lead - :supported_by: rl__safety_manager, rl__infrastructure_tooling_community - :input: wp__requirements__stkh, wp__platform_mgmt, wp__tool_verification_report - :output: wp__verification__plan - :contains: gd_guidl__verification_guide, gd_temp__verification__plan - :has: doc_concept__verification__process, doc_getstrt__verification__process - - The verification plan is created by :need:`rl__committer`. It clearly - outlines all aspects of the verification activities, provide a roadmap for the verification - efforts throughout the software development lifecycle. The plan should be dynamic and updated - as needed throughout the project lifecycle by :need:`wf__verification__plan_maintain`. - -.. workflow:: Maintain Verification Plan - :id: wf__verification__plan_maintain - :status: valid - :tags: verification - :responsible: rl__committer, rl__testing_community - :approved_by: rl__technical_lead - :supported_by: rl__safety_manager, rl__infrastructure_tooling_community - :input: wp__verification__plan, wp__requirements__stkh, wp__platform_mgmt, - wp__feature_arch, wp__requirements__feat, wp__requirements__feat_aou, - wp__component_arch, wp__requirements__comp, wp__requirements__comp_aou, - wp__tool_verification_report - :output: wp__verification__plan - :contains: gd_guidl__verification_guide, gd_temp__verification__plan - :has: doc_concept__verification__process, doc_getstrt__verification__process - - The verification plan is maintained by :need:`rl__committer`. The plan should be dynamic and updated - as needed throughout the project lifecycle, as verification activities may be impacted, by new - requirements, architectural decisions, introduction of tools. - - Note that during the initial creation of the verification plan in :need:`wf__verification__plan` - not every input down to component level may be available. - -.. workflow:: Create Module Verification Report - :id: wf__verification__mod_ver_report - :status: valid - :tags: verification - :responsible: rl__committer, rl__testing_community - :approved_by: rl__technical_lead - :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_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 - :contains: gd_temp__mod_ver_report - :has: doc_concept__verification__process, doc_getstrt__verification__process - - The verification report is created and maintained by a :need:`rl__committer`. - It is based on the :need:`wp__verification__plan` and covers all the components of a module. - This includes their requirements, AoUs, Architecture, Detailed Design, Units, DFA, Safety Analyses, - Unit Code coverage. The respective necessary test methods and rigor of their application is - defined in the :need:`wp__verification__plan`. - - The report is valid for ONE version of a module. - -.. workflow:: Create Platform Verification Report - :id: wf__verification__platform_ver_report - :status: valid - :tags: verification - :responsible: rl__committer, rl__testing_community - :approved_by: rl__technical_lead - :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__sw_arch_verification, wp__requirements__inspect, - wp__verification__feat_int_test, wp__verification__platform_test - :output: wp__verification__platform_ver_report - :contains: gd_temp__platform_ver_report - :has: doc_concept__verification__process, doc_getstrt__verification__process - - The verification report is created and maintained by a :need:`rl__committer`. - It is based on the :need:`wp__verification__plan` and covers all the selected features of a SW platform. - This includes their requirements, AoUs, Architecture, DFA, Safety Analyses, - The respective necessary test methods and rigor of their application is - defined in the :need:`wp__verification__plan` and :need:`wp__platform_mgmt`. - - The report is valid for ONE specific platform version baseline. diff --git a/docs/process/process_areas/verification/workproducts.rst b/docs/process/process_areas/verification/workproducts.rst deleted file mode 100644 index 701e3c9ce3..0000000000 --- a/docs/process/process_areas/verification/workproducts.rst +++ /dev/null @@ -1,141 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _verification_work_products: - -Verification Work Products -########################## - -Platform -******** - -.. workproduct:: Verification Plan - :id: wp__verification__plan - :status: valid - :complies: std_wp__iso26262__support_951, std_wp__iso26262__support_952, std_wp__iso26262__support_1252 - - Verification planning for each phase of the safety lifecycle must detail the work products, - objectives, methods, criteria, environments, equipment, resources, actions for anomalies, and - regression strategies, considering method adequacy, complexity, prior experiences, and - technology maturity or risks. - This also covers the work product Verification Specification. - -.. workproduct:: Platform test - :id: wp__verification__platform_test - :status: valid - :complies: std_wp__iso26262__support_952 - - Platform Testing verifies Stakeholder Requirements performed on reference HW. - Depending on the nature of the project, respective tailoring (e.g. for reduced requirements - coverage) has to be reflected in the :need:`wp__verification__plan` and :need:`wp__platform_safety_plan`. - -.. workproduct:: Platform Verification Report - :id: wp__verification__platform_ver_report - :status: valid - :complies: std_wp__iso26262__software_1053, std_wp__iso26262__support_953, std_wp__iso26262__analysis_752, std_wp__iso26262__analysis_852 - - Verification Report contains: - - - List of requirements (stakeholder and feature) and architecture tested by which test - (can be several levels), passed/failed and completeness verdict, including normal - operation and failure reactions - - The list of requirements may also contain other verification methods like "Analysis" - - Formal evidence about the preformed DFA. - - Formal evidence about the performed Safety Analyses - -Feature -******* - -.. workproduct:: Feature Integration test - :id: wp__verification__feat_int_test - :status: valid - :complies: std_wp__iso26262__software_1051, std_wp__iso26262__support_952 - - Integration Testing verifies feature requirements and architecture: - - - all interfaces from Static view and - - all flows from Dynamic View and - - performance: i.e. RAM and processor usage - on reference HW - -Module -****** - -.. workproduct:: Module Verification Report - :id: wp__verification__module_ver_report - :status: valid - :complies: std_wp__iso26262__software_952, std_wp__iso26262__software_1053, std_wp__iso26262__support_953, std_wp__iso26262__support_1253, std_wp__iso26262__analysis_752, std_wp__iso26262__analysis_852, std_wp__iso26262__support_1252, std_wp__isopas8926__4526 - - Verification Report contains: - - - List of requirements (and architecture/detailed design tags) tested by which test - (can be several levels), passed/failed and completeness verdict, including normal - operation and failure reactions - - The list of requirements may also contain other verification methods like "Analysis" - - Structural Coverage (C0 and C1, from unit testing on host) per unit - - Static Code Analysis (including compiler warnings, automated checking of coding guidelines - and additional checks) - - Formal evidence about the preformed DFA. - - Formal evidence about the performed Safety Analyses - - Software component qualification verification report - -Component -********* - -.. workproduct:: Component Integration test - :id: wp__verification__comp_int_test - :status: valid - :complies: std_wp__iso26262__software_1051, std_wp__iso26262__support_952, std_wp__isopas8926__4525 - - Component Integration Testing verifies the component architecture and component requirements: - - - all interfaces from Static view and - - all flows from Dynamic View - - integration of units into components based on detailed design - - detailed design of complex units - - Performance (i.e. RAM and processor usage) is only tested on reference HW. - - As an optional part component integration tests can cover additional testing for complex units - touching specifically the detailed design. This is needed where :need:`wp__verification__sw_unit_test` - is not sufficient to cover the measures defined in the implementation of the :need:`wp__verification__plan`. - -.. workproduct:: Unit test - :id: wp__verification__sw_unit_test - :status: valid - :complies: std_wp__iso26262__software_951, std_wp__iso26262__support_952, std_req__iso26262__software_845, std_wp__isopas8926__4525 - - Unit testing verifies detailed design (traced to). - Respective tooling is defined in :need:`wp__platform_mgmt`, :need:`wp__verification__plan` and integrated in CI/Build. - Unit testing is in responsible of the :need:`rl__contributor` providing the :need:`wp__sw_implementation`. - -Inspection -********** - -Inspection activities on requirement, architecture and detailed design are handled within these process areas. - -The work products are handled within these process areas: - - * :ref:`requirements_engineering` implementing :need:`wp__requirements__inspect` - * :ref:`arch_design_process` implementing :need:`wp__sw_arch_verification` - * :ref:`implementation` implementing :need:`wp__sw_implementation_inspection` - -Tool Verification -***************** - -As part of tool management as supporting function it is handled as follows - - * :need:`wf__tool__create_tool_verification_report` describes implementation of :need:`wp__tool_verification_report` - -It is planned in the :need:`wp__platform_mgmt` diff --git a/docs/process/roles/index.rst b/docs/process/roles/index.rst deleted file mode 100644 index 86a0ea6467..0000000000 --- a/docs/process/roles/index.rst +++ /dev/null @@ -1,153 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -Roles -===== - -S-CORE Management Roles ------------------------ - -.. role:: Project Lead - :id: rl__project_lead - :status: valid - - The Project Leads decide about strategy, addition of modules and election of all other roles. - - Required skills - - * Degree: Master's degree in electrical engineering/computer science/mathematics, or similar degree, or comparable work experience - * Solid understanding of project management - * Technical know-how of embedded systems - * Preferred training: Basic and Management specific safety and security trainings - - Experience - - * 3 years of experience in project or line management - - Responsibility - - * Decisions about strategical topics - * Filling the Project Lead role according to the `Eclipse Foundation Project Handbook <https://www.eclipse.org/projects/handbook>`_ - * Election of all roles in the S-CORE project, including the :need:`Safety Manager <rl__safety_manager>` on SW platform and module level - * Approval of release planning and releases - - Authority - - * Ultimate decisions on escalated topics - * Election and replacement of all role's personnel - * Decide on addition/removal of modules repositories or split-off of projects - -.. role:: Quality Manager - :id: rl__quality_manager - :status: valid - :tags: quality_management - :contains: rl__committer - - The quality managers shall be responsible for the planning and coordination of the quality activities, i.e. the quality management. - -.. role:: Security Manager - :id: rl__security_manager - :status: draft - :tags: quality_management - :contains: rl__committer - - The security managers shall be responsible for the planning and coordination of the security activities. - -S-CORE process roles --------------------- - -.. role:: Process Community Member - :id: rl__process_community - :status: valid - :tags: process_management - :contains: rl__committer - - The process community members are responsible for the definition of the process architecture of the project integrated management system and how they processes interact. - The approval and release of the process is done by the safety, quality and security managers and the technical leads (for the parts which affect them). - -S-CORE development roles ------------------------- - -.. role:: Infrastructure Tooling Community Member - :id: rl__infrastructure_tooling_community - :status: valid - :tags: development - :contains: rl__committer - - The infrastructure and tooling community members are responsible for the infrastructure and tooling setup for development namely github, bazel, sphinx-needs, but also the rest of the tool chain. - -.. role:: Contributor - :id: rl__contributor - :status: valid - - (Eclipse) Open Source Role, person(s) who provide(s) possible contribution(s) as pull request(s) to the main line. - Any contributor which contributes code, tests or documentation to S-CORE. - - .. note:: - Follows the processes defined by the :need:`rl__process_community` - -.. role:: Committer - :id: rl__committer - :status: valid - :tags: development - - (Eclipse) Open Source Role, person(s) who accept(s) possible contribution(s) as pull request(s) to the main line and maintains the product. - - .. note:: - Defines and enforces processes. - -.. role:: Testing Community Member - :id: rl__testing_community - :status: valid - :tags: verification - :contains: rl__committer - - The testing community members are responsible for the test case development from component to - platform level. They shall be included in any requirements reviews. They can also improve - independence argumentation when involved in the development of unit testing on safety critical - units. In this way the testing community takes a supportive role for unit testing - - -S-CORE feature teams ------------------------------ - -.. role:: Platform Team - :id: rl__platform_team - :status: valid - :tags: cross_functional - :contains: rl__technical_lead, rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer, rl__infrastructure_tooling_community, rl__process_community - - The platform team is responsible for all artifacts within the platform SEooC. Additionally it is also responsible for the overall process including its support by tooling. - -.. role:: Module Team - :id: rl__module_team - :status: valid - :tags: cross_functional - :contains: rl__module_lead, rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer - - The module team is responsible for all artifacts within the module SEooCs. Each module has only one responsible team but a team may also be responsible for several (small) modules. - -S-CORE Roles list ------------------ - -.. needtable:: - :style: table - :columns: title;id;tags - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["role"]): - results.append(need) diff --git a/docs/process/standards/aspice_40/aspice.rst b/docs/process/standards/aspice_40/aspice.rst deleted file mode 100644 index b7bd3b791d..0000000000 --- a/docs/process/standards/aspice_40/aspice.rst +++ /dev/null @@ -1,428 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -ASPICE 4.0 -========== - -This incorporates the detailed description of the `Automotive SPICE PAM -v4.0 <https://vda-qmc.de/wp-content/uploads/2023/12/Automotive-SPICE-PAM-v40.pdf>`__ -to support the performance of process assessments, so that the process -assessment model can be used for its intended purpose. - -`Automotive SPICE PAM -v4.0 <https://vda-qmc.de/wp-content/uploads/2023/12/Automotive-SPICE-PAM-v40.pdf>`__ -provides following copyright release statement: - -You may not alter, transform, or build upon this work without the prior consent of the VDA Quality Management Center. Such consent may be given provided ISO copyright is not infringed. - -The detailed descriptions contained in this document may be incorporated as part of any tool or other material to support the performance of process assessments, so that this process assessment model can be used for its intended purpose, provided that any such material is not offered for sale. - -All distribution of derivative works shall be made at no cost to the recipient. - -Copyright notice ----------------- -There is no alteration, transformation or building upon in the *S-CORE* project. Detailed descriptions are included to facilitate process assessment in the *S-CORE* project and are provided in an open source framework free of charge. - - -Tailoring ---------- - -| Standard's requirements in this document are already tailored to the SW platform project: -| -| - Generally, requirements (base (BP) and generic practices (GP)) and work product (information item characteristics (IIC)) links are only included if those are relevant (i.e., not tailored out). -| -| - Included are only the following process groups and the listed processes: -| - SWE: Software Engineering Process Group (SWE.1-SWE.6) -| - MAN: Management Process Group (MAN.3, MAN.5) -| - SUP: Supporting Process Group (SUP.1, SUP.8-SUP.10) -| - SPL: Supply Process Group (SPL.2) -| - REU: Reuse Process Group (REU.2) -| - PIM: Process Improvement Process Group (PIM.3) -| -| - Excluded are also the following process groups or processes from the mentioned process groups above: -| - SYS: System Engineering Process Group (pure SW development project) -| - HWE: Hardware Engineering Process Group (pure SW development project) -| - MLE: Machine Learning Engineering Process Group (not applicable for now) -| - SUP: SUP.11 - Machine Learning Data Management (not applicable for now) -| - MAN: MAN.6 - Measurements (not applicable for now) -| - VAL: Validation process group (pure SW with no (automobile) user interaction) -| - ACQ: Acquisition process group (because there is no contracted supplier of the project) - - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - - man/index - swe/index - sup/index - spl/index - reu/index - pim/index - iic/index - - -PA 2.1 Process performance management process attribute -------------------------------------------------------- - -The performance management process attribute is a measure of the extent -to which the performance of the process is managed. - -Process attribute achievements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. Strategy for the performance of the process is defined based on identified objectives. -2. Performance of the process is planned. -3. Performance of the process is monitored and adjusted to meet the planning. -4. Needs for human resources including responsibilities and authorities for performing the process are determined. -5. Needs for physical and material resources are determined. -6. Persons performing the process are prepared for executing their responsibilities. -7. Physical and material resources for performing the process are identified, made available, allocated and used. -8. Interfaces between the involved parties are managed to ensure both effective communication and the assignment of responsibilities. - - -Generic practices -~~~~~~~~~~~~~~~~~ - -.. std_req:: GP2.1.1: Identify the objectives and define a strategy for the performance of the process. - :id: std_req__aspice_40__gp-211 - :status: valid - :links: std_req__aspice_40__iic-19-01 - - The scope of the process activities including the management of process performance and the management of work products are determined. - Corresponding results to be achieved are determined. - Process performance objectives and associated criteria are identified. - - .. note:: - Budget targets and delivery dates to the customer, - targets for test coverage and process lead time are examples for process performance objectives. - - .. note:: - Performance objectives are the basis for planning and monitoring. - - Assumptions and constraints are considered when identifying the performance objectives. - Approach and methodology for the process performance is determined. - - .. note:: - A process performance strategy may not necessarily be document-ed specifically for each process. - Elements applicable for multiple processes may be documented jointly, - e.g, as part of a common project handbook or in a joint test strategy. - -.. std_req:: GP2.1.2: Plan the performance of the process. - :id: std_req__aspice_40__gp-212 - :status: valid - :links: std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-14-10 - - The planning for the performance of the process is established according to the defined objectives, criteria, and strategy. - Process activities and work packages are defined. - Estimates for work packages are identified using appropriate methods. - - .. note:: - - Schedule and milestones are defined. - -.. std_req:: GP2.1.3: Determine resource needs. - :id: std_req__aspice_40__gp-213 - :status: valid - :links: std_req__aspice_40__iic-17-55 - - The required amount of human resources, and experience, knowledge and skill needs for the for process performance are determined based on the planning. - The needs for physical and material resources are determined based on the planning. - - .. note:: - - Physical and material resources may include equipment, laboratories, materials, tools, licenses etc. - - Required responsibilities and authorities to perform the process, and to manage the corresponding work products are determined. - - .. note:: - - The definition of responsibilities and authorities does not necessarily require formal role descriptions. - -.. std_req:: GP2.1.4: Identify and make available resources. - :id: std_req__aspice_40__gp-214 - :status: valid - :links: std_req__aspice_40__iic-08-61 - - The individuals performing and managing the process are identified and allocated according to the determined needs. - The individuals performing and managing the process are being qualified to execute their responsibilities. - - .. note:: - - Qualification of individuals may include training, mentoring, or coaching. - - The other resources, necessary for performing the process are identified, made available, allocated and used according to the determined needs. - -.. std_req:: GP2.1.5: Monitor and adjust the performance of the process. - :id: std_req__aspice_40__gp-215 - :status: valid - :links: std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-14 - - Process performance is monitored to identify deviations from the planning. - Appropriate actions in case of deviations from the planning are taken. - The planning is adjusted as necessary. - -.. std_req:: GP2.1.6: Manage the interfaces between involved parties. - :id: std_req__aspice_40__gp-216 - :status: valid - :links: std_req__aspice_40__iic-08-62,std_req__aspice_40__iic-13-52 - - The individuals and groups including required external parties involved in the process performance are determined. - Responsibilities are assigned to the relevant individuals or parties. - Communication mechanisms between the involved parties are determined. - Effective communication between the involved parties is established and maintained. - - -PA 2.2 Work product management process attribute ------------------------------------------------- - -The work product management process attribute is a measure of the extent -to which the work products produced by the process are appropriately managed. - -Process attribute achievements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. Requirements for the work products of the process are defined. -2. Requirements for storage and control of the work products are defined. -3. The work products are appropriately identified, stored, and controlled. -4. The work products are reviewed and adjusted as necessary to meet requirements. - - -Generic practices -~~~~~~~~~~~~~~~~~ - -.. std_req:: GP2.2.1: Define the requirements for the work products. - :id: std_req__aspice_40__gp-221 - :status: valid - :links: std_req__aspice_40__iic-17-05,std_req__aspice_40__iic-18-07,std_req__aspice_40__iic-18-59 - - The requirements for the content and structure of the work products to be produced are defined. - Quality criteria for the work products are identified. - Appropriate review and approval criteria for the work products are defined. - - .. note:: - - Possible sources of documentation requirements may be e.g., - best practices or lessons learned from other projects, standards, - organization requirements, customer requirements, etc. - - .. note:: - - There may be types of work products for which no review or approval - is required, thus then there would be no need to define the corresponding criteria. - -.. std_req:: GP2.2.2: Define the requirements for storage and control of the work products. - :id: std_req__aspice_40__gp-222 - :status: valid - :links: std_req__aspice_40__iic-17-05 - - Requirements for the storage and control of the work products are defined, including their identification and distribution. - - .. note:: - - Possible sources for the identification of requirements for storage and control may be e.g., legal requirements, data policies, best practices from other projects, tool related requirements, etc. - - .. note:: - - Examples for work product storage are files in a file system, ticket in a tool, Wiki entry, paper documents etc. - - .. note:: - - Where status of a work product is required in base practices, this should be managed via a defined status model. - -.. std_req:: GP2.2.3: Identify, store and control the work products. - :id: std_req__aspice_40__gp-223 - :status: valid - :links: std_req__aspice_40__iic-13-08,std_req__aspice_40__iic-16-00 - - The work products to be controlled are identified. - The work products are stored and controlled in accordance with the requirements. - Change control is established for work products. - Versioning and baselining of the work products is performed in accordance with the requirements for storage and control of the work products. - The work products including the revision status are made available through appropriate mechanisms. - -.. std_req:: GP2.2.4: Review and adjust work products. - :id: std_req__aspice_40__gp-224 - :status: valid - :links: std_req__aspice_40__iic-13-19 - - The work products are reviewed against the defined requirements and criteria. - Resolution of issues arising from work products reviews is ensured. - - -PA 3.1 Process definition process attribute -------------------------------------------- - -The process definition process attribute is a measure of the extent to -which a standard process is maintained to support the deployment of the defined process. - -Process attribute achievements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. A standard process is developed, established, and maintained that describes the fundamental elements that must be incorporated into a defined process. -2. The required inputs and the expected outputs for the standard process are defined. -3. Roles, responsibilities, authorities, and required competencies for performing the standard process are defined. -4. Tailoring guidelines for deriving the defined process from the standard process are defined. -5. Required physical and material resources and process infrastructure needs are determined as part of the standard process. -6. Suitable methods and required activities for monitoring the effectiveness, suitability and adequacy of the process are determined. - - -Generic practices -~~~~~~~~~~~~~~~~~ - -.. std_req:: GP3.1.1: Establish and maintain the standard process. - :id: std_req__aspice_40__gp-311 - :status: valid - :links: std_req__aspice_40__iic-06-51,std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-10-50,std_req__aspice_40__iic-10-51 - - A suitable standard process is developed including required activities and their interactions. - Inputs and outputs of the standard process are defined including the corresponding entry and - exit criteria to determine the interactions and sequence with other processes. - Process performance roles are identified and assigned to the standard process activities including - their type of involvement, responsibilities, and authorities. - - .. note:: - - An example for describing the involvement of the process roles in the activities is a RASI/RASIC representation. - Suitable guidance, procedures, and templates are provided to support the execution of the process as needed. - - .. note:: - - Procedures may also include description of specific methods to be used. - Appropriate tailoring guidelines including predefined unambiguous criteria as well as predefined and - unambiguous proceedings are defined based on identified deployment needs and context of the standard process. - The standard process is maintained according to corresponding feedback from the monitoring of the deployed processes. - - .. note:: - - For guidance on how to perform process improvements see the Process Improvement process (PIM.3). - -.. std_req:: GP3.1.2: Determine the required competencies. - :id: std_req__aspice_40__gp-312 - :status: valid - :links: std_req__aspice_40__iic-10-50,std_req__aspice_40__iic-10-51 - - Required competencies, skills, and experience for performing the standard process are determined for the identified roles. - Appropriate qualification methods to acquire the necessary competencies and skills are determined, maintained, and made available for the identified roles. - - .. note:: - - Qualification methods are e.g., trainings, mentoring, self-study. - - .. note:: - - Preparation includes e.g., identification or definition of trainings, mentoring concepts, self-learning material. - -.. std_req:: GP3.1.3: Determine the required resources. - :id: std_req__aspice_40__gp-313 - :status: valid - :links: std_req__aspice_40__iic-10-52 - - Required physical and material resources and process infrastructure needs for performing the standard process are determined. - - .. note:: - - This may include e.g., facilities, tools, licenses, networks, services, and samples supporting the establishment of the required work environment. - -.. std_req:: GP3.1.4: Determine suitable methods to monitor the standard process. - :id: std_req__aspice_40__gp-314 - :status: valid - :links: std_req__aspice_40__iic-08-63 - - Methods and required activities for monitoring the effectiveness and adequacy of the standard process are determined. - - .. note:: - - Methods and activities to gather feedback regarding the standard process may be lessons learned, process compliance checks, - internal audits, management reviews, change requests, reflection of state-of-the-art such as applicable international standards, etc. - Appropriate criteria and information needed to monitor the standard process are defined. - - .. note:: - - Information about process performance may be of qualitative or quantitative nature. - - -PA 3.2 Process deployment process attribute -------------------------------------------- - -The process deployment process attribute is a measure of the extent to which -the standard process is deployed as a defined process to achieve its process outcomes. - -Process attribute achievements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. A defined process is deployed based upon an appropriately selected and/or tailored standard process. -2. Assignment of persons necessary for performing the defined process to roles is performed and communicated. -3. Required education, training and experience is ensured and monitored for the person(s) assigned to the roles. -4. Required resources for performing the defined process are made available, allocated, and maintained. -5. Appropriate information is collected and analyzed as a basis for understanding the behavior of the process. - - -Generic practices -~~~~~~~~~~~~~~~~~ - -.. std_req:: GP3.2.1: Deploy a defined process that satisfies the context specific requirements of the use of the standard process. - :id: std_req__aspice_40__gp-321 - :status: valid - :links: std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-15-54 - - The defined process is appropriately selected and/or tailored from the standard process. - Conformance of defined process with standard process requirements and tailoring criteria is verified. - The defined process is used as managed process to achieve the process outcomes. - - .. note:: - - Changes in the standard process may require updates of the defined process. - -.. std_req:: GP3.2.2: Ensure required competencies for the defined roles. - :id: std_req__aspice_40__gp-322 - :status: valid - :links: std_req__aspice_40__iic-14-53 - - Human resources are allocated to the defined roles according to the required competencies and skills. - Assignment of persons to roles and corresponding responsibilities and authorities for performing the defined process are communicated. - Gaps in competencies and skills are identified, and corresponding qualification measures are initiated and monitored. - Availability and usage of the project staff are measured and monitored. - -.. std_req:: GP3.2.3: Ensure required resources to support the performance of the defined process. - :id: std_req__aspice_40__gp-323 - :status: valid - :links: std_req__aspice_40__iic-13-55 - - Required information to perform the defined process is made available, allocated and used. - Required physical and material resources, process infrastructure and work environment are made available, allocated and used. - Availability and usage of resources are measured and monitored. - -.. std_req:: GP3.2.4: Monitor the performance of the defined process. - :id: std_req__aspice_40__gp-324 - :status: valid - :links: std_req__aspice_40__iic-03-06 - - Information is collected and analyzed according to the determined process monitoring methods to understand the effectiveness and adequacy of the defined process. - Results of the analysis are made available to all effected parties and used to identify where continual improvement of the standard and/or defined process can be made. - - .. note:: - - For guidance on how to perform process improvements see the Process Improvement process (PIM.3). - -.. needextend:: "process/process_model/standards/aspice" in docname - :+tags: aspice - -Appendix --------- - -.. needtable:: General Practices - :style: datatables - :columns: id;title;status;content - :filter: id.startswith("std_req__aspice_40__gp") diff --git a/docs/process/standards/aspice_40/iic/iic-01.rst b/docs/process/standards/aspice_40/iic/iic-01.rst deleted file mode 100644 index 602cd4bf55..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-01.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -01-xx -~~~~~ - -.. std_req:: 01-03 Software Component - :id: std_req__aspice_40__iic-01-03 - :status: valid - - Software Component may have the following characteristics: - - - Software element in the software architecture above the software unit - level. - - Represented by a design model element or executable code such as - libs or scripts and a configuration description, if applicable. - - -.. std_req:: 01-50 Integrated Software - :id: std_req__aspice_40__iic-01-50 - :status: valid - - Integrated Software may have the following characteristics: - - - Software executable (e.g, simulator with stubbing, debug-able, object - code) including: - - - application parameter files (being a technical implementation solution for configurability-oriented requirements) - - all configured software elements - -.. std_req:: 01-52 Configuration item list - :id: std_req__aspice_40__iic-01-52 - :status: valid - - Configuration item list may have the following characteristics: - - - Items under configuration control - - The name of work products and an associated reference (to file, to tool artifact) - - Configuration item attributes and properties - diff --git a/docs/process/standards/aspice_40/iic/iic-02.rst b/docs/process/standards/aspice_40/iic/iic-02.rst deleted file mode 100644 index 6a5c14cf84..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-02.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -02-xx -~~~~~ - -.. std_req:: 02-01 Commitment / agreement - :id: std_req__aspice_40__iic-02-01 - :status: valid - - Commitment / agreement may have the following characteristics: - - - Signed off by all parties involved in the commitment/agreement - - Establishes what the commitment is for - - Establishes the resources required to fulfill the commitment, such as: - - time - - people - - budget - - equipment - - facilities diff --git a/docs/process/standards/aspice_40/iic/iic-03.rst b/docs/process/standards/aspice_40/iic/iic-03.rst deleted file mode 100644 index a4e743ea51..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-03.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -03-xx -~~~~~ - -.. std_req:: 03-06 Process performance information - :id: std_req__aspice_40__iic-03-06 - :status: valid - - Process performance information may have the following characteristics: - - - Measurements about defined quantitative or qualitative measurable indicators, that match defined information needs. - - Measurement metrics for the calculation of the quantitatively or qualitatively measurable indicators - - Data comparing process performance against expected levels - - Examples for project performance information: - - resource utilization against established target - - time schedule against established target - - activity or task completion criteria met - - defined input and output work products available - - process quality against quality expectations and/or criteria - - product quality against quality expectations and/or criteria - - highlight product performance issues, trends - - Examples for service level performance information: - - references any goals established - - real time metrics related to aspects such as: - - capacity - - throughput - - operational performance - - operational service - - service outage time - - up time - - job run time - -.. std_req:: 03-50 Verification Measure Data - :id: std_req__aspice_40__iic-03-50 - :status: valid - - Verification Measure Data may have the following characteristics: - - - Verification measure data are data recorded during the execution of a - verification measure, e.g.: - - - for test cases: raw data, logs, traces, tool generated outputs - - measurements: values - - calculations: values - - simulations: protocol - - reviews such as optical inspections à findings record - - analyses: values - diff --git a/docs/process/standards/aspice_40/iic/iic-04.rst b/docs/process/standards/aspice_40/iic/iic-04.rst deleted file mode 100644 index 5ba62ce945..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-04.rst +++ /dev/null @@ -1,78 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -04-xx -~~~~~ - -.. std_req:: 04-02 Domain architecture - :id: std_req__aspice_40__iic-04-02 - :status: valid - - Definition not available yet in PAM4.0 document. - -.. std_req:: 04-04 Software Architecture - :id: std_req__aspice_40__iic-04-04 - :status: valid - - Software Architecture may have the following characteristics: - - - A justifying rationale for the chosen architecture. - - Individual functional and non-functional behavior of the software - component - - Settings for application parameters (being a technical implementation - solution for configurability-oriented requirements) - - Technical characteristics of interfaces for relationships between software components such as: - - - Synchronization of Processes and tasks - - Programming language call - - APIs - - Specifications of SW libraries - - Method definitions in an object- oriented class definitions or - UML/SysML interface classes - - Callback functions, “hooks” - - - Dynamics of software components and software states such as: - - - Logical software operating modes (e.g, start-up, shutdown, normal - mode, calibration, diagnosis, etc.) - - intercommunication (processes, tasks, threads) and priority - - time slices and cycle time - - interrupts with their priorities - - interactions between software components - - - Explanatory annotations, e.g, with natural language, for single elements - or entire diagrams/models. - -.. std_req:: 04-05 Software detailed design - :id: std_req__aspice_40__iic-04-05 - :status: valid - - Software detailed design may have the following characteristics: - - - Elements of a software detailed design: - - - Control flow definition - - Format of input/output data - - Algorithms - - Defined data structures - - Justified global variables - - Explanatory annotations, e.g, with natural language, for single - elements or entire diagrams/models - - - Examples for expression languages, depending on the complexity or criticality of a software unit: - - - natural language or informal languages - - semi-formal languages (e.g, UML, SysML) - - formal languages (e.g, model-based approach) - diff --git a/docs/process/standards/aspice_40/iic/iic-06.rst b/docs/process/standards/aspice_40/iic/iic-06.rst deleted file mode 100644 index 012fd7a37a..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-06.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -06-xx -~~~~~ - -.. std_req:: 06-04 Training material - :id: std_req__aspice_40__iic-06-04 - :status: valid - - Training material may have the following characteristics: - - - Updated and available for new releases - - Coverage of system, application, operations, maintenance as appropriate to the application - - Course listings and availability - -.. std_req:: 06-50 Integration Sequence Instruction - :id: std_req__aspice_40__iic-06-50 - :status: valid - - Integration Sequence Instruction may have the following characteristics: - - - Identification of required physical elements (e.g., hardware, - mechanical, wiring elements), and software executables and - application parameters (being a technical implementation solution for - configurability-oriented requirements) - - necessary sequence or ordering of integration - - preconditions for starting system integration - -.. std_req:: 06-51 Tailoring guideline - :id: std_req__aspice_40__iic-06-51 - :status: valid - - Tailoring guideline may have the following characteristics: - - - Criteria for tailoring, - - Proceeding of tailoring describing how to derive and document the defined process from the standard process - including responsibility for tailoring and corresponding approval - - Requirements for the defined process to ensure integrity and consistency of the defined process - - Subset of process assets that is essential for the defined process - -.. std_req:: 06-52 Backup and recovery mechanism information - :id: std_req__aspice_40__iic-06-52 - :status: valid - - Backup and recovery mechanism information may have the following characteristics: - - - Description / confirmation of existing backup and recovery mechanisms - - References to corresponding procedures or regulations diff --git a/docs/process/standards/aspice_40/iic/iic-07.rst b/docs/process/standards/aspice_40/iic/iic-07.rst deleted file mode 100644 index 6d79bb4807..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-07.rst +++ /dev/null @@ -1,164 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -07-xx -~~~~~ - -.. std_req:: 07-04 Process metric - :id: std_req__aspice_40__iic-07-04 - :status: valid - - Process metric may have the following characteristics: - - - Measurements about the process' performance: - - ability to produce sufficient work products - - adherence to the process - - time it takes to perform process - - defects related to the process - - Measures the impact of process change - - Measures the efficiency of the process - -.. std_req:: 07-05 Project metric - :id: std_req__aspice_40__iic-07-05 - :status: valid - - Project metric may have the following characteristics: - - - Monitors key processes and critical tasks, provides status information to the project on: - - project performance against established plan - - resource utilization against established plan - - time schedule against established plan - - process quality against quality expectations and/or criteria - - product quality against quality expectations and/or criteria - - highlight product performance problems, trends - - Measures the results of project activities: - - tasks are performed on schedule - - product's development is within the resource commitments allocated - - References any goals established - -.. std_req:: 07-06 Quality metric - :id: std_req__aspice_40__iic-07-06 - :status: valid - - Quality metric may have the following characteristics: - - - Measures quality attributes of the work products defined: - - functionality - - reliability - - usability - - efficiency - - maintainability - - portability - - Measures quality attributes of the "end customer" quality perception - - .. note:: - - Refer ISO/IEC 25010 for detailed information on measurement of product quality. - -.. std_req:: 07-08 Service level metric - :id: std_req__aspice_40__iic-07-08 - :status: valid - - Service level metric may have the following characteristics: - - - Real time metrics taken while a system is operational, it measures the system's performance or expected service level - - Identifies aspects such as: - - capacity - - throughput - - operational performance - - operational service - - service outage time - - up time - - job run time - -.. std_req:: 07-51 Measurement result - :id: std_req__aspice_40__iic-07-51 - :status: valid - - Measurement result may have the following characteristics: - - Result of gathering qualitative or quantitative data, e.g., - - Process metric - - Measurements about the process' performance: - -- ability to produce sufficient work products - -- adherence to the process - -- time it takes to perform process - -- defects related to the process - - Measures the impact of process change - - Measures the efficiency of the process - - Project metric - - Monitors key processes and critical tasks, provides status information to the project on: - -- project performance against established plan - -- resource utilization against established plan - -- time schedule against established plan - -- process quality against quality expectations and/or criteria - -- product quality against quality expectations and/or criteria - -- highlight product performance problems, trends - - Measures the results of project activities: - - tasks are performed on schedule - - product's development is within the resource commitments allocated - - References any goals established - - Quality metric - - Measures quality attributes of the work products defined: - -- functionality - -- reliability - -- usability - -- efficiency - -- maintainability - -- portability - - Measures quality attributes of the "end customer" quality perceptionService level metric - - Benchmarking data - - Customer satisfaction survey - -.. std_req:: 07-61 Quantitative process metric - :id: std_req__aspice_40__iic-07-61 - :status: valid - - Quantitative process metric may have the following characteristics: - - - Quantitatively measurable indicators that match information needs derived from business goals - - Relation of the quantitatively measurable indicators to process elements in process descriptions - or repositories and tools - - Process measurement metrics for the calculation of the quantitatively measurable indicators, - sbased on data from related process elements, repositories, or tools - -.. std_req:: 07-62 Process analysis technique - :id: std_req__aspice_40__iic-07-62 - :status: valid - - Process analysis technique may have the following characteristics: - - - Methods for statistical analysis of process data - - Frequency of data collection. - -.. std_req:: 07-63 Process control limits - :id: std_req__aspice_40__iic-07-63 - :status: valid - - Process control limits may have the following characteristics: - - - Quantitative control limits for the quantitative process metrics - -.. std_req:: 07-64 Process measurement data - :id: std_req__aspice_40__iic-07-64 - :status: valid - - Process measurement data may have the following characteristics: - - - Data collected across process instances - - Attributes of data, e.g., timestamps - - Relation to process measurement metrics - - Storage and retrieval - - Effective controls over access - diff --git a/docs/process/standards/aspice_40/iic/iic-08.rst b/docs/process/standards/aspice_40/iic/iic-08.rst deleted file mode 100644 index 385cda8319..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-08.rst +++ /dev/null @@ -1,158 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -08-xx -~~~~~ - -.. std_req:: 08-53 Scope of work - :id: std_req__aspice_40__iic-08-53 - :status: valid - - Scope of work may have the following characteristics: - - - Summary of deliverables for a project - - Intended use for the deliverables - - Main functions to be realized - - Target delivery date and major milestones - - Work products and activities that are not in scope of the project as needed - - Target markets - - Applicable standards and legal requirements - - Reuse options - - Integration of third party deliveries - -.. std_req:: 08-54 Feasibility analysis - :id: std_req__aspice_40__iic-08-54 - :status: valid - - Feasibility analysis may have the following characteristics: - - - Statement about the ability of the project to achieve - the project objectives with available resources - -.. std_req:: 08-55 Risk measure - :id: std_req__aspice_40__iic-08-55 - :status: valid - - Risk measure may have the following characteristics: - - - Identifies - - the risk to be mitigated, avoided, or shared (transferred) - - the activities to mitigate, avoid, or share (transfer) the risk - - the originator of the measure - - criteria for successful implementation - - criteria for cancellation of activities - - frequency of monitoring - - Risk treatment alternatives: - - treatment option selected- avoid/reduce/transfer - - alternative descriptions - - recommended alternative(s) - - justifications - -.. std_req:: 08-56 Schedule - :id: std_req__aspice_40__iic-08-56 - :status: valid - - Schedule may have the following characteristics: - - - Identifies the activities to be performed - - Identifies the expected, and actual, start and completion date for required activities against progress/completion of activities - - Identifies dependencies between activities and critical path - - Has a mapping to scheduled resources and input data - - Identifies resource allocation, resource workload, and critical resources - - .. note:: - - A schedule is consistent with the defined work packages, see 14-10 - -.. std_req:: 08-58 Verification Measure Selection Set - :id: std_req__aspice_40__iic-08-58 - :status: valid - - Verification Measure Selection Set may have the following characteristics: - - - Include criteria for re-verification in the case of changes (regression). - - Identification of verification measures, also for regression testing. - -.. std_req:: 08-60 Verification Measure - :id: std_req__aspice_40__iic-08-60 - :status: valid - - Verification Measure may have the following characteristics: - - - A verification measure can be a test case, a measurement, a - calculation, a simulation, a review, an optical inspection, or an analysis - - The specification of a verification measure includes - - - pass/fail criteria for verification measures (test completion and ending criteria) - - a definition of entry and exit criteria for the verification measures, and abort and re-start criteria - - - Techniques (e.g., black-box and/or white-box-testing, equivalence - classes and boundary values, fault injection for Functional Safety, - penetration testing for Cybersecurity, back-to-back testing for model-based development, ICT) - - Necessary verification environment & infrastructure - - Necessary sequence or ordering - -.. std_req:: 08-61 Resource allocation - :id: std_req__aspice_40__iic-08-61 - :status: valid - - Resource allocation may have the following characteristics: - - - Detailed / named resources are allocated to process tasks - - Overall resource workload is considered (e.g., allocation of resources to multiple projects) - - .. note:: - - Work breakdown structure may be used to refine the detailed resource allocation - - .. note:: - - A resource allocation may be integrated in a/ be a part of the schedule, see 08-56 - - .. note:: - - Resources to be allocated are e.g., personnel/human resources for project roles and physical and material resources such as (special/limited) equipment, tool, licenses, test hardware, test vehicle, climate chambers etc. - -.. std_req:: 08-62 Communication matrix - :id: std_req__aspice_40__iic-08-62 - :status: valid - - Communication matrix may have the following characteristics: - - - List of relevant process internal / external stakeholders - - Roles and contact information of the parties involved - - Definition of required interfaces between stakeholders - - Communication subject - - Communication means and frequency - - Documentation needs of the communication (e.g., type of communication record) - -.. std_req:: 08-63 Process Monitoring Method - :id: std_req__aspice_40__iic-08-63 - :status: valid - - Process Monitoring Method may have the following characteristics: - - - Measures including criteria for monitoring effectiveness, suitability, and adequacy of the standard process - - Method for collecting and analyzing the monitoring measures - -.. std_req:: 08-66 Measures against deviations in quantitative process analysis - :id: std_req__aspice_40__iic-08-66 - :status: valid - - Measures against deviations in quantitative process analysis may have the following characteristics: - - - Definition of counter measures actions to address each assignable cause of special causes of variation, - or common causes of variation - - Effective implementation of these counter measures - diff --git a/docs/process/standards/aspice_40/iic/iic-10.rst b/docs/process/standards/aspice_40/iic/iic-10.rst deleted file mode 100644 index df3269017b..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-10.rst +++ /dev/null @@ -1,66 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -10-xx -~~~~~ - -.. std_req:: 10-00 Process description - :id: std_req__aspice_40__iic-10-00 - :status: valid - - Process description may have the following characteristics: - - - Process description of a standard or defined process (e.g., after tailoring), including: - - scope and the intended use of the process - - process activities including description and dependencies - - entry and exit criteria such as input information needed and expected outputs for activities - - Roles assigned to process activities (e.g., as RASIC ) or work products - - guidelines - - templates - - specific methods/work instructions - -.. std_req:: 10-50 Role description - :id: std_req__aspice_40__iic-10-50 - :status: valid - - Role description may have the following characteristics: - - - Name/identifier (unique within the organization) - - Assigned activities (e.g., as RASIC) - - Responsibilities and authorities - - Required competencies, skills, and experience - -.. std_req:: 10-51 Qualification method description - :id: std_req__aspice_40__iic-10-51 - :status: valid - - Qualification method description may have the following characteristics: - - - Training courses - - Training materials - - Mentoring/coaching concepts - - Self-learning material - -.. std_req:: 10-52 Process resource and infrastructure description - :id: std_req__aspice_40__iic-10-52 - :status: valid - - Process resource and infrastructure description may have the following characteristics: - - - Required facilities - - Required tools and corresponding licenses - - Required networks - - Required services - - Required samples - diff --git a/docs/process/standards/aspice_40/iic/iic-11.rst b/docs/process/standards/aspice_40/iic/iic-11.rst deleted file mode 100644 index ae936ce8de..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-11.rst +++ /dev/null @@ -1,72 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -11-xx -~~~~~ - -.. std_req:: 11-03 Release note - :id: std_req__aspice_40__iic-11-03 - :status: valid - - Release note may have the following characteristics: - - - Coverage for key elements (as appropriate to the application): - - Description of what is new or changed (including features removed) - - System information and requirements - - Identification of conversion programs and instructions - - Release numbering implementation may include: - - the major release number - - the feature release number - - the defect repair number - - the alpha or beta release; and the iteration within the alpha or beta release - - Identification of the component list (version identification included): - - hardware / software / product elements, libraries, etc. - - associated documentation list - - New/changed parameter information (e.g., for application parameters or global variables) and/or commands. - Note that application parameters are a technical implementation solution for configurability-oriented requirements) - - Backup and recovery information - - List of open known problems, faults, warning information, etc. - - Identification of verification and diagnostic procedures - - Technical support information - - Copyright and license information - - The release note may include an introduction, the environmental requirements, installation procedures, product invocation, - new feature identification and a list of defect resolutions, known defects and workarounds - -.. std_req:: 11-04 Product release package - :id: std_req__aspice_40__iic-11-04 - :status: valid - - Product release package may have the following characteristics: - - - Includes the hardware/software/product - - Includes and associated release elements such as: - - system hardware/software/product elements - - associated customer documentation - - application parameter definitions defined - - command language defined - - installation instructions - - release letter - -.. std_req:: 11-05 Software Unit - :id: std_req__aspice_40__iic-11-05 - :status: valid - - Software Unit may have the following characteristics: - - - a representation of a software element at the lowest level in a - conceptual model, which is decided not to be further subdivided and - that is a part of a software component, or - - a representation of a software unit under verification such as - commented source code, auto-code, an object file, a library, an - executable, or an executable model as input to verification diff --git a/docs/process/standards/aspice_40/iic/iic-12.rst b/docs/process/standards/aspice_40/iic/iic-12.rst deleted file mode 100644 index a3393578aa..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-12.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -12-xx -~~~~~ - -.. std_req:: 12-03 Reuse candidate - :id: std_req__aspice_40__iic-12-03 - :status: valid - - Reuse candidate may have the following characteristics: - - - Identifies the product to be reused - - Identifies the responsible person for the products to be reused - - Identifies the reuse goals and objectives - - Identifies the list of reuse assets - - Identifies the issues/risks of reusing the component including specific requirements - (hardware, software, resource and other reuse components) - - Identifies the person who will be qualifying the reuse candidate - - diff --git a/docs/process/standards/aspice_40/iic/iic-13.rst b/docs/process/standards/aspice_40/iic/iic-13.rst deleted file mode 100644 index a7654e503a..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-13.rst +++ /dev/null @@ -1,236 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -13-xx -~~~~~ - -.. std_req:: 13-06 Delivery evidence - :id: std_req__aspice_40__iic-13-06 - :status: valid - - Delivery evidence may have the following characteristics: - - - Evidence of items shipped/delivered electronically to customer - - Identification of: - - to whom it was sent - - address, where delivered - - delivery date - - receipt of delivered product - -.. std_req:: 13-07 Problem - :id: std_req__aspice_40__iic-13-07 - :status: valid - - Problem may have the following characteristics: - - - Identifies the submitter of the problem - - Identifies the group/person(s) responsible for providing problem resolution - - Includes a description of the problem - - Identifies classification of the problem (criticality, urgency, relevance etc.) - - Identifies the status of the problem - - States such as “open”, “in review”, “in implementation”, “closed”, “rejected”, “cancelled”, … - - Transitions between states with conditions and authorities - - Identifies the expected closure date - -.. std_req:: 13-08 Baseline - :id: std_req__aspice_40__iic-13-08 - :status: valid - - Baseline may have the following characteristics: - - - Identifies a state of one or a set of work products and artifacts which are consistent and complete - - Basis for next process steps and/or delivery - - Is unique and may not be changed - - .. note:: - - This should be established before a release to identify consistent and complete delivery - -.. std_req:: 13-09 Meeting support evidence - :id: std_req__aspice_40__iic-13-09 - :status: valid - - Meeting support evidence may have the following characteristics: - - - Agenda and minutes that are records that define: - - purpose of meeting - - attendees - - date, place held - - reference to previous minutes - - what was accomplished - - identifies issues raised - - any open issues - - next meeting if any - -.. std_req:: 13-13 Product release approval - :id: std_req__aspice_40__iic-13-13 - :status: valid - - Product release approval support evidence may have the following characteristics: - - - Content information of what is to be shipped or delivered - - Identification of: - - for whom it is intended - - the address where to deliver - - the date released - - Evidence of supplier approval - -.. std_req:: 13-14 Progress status - :id: std_req__aspice_40__iic-13-14 - :status: valid - - Progress status may have the following characteristics: - - Status of a plan(s) (actual against planned) such as: - - status of actual activities/work packages against planned activities/work package - - status of actual results against established objectives/goals - - status of actual resources allocation against planned resources - - status of actual cost against budget estimates - - status of actual time against planned schedule - - status of actual quality against planned quality - Record of any deviations from planned activities and reason why - -.. std_req:: 13-16 Change request - :id: std_req__aspice_40__iic-13-16 - :status: valid - - Change request may have the following characteristics: - - - Identifies purpose of change - - Identifies requester contact information - - Impacted system(s) - - Impact to operations of existing system(s) defined - - Impact to associated documentation defined - - Criticality of the request, due date - - Information supporting the tracking of change requests to closure - - progress status attribute (e.g., open, allocated, implemented, closed) - - time stamp of status change - - person who changed a status - - rationale for changing a status - -.. std_req:: 13-18 Quality conformance evidence - :id: std_req__aspice_40__iic-13-18 - :status: valid - - Quality conformance evidence may have the following characteristics: - - - Identifies what tasks/activities/process produce the information - - Identifies when the data was collected - - Identifies source of any associated data - - Identifies the associated quality criteria - - Identifies any associated measurements using the information - -.. std_req:: 13-19 Review evidence - :id: std_req__aspice_40__iic-13-19 - :status: valid - - Review evidence may have the following characteristics: - - - Provides the context information about the review: - - what was reviewed - - lists reviewers who attended and their area of responsibility - - status of the review - - Provides information about the scope of the review: - - checklists - - review criteria - - requirements - - compliance to standards - - Effort information about: - - preparation time spent for the review - - time spent in the review - - Review findings: - - non-conformances - - improvement suggestions - -.. std_req:: 13-25 Verification results - :id: std_req__aspice_40__iic-13-25 - :status: valid - - Verification results may have the following characteristics: - - - Verification data and logs - - Verification measure passed - - Verification measure not passed - - Verification measure not executed, and a rationale - - Information about the verification execution (date, “object-under-verification”, etc.) - - Abstraction or summary of verification results - -.. std_req:: 13-51 Consistency Evidence - :id: std_req__aspice_40__iic-13-51 - :status: valid - - Consistency Evidence may have the following characteristics: - - - Demonstrates bidirectional traceability between artifacts or information - in artifacts, throughout all phases of the life cycle, by e.g., - - - tool links - - hyperlinks - - editorial references - - naming conventions - - - Evidence that the content of the referenced or mapped information - coheres semantically along the traceability chain, e.g., by - - - performing pair working or group work - - performing by peers, e.g., spot checks - - maintaining revision histories in documents - - providing change commenting (via e.g., meta-information) of - database or repository entries - - .. note:: - - This evidence can be accompanied by e.g., Definition of Done - (DoD) approaches. - -.. std_req:: 13-52 Communication Evidence - :id: std_req__aspice_40__iic-13-52 - :status: valid - - Communication Evidence may have the following characteristics: - - - All forms of interpersonal communication such as - - - e-mails, also automatically generated ones - - tool-supported workflows - - meeting, verbally or via meeting minutes (e.g., daily standups) - - podcast - - blog - - videos - - forum - - live chat - - wikis - - photo protocol - -.. std_req:: 13-53 Qualification evidence - :id: std_req__aspice_40__iic-13-53 - :status: valid - - Definition not available yet in PAM4.0 document. - -.. std_req:: 13-55 Process resource and infrastructure documentation - :id: std_req__aspice_40__iic-13-55 - :status: valid - - Process resource and infrastructure documentation may have the following characteristics: - - - Information on availability, allocation, and usage of - - Facilities - - Tools and corresponding licenses - - Networks - - Services - - Samples - - for non-standard and critical resources and infrastructure. - - diff --git a/docs/process/standards/aspice_40/iic/iic-14.rst b/docs/process/standards/aspice_40/iic/iic-14.rst deleted file mode 100644 index fc4a16c334..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-14.rst +++ /dev/null @@ -1,94 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -14-xx -~~~~~ - -.. std_req:: 14-01 Change history - :id: std_req__aspice_40__iic-14-01 - :status: valid - - Change history may have the following characteristics: - - - Historical records of all changes made to an object (document, file, software component, etc.): - - description of change - - version information about changed object - - date of change - - change requester information - - change control record information - -.. std_req:: 14-02 Corrective action - :id: std_req__aspice_40__iic-14-02 - :status: valid - - Corrective action may have the following characteristics: - - - Identifies the initial problem - - Identifies the ownership for completion of defined action - - Defines a solution (series of actions to fix problem) - - Identifies the open date and target closure date - - Contains a status indicator - - Indicates follow up audit actions - -.. std_req:: 14-10 Work package - :id: std_req__aspice_40__iic-14-10 - :status: valid - - Work package may have the following characteristics: - - - Defines activities to be performed - - Documents ownership for activities e.g., by domains - - Documents critical dependencies to other work packages - - Documents input and output work products - - Documents the critical dependencies between defined work products - - Information needed to perform these activities - - Estimates of effort, duration - - .. note:: - - The work package descriptions may be integrated into the/be a part of a schedule, see 08-56 - -.. std_req:: 14-50 Stakeholder groups list - :id: std_req__aspice_40__iic-14-50 - :status: valid - - Stakeholder groups list may have the following characteristics: - - Identifies: - - involved parties - - weight/importance of each stakeholder group - - representative(s) for each stakeholder group - - information needs of each stakeholder group - -.. std_req:: 14-53 Role Assignment - :id: std_req__aspice_40__iic-14-53 - :status: valid - - Role Assignment may have the following characteristics: - - - Assignment of person(s) to roles - - required competencies vs existing competencies - - required skills vs existing skills - - required experience and trainings based on identified competencies / skills gap - -.. std_req:: 14-55 Software Bill of materials - :id: std_req__aspice_40__iic-14-55 - :status: valid - - Software Bill of materials may have the following characteristics: - - - Uniquely identifies type, supplier, and - amount of the complete set of all software parts of the software - - diff --git a/docs/process/standards/aspice_40/iic/iic-15.rst b/docs/process/standards/aspice_40/iic/iic-15.rst deleted file mode 100644 index f3bb121357..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-15.rst +++ /dev/null @@ -1,199 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -15-xx -~~~~~ - -.. std_req:: 15-06 Project status - :id: std_req__aspice_40__iic-15-06 - :status: valid - - Project status may have the following characteristics: - - - Status of in regards to progress and consistency of schedule, work item content, tasks, resources - (human resources, infrastructure, hardware/materials, budget), skills and competence of human resources - - planned progress and expenditure against dates/deadlines and actual expenditure - - reasons for variance from planned progress - - threats to continued progress - - issues which may affect the ability of the project to achieve its goals - - contingency actions - -.. std_req:: 15-07 Reuse analysis evidence - :id: std_req__aspice_40__iic-15-07 - :status: valid - - Reuse analysis evidence may have the following characteristics: - - - Identification of reuse opportunities - - Identification of constraints for reuse - - Identification of regression test cases - - Identification of reuse infrastructure - - Identification of known defects - -.. std_req:: 15-09 Risk status - :id: std_req__aspice_40__iic-15-09 - :status: valid - - Risk status may have the following characteristics: - - - Identifies the status, or the change, of an identified risk: - - risk statement - - risk source - - risk impact and risk probability - - categories and risk thresholds, e.g., for prioritization or setting a status - - risk treatment activities in progress - -.. std_req:: 15-12 Problem status - :id: std_req__aspice_40__iic-15-12 - :status: valid - - Problem status may have the following characteristics: - - - Indicates progress of problem resolution - - Status of problem e.g., - - by problem categories/classification - - by problem resolution stage - -.. std_req:: 15-13 Assessment/audit report - :id: std_req__aspice_40__iic-15-13 - :status: valid - - Assessment/audit report may have the following characteristics: - - States the purpose of assessment - - Method used for assessment - - Requirements used for the assessment - - Assumptions and limitations - - Identifies the context and scope information required: - -- date of assessment - -- organizational unit assessed - -- sponsor information - -- assessment team - -- attendees - -- scope/coverage - -- assesses and information - -- assessment tool used - - Records the result: - -- Data - -- identifies the gaps, potentials, weaknesses or non-conformances that require corrective actions - -.. std_req:: 15-16 Improvement opportunity - :id: std_req__aspice_40__iic-15-16 - :status: valid - - Improvement opportunity may have the following characteristics: - - - Identifies what the problem is - - Identifies what the cause of a problem is - - Suggest what could be done to fix the problem - - Identifies the value (expected benefit) in performing the improvement - - Identifies the penalty for not making the improvement - -.. std_req:: 15-51 Analysis Results - :id: std_req__aspice_40__iic-15-51 - :status: valid - - Analysis Results may have the following characteristics: - - - Identification of the object under analysis - - The analysis criteria used, e.g.: - - - selection criteria or prioritization scheme used - - decision criteria - - quality criteria - - - The analysis results, e.g.: - - - what was decided/selected - - reason for the selection - - assumptions made - - potential negative impact - - - Aspects of the analysis may include - - - correctness - - understandability - - verifiability - - feasibility - - validity - -.. std_req:: 15-52 Verification Results - :id: std_req__aspice_40__iic-15-52 - :status: valid - - Verification Results may have the following characteristics: - - - Verification data and logs - - Verification measure passed - - Verification measure not passed - - Verification measure not executed - - Information about the test execution (date, tester name etc.) - - Abstraction or summary of verification results - -.. std_req:: 15-54 Tailoring documentation - :id: std_req__aspice_40__iic-15-54 - :status: valid - - Tailoring documentation results may have the following characteristics: - - - Applied criteria for tailoring, - - Evidence that the defined process is tailored from the standard process according - to the defined criteria - -.. std_req:: 15-55 Problem analysis evidence - :id: std_req__aspice_40__iic-15-55 - :status: valid - - Problem analysis evidence may have the following characteristics: - - - Author and involved parties - - Date of the analysis - - Context and root cause of the problem - - Analysis result may include - - Impact - - Potential negative impact - - Affected parties - - Potential solution (if known) - -.. std_req:: 15-56 Configuration status - :id: std_req__aspice_40__iic-15-56 - :status: valid - - Configuration status may have the following characteristics: - - - Summary of configuration management records including relevant status - - Analysis of the configuration management overall state - - Identification of baselines made - -.. std_req:: 15-57 Quantitative process analysis results - :id: std_req__aspice_40__iic-15-57 - :status: valid - - Quantitative process analysis results may have the following characteristics: - - - Deviations, and distributions, of the quantitative performance of individual process instances performance - from the established quantitative control limits (special causes of variations) - -.. std_req:: 15-58 Common cause of variation analysis results - :id: std_req__aspice_40__iic-15-58 - :status: valid - - Common cause of variation analysis results may have the following characteristics: - - - Identification of common causes - - deviations of the quantitative performance of all process instances - from the established quantitative control limits - - distributions of the quantitative performance of all process instances - within established quantitative control limits - - diff --git a/docs/process/standards/aspice_40/iic/iic-16.rst b/docs/process/standards/aspice_40/iic/iic-16.rst deleted file mode 100644 index 01e2595c68..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-16.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -16-xx -~~~~~ - -.. std_req:: 16-00 Repository - :id: std_req__aspice_40__iic-16-00 - :status: valid - - Repository may have the following characteristics: - - Charcteristics according to Wikipedia, as the PAM 4.0 is lacking it in the IIC. - A software repository, or repo for short, is a storage location for software packages. - Often a table of contents is also stored, along with metadata. - A software repository is typically managed by source or version control, or repository managers. - Package managers allow automatically installing and updating repositories, sometimes called "packages". - -.. std_req:: 16-03 Configuration management system - :id: std_req__aspice_40__iic-16-03 - :status: valid - - Configuration management system may have the following characteristics: - - - Supports the configuration management for the scope of the configuration item list contents - - Correct configuration of products - - Can recreate any release or test configuration - - Ability to report configuration status - - Has to cover all relevant tools - -.. std_req:: 16-06 Process repository - :id: std_req__aspice_40__iic-16-06 - :status: valid - - Process repository may have the following characteristics: - - - Contains process descriptions - - Supports multiple presentations of process assets - -.. std_req:: 16-50 Organizational structure - :id: std_req__aspice_40__iic-16-50 - :status: valid - - Organizational structure may have the following characteristics: - - - Disciplinary reporting line - - Organizational units and sub-units, if applicable - - diff --git a/docs/process/standards/aspice_40/iic/iic-17.rst b/docs/process/standards/aspice_40/iic/iic-17.rst deleted file mode 100644 index 31f94ecf6c..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-17.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -17-xx -~~~~~ - -.. std_req:: 17-00 Requirement - :id: std_req__aspice_40__iic-17-00 - :status: valid - - Requirements may have the following characteristics: - - - An expectation of functions and capabilities (e.g., non-functional - requirements), or one of its interfaces - - from a black-box perspective - - that is verifiable, does not imply a design or implementation decision, is - unambiguous, and does not introduce contradictions to other - requirements. - - A requirements statement that implies, or represents, a design or - implementation decision is called “Design Constraint”. - - Examples for requirements aspects at the system level are thermal - characteristics such as - - - heat dissipation - - dimensions - - weight - - materials - - - Examples of aspects related to requirements about system interfaces - are - - - connectors - - cables - - housing - - - Examples for requirements at the hardware level are - - - lifetime and mission profile, lifetime robustness - - maximum price - - storage and transportation requirements - - functional behavior of analog or digital circuits and logic - - quiescent current, voltage impulse responsiveness to crank, startstop, drop-out, load dump - - temperature, maximum hardware heat dissipation - - power consumption depending on the operating state such as - sleep-mode, start-up, reset conditions - - frequencies, modulation, signal delays, filters, control loops - - power-up and power-down sequences, accuracy and precision of - signal acquisition or signal processing time - - computing resources such as memory space and CPU clock - tolerances - - maximum abrasive wear and shearing forces for e.g., pins or - soldering joints - - requirements resulting from lessons learned - - safety related requirements derived from the technical safety - concept - -.. std_req:: 17-05 Requirements for work products - :id: std_req__aspice_40__iic-17-05 - :status: valid - - Requirements for work products may have the following characteristics: - - - Requirements for content and structure, storage and control - - Identifies documentation specific meta data, such as id, date, author information, ownership, access rights, review and approval status with, where applicable, status model and workflow, or others - - Identifies requirements on documentation structure, e.g., table of content or figures or other formal aspects - - May be provided by documentation templates - - May be based on tool specific templates - - Defines the storage location such as data repository, tool, versioning system - - Requirements for versioning - - Requirements for baselining - - Distribution of the documents - - Maintenance and disposal of the documents - - May be specific for certain types of documents - -.. std_req:: 17-54 Requirement Attribute - :id: std_req__aspice_40__iic-17-54 - :status: valid - - Requirement Attributes may have the following characteristics: - - - Meta-attributes that support structuring and definition of release scopes - of requirements. - - Can be realized by means of tools. - - .. note:: - - usage of requirements attributes may further support analysis of - requirements. - -.. std_req:: 17-55 Resource needs - :id: std_req__aspice_40__iic-17-55 - :status: valid - - Resource needs may have the following characteristics: - - - Identification of required resources for process performance - - Staff including competencies, skills and authorities needs - - Material, equipment, and infrastructure - - Time and budget - - .. note:: - - Needs are derived from Work Breakdown structure and schedule - - diff --git a/docs/process/standards/aspice_40/iic/iic-18.rst b/docs/process/standards/aspice_40/iic/iic-18.rst deleted file mode 100644 index 0003104402..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-18.rst +++ /dev/null @@ -1,152 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -18-xx -~~~~~ - -.. std_req:: 18-00 Standard - :id: std_req__aspice_40__iic-18-00 - :status: valid - - Standard may have the following characteristics: - - - Identification of to whom/what they apply - - Expectations for conformance are identified - - Conformance to requirements can be demonstrated - - Provisions for tailoring or exception to the requirements are included - -.. std_req:: 18-06 Product release criteria - :id: std_req__aspice_40__iic-18-06 - :status: valid - - Product release criteria may have the following characteristics: - - - Defines expectations for product release: - - release type and status - - required elements of the release - - product completeness including documentation - - adequacy and coverage of testing - - limit for open defects - - change control status - -.. std_req:: 18-07 Quality criteria - :id: std_req__aspice_40__iic-18-07 - :status: valid - - Quality criteria may have the following characteristics: - - - Defines the expectations for work products and process performance - - Including thresholds/tolerance levels, required measurements, required checkpoints - - Defines what is an adequate work product (required elements, completeness expected, accuracy, etc.) - - Defines what constitutes the completeness of the defined tasks - - Defines what constitutes the performance of the defined tasks - - Establishes expected performance attributes - -.. std_req:: 18-52 Escalation path - :id: std_req__aspice_40__iic-18-52 - :status: valid - - Escalation path may have the following characteristics: - - - Defined mechanisms to report and confirm escalation relevant issues - - Identifies stakeholders to be included in the escalation path - - Identifies levels of escalation - -.. std_req:: 18-53 Configuration item selection criteria - :id: std_req__aspice_40__iic-18-53 - :status: valid - - Configuration item selection criteria may have the following characteristics: - - - Identify types of work products to be subject to configuration control - -.. std_req:: 18-57 Change analysis criteria - :id: std_req__aspice_40__iic-18-57 - :status: valid - - Change analysis criteria may have the following characteristics: - - - Defines analysis criteria, such as - - resource requirements - - scheduling issues - - risks - - benefits - -.. std_req:: 18-58 Process performance objectives - :id: std_req__aspice_40__iic-18-58 - :status: valid - - Process performance objectives may have the following characteristics: - - - Objectives for the process of creating the process outcomes and capability level 2 achievements, and corresponding evaluation criteria - - Assumptions and constraints, if applicable - - Used as the basis for deriving a detailed planning - - Examples: - - Effort, costs, or budget targets (e.g., min/max limits) - - Process-specific deadlines in line with milestones, or frequency of activities (o e.g., dates for deliveries to the customer, quality gates) - - Metrics (e.g., max. number of open change requests per release, max. ratio of configuration items in status “in work” at certain milestones before next delivery / release date) - -.. std_req:: 18-59 Review and approval criteria for work products - :id: std_req__aspice_40__iic-18-59 - :status: valid - - Process performance objectives may have the following characteristics: - - - Specifies for each type of work products review and approval needs - - If and when a review is required - - Who shall review it - - Who shall approve it - - Review method(s) to be used - - Criteria for approval - -.. std_req:: 18-70 Business goals - :id: std_req__aspice_40__iic-18-70 - :status: valid - - Business goals may have the following characteristics: - - - Explanation of the business goals - - Requirements for the business needs - - Associations to other goals - - Reasons for the existence of the goals and needs, level of degree of the need and effect on the business not having that need - - Conditions, constraints, assumptions - - Timeframe for achievement - - Authorization at the highest level - -.. std_req:: 18-80 Improvement opportunity - :id: std_req__aspice_40__iic-18-80 - :status: valid - - Improvement opportunity may have the following characteristics: - - - Cause of the improvement need, e.g., - - from qualitative or quantitative process performance analysis, evaluations, and monitoring - - industry best practice review, state-of-the-art observations, market studies etc. - - Improvement objectives derived from organizational business goals and improvement needs - - Organizational scope - - Process scope - - Activities to be performed to keep all those affected by the improvement informed - - Priorities - -.. std_req:: 18-81 Improvement evaluation results - :id: std_req__aspice_40__iic-18-81 - :status: valid - - Improvement evaluation results may have the following characteristics: - - - Operational impacts of identified changes on the product(s) and processes - - Expected benefit - - Conditions, constraints, assumptions - - diff --git a/docs/process/standards/aspice_40/iic/iic-19.rst b/docs/process/standards/aspice_40/iic/iic-19.rst deleted file mode 100644 index 9129f9d81e..0000000000 --- a/docs/process/standards/aspice_40/iic/iic-19.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -19-xx -~~~~~ - -.. std_req:: 19-01 Process performance strategy - :id: std_req__aspice_40__iic-19-01 - :status: valid - - Process performance strategy may have the following characteristics: - - - The operational approach to achieve the process outcomes, consistent with the Process Performance Objectives (18-58), e.g.: - - proceedings, including the monitoring of the performance of the process - - methodology - - scope(s) of the strategy within the process, e.g.: - - development sites - - application domain-specific differences (e.g., software drivers versus. powertrain software) - - disciplines (e.g., different configuration management approaches for software and hardware, or combined approaches) - - options due to socio-cultural differences - - diff --git a/docs/process/standards/aspice_40/iic/index.rst b/docs/process/standards/aspice_40/iic/index.rst deleted file mode 100644 index 7035c84ec1..0000000000 --- a/docs/process/standards/aspice_40/iic/index.rst +++ /dev/null @@ -1,55 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Information Item Characteristics --------------------------------- - -Provides examples of the potential characteristics associated with the -information item types. The assessor may use these in evaluating the -samples provided by the organizational unit. It is not intended to use -the listed characteristics as a checklist. Some characteristics may be -contained in other work products, as it would be found appropriate in -the assessed organization. - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - - iic-01 - iic-02 - iic-03 - iic-04 - iic-06 - iic-07 - iic-08 - iic-10 - iic-11 - iic-12 - iic-13 - iic-14 - iic-15 - iic-16 - iic-17 - iic-18 - iic-19 - - -Appendix -~~~~~~~~ - -.. needtable:: General Practices - :style: datatables - :columns: id;title;status;content - :filter: id.startswith("std_req__aspice_40__iic") diff --git a/docs/process/standards/aspice_40/index.rst b/docs/process/standards/aspice_40/index.rst deleted file mode 100644 index fdcdc26270..0000000000 --- a/docs/process/standards/aspice_40/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - - aspice - -.. needextend:: "standards/aspice_40" in docname - :+tags: aspice_40 diff --git a/docs/process/standards/aspice_40/man/index.rst b/docs/process/standards/aspice_40/man/index.rst deleted file mode 100644 index f11e303f53..0000000000 --- a/docs/process/standards/aspice_40/man/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - man.3 - man.5 diff --git a/docs/process/standards/aspice_40/man/man.3.rst b/docs/process/standards/aspice_40/man/man.3.rst deleted file mode 100644 index 54bcee38fd..0000000000 --- a/docs/process/standards/aspice_40/man/man.3.rst +++ /dev/null @@ -1,158 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -MAN.3 Project Management ------------------------- - -The purpose is to identify and control the activities, and -establish resources necessary for a project to develop a product, -in the context of the project’s requirements and constraints. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. The scope of the work for the project is defined. -2. The feasibility of achieving the goals of the project with available resources and constraints is evaluated. -3. The activities and resources necessary to complete the work are sized and estimated. -4. Interfaces within the project, and with other projects and organizational units, are identified and monitored. -5. Plans for the execution of the project are developed, implemented and maintained. -6. Progress of the project is monitored and reported. -7. Adjustment is performed when project goals are not achieved. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: MAN.3.BP1: Define the scope of work - :id: std_req__aspice_40__MAN-3-BP1 - :status: valid - :links: std_req__aspice_40__iic-08-53 - - Identify the project's goals, motivation and boundaries. - -.. std_req:: MAN.3.BP2: Define project life cycle - :id: std_req__aspice_40__MAN-3-BP2 - :status: valid - :links: std_req__aspice_40__iic-08-53,std_req__aspice_40__iic-08-54,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52 - - Define the life cycle for the project, which is appropriate to the scope, context, and - complexity of the project. Define a release scope for relevant milestones. - - .. note:: - - This may include the alignment of the project life cycle with the customer's development process. - -.. std_req:: MAN.3.BP3: Evaluate feasibility of the project - :id: std_req__aspice_40__MAN-3-BP3 - :status: valid - :links: std_req__aspice_40__iic-08-54,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52 - - Evaluate the feasibility of achieving the goals of the project with respect to time, project estimates, and available resources. - - .. note:: - - The evaluation of feasibility may consider technical constraints of the project. - - -.. std_req:: MAN.3.BP4: Define and monitor work packages - :id: std_req__aspice_40__MAN-3-BP4 - :status: valid - :links: std_req__aspice_40__iic-08-54,std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-14-50,std_req__aspice_40__iic-15-06,std_req__aspice_40__iic-18-52 - - Define and monitor work packages and their dependencies according to defined project life cycle and estimations. - - .. note:: - - The structure and the size of the work packages support an adequate progress monitoring. - - .. note:: - - Work packages may be organized in a work breakdown structure. - -.. std_req:: MAN.3.BP5: Define and monitor project estimates and resources - :id: std_req__aspice_40__MAN-3-BP5 - :status: valid - :links: std_req__aspice_40__iic-08-54,std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-18-52 - - Define and monitor project estimates of effort and resources based on project's goals, project risks, motivation and boundaries. - - .. note:: - - Examples of necessary resources are budget, people, product samples, or infrastructure - - .. note:: - - Project risks (using MAN.5) may be considered. - - .. note:: - - Estimations and resources may include engineering, management and supporting processes. - -.. std_req:: MAN.3.BP6: Define and monitor required skills, knowledge, and experience - :id: std_req__aspice_40__MAN-3-BP6 - :status: valid - :links: std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-18-52 - - Identify and monitor the required skills, knowledge, and experience for the project in line with the estimates and work packages. - - .. note:: - - Training, mentoring or coaching of individuals may be applied to resolve deviations from required skills and knowledge. - -.. std_req:: MAN.3.BP7: Define and monitor project interfaces and agreed commitments - :id: std_req__aspice_40__MAN-3-BP7 - :status: valid - :links: std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-18-52 - - Identify and agree interfaces of the project with affected stakeholders and monitor agreed commitments. Define an escalation mechanism for commitments that are not fulfilled. - - .. note:: - - Affected stakeholders may include other projects, organizational units, sub-contractors, and service providers. - -.. std_req:: MAN.3.BP8: Define and monitor project schedule - :id: std_req__aspice_40__MAN-3-BP8 - :status: valid - :links: std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-15-06,std_req__aspice_40__iic-18-52 - - Allocate resources to work packages and schedule each activity of the project. Monitor the performance of activities against schedule. - -.. std_req:: MAN.3.BP9: Ensure consistency - :id: std_req__aspice_40__MAN-3-BP9 - :status: valid - :links: std_req__aspice_40__iic-08-54,std_req__aspice_40__iic-08-56,std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-14-50,std_req__aspice_40__iic-15-06,std_req__aspice_40__iic-18-52 - - Regularly adjust estimates, resources, skills, work packages and their dependencies, schedules, plans, interfaces, and - commitments for the project to ensure consistency with the scope of work. - - .. note:: - - This may include the consideration of critical dependencies, that are an input for risk management. - -.. std_req:: MAN.3.BP10: Review and report progress of the project - :id: std_req__aspice_40__MAN-3-BP10 - :status: valid - :links: std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-13-51,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-14-10,std_req__aspice_40__iic-15-06,std_req__aspice_40__iic-18-52 - - Regularly review and report the status of the project and the fulfillment of work packages against - estimated effort and duration to all affected parties. Prevent recurrence of identified problems. - - .. note:: - - Project reviews may be executed at regular intervals by the management. Project reviews may contribute to identify best practices and lessons learned. - - .. note:: - - Refer to SUP.9 for resolution of problems - - diff --git a/docs/process/standards/aspice_40/man/man.5.rst b/docs/process/standards/aspice_40/man/man.5.rst deleted file mode 100644 index 70bcfff732..0000000000 --- a/docs/process/standards/aspice_40/man/man.5.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -MAN.5 Risk Management ---------------------- - -The purpose is to Regularly identify, analyze, treat and monitor process related risks and product related risks. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. The sources of risks are identified and regularly updated. -2. Potential undesirable events are identified as they develop during the conduct of the project. -3. Risks are analyzed and the priority in which to apply resources to treatment of these risks is determined. -4. Risk measures are defined, applied, and assessed to determine changes in the status of risk and the progress of the risk treatment activities. -5. Appropriate treatment is taken to correct or avoid the impact of risk based on its priority, probability, and consequence or other defined risk threshold. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: MAN.5.BP1: Identify sources of risks - :id: std_req__aspice_40__MAN-5-BP1 - :status: valid - :links: std_req__aspice_40__iic-15-09,std_req__aspice_40__iic-15-51 - - Identify and regularly update the sources of risks with affected parties. - - .. note:: - - Risks may include technical, economical, and schedule risks. - - .. note:: - - Risks may include the suppliers’ deliverables and services. - - .. note:: - - The risk sources may vary across the entire project life cycle. - -.. std_req:: MAN.5.BP2: Identify potential undesirable events - :id: std_req__aspice_40__MAN-5-BP2 - :status: valid - :links: std_req__aspice_40__iic-15-51 - - Identify potential undesirable events within the scope of the risk management for the project. - -.. std_req:: MAN.5.BP3: Determine risks - :id: std_req__aspice_40__MAN-5-BP3 - :status: valid - :links: std_req__aspice_40__iic-15-09,std_req__aspice_40__iic-15-51 - - Determine the probability and severity of the undesirable events to support priorities for the mitigation of the risks. - - .. note:: - - Different methods may be used to analyze technical risks of a system, for example, functional analysis, simulation, FMEA, FTA etc. - -.. std_req:: MAN.5.BP4: Define risk treatment options - :id: std_req__aspice_40__MAN-5-BP4 - :status: valid - :links: std_req__aspice_40__iic-08-55,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-15-09,std_req__aspice_40__iic-15-51 - - For each risk select a treatment option to accept, mitigate, avoid, or share (transfer) the risk. - -.. std_req:: MAN.5.BP5: Define and perform risk treatment activities - :id: std_req__aspice_40__MAN-5-BP5 - :status: valid - :links: std_req__aspice_40__iic-08-55,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-15-09,std_req__aspice_40__iic-15-51 - - Define and perform risk activities for risk treatment options. - -.. std_req:: MAN.5.BP6: Monitor risks - :id: std_req__aspice_40__MAN-5-BP6 - :status: valid - :links: std_req__aspice_40__iic-08-55,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-15-09 - - Regularly re-evaluate the risk related to the identified potential undesirable events to determine - changes in the status of a risk and to evaluate the progress of the risk treatment activities. - - .. note:: - - Risks of high priority may need to be communicated to and monitored by higher levels of management. - -.. std_req:: MAN.5.BP7: Take corrective action - :id: std_req__aspice_40__MAN-5-BP7 - :status: valid - :links: std_req__aspice_40__iic-08-55,std_req__aspice_40__iic-14-02,std_req__aspice_40__iic-15-09,std_req__aspice_40__iic-15-51 - - When risk treatment activities are not effective, take appropriate corrective action. - - .. note:: - - Corrective actions may involve reevaluation of risks, developing and implementing new mitigation concepts or adjusting the existing concepts. - - diff --git a/docs/process/standards/aspice_40/pim/index.rst b/docs/process/standards/aspice_40/pim/index.rst deleted file mode 100644 index 298e4fb46e..0000000000 --- a/docs/process/standards/aspice_40/pim/index.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - pim.3 diff --git a/docs/process/standards/aspice_40/pim/pim.3.rst b/docs/process/standards/aspice_40/pim/pim.3.rst deleted file mode 100644 index a29346f004..0000000000 --- a/docs/process/standards/aspice_40/pim/pim.3.rst +++ /dev/null @@ -1,132 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -PIM.3 Process Improvement -------------------------- - -The purpose is to continually improve the organization’s effectiveness and efficiency -through the processes used and ensure alignment of the processes with the business needs. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Commitment is established to provide resources to sustain improvement measures. -2. Issues arising from the organization's internal or external environment are identified as improvement opportunities and justified as reasons for change. -3. Analysis of the current status of the existing process is performed. -4. Improvement goals are identified and prioritized, and consequent changes to the process are defined, documented and implemented. -5. The effects of process implementation are monitored, measured and confirmed against the identified improvement goals. -6. Knowledge gained from the improvement is communicated within the organization. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: PIM.3.BP1: Establish commitment - :id: std_req__aspice_40__PIM-3-BP1 - :status: valid - :links: std_req__aspice_40__iic-02-01 - - Establish commitment to support the process improvement staff, to provide resources and further enablers to sustain improvement actions. - - .. note:: - - The process improvement process is a generic process, which can be used at all levels (e.g, organizational level, process level, project level, etc.) and which can be used to improve all processes. - - .. note:: - - Commitment at all levels of management may support process improvement. - - .. note:: - - Enablers for improvement measures may include trainings, methods, infrastructure, etc. - -.. std_req:: PIM.3.BP2: Identify improvement measures - :id: std_req__aspice_40__PIM-3-BP2 - :status: valid - :links: std_req__aspice_40__iic-13-16,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13,std_req__aspice_40__iic-15-16 - -Identify issues from the analysis of process performance and derive improvement opportunities with justified reasons for change. - - .. note:: - - Analysis may include problem report trend analysis (see SUP.9), analysis from Quality Assurance and Verification results and - records (see SUP.1), validation results and records, and product quality metrics like defect rate. - - .. note:: - - Issues and improvement suggestions may be addressed by the customer. - - .. note:: - - Sources for identification of issues may include: process assessment results, audits, customer's satisfaction reports, measurements of organizational effectiveness/efficiency, costs of quality. - - .. std_req:: PIM.3.BP3: Establish process improvement goals - :id: std_req__aspice_40__PIM-3-BP3 - :status: valid - :links: std_req__aspice_40__iic-06-04,std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13,std_req__aspice_40__iic-16-06 - - Analyze the current status of the existing processes and establish improvement goals. - - .. note:: - - The current status of processes may be determined by process assessment. - - .. std_req:: PIM.3.BP4: Prioritize improvements - :id: std_req__aspice_40__PIM-3-BP4 - :status: valid - :links: std_req__aspice_40__iic-06-04,std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13,std_req__aspice_40__iic-16-06 - - Prioritize the improvement goals and improvement measures. - - .. std_req:: PIM.3.BP5: Define process improvement measures - :id: std_req__aspice_40__PIM-3-BP5 - :status: valid - :links: std_req__aspice_40__iic-06-04,std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13,std_req__aspice_40__iic-16-06 - - Process improvement measures are defined. - - .. note:: - - Improvements may be documented in incremental steps. - - .. std_req:: PIM.3.BP6: Implement process improvement measures - :id: std_req__aspice_40__PIM-3-BP6 - :status: valid - :links: std_req__aspice_40__iic-06-04,std_req__aspice_40__iic-10-00,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13,std_req__aspice_40__iic-16-06 - - Implement and apply the improvements to the processes. Update the Process documentation and train people as needed. - - .. note:: - - Process application can be supported by establishing policies, adequate process infrastructure, - process training, process coaching and tailoring processes to local needs. - - .. note:: - - Improvements may be piloted before roll out within the organization. - - .. std_req:: PIM.3.BP7: Confirm process improvement - :id: std_req__aspice_40__PIM-3-BP7 - :status: valid - :links: std_req__aspice_40__iic-07-04,std_req__aspice_40__iic-15-51,std_req__aspice_40__iic-15-13 - - The effects of process implementation are monitored and measured, and the achievement of defined improvement goals is confirmed. - - .. std_req:: PIM.3.BP8: Communicate results of improvement - :id: std_req__aspice_40__PIM-3-BP8 - :status: valid - :links: std_req__aspice_40__iic-06-04,std_req__aspice_40__iic-07-04,std_req__aspice_40__iic-13-52 - - Knowledge gained from the improvements and progress of the improvement implementation is communicated to affected parties. - - diff --git a/docs/process/standards/aspice_40/reu/index.rst b/docs/process/standards/aspice_40/reu/index.rst deleted file mode 100644 index edfbfa39d6..0000000000 --- a/docs/process/standards/aspice_40/reu/index.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - reu.2 diff --git a/docs/process/standards/aspice_40/reu/reu.2.rst b/docs/process/standards/aspice_40/reu/reu.2.rst deleted file mode 100644 index e15125ef64..0000000000 --- a/docs/process/standards/aspice_40/reu/reu.2.rst +++ /dev/null @@ -1,107 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -REU.2 Management of Products for Reuse --------------------------------------- - -The purpose is to ensure that reused work products are analyzed, verified, -and approved for their target context. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Products for reuse are selected using defined criteria. -2. Products for reuse are analyzed for portability and interoperability. -3. Limitations for reuse are defined and communicated. -4. Products for reuse are verified. -5. Products for reuse are provided to affected parties. -6. Communication mechanism is established with the reuse product provider.. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: REU.2.BP1: Select products for reuse - :id: std_req__aspice_40__REU-2-BP1 - :status: valid - :links: std_req__aspice_40__iic-12-03 - - Select the products to be reused using defined criteria. - - .. note:: - - Products for reuse may be systems, hardware or software components, third party components or legacy components. - -.. std_req:: REU.2.BP2: Analyze the reuse capability of the product - :id: std_req__aspice_40__REU-2-BP2 - :status: valid - :links: std_req__aspice_40__iic-04-02,std_req__aspice_40__iic-15-07 - - Analyze the designated target architecture and the product to be reused to determine its - applicability in the target architecture according to relevant criteria. - - .. note:: - - Examples for criteria can be requirements compliance, verifiability of the product to be reused in the target architecture, or portability/interoperability. - -.. std_req:: REU.2.BP3: Define limitations for reuse - :id: std_req__aspice_40__REU-2-BP3 - :status: valid - :links: std_req__aspice_40__iic-04-02,std_req__aspice_40__iic-15-07 - - Define and communicate limitations for the products to be reused. - - .. note:: - - Limitations may address parameters of operational environment. - -.. std_req:: REU.2.BP4: Ensure qualification of products for reuse - :id: std_req__aspice_40__REU-2-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-53 - - Provide evidence that the product for reuse is qualified for the intended use of the deliverable. - - .. note:: - - Qualification may be demonstrated by verification evidence. - - .. note:: - - Verification may include the appropriateness of documentation. - -.. std_req:: REU.2.BP5: Provide products for reuse - :id: std_req__aspice_40__REU-2-BP5 - :status: valid - :links: std_req__aspice_40__iic-12-03 - - Make available the product to be reused to affected parties. - - .. note:: - - Refer to HWE.3, SWE.5 or SYS.4 for more information on integration of hardware, software, or system components. - -.. std_req:: REU.2.BP6: Communicate information about effectiveness of reuse activities - :id: std_req__aspice_40__REU-2-BP6 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Establish communication and notification mechanism about experiences and technical outcomes to the provider of reused products. - - .. note:: - - The communication with the provider of a reused product may depend on whether the product is under development or not. - - - - diff --git a/docs/process/standards/aspice_40/spl/index.rst b/docs/process/standards/aspice_40/spl/index.rst deleted file mode 100644 index f39d4d9ca6..0000000000 --- a/docs/process/standards/aspice_40/spl/index.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - spl.2 diff --git a/docs/process/standards/aspice_40/spl/spl.2.rst b/docs/process/standards/aspice_40/spl/spl.2.rst deleted file mode 100644 index 4648683b3f..0000000000 --- a/docs/process/standards/aspice_40/spl/spl.2.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SPL.2 Product Release ---------------------- - -The purpose is to control the release of a product to the intended customer. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. The contents of the product releases are determined. -2. The release package is assembled from configured items. -3. The release documentation is defined and produced. -4. Release approval is performed against defined criteria. -5. The release package is made available to the intended customer. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SPL.2.BP1: Define the functional content of releases - :id: std_req__aspice_40__SPL-2-BP1 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-18-06 - - Define the functionality to be included and the release criteria for each release. - - .. note:: - - This may include the hardware elements, software elements, and extra application parameter files - (influencing the identified system functionality) that are needed for the release. - -.. std_req:: SPL.2.BP2: Define release package - :id: std_req__aspice_40__SPL-2-BP2 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-18-06 - - Define the release as well as supporting tools and information. - - .. note:: - - The release package may include also programming tools. - -.. std_req:: SPL.2.BP3: Ensure unique identification of releases - :id: std_req__aspice_40__SPL-2-BP3 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-11-04,std_req__aspice_40__iic-13-06 - - Ensure a unique identification of the release based upon the intended purpose and expectations of the release. - - .. note:: - - Unique identification may be realized by a classification and numbering scheme for product releases. - -.. std_req:: SPL.2.BP4: Build the release from items under configuration control - :id: std_req__aspice_40__SPL-2-BP4 - :status: valid - :links: std_req__aspice_40__iic-11-04,std_req__aspice_40__iic-18-06 - - Build the release from items under configuration control to ensure integrity. - - .. note:: - - This practice may be supported by the SUP.8 Configuration Management Process. - -.. std_req:: SPL.2.BP5: Ensure release approval before delivery - :id: std_req__aspice_40__SPL-2-BP5 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-13-13,std_req__aspice_40__iic-18-06 - - Criteria for the release are satisfied before delivery takes place. - -.. std_req:: SPL.2.BP6: Provide a release note - :id: std_req__aspice_40__SPL-2-BP6 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-11-04,std_req__aspice_40__iic-13-06,std_req__aspice_40__iic-13-13 - - A release is accompanied by information detailing key characteristics of the release. - - .. note:: - - The release note may include information about legal aspects like relevant target markets, - legislation that is considered etc. See also VAL.1 Validation. - -.. std_req:: SPL.2.BP7: Communicate the type, service level and duration of support for a release - :id: std_req__aspice_40__SPL-2-BP7 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-11-04,std_req__aspice_40__iic-13-06,std_req__aspice_40__iic-13-13 - - Identify and communicate the type, service level and duration of support for a release. - -.. std_req:: SPL.2.BP8: Deliver the release package to the intended customer - :id: std_req__aspice_40__SPL-2-BP8 - :status: valid - :links: std_req__aspice_40__iic-11-03,std_req__aspice_40__iic-13-06,std_req__aspice_40__iic-13-13 - - Deliver the release package to the intended customer. - - .. note:: - - The intended customer may be an internal organizational unit or an external organization. - - - - diff --git a/docs/process/standards/aspice_40/sup/index.rst b/docs/process/standards/aspice_40/sup/index.rst deleted file mode 100644 index 24667f5950..0000000000 --- a/docs/process/standards/aspice_40/sup/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - sup.1 - sup.8 - sup.9 - sup.10 diff --git a/docs/process/standards/aspice_40/sup/sup.1.rst b/docs/process/standards/aspice_40/sup/sup.1.rst deleted file mode 100644 index dc86f3d0b3..0000000000 --- a/docs/process/standards/aspice_40/sup/sup.1.rst +++ /dev/null @@ -1,118 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SUP.1 Quality Assurance ------------------------ - -The purpose of the Quality Assurance Process is to provide independent and objective assurance that work products -and processes comply with defined criteria and that non-conformances are resolved and further prevented. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Quality assurance is performed independently and objectively without conflicts of interest. -2. Criteria for the quality of work products and process performance are defined. -3. Conformance of work products and process performance with the defined criteria and - targets is verified, documented and communicated to the relevant parties. -4. Non-conformances are tracked, resolved, and further prevented. -5. Non-conformances are escalated to appropriate levels of management. -6. Management ensures that escalated non-conformances are resolved. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SUP.1.BP1: Ensure independence of quality assurance - :id: std_req__aspice_40__SUP-1-BP1 - :status: valid - :links: std_req__aspice_40__iic-16-50 - - Ensure that quality assurance is performed independently and objectively without conflicts of interest. - - .. note:: - - Possible inputs for evaluating the independence may be assignment to financial and/or organizational - structure as well as responsibility for processes that are subject to quality assurance (no self-monitoring). - -.. std_req:: SUP.1.BP2: Define criteria for quality assurance - :id: std_req__aspice_40__SUP-1-BP2 - :status: valid - :links: std_req__aspice_40__iic-18-07 - - Define quality criteria for work products as well as for process tasks and their performance. - - .. note:: - - Quality criteria may consider internal and external inputs such as customer requirements, standards, milestones, etc. - -.. std_req:: SUP.1.BP3: Assure quality of work products - :id: std_req__aspice_40__SUP-1-BP3 - :status: valid - :links: std_req__aspice_40__iic-18-07,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-13-18,std_req__aspice_40__iic-13-19,std_req__aspice_40__iic-14-02 - - Identify work products subject to quality assurance according to the quality criteria. - Perform appropriate activities to evaluate the work products against the defined quality criteria and document the results. - - .. note:: - - Quality assurance activities may include reviews, problem analysis and - lessons learned that improve the work products for further use. - -.. std_req:: SUP.1.BP4: Assure quality of process activities - :id: std_req__aspice_40__SUP-1-BP4 - :status: valid - :links: std_req__aspice_40__iic-18-07,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-13-18,std_req__aspice_40__iic-13-19,std_req__aspice_40__iic-14-02 - - Identify processes subject to quality assurance according to the quality criteria. - Perform appropriate activities to evaluate the processes against their defined quality criteria and - associated target values and document the results. - - .. note:: - - Quality assurance activities may include process assessments, problem analysis, regular check of methods, tools, and - the adherence to defined processes, and consideration of lessons learned. - -.. std_req:: SUP.1.BP5: Summarize and communicate quality assurance activities and results - :id: std_req__aspice_40__SUP-1-BP5 - :status: valid - :links: std_req__aspice_40__iic-16-50,std_req__aspice_40__iic-18-52,std_req__aspice_40__iic-18-07,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-13-18,std_req__aspice_40__iic-13-19,std_req__aspice_40__iic-14-02 - - Regularly report performance, non-conformances, and trends of quality assurance activities to all affected parties. - -.. std_req:: SUP.1.BP6: Ensure resolution of non-conformances - :id: std_req__aspice_40__SUP-1-BP6 - :status: valid - :links: std_req__aspice_40__iic-18-52,std_req__aspice_40__iic-18-07,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-13-18,std_req__aspice_40__iic-13-19,std_req__aspice_40__iic-14-02 - - Analyze, track, correct, resolve, and further prevent non-conformances found in quality assurance activities. - - .. note:: - - Non-conformances detected in work products may be entered into the problem resolution management process (SUP.9). - - .. note:: - - Non-conformances detected in the process definition or implementation may be entered into a process improvement process (PIM.3). - -.. std_req:: SUP.1.BP7: Escalate non-conformances - :id: std_req__aspice_40__SUP-1-BP7 - :status: valid - :links: std_req__aspice_40__iic-16-50,std_req__aspice_40__iic-18-52,std_req__aspice_40__iic-13-52,std_req__aspice_40__iic-14-02 - - Escalate relevant non-conformances to appropriate levels of management and other relevant stakeholders to facilitate their resolution. - - .. note:: - - The decision whether to escalate non-conformances may be based on criteria such as delay of resolution, urgency, and risk. - - diff --git a/docs/process/standards/aspice_40/sup/sup.10.rst b/docs/process/standards/aspice_40/sup/sup.10.rst deleted file mode 100644 index b1acedb61c..0000000000 --- a/docs/process/standards/aspice_40/sup/sup.10.rst +++ /dev/null @@ -1,111 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SUP.10 Change Request Management --------------------------------- - -The purpose of the Change Request Management Process is to ensure that change requests are -recorded, analyzed, tracked, approved, and implemented. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Requests for changes are recorded and identified. -2. Change requests are analyzed, dependencies and relationships to other change requests - are identified, and the impact is estimated. -3. Change requests are approved before implementation and prioritized accordingly. -4. Bidirectional traceability is established between change requests and affected work products. -5. Implementation of change requests is confirmed. -6. Change requests are tracked to closure and status of change requests is communicated to affected parties. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SUP.10.BP1: Identify and record the change requests - :id: std_req__aspice_40__SUP-10-BP1 - :status: valid - :links: std_req__aspice_40__iic-13-16 - - The scope for application of change requests is identified. - Each change request is uniquely identified, described, and recorded, including the initiator and reason of the change request. - A status is assigned to each change request to facilitate tracking. - - .. note:: - - Change requests may be used for changes related to e.g., product, process, methods. - - .. note:: - - Example values for the change request status are “open”, “under investigation”, “implemented”, etc. - - .. note:: - - The change request handling may differ across the product life cycle e.g., during prototype - -.. std_req:: SUP.10.BP2: Analyze and assess change requests - :id: std_req__aspice_40__SUP-10-BP2 - :status: valid - :links: std_req__aspice_40__iic-18-57,std_req__aspice_40__iic-13-16 - - Change requests are analyzed by relevant parties according to analysis criteria. - Work products affected by the change request and dependencies to other change requests are determined. - The impact of the change requests is assessed. - - .. note:: - - Examples for analysis criteria are: resource requirements, scheduling issues, risks, benefits, etc. - -.. std_req:: SUP.10.BP3: Approve change requests before implementation - :id: std_req__aspice_40__SUP-10-BP3 - :status: valid - :links: std_req__aspice_40__iic-13-16 - - Change requests are prioritized and approved for implementation based on analysis results and availability of resources. - - .. note:: - - A Change Control Board (CCB) is an example mechanism used to approve change requests. - - .. note:: - - Prioritization of change requests may be done by allocation to releases. - -.. std_req:: SUP.10.BP4: Establish bidirectional traceability - :id: std_req__aspice_40__SUP-10-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Establish bidirectional traceability between change requests and work products affected by the change requests. - In case that the change request is initiated by a problem, establish bidirectional traceability between change requests - and the corresponding problem reports. - -.. std_req:: SUP.10.BP5: Confirm the implementation of change requests - :id: std_req__aspice_40__SUP-10-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-16 - - The implementation of change requests is confirmed before closure by relevant stakeholders. - -.. std_req:: SUP.10.BP6: Track change requests to closure - :id: std_req__aspice_40__SUP-10-BP6 - :status: valid - :links: std_req__aspice_40__iic-13-16 - - Change requests are tracked to closure. The status of change requests is communicated to all affected parties. - - .. note:: - - Examples for informing affected parties can be daily standup meetings or tool-supported workflows. - - diff --git a/docs/process/standards/aspice_40/sup/sup.8.rst b/docs/process/standards/aspice_40/sup/sup.8.rst deleted file mode 100644 index ff8c5a696a..0000000000 --- a/docs/process/standards/aspice_40/sup/sup.8.rst +++ /dev/null @@ -1,147 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SUP.8 Configuration Management ------------------------------- - -The purpose of the Configuration Management Process is to establish and maintain -the integrity of relevant configuration items and baselines, and -make them available to affected parties. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Selection criteria for configuration items are defined and applied. -2. Configuration item properties are defined. -3. Configuration management is established. -4. Modifications are controlled. -5. Baselining is applied. -6. The status of the configuration items is recorded and reported. -7. The completeness and consistency of the baselines is ensured. -8. The availability of backup and recovery mechanisms is verified. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SUP.8.BP1: Identify configuration items - :id: std_req__aspice_40__SUP-8-BP1 - :status: valid - :links: std_req__aspice_40__iic-18-53,std_req__aspice_40__iic-01-52 - - Define selection criteria for identifying relevant work products to be subject to configuration management. - Identify and document configuration items according to the defined selection criteria. - - .. note:: - - Configuration items are representing work products or group of work products - which are subject to configuration management as a single entity. - - .. note:: - - Configuration items may vary in complexity, size, and type, ranging from an entire system including - all system, hardware, and software documentation down to a single element or document. - - .. note:: - - The selection criteria may be applied to single work products or a group of work products. - -.. std_req:: SUP.8.BP2: Define configuration item properties - :id: std_req__aspice_40__SUP-8-BP2 - :status: valid - :links: std_req__aspice_40__iic-01-52 - - Define the necessary properties needed for the modification and control of configuration items. - - .. note:: - - The configuration item properties may be defined for single configuration items or a group of items. - - .. note:: - - Configuration item properties may include a status model (e.g., Under Work, Tested, Released, etc.), storage location, access rights, etc. - - .. note:: - - The application of properties may be implemented by attributes of configuration items. - -.. std_req:: SUP.8.BP3: Establish configuration management - :id: std_req__aspice_40__SUP-8-BP3 - :status: valid - :links: std_req__aspice_40__iic-16-03,std_req__aspice_40__iic-14-01 - - Establish configuration management mechanisms for control of identified configuration items including the configuration item properties, - including mechanisms for controlling parallel modifications of configuration items. - - .. note:: - - This may include specific mechanisms for different configuration item types, such as branch and merge management, or checkout control. - -.. std_req:: SUP.8.BP4: Control modifications - :id: std_req__aspice_40__SUP-8-BP4 - :status: valid - :links: std_req__aspice_40__iic-16-03,std_req__aspice_40__iic-14-01 - - Control modifications using the configuration management mechanisms. - - .. note:: - - This may include the application of a defined status model for configuration items. - -.. std_req:: SUP.8.BP5: Establish baselines - :id: std_req__aspice_40__SUP-8-BP5 - :status: valid - :links: std_req__aspice_40__iic-16-03,std_req__aspice_40__iic-13-08 - - Define and establish baselines for internal purposes, and for external product delivery, for all relevant configuration items. - -.. std_req:: SUP.8.BP6: Summarize and communicate configuration status - :id: std_req__aspice_40__SUP-8-BP6 - :status: valid - :links: std_req__aspice_40__iic-14-01,std_req__aspice_40__iic-15-56 - - Record, summarize, and communicate the status of configuration items and established baselines - to affected parties in order to support the monitoring of progress and status. - - .. note:: - - Regular communication of the configuration status, e.g., based on a defined status model supports - project management, quality activities, and dedicated project phases such as software integration. - -.. std_req:: SUP.8.BP7: Ensure completeness and consistency - :id: std_req__aspice_40__SUP-8-BP7 - :status: valid - :links: std_req__aspice_40__iic-01-52,std_req__aspice_40__iic-13-08,std_req__aspice_40__iic-13-51 - - Ensure that the information about configuration items is correct and complete including configuration item properties. - Ensure the completeness and consistency of baselines. - - .. note:: - - Completeness and consistency of a baseline means that all required configuration items are included and consistent, - and have the required status. This can be used to support e.g., project gate approval. - -.. std_req:: SUP.8.BP8: Verify backup and recovery mechanisms availability. - :id: std_req__aspice_40__SUP-8-BP8 - :status: valid - :links: std_req__aspice_40__iic-06-52 - - Verify the availability of appropriate backup and recovery mechanisms for the configuration management including - the controlled configuration items. Initiate measures in case of insufficient backup and recovery mechanisms. - - .. note:: - - Backup and recovery mechanisms may be defined and implemented by organizational units outside the project team. - This may include references to corresponding procedures or regulations. - - diff --git a/docs/process/standards/aspice_40/sup/sup.9.rst b/docs/process/standards/aspice_40/sup/sup.9.rst deleted file mode 100644 index 239cc99fbb..0000000000 --- a/docs/process/standards/aspice_40/sup/sup.9.rst +++ /dev/null @@ -1,114 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SUP.9 Problem Resolution Management ------------------------------------ - -The purpose of the Problem Resolution Management Process is to ensure that problems are identified, -recorded, analyzed, and their resolution is managed and controlled. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Problems are uniquely identified, recorded and classified. -2. Problems are analyzed and assessed to determine an appropriate solution. -3. Problem resolution is initiated. -4. Problems are tracked to closure. -5. The status of problems including trends identified are reported to stakeholders. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SUP.9.BP1: Identify and record the problem - :id: std_req__aspice_40__SUP-9-BP1 - :status: valid - :links: std_req__aspice_40__iic-13-07 - - Each problem is uniquely identified, described and recorded. - A status is assigned to each problem to facilitate tracking. - Supporting information is provided to reproduce and diagnose the problem. - - .. note:: - - Problems may relate to e.g., product, resources, or methods. - - .. note:: - Example values for the problem status are “new”, “solved”, “closed”, etc. - - .. note:: - Supporting information may include e.g, the origin of the problem, how it can be reproduced, environmental information, by whom it has been detected. - - .. note:: - - Unique identification supports traceability to changes made as needed by the change request management process (SUP.10). - -.. std_req:: SUP.9.BP2: Determine the cause and the impact of the problem - :id: std_req__aspice_40__SUP-9-BP2 - :status: valid - :links: std_req__aspice_40__iic-13-07,std_req__aspice_40__iic-15-55 - - Analyze the problem, determine its cause, including common causes if existing, and impact. - Involve relevant parties. Categorize the problem. - - .. note:: - - Problem categorization (e.g., light, medium, severe) may be based on severity, criticality, urgency, etc. - -.. std_req:: SUP.9.BP3: Authorize urgent resolution action - :id: std_req__aspice_40__SUP-9-BP3 - :status: valid - :links: std_req__aspice_40__iic-13-07 - - Obtain authorization for immediate action if a problem requires an urgent resolution according to the categorization. - -.. std_req:: SUP.9.BP4: Raise alert notifications - :id: std_req__aspice_40__SUP-9-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-07 - - If according to the categorization the problem has a high impact on other systems or - other affected parties, an alert notification needs to be raised accordingly. - -.. std_req:: SUP.9.BP5: Initiate problem resolution - :id: std_req__aspice_40__SUP-9-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-07 - - Initiate appropriate actions according to the categorization to resolve the problem long-term, - including review of those actions or initiate a change request. - This includes synchronization and consistency with short-term urgent resolution actions, if applicable. - -.. std_req:: SUP.9.BP6: Track problems to closure - :id: std_req__aspice_40__SUP-9-BP6 - :status: valid - :links: std_req__aspice_40__iic-13-07,std_req__aspice_40__iic-15-12 - - Track the status of problems to closure including all related change requests. - The closure of problems is accepted by relevant stakeholders. - -.. std_req:: SUP.9.BP7: Report the status of problem resolution activities - :id: std_req__aspice_40__SUP-9-BP7 - :status: valid - :links: std_req__aspice_40__iic-15-12 - - Collect and analyze problem resolution management data, identify trends, and initiate related actions. - Regularly report the results of data analysis, the identified trends and the status of problem resolution - activities to relevant stakeholders. - - .. note:: - - Collected data may contain information about where the problems occurred, - how and when they were found, what their impacts were, etc. - - diff --git a/docs/process/standards/aspice_40/swe/index.rst b/docs/process/standards/aspice_40/swe/index.rst deleted file mode 100644 index be460423aa..0000000000 --- a/docs/process/standards/aspice_40/swe/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - swe.1 - swe.2 - swe.3 - swe.4 - swe.5 - swe.6 diff --git a/docs/process/standards/aspice_40/swe/swe.1.rst b/docs/process/standards/aspice_40/swe/swe.1.rst deleted file mode 100644 index b86a044620..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.1.rst +++ /dev/null @@ -1,162 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.1 Software Requirements Analysis ------------------------------------- - -The purpose is to establish a structured and analyzed set of software -requirements consistent with the system requirements, and the system -architecture. - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Software requirements are specified. -2. Software requirements are structured and prioritized. -3. Software requirements are analyzed for correctness and technical - feasibility. -4. The impact of software requirements on the operating environment is - analyzed. -5. Consistency and bidirectional traceability are established between - software requirements and system requirements. -6. Consistency and bidirectional traceability are established between - software requirements and system architecture. -7. The software requirements are agreed and communicated to all affected - parties. - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.1.BP1: Specify software requirements - :id: std_req__aspice_40__SWE-1-BP1 - :status: valid - :links: std_req__aspice_40__iic-17-00 - - Use the system requirements and the system - architecture to identify and document the functional and non-functional requirements for the - software according to defined characteristics for requirements. - - .. note:: - - Characteristics of requirements are defined in standards such as ISO IEEE 29148, ISO - 26262-8:2018, or the INCOSE Guide for Writing Requirements. - - .. note:: - - Examples for defined characteristics of requirements shared by technical standards are - verifiability (i.e., verification criteria being inherent in the requirements text), - unambiguity/comprehensibility, freedom from design and implementation, and not contradicting any - other requirement. - - .. note:: - - In case of software-only development, the system requirements and the system architecture - refer to a given operating environment. In that case, stakeholder requirements can be used as the - basis for identifying the required functions and capabilities of the software. - - .. note:: - - The hardware-software-interface (HSI) definition puts in context hardware and therefore it is - an interface decision at the system design level. If such a HSI exists, then it may provide input to - software requirements. - - -.. std_req:: SWE.1.BP2: Structure software requirements - :id: std_req__aspice_40__SWE-1-BP2 - :status: valid - :links: std_req__aspice_40__iic-17-00;std_req__aspice_40__iic-17-54 - - Structure and prioritize the software requirements. - - .. note:: - - Examples for structuring criteria can be grouping (e.g., by functionality) or expressing - product variants. - - .. note:: - - Prioritization can be done according to project or stakeholder needs via e.g., definition of - release scopes. Refer to SPL.2.BP1. - - -.. std_req:: SWE.1.BP3: Analyze software requirements - :id: std_req__aspice_40__SWE-1-BP3 - :status: valid - :links: std_req__aspice_40__iic-15-51 - - Analyze the specified software requirements - including their interdependencies to ensure correctness, technical feasibility, and to support - project management regarding project estimates. - - .. note:: - - See MAN.3.BP3 for project feasibility and MAN.3.BP5 for project estimates. - - .. note:: - - Technical feasibility can be evaluated based on e.g., platform or product line, or by - prototyping. - - -.. std_req:: SWE.1.BP4: Analyze the impact on the operating environment - :id: std_req__aspice_40__SWE-1-BP4 - :status: valid - :links: std_req__aspice_40__iic-15-51 - - Analyze the impact that the - software requirements will have on elements in the operating environment. - -.. std_req:: SWE.1.BP5: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-1-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure - consistency and establish bidirectional traceability between software requirements and system - architecture. Ensure consistency and establish bidirectional traceability between software - requirements and system requirements. - - .. note:: - - Redundant traceability is not intended. - - .. note:: - - There may be non-functional system requirements that the software requirements do not - trace to. Examples are process requirements or requirements related to later software product - lifecycle phases such as incident handling. Such requirements are still subject to verification. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g., the existence of links, - does not necessarily mean that the information is consistent with each other. - - .. note:: - - In case of software development only, the system requirements and system architecture - refer to a given operating environment. In that case, consistency and bidirectional traceability can be - ensured between stakeholder requirements and software requirements. - - -.. std_req:: SWE.1.BP6: Communicate agreed software requirements and impact on the operating environment - :id: std_req__aspice_40__SWE-1-BP6 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Communicate the agreed software requirements, and the results of the analysis - of impact on the operating environment, to all affected parties. - -.. needextend:: "process/process_model/standards/aspice" in docname - :+tags: aspice diff --git a/docs/process/standards/aspice_40/swe/swe.2.rst b/docs/process/standards/aspice_40/swe/swe.2.rst deleted file mode 100644 index 0943a8be74..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.2.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.2 Software Architectural Design ------------------------------------ - -The purpose is to establish an analyzed software architecture, -comprising static and dynamic aspects, consistent with the software -requirements. - - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. A software architecture is designed including static and dynamic - aspects. -2. The software architecture is analyzed against defined criteria. -3. Consistency and bidirectional traceability are established between - software architecture and software requirements. -4. The software architecture is agreed and communicated to all affected - parties. - - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.2.BP1: Specify static aspects of the software architecture - :id: std_req__aspice_40__SWE-2-BP1 - :status: valid - :links: std_req__aspice_40__iic-04-04 - - Specify and document the static aspects of the software architecture - with respect to the functional and non-functional software requirements, - including external interfaces and a defined set of software components - with their interfaces and relationships. - - .. note:: - - The hardware-software-interface (HSI) definition puts in context the hardware design and - therefore is an aspect of system design (SYS.3). - - -.. std_req:: SWE.2.BP2: Specify dynamic aspects of the software architecture - :id: std_req__aspice_40__SWE-2-BP2 - :status: valid - :links: std_req__aspice_40__iic-04-04 - - Specify and document - the dynamic aspects of the software architecture with respect to the functional and non- - functional software requirements, including the behavior of the software components and their - interaction in different software modes, and concurrency aspects. - - .. note:: - - Examples for concurrency aspects are application-relevant interrupt handling, preemptive - processing, multi-threading. - - .. note:: - - Examples for behavioral descriptions are natural language or semi-formal notation (e.g, - SysML, UML). - - -.. std_req:: SWE.2.BP3: Analyze software architecture - :id: std_req__aspice_40__SWE-2-BP3 - :status: valid - :links: std_req__aspice_40__iic-15-51 - - Analyze the software architecture regarding - relevant technical design aspects and to support project management regarding project - estimates. Document a rationale for the software architectural design decision. - - .. note:: - - See MAN.3.BP3 for project feasibility and MAN.3.BP5 for project estimates. - - .. note:: - - The analysis may include the suitability of pre-existing software components for the current - application. - - .. note:: - - Examples of methods suitable for analyzing technical aspects are prototypes, simulations, - qualitative analyses. - - .. note:: - - Examples of technical aspects are functionality, timings, and resource consumption (e.g, - ROM, RAM, external / internal EEPROM or Data Flash or CPU load). - - .. note:: - - Design rationales can include arguments such as proven-in-use, reuse of a software - framework or software product line, a make-or-buy decision, or found in an evolutionary way (e.g, - set-based design). - - -.. std_req:: SWE.2.BP4: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-2-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure consistency and establish bidirectional traceability between the software architecture and the - software requirements. - - .. note:: - - There may be non-functional software requirements that the software architectural design - does not trace to. Examples are development process requirements. Such requirements are still - subject to verification. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g, the existence of links, - does not necessarily mean that the information is consistent with each other. - - -.. std_req:: SWE.2.BP5: Communicate agreed software architecture - :id: std_req__aspice_40__SWE-2-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Communicate the agreed software - architecture to all affected parties. - - diff --git a/docs/process/standards/aspice_40/swe/swe.3.rst b/docs/process/standards/aspice_40/swe/swe.3.rst deleted file mode 100644 index 6c2d120de4..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.3.rst +++ /dev/null @@ -1,152 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.3 Software Detailed Design and Unit Construction ----------------------------------------------------- - -The purpose is to establish a software detailed design, comprising -static and dynamic aspects, consistent with the software architecture, -and to construct software units consistent with the software detailed -design. - - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. A detailed design is specified including static and dynamic aspects. -2. Software units as specified in the software detailed design are - produced. -3. Consistency and bidirectional traceability are established between - software detailed design and software architecture; and consistency - and bidirectional traceability are established between source code - and software detailed design; and consistency and bidirectional - traceability are established between the software detailed design and - the software requirements. -4. The source code and the agreed software detailed design are - communicated to all affected parties. - - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.3.BP1: Specify the static aspects of the detailed design - :id: std_req__aspice_40__SWE-3-BP1 - :status: valid - :links: std_req__aspice_40__iic-04-05;std_req__aspice_40__iic-11-05 - - For each software component - specify the behavior of its software units, their static structure and relationships, their interfaces - including - - - valid data value ranges for inputs and outputs (from the application domain perspective), - and - - physical or measurement units applicable to inputs and outputs (from the application - domain perspective). - - .. note:: - - The boundary of a software unit is independent from the software unit’s representation in the - source code, code file structure, or model-based implementation, respectively. It is rather driven by - the semantics of the application domain perspective. Therefore, a software unit may be, at the code - level, represented by a single subroutine or a set of subroutines. - - .. note:: - - Examples of valid data value ranges with applicable physical units from the application - domain perspective are ‘0..200 [m/s]’, ‘0..3.8 [A]’ or ‘1..100 [N]’. For mapping such application - domain value ranges to programming language-level data types (such as unsigned Integer with a - value range of 0..65535) refer to {need}`std_bp_aspice-40__SWE-3-BP2`. - - .. note:: - - Examples of a measurement unit are ‘%’ or ‘‰’ - - .. note:: - - A counter is an example of a parameter, or a return value, to which neither a physical nor a - surement unit is applicable. - - .. note:: - - The hardware-software-interface (HSI) definition puts in context the hardware design and - refore is an aspect of system design (SYS.3). - - -.. std_req:: SWE.3.BP2: Specify dynamic aspects of the detailed design - :id: std_req__aspice_40__SWE-3-BP2 - :status: valid - :links: std_req__aspice_40__iic-04-05;std_req__aspice_40__iic-11-05 - - Specify and document the - dynamic aspects of the detailed design with respect to the software architecture, including the - interactions between relevant software units to fulfill the component’s dynamic behavior. - - .. note:: - - Examples for behavioral descriptions are natural language or semi-formal notation (e.g, - SysML, UML). - - -.. std_req:: SWE.3.BP3: Develop software units - :id: std_req__aspice_40__SWE-3-BP3 - :status: valid - :links: std_req__aspice_40__iic-11-05 - - Develop and document the software units consistent - with the detailed design, and according to coding principles. - - .. note:: - - Examples for coding principles at capability level 1 are not to use implicit type conversions, - only one entry and one exit point in subroutines, and range checks (design-by-contract, defensive - programming). Further examples see e.g, ISO 26262-6 clause 8.4.5 together with table 6. - - -.. std_req:: SWE.3.BP4: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-3-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure - consistency and establish bidirectional traceability between the software detailed design and the - software architecture. Ensure consistency and establish bidirectional traceability between the - developed software units and the software detailed design. Ensure consistency and establish - traceability between the software detailed design and the software requirements. - - .. note:: - - Redundancy should be avoided by establishing a combination of these approaches. - - .. note:: - - Examples for tracing a software unit in the detailed design to a software requirement directly - are communication matrices or basis software aspects such as a list of diagnosis identifiers inherent - in an Autosar configuration. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g., the existence of links, - does not necessarily mean that the information is consistent with each other. - - -.. std_req:: SWE.3.BP5: Communicate agreed software detailed design and developed software units - :id: std_req__aspice_40__SWE-3-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Communicate the agreed software detailed design and developed software units to all - affected parties. - - diff --git a/docs/process/standards/aspice_40/swe/swe.4.rst b/docs/process/standards/aspice_40/swe/swe.4.rst deleted file mode 100644 index 0fd26209e8..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.4.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.4 Software Unit Verification --------------------------------- - -The purpose is to verify that software units are consistent with the -software detailed design - - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Verification measures for the software unit verification are - specified. -2. Software unit verification measures are selected according to the - release scope, including criteria for regression verification. -3. Software units are verified using the selected verification measures, - and results are recorded. -4. Consistency and bidirectional traceability are established between - verification mesaures and software units; and bidirectional - traceability are established between verification results and - verification mesaures. -5. Results of the software unit verification are summarized and - communicated to all affected parties. - - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.4.BP1: Specify software unit verification measures - :id: std_req__aspice_40__SWE-4-BP1 - :status: valid - :links: std_req__aspice_40__iic-08-60 - - Specify verification measures for - each software unit defined in the software detailed design, including - - pass/fail criteria for verification measures, - - entry and exit criteria for verification measures, and - - the required verification infrastructure. - - .. note:: - - Examples for unit verification measures are static analysis, code reviews, and unit testing. - - .. note:: - - Static analysis can be done based on MISRA rulesets and other coding standards. - - -.. std_req:: SWE.4.BP2: Select software unit verification measures - :id: std_req__aspice_40__SWE-4-BP2 - :status: valid - :links: std_req__aspice_40__iic-08-58 - - Document the selection of - verification measures considering selection criteria including criteria for regression verification. - The documented selection of verification measures shall have sufficient coverage according to - the release scope. - -.. std_req:: SWE.4.BP3: Verify software units - :id: std_req__aspice_40__SWE-4-BP3 - :status: valid - :links: std_req__aspice_40__iic-03-50;std_req__aspice_40__iic-15-52 - - Perform software unit verification using the selected - verification measures. Record the verification results including pass/fail status and - corresponding verification measure data. - - .. note:: - - See SUP.9 for handling of verification results that deviate from expected results - - -.. std_req:: SWE.4.BP4: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-4-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure - consistency and establish bidirectional traceability between verification measures and the - software units defined in the detailed design. Establish bidirectional traceability between the - verification results and the verification measures. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g., the existence of links, - does not necessarily mean that the information is consistent with each other. - - -.. std_req:: SWE.4.BP5: Summarize and communicate results - :id: std_req__aspice_40__SWE-4-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Summarize the results of software unit - verification and communicate them to all affected parties. - - .. note:: - - Providing all necessary information from the test case execution in a summary enables other - parties to judge the consequences. - - diff --git a/docs/process/standards/aspice_40/swe/swe.5.rst b/docs/process/standards/aspice_40/swe/swe.5.rst deleted file mode 100644 index 7894a81c6e..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.5.rst +++ /dev/null @@ -1,191 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.5 Software Component Verification and Integration Verification ------------------------------------------------------------------- - -The purpose is to verify that software components are consistent with -the software architectural design, and to integrate software elements -and verify that the integrated software elements are consistent with the -software architecture and software detailed design. - - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Verification measures are specified for software integration - verification of the integrated software elements based on the - software architecture and detailed design, including the interfaces - of, and interactions between, the software components. -2. Verification measures for software components are specified to - provide evidence for compliance of the software components with the - software components’ behavior and interfaces. -3. Software elements are integrated up to a complete integrated - software. -4. Verification measures are selected according to the release scope - considering criteria, including criteria for regression verification. -5. Software components are verified using the selected verification - measures, and the results of the integration verification are - recorded. -6. Integrated software elements are verified using the selected - verification measures, and the results of the integration - verification are recorded. -7. Consistency and bidirectional traceability are established between - verification measures and the software architecture and detailed - design; and consistency and bidirectional traceability are - established between verification results and verification measures. -8. The results of software component verification and software elements - integration verification are summarized and communicated to all - affected parties. - - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.5.BP1: Specify software integration verification measures - :id: std_req__aspice_40__SWE-5-BP1 - :status: valid - :links: std_req__aspice_40__iic-08-60 - - Specify verification - measures, based on a defined sequence and preconditions for the integration of software - elements, against the defined static and dynamic aspects of the software architecture, including - - techniques for the verification measures; - - pass/fail criteria for verification measures; - - entry and exit criteria for verification measures, and - - the required verification infrastructure and environment setup. - - .. note:: - - Examples on which the software integration verification measures may focus on are the - correct dataflow and dynamic interaction between software components together with their timing - dependencies, the correct interpretation of data by all software components using an interface, and - the compliance to resource consumption objectives. - - .. note:: - - The software integration verification measure may be supported by using hardware debug - interfaces or simulation environments (e.g, Software-in-the-Loop-Simulation). - - -.. std_req:: SWE.5.BP2: Specify verification measures for verifying software component behavior - :id: std_req__aspice_40__SWE-5-BP2 - :status: valid - :links: std_req__aspice_40__iic-08-60 - - Specify verification measures for software component verification against the defined software - components’ behavior and their interfaces in the software architecture, including - - techniques for the verification measures, - - entry and exit criteria for verification measures, - - pass/fail criteria for verification measures, and - - the required verification infrastructure and environment setup. - - .. note:: - - Verification measures are related to software components but not to the software units since - software unit verification is addressed in the process `SWE.4 Software Unit Verification <swe4-software-unit-verification>`__. - - -.. std_req:: SWE.5.BP3: Select verification measures - :id: std_req__aspice_40__SWE-5-BP3 - :status: valid - :links: std_req__aspice_40__iic-08-58 - - Document the selection of integration verification - measures for each integration step considering selection criteria including criteria for regression - verification. The documented selection of verification measures shall have sufficient coverage - according to the release scope. - - .. note:: - - Examples for selection criteria can be the need for continuous integration /continuous - development regression verification (due to e.g, changes to the software architectural or detailed - design), or the intended use of the delivered product release (e.g, test bench, test track, public road - etc.). - - -.. std_req:: SWE.5.BP4: Integrate software elements and perform integration verification - :id: std_req__aspice_40__SWE-5-BP4 - :status: valid - :links: std_req__aspice_40__iic-06-50;std_req__aspice_40__iic-01-03;std_req__aspice_40__iic-01-50 - - Integrate the - software elements until the software is fully integrated according to the specified interfaces and - interactions between the Software elements, and according to the defined sequence and - defined preconditions. Perform the selected integration verification measures. Record the - verification measure data including pass/fail status and corresponding verification measure data. - - .. note:: - - Examples for preconditions for starting software integration are qualification of pre-existing - software components, off-the-shelf software components, open-source-software, or auto-code - generated software. - - .. note:: - - Defined preconditions may allow e.g, big-bang-integration of all software components, - continuous integration, as well as stepwise integration (e.g, across software units and/or software - components up to the fully integrated software) with accompanying verification measures. - - .. note:: - - See SUP.9 for handling deviations of verification results deviate expected results. - - -.. std_req:: SWE.5.BP5: Perform software component verification - :id: std_req__aspice_40__SWE-5-BP5 - :status: valid - :links: std_req__aspice_40__iic-03-50;std_req__aspice_40__iic-15-52 - - Perform the selected verification - measures for verifying software component behavior. Record the verification results including - pass/fail status and corresponding verification measure data. - - .. note:: - - See SUP.9 for handling deviations of verification results deviate expected results. - - -.. std_req:: SWE.5.BP6: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-5-BP6 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure - consistency and establish bidirectional traceability between verification measures and the static - and dynamic aspects of the software architecture and detailed design. Establish bidirectional - traceability between verification results and verification measures. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g., the existence of links, - does not necessarily mean that the information is consistent with each other. - - -.. std_req:: SWE.5.BP7: Summarize and communicate results - :id: std_req__aspice_40__SWE-5-BP7 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Summarize the software component - verification and the software integration verification results and communicate them to all affected - parties. - - .. note:: - - Providing all necessary information from the test case execution in a summary enables - other parties to judge the consequences. - - diff --git a/docs/process/standards/aspice_40/swe/swe.6.rst b/docs/process/standards/aspice_40/swe/swe.6.rst deleted file mode 100644 index 5ff063c0c1..0000000000 --- a/docs/process/standards/aspice_40/swe/swe.6.rst +++ /dev/null @@ -1,127 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -SWE.6 Software Verification ---------------------------- - -The purpose of the Software Verification process is to ensure that the -integrated software is verified to be consistent with the software -requirements. - - -Process outcomes -~~~~~~~~~~~~~~~~ - -1. Verification measures are specified for software verification of the - software based on the software requirements. -2. Verification measures are selected according to the release scope - considering criteria, including criteria for regression verification. -3. The integrated software is verified using the selected verification - measures and the results of software verification are recorded. -4. Consistency and bidirectional traceability are established between - verification measures and software requirements; and bidirectional - traceability are established between verification results and - verification measures. -5. Results of the software verification are summarized and communicated - to all affected parties. - - -Base practices -~~~~~~~~~~~~~~ - -.. std_req:: SWE.6.BP1: Specify verification measures for software verification - :id: std_req__aspice_40__SWE-6-BP1 - :status: valid - :links: std_req__aspice_40__iic-08-60 - - Specify the verification - measures for software verification suitable to provide evidence for compliance of the integrated - software with the functional and non-functional information in the software requirements, - including - - techniques for the verification measures, - - pass/fail criteria for verification measures, - - a definition of entry and exit criteria for the verification measures, - - necessary sequence of verification measures, and - - the required verification infrastructure and environment setup. - - .. note:: - - The selection of appropriate techniques for verification measures may depend on the - content of the respective software requirement (e.g, boundary values and equivalence classes for - data range-oriented requirements, positive/sunny-day-test vs. negative testing such as fault - injection), or on requirements-based testing vs. “error guessing based on knowledge or experience”. - - -.. std_req:: SWE.6.BP2: Select verification measures - :id: std_req__aspice_40__SWE-6-BP2 - :status: valid - :links: std_req__aspice_40__iic-08-58 - - Document the selection of verification measures - considering selection criteria including criteria for regression verification. The documented - selection of verification measures shall have sufficient coverage according to the release scope. - - .. note:: - - Examples for selection criteria can be prioritization of requirements, continuous - development, the need for regression verification (due to e.g., changes to the software - requirements), or the intended use of the delivered product release (test bench, test track, public - road etc.) - - -.. std_req:: SWE.6.BP3: Verify the integrated software - :id: std_req__aspice_40__SWE-6-BP3 - :status: valid - :links: std_req__aspice_40__iic-03-50;std_req__aspice_40__iic-15-52 - - Perform the verification of the integrated software - using the selected verification measures. Record the verification results including pass/fail status - and corresponding verification measure data. - - .. note:: - - See SUP.9 for handling verification results that deviate from expected results. - - -.. std_req:: SWE.6.BP4: Ensure consistency and establish bidirectional traceability - :id: std_req__aspice_40__SWE-6-BP4 - :status: valid - :links: std_req__aspice_40__iic-13-51 - - Ensure - consistency and establish bidirectional traceability between verification measures and software - requirements. Establish bidirectional traceability between verification results and verification - measures. - - .. note:: - - Bidirectional traceability supports consistency, and facilitates impact analysis of change - requests, and demonstration of verification coverage. Traceability alone, e.g., the existence of links, - does not necessarily mean that the information is consistent with each other. - - -.. std_req:: SWE.6.BP5: Summarize and communicate results - :id: std_req__aspice_40__SWE-6-BP5 - :status: valid - :links: std_req__aspice_40__iic-13-52 - - Summarize the software verification - results and communicate them to all affected parties. - - .. note:: - - Providing all necessary information from the test case execution in a summary enables other - parties to judge the consequences. - - diff --git a/docs/process/standards/index.rst b/docs/process/standards/index.rst deleted file mode 100644 index ad8a600216..0000000000 --- a/docs/process/standards/index.rst +++ /dev/null @@ -1,85 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* -.. _external_standards: - -Standards -========= - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - - iso26262/iso26262 - isopas8926/isopas8926 - aspice_40/index - isosae21434/isosae21434 - -The graphs below presents statistics on: - -* percentage of standard requirements linked to guidances -* percentage of standard workproducts linked to S-CORE workproducts - -ISO26262 --------- - -.. needpie:: Linked Requirements ISO26262 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_requirements(iso26262) - -.. needpie:: Linked Workproducts ISO26262 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_workproducts(iso26262) - - -ASPICE 4.0 ----------- -.. needpie:: Linked Requirements ASPICE 4.0 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_requirements(aspice_40) - - -ISOPAS8926 ----------- -.. needpie:: Linked Requirements ISOPAS8926 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_requirements(isopas8926) - -.. needpie:: Linked Workproducts ISOPAS8926 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_workproducts(isopas8926) - - -ISO21434 --------- -.. needpie:: Linked Requirements ISO21434 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_requirements(isosae21434) - -.. needpie:: Linked Workproducts ISO21434 - :labels: Linked, Not Linked - :legend: - :colors: LightSeaGreen, lightgray - :filter-func: score_metamodel.checks.standards.my_pie_linked_standard_workproducts(isosae21434) diff --git a/docs/process/standards/iso26262/iso26262.rst b/docs/process/standards/iso26262/iso26262.rst deleted file mode 100644 index 9206de517e..0000000000 --- a/docs/process/standards/iso26262/iso26262.rst +++ /dev/null @@ -1,1619 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _standard_iso26262: - -ISO 26262 ---------- - -S-CORE uses the ISO 26262 Second edition 2018-12. - -The standard ISO 26262 has several parts. All work products and requirements are -defined as references below, if those are relevant for the S-CORE project. - -Irrelevant parts for S-CORE process requirements and work products compliance are: - -"Part 3: Concept phase" - as this is in responsibility of system integrator - -"Part 1: Vocabluary" - as it contains no requirements and work products - -"Part 5: Product development at the hardware level" - as this is in responsibility of HW provider - -"Part 7: Production, operation, service and decommissioning" - as this is in responsibility of system integrator - -"Part 10: Guidelines on ISO 26262" - as it contains no requirements and work products - -"Part 11: Guidelines on application of ISO 26262 to semiconductors" - as no semiconductors are in the project scope of S-CORE - -"Part 12: Adaptation of ISO 26262 for motorcycles" - if needed, motorcycles part is in responsibility of system integrator - - - -Relevant parts are: - - -Part 2: Management of functional safety -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: management_5421 - :id: std_req__iso26262__management_5421 - :status: valid - - - .. std_req:: management_5422 - :id: std_req__iso26262__management_5422 - :status: valid - - - .. std_req:: management_5423 - :id: std_req__iso26262__management_5423 - :status: valid - - - .. std_req:: management_5424 - :id: std_req__iso26262__management_5424 - :status: valid - - - .. std_req:: management_5425 - :id: std_req__iso26262__management_5425 - :status: valid - - - .. std_req:: management_5426 - :id: std_req__iso26262__management_5426 - :status: valid - - - .. std_req:: management_5427 - :id: std_req__iso26262__management_5427 - :status: valid - - - .. std_req:: management_5431 - :id: std_req__iso26262__management_5431 - :status: valid - - - .. std_req:: management_5432 - :id: std_req__iso26262__management_5432 - :status: valid - - - .. std_req:: management_5433 - :id: std_req__iso26262__management_5433 - :status: valid - - - .. std_req:: management_5434 - :id: std_req__iso26262__management_5434 - :status: valid - - - .. std_req:: management_5435 - :id: std_req__iso26262__management_5435 - :status: valid - - - .. std_req:: management_5441 - :id: std_req__iso26262__management_5441 - :status: valid - - - .. std_req:: management_5451 - :id: std_req__iso26262__management_5451 - :status: valid - - - .. std_req:: management_5461 - :id: std_req__iso26262__management_5461 - :status: valid - - - .. std_req:: management_6421 - :id: std_req__iso26262__management_6421 - :status: valid - - - .. std_req:: management_6422 - :id: std_req__iso26262__management_6422 - :status: valid - - - .. std_req:: management_6423 - :id: std_req__iso26262__management_6423 - :status: valid - - - .. std_req:: management_6424 - :id: std_req__iso26262__management_6424 - :status: valid - - - .. std_req:: management_6431 - :id: std_req__iso26262__management_6431 - :status: valid - - - .. std_req:: management_6432 - :id: std_req__iso26262__management_6432 - :status: valid - - - .. std_req:: management_6433 - :id: std_req__iso26262__management_6433 - :status: valid - - - .. std_req:: management_644 - :id: std_req__iso26262__management_644 - :status: valid - - - .. std_req:: management_6451 - :id: std_req__iso26262__management_6451 - :status: valid - - - .. std_req:: management_6452 - :id: std_req__iso26262__management_6452 - :status: valid - - - .. std_req:: management_6453 - :id: std_req__iso26262__management_6453 - :status: valid - - - .. std_req:: management_6454 - :id: std_req__iso26262__management_6454 - :status: valid - - - .. std_req:: management_6455 - :id: std_req__iso26262__management_6455 - :status: valid - - - .. std_req:: management_6456 - :id: std_req__iso26262__management_6456 - :status: valid - - - .. std_req:: management_6457 - :id: std_req__iso26262__management_6457 - :status: valid - - - .. std_req:: management_6461 - :id: std_req__iso26262__management_6461 - :status: valid - - - .. std_req:: management_6462 - :id: std_req__iso26262__management_6462 - :status: valid - - - .. std_req:: management_6463 - :id: std_req__iso26262__management_6463 - :status: valid - - - .. std_req:: management_6464 - :id: std_req__iso26262__management_6464 - :status: valid - - - .. std_req:: management_6465 - :id: std_req__iso26262__management_6465 - :status: valid - - - .. std_req:: management_6466 - :id: std_req__iso26262__management_6466 - :status: valid - - - .. std_req:: management_6467 - :id: std_req__iso26262__management_6467 - :status: valid - - - .. std_req:: management_6468 - :id: std_req__iso26262__management_6468 - :status: valid - - - .. std_req:: management_6469 - :id: std_req__iso26262__management_6469 - :status: valid - - - .. std_req:: management_64610 - :id: std_req__iso26262__management_64610 - :status: valid - - - .. std_req:: management_6471 - :id: std_req__iso26262__management_6471 - :status: valid - - - .. std_req:: management_6472 - :id: std_req__iso26262__management_6472 - :status: valid - - - .. std_req:: management_6481 - :id: std_req__iso26262__management_6481 - :status: valid - - - .. std_req:: management_6482 - :id: std_req__iso26262__management_6482 - :status: valid - - - .. std_req:: management_6491 - :id: std_req__iso26262__management_6491 - :status: valid - - - .. std_req:: management_6492 - :id: std_req__iso26262__management_6492 - :status: valid - - - .. std_req:: management_6493 - :id: std_req__iso26262__management_6493 - :status: valid - - - .. std_req:: management_64101 - :id: std_req__iso26262__management_64101 - :status: valid - - - .. std_req:: management_64102 - :id: std_req__iso26262__management_64102 - :status: valid - - - .. std_req:: management_64103 - :id: std_req__iso26262__management_64103 - :status: valid - - - .. std_req:: management_64104 - :id: std_req__iso26262__management_64104 - :status: valid - - - .. std_req:: management_64105 - :id: std_req__iso26262__management_64105 - :status: valid - - - .. std_req:: management_64111 - :id: std_req__iso26262__management_64111 - :status: valid - - - .. std_req:: management_64112 - :id: std_req__iso26262__management_64112 - :status: valid - - - .. std_req:: management_64113 - :id: std_req__iso26262__management_64113 - :status: valid - - - .. std_req:: management_64114 - :id: std_req__iso26262__management_64114 - :status: valid - - - .. std_req:: management_64121 - :id: std_req__iso26262__management_64121 - :status: valid - - - .. std_req:: management_64122 - :id: std_req__iso26262__management_64122 - :status: valid - - - .. std_req:: management_64123 - :id: std_req__iso26262__management_64123 - :status: valid - - - .. std_req:: management_64124 - :id: std_req__iso26262__management_64124 - :status: valid - - - .. std_req:: management_64125 - :id: std_req__iso26262__management_64125 - :status: valid - - - .. std_req:: management_64126 - :id: std_req__iso26262__management_64126 - :status: valid - - - .. std_req:: management_64127 - :id: std_req__iso26262__management_64127 - :status: valid - - - .. std_req:: management_64128 - :id: std_req__iso26262__management_64128 - :status: valid - - - .. std_req:: management_64129 - :id: std_req__iso26262__management_64129 - :status: valid - - - .. std_req:: management_641210 - :id: std_req__iso26262__management_641210 - :status: valid - - - .. std_req:: management_641211 - :id: std_req__iso26262__management_641211 - :status: valid - - - .. std_req:: management_641212 - :id: std_req__iso26262__management_641212 - :status: valid - - - .. std_req:: management_641213 - :id: std_req__iso26262__management_641213 - :status: valid - - - .. std_req:: management_64131 - :id: std_req__iso26262__management_64131 - :status: valid - - - .. std_req:: management_64132 - :id: std_req__iso26262__management_64132 - :status: valid - - - .. std_req:: management_64133 - :id: std_req__iso26262__management_64133 - :status: valid - - - .. std_req:: management_64134 - :id: std_req__iso26262__management_64134 - :status: valid - - - .. std_req:: management_64135 - :id: std_req__iso26262__management_64135 - :status: valid - - -* Workproducts - .. std_wp:: management_551 - :id: std_wp__iso26262__management_551 - :status: valid - - - .. std_wp:: management_552 - :id: std_wp__iso26262__management_552 - :status: valid - - - .. std_wp:: management_553 - :id: std_wp__iso26262__management_553 - :status: valid - - - .. std_wp:: management_554 - :id: std_wp__iso26262__management_554 - :status: valid - - - .. std_wp:: management_651 - :id: std_wp__iso26262__management_651 - :status: valid - - - .. std_wp:: management_652 - :id: std_wp__iso26262__management_652 - :status: valid - - - .. std_wp:: management_653 - :id: std_wp__iso26262__management_653 - :status: valid - - - .. std_wp:: management_654 - :id: std_wp__iso26262__management_654 - :status: valid - - - .. std_wp:: management_655 - :id: std_wp__iso26262__management_655 - :status: valid - - - .. std_wp:: management_656 - :id: std_wp__iso26262__management_656 - :status: valid - - - .. std_wp:: management_751 - :id: std_wp__iso26262__management_751 - :status: valid - - -Part 4: Product development at the system level -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: system_6411 - :id: std_req__iso26262__system_6411 - :status: valid - - - .. std_req:: system_6412 - :id: std_req__iso26262__system_6412 - :status: valid - - - .. std_req:: system_6413 - :id: std_req__iso26262__system_6413 - :status: valid - - - .. std_req:: system_6414 - :id: std_req__iso26262__system_6414 - :status: valid - - - .. std_req:: system_6421 - :id: std_req__iso26262__system_6421 - :status: valid - - - .. std_req:: system_6422 - :id: std_req__iso26262__system_6422 - :status: valid - - - .. std_req:: system_6423 - :id: std_req__iso26262__system_6423 - :status: valid - - - .. std_req:: system_6424 - :id: std_req__iso26262__system_6424 - :status: valid - - - .. std_req:: system_6425 - :id: std_req__iso26262__system_6425 - :status: valid - - -* Workproducts - .. std_wp:: system_651 - :id: std_wp__iso26262__system_651 - :status: valid - - - .. std_wp:: system_652 - :id: std_wp__iso26262__system_652 - :status: valid - - - .. std_wp:: system_653 - :id: std_wp__iso26262__system_653 - :status: valid - - - .. std_wp:: system_654 - :id: std_wp__iso26262__system_654 - :status: valid - - - .. std_wp:: system_655 - :id: std_wp__iso26262__system_655 - :status: valid - - - .. std_wp:: system_656 - :id: std_wp__iso26262__system_656 - :status: valid - - - .. std_wp:: system_657 - :id: std_wp__iso26262__system_657 - :status: valid - - - .. std_wp:: system_751 - :id: std_wp__iso26262__system_751 - :status: valid - - - .. std_wp:: system_752 - :id: std_wp__iso26262__system_752 - :status: valid - - - .. std_wp:: system_851 - :id: std_wp__iso26262__system_851 - :status: valid - - - .. std_wp:: system_852 - :id: std_wp__iso26262__system_852 - :status: valid - - - - -Part 6: Product development at the software level -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: software_541 - :id: std_req__iso26262__software_541 - :status: valid - - - .. std_req:: software_542 - :id: std_req__iso26262__software_542 - :status: valid - - - .. std_req:: software_543 - :id: std_req__iso26262__software_543 - :status: valid - - - .. std_req:: software_641 - :id: std_req__iso26262__software_641 - :status: valid - - - .. std_req:: software_642 - :id: std_req__iso26262__software_642 - :status: valid - - - .. std_req:: software_643 - :id: std_req__iso26262__software_643 - :status: valid - - - .. std_req:: software_644 - :id: std_req__iso26262__software_644 - :status: valid - - - .. std_req:: software_645 - :id: std_req__iso26262__software_645 - :status: valid - - - .. std_req:: software_646 - :id: std_req__iso26262__software_646 - :status: valid - - - .. std_req:: software_647 - :id: std_req__iso26262__software_647 - :status: valid - - - .. std_req:: software_741 - :id: std_req__iso26262__software_741 - :status: valid - - - .. std_req:: software_742 - :id: std_req__iso26262__software_742 - :status: valid - - - .. std_req:: software_743 - :id: std_req__iso26262__software_743 - :status: valid - - - .. std_req:: software_744 - :id: std_req__iso26262__software_744 - :status: valid - - - .. std_req:: software_745 - :id: std_req__iso26262__software_745 - :status: valid - - - .. std_req:: software_746 - :id: std_req__iso26262__software_746 - :status: valid - - - .. std_req:: software_747 - :id: std_req__iso26262__software_747 - :status: valid - - - .. std_req:: software_748 - :id: std_req__iso26262__software_748 - :status: valid - - - .. std_req:: software_749 - :id: std_req__iso26262__software_749 - :status: valid - - - .. std_req:: software_7410 - :id: std_req__iso26262__software_7410 - :status: valid - - - .. std_req:: software_7411 - :id: std_req__iso26262__software_7411 - :status: valid - - - .. std_req:: software_7412 - :id: std_req__iso26262__software_7412 - :status: valid - - - .. std_req:: software_7413 - :id: std_req__iso26262__software_7413 - :status: valid - - - .. std_req:: software_7414 - :id: std_req__iso26262__software_7414 - :status: valid - - - .. std_req:: software_841 - :id: std_req__iso26262__software_841 - :status: valid - - - .. std_req:: software_842 - :id: std_req__iso26262__software_842 - :status: valid - - - .. std_req:: software_843 - :id: std_req__iso26262__software_843 - :status: valid - - - .. std_req:: software_844 - :id: std_req__iso26262__software_844 - :status: valid - - - .. std_req:: software_845 - :id: std_req__iso26262__software_845 - :status: valid - - - .. std_req:: software_941 - :id: std_req__iso26262__software_941 - :status: valid - - - .. std_req:: software_942 - :id: std_req__iso26262__software_942 - :status: valid - - - .. std_req:: software_943 - :id: std_req__iso26262__software_943 - :status: valid - - - .. std_req:: software_944 - :id: std_req__iso26262__software_944 - :status: valid - - - .. std_req:: software_945 - :id: std_req__iso26262__software_945 - :status: valid - - - .. std_req:: software_1041 - :id: std_req__iso26262__software_1041 - :status: valid - - - .. std_req:: software_1042 - :id: std_req__iso26262__software_1042 - :status: valid - - - .. std_req:: software_1043 - :id: std_req__iso26262__software_1043 - :status: valid - - - .. std_req:: software_1044 - :id: std_req__iso26262__software_1044 - :status: valid - - - .. std_req:: software_1045 - :id: std_req__iso26262__software_1045 - :status: valid - - - .. std_req:: software_1046 - :id: std_req__iso26262__software_1046 - :status: valid - - - .. std_req:: software_1047 - :id: std_req__iso26262__software_1047 - :status: valid - - - .. std_req:: software_1141 - :id: std_req__iso26262__software_1141 - :status: valid - - - .. std_req:: software_1142 - :id: std_req__iso26262__software_1142 - :status: valid - - - .. std_req:: software_1143 - :id: std_req__iso26262__software_1143 - :status: valid - - - .. std_req:: software_1144 - :id: std_req__iso26262__software_1144 - :status: valid - - - .. std_req:: software_app_c_41 - :id: std_req__iso26262__software_app_c_41 - :status: valid - - - .. std_req:: software_app_c_42 - :id: std_req__iso26262__software_app_c_42 - :status: valid - - - .. std_req:: software_app_c_43 - :id: std_req__iso26262__software_app_c_43 - :status: valid - - - .. std_req:: software_app_c_44 - :id: std_req__iso26262__software_app_c_44 - :status: valid - - - .. std_req:: software_app_c_45 - :id: std_req__iso26262__software_app_c_45 - :status: valid - - -* Workproducts - .. std_wp:: software_551 - :id: std_wp__iso26262__software_551 - :status: valid - - - .. std_wp:: software_651 - :id: std_wp__iso26262__software_651 - :status: valid - - - .. std_wp:: software_652 - :id: std_wp__iso26262__software_652 - :status: valid - - - .. std_wp:: software_653 - :id: std_wp__iso26262__software_653 - :status: valid - - - .. std_wp:: software_751 - :id: std_wp__iso26262__software_751 - :status: valid - - - .. std_wp:: software_752 - :id: std_wp__iso26262__software_752 - :status: valid - - - .. std_wp:: software_753 - :id: std_wp__iso26262__software_753 - :status: valid - - - .. std_wp:: software_754 - :id: std_wp__iso26262__software_754 - :status: valid - - - .. std_wp:: software_851 - :id: std_wp__iso26262__software_851 - :status: valid - - - .. std_wp:: software_852 - :id: std_wp__iso26262__software_852 - :status: valid - - - .. std_wp:: software_951 - :id: std_wp__iso26262__software_951 - :status: valid - - - .. std_wp:: software_952 - :id: std_wp__iso26262__software_952 - :status: valid - - - .. std_wp:: software_1051 - :id: std_wp__iso26262__software_1051 - :status: valid - - - .. std_wp:: software_1052 - :id: std_wp__iso26262__software_1052 - :status: valid - - - .. std_wp:: software_1053 - :id: std_wp__iso26262__software_1053 - :status: valid - - - .. std_wp:: software_1151 - :id: std_wp__iso26262__software_1151 - :status: valid - - - .. std_wp:: software_1152 - :id: std_wp__iso26262__software_1152 - :status: valid - - - .. std_wp:: software_C51 - :id: std_wp__iso26262__software_app_c_51 - :status: valid - - - .. std_wp:: software_C52 - :id: std_wp__iso26262__software_app_c_52 - :status: valid - - - .. std_wp:: software_C53 - :id: std_wp__iso26262__software_app_c_53 - :status: valid - - - .. std_wp:: software_C54 - :id: std_wp__iso26262__software_app_c_54 - :status: valid - - - .. std_wp:: software_C55 - :id: std_wp__iso26262__software_app_c_55 - :status: valid - - - .. std_wp:: software_C56 - :id: std_wp__iso26262__software_app_c_6 - :status: valid - - - .. std_wp:: software_C57 - :id: std_wp__iso26262__software_app_c_57 - :status: valid - - - .. std_wp:: software_C58 - :id: std_wp__iso26262__software_app_c_58 - :status: valid - - - -Part 8: Supporting processes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: support_641 - :id: std_req__iso26262__support_641 - :status: valid - - - .. std_req:: support_6421 - :id: std_req__iso26262__support_6421 - :status: valid - - - .. std_req:: support_6422 - :id: std_req__iso26262__support_6422 - :status: valid - - - .. std_req:: support_6423 - :id: std_req__iso26262__support_6423 - :status: valid - - - .. std_req:: support_6424 - :id: std_req__iso26262__support_6424 - :status: valid - - - .. std_req:: support_6425 - :id: std_req__iso26262__support_6425 - :status: valid - - - .. std_req:: support_6431 - :id: std_req__iso26262__support_6431 - :status: valid - - - .. std_req:: support_6432 - :id: std_req__iso26262__support_6432 - :status: valid - - - .. std_req:: support_6433 - :id: std_req__iso26262__support_6433 - :status: valid - - - .. std_req:: support_6434 - :id: std_req__iso26262__support_6434 - :status: valid - - - .. std_req:: support_741 - :id: std_req__iso26262__support_741 - :status: valid - - - .. std_req:: support_742 - :id: std_req__iso26262__support_742 - :status: valid - - - .. std_req:: support_743 - :id: std_req__iso26262__support_743 - :status: valid - - - .. std_req:: support_744 - :id: std_req__iso26262__support_744 - :status: valid - - - .. std_req:: support_745 - :id: std_req__iso26262__support_745 - :status: valid - - - .. std_req:: support_8411 - :id: std_req__iso26262__support_8411 - :status: valid - - - .. std_req:: support_8412 - :id: std_req__iso26262__support_8412 - :status: valid - - - .. std_req:: support_8413 - :id: std_req__iso26262__support_8413 - :status: valid - - - .. std_req:: support_8414 - :id: std_req__iso26262__support_8414 - :status: valid - - - .. std_req:: support_8421 - :id: std_req__iso26262__support_8421 - :status: valid - - - .. std_req:: support_8422 - :id: std_req__iso26262__support_8422 - :status: valid - - - .. std_req:: support_8431 - :id: std_req__iso26262__support_8431 - :status: valid - - - .. std_req:: support_8432 - :id: std_req__iso26262__support_8432 - :status: valid - - - .. std_req:: support_8441 - :id: std_req__iso26262__support_8441 - :status: valid - - - .. std_req:: support_8442 - :id: std_req__iso26262__support_8442 - :status: valid - - - .. std_req:: support_8451 - :id: std_req__iso26262__support_8451 - :status: valid - - - .. std_req:: support_8452 - :id: std_req__iso26262__support_8452 - :status: valid - - - .. std_req:: support_8453 - :id: std_req__iso26262__support_8453 - :status: valid - - - .. std_req:: support_9411 - :id: std_req__iso26262__support_9411 - :status: valid - - - .. std_req:: support_9412 - :id: std_req__iso26262__support_9412 - :status: valid - - - .. std_req:: support_9421 - :id: std_req__iso26262__support_9421 - :status: valid - - - .. std_req:: support_9422 - :id: std_req__iso26262__support_9422 - :status: valid - - - .. std_req:: support_9423 - :id: std_req__iso26262__support_9423 - :status: valid - - - .. std_req:: support_9424 - :id: std_req__iso26262__support_9424 - :status: valid - - - .. std_req:: support_9431 - :id: std_req__iso26262__support_9431 - :status: valid - - - .. std_req:: support_9432 - :id: std_req__iso26262__support_9432 - :status: valid - - - .. std_req:: support_9433 - :id: std_req__iso26262__support_9433 - :status: valid - - - .. std_req:: support_9434 - :id: std_req__iso26262__support_9434 - :status: valid - - - .. std_req:: support_1041 - :id: std_req__iso26262__support_1041 - :status: valid - - - .. std_req:: support_1042 - :id: std_req__iso26262__support_1042 - :status: valid - - - .. std_req:: support_1043 - :id: std_req__iso26262__support_1043 - :status: valid - - - .. std_req:: support_1044 - :id: std_req__iso26262__support_1044 - :status: valid - - - .. std_req:: support_1045 - :id: std_req__iso26262__support_1045 - :status: valid - - - .. std_req:: support_1046 - :id: std_req__iso26262__support_1046 - :status: valid - - - .. std_req:: support_1141 - :id: std_req__iso26262__support_1141 - :status: valid - - - .. std_req:: support_1142 - :id: std_req__iso26262__support_1142 - :status: valid - - - .. std_req:: support_1143 - :id: std_req__iso26262__support_1143 - :status: valid - - - .. std_req:: support_11441 - :id: std_req__iso26262__support_11441 - :status: valid - - - .. std_req:: support_11442 - :id: std_req__iso26262__support_11442 - :status: valid - - - .. std_req:: support_11451 - :id: std_req__iso26262__support_11451 - :status: valid - - - .. std_req:: support_11452 - :id: std_req__iso26262__support_11452 - :status: valid - - - .. std_req:: support_11453 - :id: std_req__iso26262__support_11453 - :status: valid - - - .. std_req:: support_11454 - :id: std_req__iso26262__support_11454 - :status: valid - - - .. std_req:: support_11461 - :id: std_req__iso26262__support_11461 - :status: valid - - - .. std_req:: support_11462 - :id: std_req__iso26262__support_11462 - :status: valid - - - .. std_req:: support_11471 - :id: std_req__iso26262__support_11471 - :status: valid - - - .. std_req:: support_11472 - :id: std_req__iso26262__support_11472 - :status: valid - - - .. std_req:: support_11473 - :id: std_req__iso26262__support_11473 - :status: valid - - - .. std_req:: support_11474 - :id: std_req__iso26262__support_11474 - :status: valid - - - .. std_req:: support_11481 - :id: std_req__iso26262__support_11481 - :status: valid - - - .. std_req:: support_11482 - :id: std_req__iso26262__support_11482 - :status: valid - - - .. std_req:: support_11483 - :id: std_req__iso26262__support_11483 - :status: valid - - - .. std_req:: support_11491 - :id: std_req__iso26262__support_11491 - :status: valid - - - .. std_req:: support_11492 - :id: std_req__iso26262__support_11492 - :status: valid - - - .. std_req:: support_12421 - :id: std_req__iso26262__support_12421 - :status: valid - - - .. std_req:: support_12422 - :id: std_req__iso26262__support_12422 - :status: valid - - - .. std_req:: support_12423 - :id: std_req__iso26262__support_12423 - :status: valid - - - .. std_req:: support_12424 - :id: std_req__iso26262__support_12424 - :status: valid - - - .. std_req:: support_12425 - :id: std_req__iso26262__support_12425 - :status: valid - - - .. std_req:: support_1243 - :id: std_req__iso26262__support_1243 - :status: valid - - -* Workproducts - .. std_wp:: support_551 - :id: std_wp__iso26262__support_551 - :status: valid - - - .. std_wp:: support_552 - :id: std_wp__iso26262__support_552 - :status: valid - - - .. std_wp:: support_553 - :id: std_wp__iso26262__support_553 - :status: valid - - - .. std_wp:: support_554 - :id: std_wp__iso26262__support_554 - :status: valid - - - .. std_wp:: support_555 - :id: std_wp__iso26262__support_555 - :status: valid - - - .. std_wp:: support_751 - :id: std_wp__iso26262__support_751 - :status: valid - - - .. std_wp:: support_851 - :id: std_wp__iso26262__support_851 - :status: valid - - - .. std_wp:: support_8522 - :id: std_wp__iso26262__support_852 - :status: valid - - - .. std_wp:: support_853 - :id: std_wp__iso26262__support_853 - :status: valid - - - .. std_wp:: support_854 - :id: std_wp__iso26262__support_854 - :status: valid - - - .. std_wp:: support_951 - :id: std_wp__iso26262__support_951 - :status: valid - - - .. std_wp:: support_952 - :id: std_wp__iso26262__support_952 - :status: valid - - - .. std_wp:: support_953 - :id: std_wp__iso26262__support_953 - :status: valid - - - .. std_wp:: support_1051 - :id: std_wp__iso26262__support_1051 - :status: valid - - - .. std_wp:: support_1052 - :id: std_wp__iso26262__support_1052 - :status: valid - - - .. std_wp:: support_1151 - :id: std_wp__iso26262__support_1151 - :status: valid - - - .. std_wp:: support_1152 - :id: std_wp__iso26262__support_1152 - :status: valid - - - .. std_wp:: support_1251 - :id: std_wp__iso26262__support_1251 - :status: valid - - - .. std_wp:: support_1252 - :id: std_wp__iso26262__support_1252 - :status: valid - - - .. std_wp:: support_1253 - :id: std_wp__iso26262__support_1253 - :status: valid - - - .. std_wp:: support_1351 - :id: std_wp__iso26262__support_1351 - :status: valid - - - .. std_wp:: support_1352 - :id: std_wp__iso26262__support_1352 - :status: valid - - - .. std_wp:: support_1353 - :id: std_wp__iso26262__support_1353 - :status: valid - - - .. std_wp:: support_1451 - :id: std_wp__iso26262__support_1451 - :status: valid - - - .. std_wp:: support_1452 - :id: std_wp__iso26262__support_1452 - :status: valid - - - .. std_wp:: support_1551 - :id: std_wp__iso26262__support_1551 - :status: valid - - - .. std_wp:: support_1651 - :id: std_wp__iso26262__support_1651 - :status: valid - - - -Part 9: Automotive safety integrity level (ASIL)-oriented and safety-oriented analyses -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: analysis_641 - :id: std_req__iso26262__analysis_641 - :status: valid - - - .. std_req:: analysis_642 - :id: std_req__iso26262__analysis_642 - :status: valid - - - .. std_req:: analysis_643 - :id: std_req__iso26262__analysis_643 - :status: valid - - - .. std_req:: analysis_644 - :id: std_req__iso26262__analysis_644 - :status: valid - - - .. std_req:: analysis_741 - :id: std_req__iso26262__analysis_741 - :status: valid - - - .. std_req:: analysis_742 - :id: std_req__iso26262__analysis_742 - :status: valid - - - .. std_req:: analysis_743 - :id: std_req__iso26262__analysis_743 - :status: valid - - - .. std_req:: analysis_744 - :id: std_req__iso26262__analysis_744 - :status: valid - - - .. std_req:: analysis_745 - :id: std_req__iso26262__analysis_745 - :status: valid - - - .. std_req:: analysis_746 - :id: std_req__iso26262__analysis_746 - :status: valid - - - .. std_req:: analysis_747 - :id: std_req__iso26262__analysis_747 - :status: valid - - - .. std_req:: analysis_748 - :id: std_req__iso26262__analysis_748 - :status: valid - - - .. std_req:: analysis_749 - :id: std_req__iso26262__analysis_749 - :status: valid - - - .. std_req:: analysis_841 - :id: std_req__iso26262__analysis_841 - :status: valid - - - .. std_req:: analysis_842 - :id: std_req__iso26262__analysis_842 - :status: valid - - - .. std_req:: analysis_843 - :id: std_req__iso26262__analysis_843 - :status: valid - - - .. std_req:: analysis_844 - :id: std_req__iso26262__analysis_844 - :status: valid - - - .. std_req:: analysis_845 - :id: std_req__iso26262__analysis_845 - :status: valid - - - .. std_req:: analysis_846 - :id: std_req__iso26262__analysis_846 - :status: valid - - - .. std_req:: analysis_847 - :id: std_req__iso26262__analysis_847 - :status: valid - - - .. std_req:: analysis_848 - :id: std_req__iso26262__analysis_848 - :status: valid - - - .. std_req:: analysis_849 - :id: std_req__iso26262__analysis_849 - :status: valid - - - .. std_req:: analysis_8410 - :id: std_req__iso26262__analysis_8410 - :status: valid - - -* Workproducts - .. std_wp:: analysis_551 - :id: std_wp__iso26262__analysis_551 - :status: valid - - - .. std_wp:: analysis_552 - :id: std_wp__iso26262__analysis_552 - :status: valid - - - .. std_wp:: analysis_651 - :id: std_wp__iso26262__analysis_651 - :status: valid - - - .. std_wp:: analysis_751 - :id: std_wp__iso26262__analysis_751 - :status: valid - - - .. std_wp:: analysis_752 - :id: std_wp__iso26262__analysis_752 - :status: valid - - - .. std_wp:: analysis_851 - :id: std_wp__iso26262__analysis_851 - :status: valid - - - .. std_wp:: analysis_852 - :id: std_wp__iso26262__analysis_852 - :status: valid - - -.. note:: - Titles of the ISO 26262 standard parts are from official `ISO website <https://www.iso.org/search.html>`_ (search for "26262"). - - Sub-Clause numbers from the official standard document are used for Ids creation for better reference. - - All workproducts of the relevant parts are included in the list to enable the documentation of the project wide tailoring, - but the related requirements are not included as these are not needed to be covered. - -.. needextend:: "standards/iso26262" in docname - :+tags: iso26262 diff --git a/docs/process/standards/isopas8926/isopas8926.rst b/docs/process/standards/isopas8926/isopas8926.rst deleted file mode 100644 index d91533df6b..0000000000 --- a/docs/process/standards/isopas8926/isopas8926.rst +++ /dev/null @@ -1,205 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _standard_isopas8926: - -ISO PAS 8926 ------------- - -* Requirements: - .. std_req:: Pas1 - :id: std_req__isopas8926__441 - :status: valid - - .. std_req:: Pas2 - :id: std_req__isopas8926__4421 - :status: valid - - .. std_req:: Pas3 - :id: std_req__isopas8926__4422 - :status: valid - - .. std_req:: Pas4 - :id: std_req__isopas8926__4423 - :status: valid - - .. std_req:: Pas5 - :id: std_req__isopas8926__4424 - :status: valid - - .. std_req:: Pas6 - :id: std_req__isopas8926__4425 - :status: valid - - .. std_req:: Pas7 - :id: std_req__isopas8926__4426 - :status: valid - - .. std_req:: Pas8 - :id: std_req__isopas8926__4427 - :status: valid - - .. std_req:: Pas9 - :id: std_req__isopas8926__4428 - :status: valid - - .. std_req:: Pas10 - :id: std_req__isopas8926__4429 - :status: valid - - .. std_req:: Pas11 - :id: std_req__isopas8926__44210 - :status: valid - - .. std_req:: Pas12 - :id: std_req__isopas8926__4431 - :status: valid - - .. std_req:: Pas13 - :id: std_req__isopas8926__44321 - :status: valid - - .. std_req:: Pas14 - :id: std_req__isopas8926__44322 - :status: valid - - .. std_req:: Pas19 - :id: std_req__isopas8926__4433 - :status: valid - - .. std_req:: Pas18 - :id: std_req__isopas8926__44341 - :status: valid - - .. std_req:: Pas17 - :id: std_req__isopas8926__44342 - :status: valid - - .. std_req:: Pas18 - :id: std_req__isopas8926__44411 - :status: valid - - .. std_req:: Pas19 - :id: std_req__isopas8926__44412 - :status: valid - - .. std_req:: Pas20 - :id: std_req__isopas8926__44421 - :status: valid - - .. std_req:: Pas21 - :id: std_req__isopas8926__44422 - :status: valid - - .. std_req:: Pas22 - :id: std_req__isopas8926__44423 - :status: valid - - .. std_req:: Pas23 - :id: std_req__isopas8926__44431 - :status: valid - - .. std_req:: Pas24 - :id: std_req__isopas8926__44432 - :status: valid - - .. std_req:: Pas25 - :id: std_req__isopas8926__44433 - :status: valid - - .. std_req:: Pas26 - :id: std_req__isopas8926__44441 - :status: valid - - .. std_req:: Pas27 - :id: std_req__isopas8926__44442 - :status: valid - - .. std_req:: Pas28 - :id: std_req__isopas8926__44443 - :status: valid - - .. std_req:: Pas29 - :id: std_req__isopas8926__445 - :status: valid - - .. std_req:: Pas30 - :id: std_req__isopas8926__44611 - :status: valid - - .. std_req:: Pas31 - :id: std_req__isopas8926__44612 - :status: valid - - .. std_req:: Pas32 - :id: std_req__isopas8926__4462 - :status: valid - - .. std_req:: Pas33 - :id: std_req__isopas8926__4463 - :status: valid - - -* Workproducts: - .. std_wp:: isopas8926__4511 - :id: std_wp__isopas8926__4511 - :status: valid - - - .. std_wp:: isopas8926__4512 - :id: std_wp__isopas8926__4512 - :status: valid - - - .. std_wp:: isopas8926__4521 - :id: std_wp__isopas8926__4521 - :status: valid - - - .. std_wp:: isopas8926__4522 - :id: std_wp__isopas8926__4522 - :status: valid - - - .. std_wp:: isopas8926__4523 - :id: std_wp__isopas8926__4523 - :status: valid - - - .. std_wp:: isopas8926__4524 - :id: std_wp__isopas8926__4524 - :status: valid - - - .. std_wp:: isopas8926__4525 - :id: std_wp__isopas8926__4525 - :status: valid - - - .. std_wp:: isopas8926__4526 - :id: std_wp__isopas8926__4526 - :status: valid - - - .. std_wp:: isopas8926__4527 - :id: std_wp__isopas8926__4527 - :status: valid - - - -.. note:: - Sub-Clause numbers from the official standard document are used for Ids creation for better reference. - -.. needextend:: "standards/isopas8926" in docname - :+tags: isopas8926 diff --git a/docs/process/standards/isosae21434/isosae21434.rst b/docs/process/standards/isosae21434/isosae21434.rst deleted file mode 100644 index 89bafa396a..0000000000 --- a/docs/process/standards/isosae21434/isosae21434.rst +++ /dev/null @@ -1,494 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -.. _standard_isosae21434: - -ISO/SAE 21434:2021(E) ---------------------- - -The standard ISO/SAE 21434:2021(E) has several clauses. All work products and requirements are -defined as references below, if those are relevant for the S-CORE project. - -Irrelevant clauses for S-CORE process requirements and work products compliance are: - -"Clause 1-4:" - as it contains no requirements and work products - -"Clause 7: Distributed cybersecurity activities" - as the project is organized as open source project - -"Clause 9: Concept" - as this is in responsibility of system integrator - -"Clause 11: Cybersecurity validation" - as this is in responsibility of system integrator - -"Clause 12: Production" - as this is in responsibility of system integrator - -"Clause 14: End of cybersecurity support and decommissioning" - as this is in responsibility of system integrator - -"Annex A-H:" - as it contains no requirements and work products - - -Relevant clauses are: - -Tailoring documentation is planned in -https://github.com/eclipse-score/score/issues/696 - - -Clause 5: Organizational cybersecurity management -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: org_management_5421 - :id: std_req__isosae21434__org_management_5421 - :status: valid - - .. std_req:: org_management_5422 - :id: std_req__isosae21434__org_management_5422 - :status: valid - - .. std_req:: org_management_5423 - :id: std_req__isosae21434__org_management_5423 - :status: valid - - .. std_req:: org_management_5441 - :id: std_req__isosae21434__org_management_5441 - :status: valid - - .. std_req:: org_management_5442 - :id: std_req__isosae21434__org_management_5442 - :status: valid - - .. std_req:: org_management_5443 - :id: std_req__isosae21434__org_management_5443 - :status: valid - - .. std_req:: org_management_5451 - :id: std_req__isosae21434__org_management_5451 - :status: valid - - .. std_req:: org_management_5452 - :id: std_req__isosae21434__org_management_5452 - :status: valid - - .. std_req:: org_management_5461 - :id: std_req__isosae21434__org_management_5461 - :status: valid - - -* Work products - .. std_wp:: org_management_551 - :id: std_wp__isosae21434__org_management_551 - :status: valid - - .. std_wp:: org_management_552 - :id: std_wp__isosae21434__org_management_552 - :status: valid - - .. std_wp:: org_management_553 - :id: std_wp__isosae21434__org_management_553 - :status: valid - - .. std_wp:: org_management_554 - :id: std_wp__isosae21434__org_management_554 - :status: valid - - .. std_wp:: org_management_555 - :id: std_wp__isosae21434__org_management_555 - :status: valid - - -Clause 6: Project dependent cybersecurity management -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: prj_management_6411 - :id: std_req__isosae21434__prj_management_6411 - :status: valid - - .. std_req:: prj_management_6421 - :id: std_req__isosae21434__prj_management_6421 - :status: valid - - .. std_req:: prj_management_6422 - :id: std_req__isosae21434__prj_management_6422 - :status: valid - - .. std_req:: prj_management_6423 - :id: std_req__isosae21434__prj_management_6423 - :status: valid - - .. std_req:: prj_management_6424 - :id: std_req__isosae21434__prj_management_6424 - :status: valid - - .. std_req:: prj_management_6425 - :id: std_req__isosae21434__prj_management_6425 - :status: valid - - .. std_req:: prj_management_6426 - :id: std_req__isosae21434__prj_management_6426 - :status: valid - - .. std_req:: prj_management_6427 - :id: std_req__isosae21434__prj_management_6427 - :status: valid - - .. std_req:: prj_management_6428 - :id: std_req__isosae21434__prj_management_6428 - :status: valid - - .. std_req:: prj_management_6429 - :id: std_req__isosae21434__prj_management_6429 - :status: valid - - .. std_req:: prj_management_64210 - :id: std_req__isosae21434__prj_management_64210 - :status: valid - - .. std_req:: prj_management_64211 - :id: std_req__isosae21434__prj_management_64211 - :status: valid - - .. std_req:: prj_management_6431 - :id: std_req__isosae21434__prj_management_6431 - :status: valid - - .. std_req:: prj_management_6432 - :id: std_req__isosae21434__prj_management_6432 - :status: valid - - .. std_req:: prj_management_6441 - :id: std_req__isosae21434__prj_management_6441 - :status: valid - - .. std_req:: prj_management_6442 - :id: std_req__isosae21434__prj_management_6442 - :status: valid - - .. std_req:: prj_management_6443 - :id: std_req__isosae21434__prj_management_6443 - :status: valid - - .. std_req:: prj_management_6451 - :id: std_req__isosae21434__prj_management_6451 - :status: valid - - .. std_req:: prj_management_6452 - :id: std_req__isosae21434__prj_management_6452 - :status: valid - - .. std_req:: prj_management_6453 - :id: std_req__isosae21434__prj_management_6453 - :status: valid - - .. std_req:: prj_management_6461 - :id: std_req__isosae21434__prj_management_6461 - :status: valid - - .. std_req:: prj_management_6462 - :id: std_req__isosae21434__prj_management_6462 - :status: valid - - .. std_req:: prj_management_6471 - :id: std_req__isosae21434__prj_management_6471 - :status: valid - - .. std_req:: prj_management_6491 - :id: std_req__isosae21434__prj_management_6491 - :status: valid - - .. std_req:: prj_management_6492 - :id: std_req__isosae21434__prj_management_6492 - :status: valid - - -* Work products - .. std_wp:: prj_management_651 - :id: std_wp__isosae21434__prj_management_651 - :status: valid - - .. std_wp:: prj_management_652 - :id: std_wp__isosae21434__prj_management_652 - :status: valid - - .. std_wp:: prj_management_653 - :id: std_wp__isosae21434__prj_management_653 - :status: valid - - .. std_wp:: prj_management_654 - :id: std_wp__isosae21434__prj_management_654 - :status: valid - - -Clause 8: Continual cybersecurity activities -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: continual_8321 - :id: std_req__isosae21434__continual_8321 - :status: valid - - .. std_req:: continual_8322 - :id: std_req__isosae21434__continual_8322 - :status: valid - - .. std_req:: continual_8323 - :id: std_req__isosae21434__continual_8323 - :status: valid - - .. std_req:: continual_8421 - :id: std_req__isosae21434__continual_8421 - :status: valid - - .. std_req:: continual_8521 - :id: std_req__isosae21434__continual_8521 - :status: valid - - .. std_req:: continual_8522 - :id: std_req__isosae21434__continual_8522 - :status: valid - - .. std_req:: continual_8621 - :id: std_req__isosae21434__continual_8621 - :status: valid - - .. std_req:: continual_8622 - :id: std_req__isosae21434__continual_8622 - :status: valid - - -* Work products - .. std_wp:: continual_8331 - :id: std_wp__isosae21434__continual_8331 - :status: valid - - .. std_wp:: continual_8332 - :id: std_wp__isosae21434__continual_8332 - :status: valid - - .. std_wp:: continual_8333 - :id: std_wp__isosae21434__continual_8333 - :status: valid - - .. std_wp:: continual_8431 - :id: std_wp__isosae21434__continual_8431 - :status: valid - - .. std_wp:: continual_8531 - :id: std_wp__isosae21434__continual_8531 - :status: valid - - .. std_wp:: continual_8631 - :id: std_wp__isosae21434__continual_8631 - :status: valid - - -Clause 10: Product development -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: development_10411 - :id: std_req__isosae21434__development_10411 - :status: valid - - .. std_req:: development_10412 - :id: std_req__isosae21434__development_10412 - :status: valid - - .. std_req:: development_10413 - :id: std_req__isosae21434__development_10413 - :status: valid - - .. std_req:: development_10414 - :id: std_req__isosae21434__development_10414 - :status: valid - - .. std_req:: development_10415 - :id: std_req__isosae21434__development_10415 - :status: valid - - .. std_req:: development_10416 - :id: std_req__isosae21434__development_10416 - :status: valid - - .. std_req:: development_10417 - :id: std_req__isosae21434__development_10417 - :status: valid - - .. std_req:: development_10418 - :id: std_req__isosae21434__development_10418 - :status: valid - - .. std_req:: development_10421 - :id: std_req__isosae21434__development_10421 - :status: valid - - .. std_req:: development_10422 - :id: std_req__isosae21434__development_10422 - :status: valid - - .. std_req:: development_10423 - :id: std_req__isosae21434__development_10423 - :status: valid - - .. std_req:: development_10424 - :id: std_req__isosae21434__development_10424 - :status: valid - - .. std_req:: development_10425 - :id: std_req__isosae21434__development_10425 - :status: valid - - -* Work products - .. std_wp:: development_1051 - :id: std_wp__isosae21434__development_1051 - :status: valid - - .. std_wp:: development_1052 - :id: std_wp__isosae21434__development_1052 - :status: valid - - .. std_wp:: development_1053 - :id: std_wp__isosae21434__development_1053 - :status: valid - - .. std_wp:: development_1054 - :id: std_wp__isosae21434__development_1054 - :status: valid - - .. std_wp:: development_1055 - :id: std_wp__isosae21434__development_1055 - :status: valid - - .. std_wp:: development_1056 - :id: std_wp__isosae21434__development_1056 - :status: valid - - .. std_wp:: development_1057 - :id: std_wp__isosae21434__development_1057 - :status: valid - - -Clause 13: Operations and maintenance -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - .. std_req:: maintenance_13321 - :id: std_req__isosae21434__maintenance_13321 - :status: valid - - .. std_req:: maintenance_13322 - :id: std_req__isosae21434__maintenance_13322 - :status: valid - - .. std_req:: maintenance_13421 - :id: std_req__isosae21434__maintenance_13421 - :status: valid - - -* Work products - .. std_wp:: maintenance_13331 - :id: std_wp__isosae21434__maintenance_13331 - :status: valid - - -Clause 15: Threat analysis and risk assessment methods -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Requirements - - .. std_req:: assessment_15621 - :id: std_req__isosae21434__assessment_15621 - :status: valid - - .. std_req:: assessment_15622 - :id: std_req__isosae21434__assessment_15622 - :status: valid - - .. std_req:: assessment_15721 - :id: std_req__isosae21434__assessment_15721 - :status: valid - - .. std_req:: assessment_15722 - :id: std_req__isosae21434__assessment_15722 - :status: valid - - .. std_req:: assessment_15723 - :id: std_req__isosae21434__assessment_15723 - :status: valid - - .. std_req:: assessment_15724 - :id: std_req__isosae21434__assessment_15724 - :status: valid - - .. std_req:: assessment_15725 - :id: std_req__isosae21434__assessment_15725 - :status: valid - - .. std_req:: assessment_15821 - :id: std_req__isosae21434__assessment_15821 - :status: valid - - .. std_req:: assessment_15822 - :id: std_req__isosae21434__assessment_15822 - :status: valid - - .. std_req:: assessment_15921 - :id: std_req__isosae21434__assessment_15921 - :status: valid - - -* Work products - .. std_wp:: assessment_15331 - :id: std_wp__isosae21434__assessment_15331 - :status: valid - - .. std_wp:: assessment_15332 - :id: std_wp__isosae21434__assessment_15332 - :status: valid - - .. std_wp:: assessment_15431 - :id: std_wp__isosae21434__assessment_15431 - :status: valid - - .. std_wp:: assessment_15531 - :id: std_wp__isosae21434__assessment_15531 - :status: valid - - .. std_wp:: assessment_15631 - :id: std_wp__isosae21434__assessment_15631 - :status: valid - - .. std_wp:: assessment_15731 - :id: std_wp__isosae21434__assessment_15731 - :status: valid - - .. std_wp:: assessment_15831 - :id: std_wp__isosae21434__assessment_15831 - :status: valid - - .. std_wp:: assessment_15931 - :id: std_wp__isosae21434__assessment_15931 - :status: valid - - -.. note:: - Titles of the ISO/SAE 21434:2021(E) standard clauses are from official `ISO website <https://www.iso.org/search.html>`_ (search for "21434"). - - Sub-Clause numbers from the official standard document are used for Ids creation for better reference. - - All work products of the relevant clauses are included in the list to enable the documentation of the project wide tailoring, - but the related requirements are not included as these are not needed to be covered. - -.. needextend:: "standards/isosae21434" in docname - :+tags: isosae21434 diff --git a/docs/process/workflows/index.rst b/docs/process/workflows/index.rst deleted file mode 100644 index 07be4ca6b4..0000000000 --- a/docs/process/workflows/index.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -Workflows -========= - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - - process_management - quality_management - safety_analysis - - -S-CORE Workflow list --------------------- - -.. needtable:: - :style: table - :columns: title;id;tags - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["workflow"]): - results.append(need) diff --git a/docs/process/workflows/process_management.rst b/docs/process/workflows/process_management.rst deleted file mode 100644 index 01971a8ad5..0000000000 --- a/docs/process/workflows/process_management.rst +++ /dev/null @@ -1,59 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -Process Management -================== - - -Workflows ---------- - -todo: need to add guidance and standard links - -.. workflow:: Create/Maintain Process Management Strategy - :id: wf__cr_mt_proc_mgt_strategy - :status: draft - :tags: process - :responsible: rl__process_community - :approved_by: rl__project_lead - :supported_by: rl__external_auditor - :input: wp__policies, wp__issue_track_system - :output: wp__process_plan - - Process management strategy is created and maintained. - Process metamodel see :ref:`processes_introduction`. - -.. workflow:: Define/Approve Process - :id: wf__def_app_process_definition - :status: draft - :tags: process - :responsible: rl__process_community - :approved_by: rl__technical_lead - :supported_by: rl__external_auditor - :input: wp__process_plan, wp__issue_track_system - :output: wp__process_definition, wp__tailoring - - Process is defined and approved. - -.. workflow:: Monitor/Control Process - :id: wf__mon_ctrl_process_definition - :status: draft - :tags: process - :responsible: rl__process_community - :approved_by: rl__technical_lead - :supported_by: rl__external_auditor - :input: wp__process_definition - :output: wp__process_impr_report - - Process is monitored and improvements are triggered, if required. diff --git a/docs/process/workflows/quality_management.rst b/docs/process/workflows/quality_management.rst deleted file mode 100644 index 4c2675f9e2..0000000000 --- a/docs/process/workflows/quality_management.rst +++ /dev/null @@ -1,107 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 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 - # ******************************************************************************* - -Quality Management -================== - - -Workflows ---------- - -todo: need to add guidance and standard links - -.. workflow:: Create/Maintain Quality Plan - :id: wf__cr_mt_qlm_plan - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__policies, wp__issue_track_system - :output: wp__qms - - | The quality plan is created and maintained by a :need:`rl__committer`. - -.. workflow:: Verify/Approve Platform Release - :id: wf__vy_ap_pltrelease - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__qms - :output: wp__platform_sw_release_note - - | The project/platform release is verified and approved. - -.. workflow:: Execute Platform Process Audit - :id: wf__exe_pltprocess_audit - :status: draft - :tags: quality_management - :responsible: rl__quality_manager - :approved_by: rl__technical_lead - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__qms, wp__process_definition - :output: wp__process_impr_report - - | The project/platform processes are audited. - -.. workflow:: Execute Feature Process Compliance Checks - :id: wf__exe_featprocess_compliance_checks - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__qms, wp__feat_request, wp__process_definition - :output: wp__qms_report - - | The compliance of the feature contribution is checked. - -.. workflow:: Execute Feature Work Product Reviews - :id: wf__exe_featwp_review - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__qms, wp__process_definition - :output: wp__verification__platform_ver_report - - | The quality of the work products is assured. - -.. workflow:: Consult and Execute Quality Trainings - :id: wf__consult_exe_qly_training - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__qms, wp__policies, wp__process_definition - :output: wp__training_path - - | The quality manager consults all project/platform stakeholder for quality topics and executes regulary quality trainings. - -.. workflow:: Monitor/Improve Quality Activities - :id: wf__mr_imp_qlm_plan_processes - :status: draft - :tags: quality_management - :responsible: rl__committer - :approved_by: rl__quality_manager - :supported_by: rl__technical_lead - :input: wp__qms, wp__platform_sw_release_note, wp__module_sw_release_note, wp__process_impr_report, wp__qms_report, wp__verification__platform_ver_report, wp__verification__module_ver_report, wp__training_path - :output: wp__issue_track_system - - | The Quality Manager is responsible for the monitoring of the activities against the quality management plan. - | The Quality Manager is responsible to adjust the plan, if deviations are detected. diff --git a/docs/process/workflows/safety_analysis.rst b/docs/process/workflows/safety_analysis.rst deleted file mode 100644 index cbb7b4b85d..0000000000 --- a/docs/process/workflows/safety_analysis.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Safety Analysis -=============== - - -Workflows ---------- - -todo: need to add guidance and standard links - - -.. workflow:: Analyse Feature Architecture - :id: wf__analyse_featarch - :status: draft - :tags: safety_analysis - :responsible: rl__committer - :approved_by: rl__safety_manager - :supported_by: rl__technical_lead, rl__security_manager - :input: wp__requirements__feat, wp__feature_arch, wp__issue_track_system - :output: wp__feature_safety_analysis, wp__feature_dfa - - | The safety analysis and DFA for the feature is executed. - -.. workflow:: Analyse Component Architecture - :id: wf__analyse_comparch - :status: draft - :tags: safety_analysis - :responsible: rl__committer - :approved_by: rl__safety_manager - :supported_by: rl__module_lead, rl__security_manager - :input: wp__requirements__comp, wp__component_arch, wp__issue_track_system - :output: wp__sw_component_safety_analysis, wp__sw_component_dfa - - | The safety analysis and DFA for the component is executed. - -.. workflow:: Monitor/Verify Safety Analyses and DFA - :id: wf__mr_vy_saf_analyses_dfa - :status: draft - :tags: safety_analysis - :responsible: rl__committer - :approved_by: rl__safety_manager - :supported_by: rl__technical_lead, rl__module_lead, rl__security_manager - :input: wp__feature_safety_analysis, wp__feature_dfa, wp__sw_component_safety_analysis, wp__sw_component_dfa - :output: wp__sw_arch_verification, wp__issue_track_system - - | The safety analyses and DFA are monitored and verified. - | The inspection shall be implemented as integral part of the review tool. diff --git a/docs/process/workproducts/_assets/wp_traceability_model.drawio.svg b/docs/process/workproducts/_assets/wp_traceability_model.drawio.svg deleted file mode 100644 index 9a9caf543e..0000000000 --- a/docs/process/workproducts/_assets/wp_traceability_model.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2185px" height="1371px" viewBox="-0.5 -0.5 2185 1371" content="<mxfile host="Electron" modified="2024-12-16T13:41:44.540Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="KqdZ1lcCc6r294YsV2Ys" version="21.6.5" type="device"> <diagram id="0w90vh-N4AjfHz9zUi27" name="Model"> <mxGraphModel dx="3118" dy="3028" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="1HuV_3KbINTHhJpnpn9_-48" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="-660" y="-1010" width="1150" height="220" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-19" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-780" width="120" height="930" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-6" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="-660" y="-1" width="1150" height="150" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-5" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="-660" y="-775" width="1150" height="375" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-29" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="-660" y="-390" width="1150" height="370" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-19" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0.487;exitY=0.905;exitDx=0;exitDy=0;entryX=0.506;entryY=0.874;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-4" target="E6zD7x6681FsFhgOgvuB-1" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="-462" y="-40" /> <mxPoint x="-579" y="-40" /> </Array> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-20" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-19" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-4" value="Component Assumption of use" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-520" y="-270" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-2" value="Stakeholder&lt;br&gt;Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-383" y="-890" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.497;entryY=0.856;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-3" target="1HuV_3KbINTHhJpnpn9_-55" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-63" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1HuV_3KbINTHhJpnpn9_-60" vertex="1" connectable="0"> <mxGeometry x="-0.5907" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-3" value="Feature" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="-820" y="-775" width="125" height="375" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.49;entryY=0.846;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-4" target="1HuV_3KbINTHhJpnpn9_-55" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-64" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1HuV_3KbINTHhJpnpn9_-61" vertex="1" connectable="0"> <mxGeometry x="-0.7446" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-4" value="Component" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="-820" y="-390" width="125" height="370" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.525;entryY=0.813;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-10" target="DKWFivreG9tPJ3AW_U5m-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-30" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-29" vertex="1" connectable="0"> <mxGeometry x="-0.1871" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-10" value="Feature Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-380" y="-745" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.508;entryY=0.9;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-11" target="DKWFivreG9tPJ3AW_U5m-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-37" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-36" vertex="1" connectable="0"> <mxGeometry x="-0.2531" y="-2" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-14" value="mitigates" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;exitX=1;exitY=0.625;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-11" target="E6zD7x6681FsFhgOgvuB-3" edge="1"> <mxGeometry x="0.9115" y="10" relative="1" as="geometry"> <Array as="points"> <mxPoint x="110" y="-320" /> <mxPoint x="110" y="-140" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-11" value="Component Requirements" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-380" y="-370" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.733;entryY=0.7;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-13" target="DKWFivreG9tPJ3AW_U5m-11" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-24" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-23" vertex="1" connectable="0"> <mxGeometry x="-0.0524" relative="1" as="geometry"> <mxPoint x="-44" y="-52" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-35" value="satisfies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.497;entryY=0.862;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-13" target="DKWFivreG9tPJ3AW_U5m-14" edge="1"> <mxGeometry x="0.5213" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-13" value="Component&lt;br&gt;&amp;nbsp;Architecture" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-110" y="-250" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.692;entryY=0.713;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-14" target="DKWFivreG9tPJ3AW_U5m-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-32" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-31" vertex="1" connectable="0"> <mxGeometry x="-0.2063" y="-1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.333;entryY=0.983;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-15" target="DKWFivreG9tPJ3AW_U5m-11" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-39" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="DKWFivreG9tPJ3AW_U5m-38" vertex="1" connectable="0"> <mxGeometry x="-0.1182" y="-1" relative="1" as="geometry"> <mxPoint x="-11" y="-176" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-40" value="satisfies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.508;entryY=0.831;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-15" target="DKWFivreG9tPJ3AW_U5m-13" edge="1"> <mxGeometry x="0.7473" y="1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-15" value="Implementation" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-250" y="19" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-17" value="Component Architecture&lt;br&gt;Verification Measures" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-262" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-19" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="DKWFivreG9tPJ3AW_U5m-18" edge="1"> <mxGeometry x="-0.7143" y="-10" relative="1" as="geometry"> <mxPoint x="-260" y="-340" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-18" value="Component Requirements&lt;br&gt;Verification Measures" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-380" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-20" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.996;entryY=0.352;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-17" target="DKWFivreG9tPJ3AW_U5m-13" edge="1"> <mxGeometry x="-0.4526" y="-10" relative="1" as="geometry"> <mxPoint x="180" y="-320" as="sourcePoint" /> <mxPoint x="-140" y="-320" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-41" value="ASPICE" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-1080" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-42" value="ISO 26262" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="710" y="-1080" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-43" value="Part 4" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="710" y="-1010" width="120" height="220" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-44" value="Part 6" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="710" y="-780" width="120" height="930" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-45" value="SWE.1,6" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-377" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-46" value="SWE.2,5" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-255" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-47" value="SWE.3,4" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="25" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-57" value="ISO 21434" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="860" y="-1080" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-59" value="Clause 10" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="870" y="-780" width="120" height="930" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-1" value="Module Safety Manual" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-640" y="-372" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.019;entryY=0.167;entryDx=0;entryDy=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-2" target="DKWFivreG9tPJ3AW_U5m-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-6" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-5" vertex="1" connectable="0"> <mxGeometry x="-0.6341" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.409;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="1HuV_3KbINTHhJpnpn9_-28" target="DKWFivreG9tPJ3AW_U5m-14" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-8" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-7" vertex="1" connectable="0"> <mxGeometry x="-0.4268" relative="1" as="geometry"> <mxPoint y="-10" as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-2" value="Platform Test" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-896" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-11" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.859;entryY=0.737;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-3" target="DKWFivreG9tPJ3AW_U5m-13" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-3" value="Component&lt;br&gt;Safety Analysis" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="305" y="-160" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.692;exitY=0.727;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.532;entryY=0.815;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-4" target="E6zD7x6681FsFhgOgvuB-3" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="363" y="-110" as="targetPoint" /> <Array as="points"> <mxPoint x="-437" y="-40" /> <mxPoint x="369" y="-40" /> </Array> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-16" value="mitigates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="E6zD7x6681FsFhgOgvuB-15" vertex="1" connectable="0"> <mxGeometry x="-0.0928" y="1" relative="1" as="geometry"> <mxPoint x="449" y="-13" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DKWFivreG9tPJ3AW_U5m-14" value="Feature&lt;br&gt;Architecture" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-110" y="-635" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.483;entryY=0.867;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="E6zD7x6681FsFhgOgvuB-25" target="1HuV_3KbINTHhJpnpn9_-55" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-65" value="satisfies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1HuV_3KbINTHhJpnpn9_-62" vertex="1" connectable="0"> <mxGeometry x="-0.8132" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-25" value="Unit" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="-820" y="-1" width="125" height="150" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-26" value="ISO/PAS 8926" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="1030" y="-1080" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="E6zD7x6681FsFhgOgvuB-27" value="Clause 4" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="1030" y="-390" width="120" height="540" as="geometry" /> </mxCell> <mxCell id="0OzCtDxK0i0DIKa0IOpE-4" value="&lt;div style=&quot;font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 19px;&quot;&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=6;fontColor=#000000;" parent="1" vertex="1"> <mxGeometry x="-335" y="-710" width="20" height="30" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-59" value="satisfies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.49;entryY=0.856;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="1HuV_3KbINTHhJpnpn9_-13" target="1HuV_3KbINTHhJpnpn9_-55" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="-966" y="-900" /> </Array> </mxGeometry> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-13" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Platform&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="-820" y="-1010" width="125" height="220" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-22" value="satisfies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.532;entryY=0.815;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-2" target="1HuV_3KbINTHhJpnpn9_-21" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="-556" y="-890" as="sourcePoint" /> <Array as="points"> <mxPoint x="-323" y="-910" /> <mxPoint x="-556" y="-910" /> </Array> </mxGeometry> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-21" value="Overview" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-620" y="-1000" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-23" value="SWE.1, 6" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-765" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-24" value="SWE.2,5" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="530" y="-630" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="DKWFivreG9tPJ3AW_U5m-15" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="300" y="59" as="sourcePoint" /> <Array as="points"> <mxPoint x="250" y="59" /> <mxPoint x="250" y="59" /> </Array> </mxGeometry> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-50" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1HuV_3KbINTHhJpnpn9_-26" vertex="1" connectable="0"> <mxGeometry x="-0.2465" y="-1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-25" value="Unit&lt;br&gt;Verification Measures" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="305" y="19" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="1HuV_3KbINTHhJpnpn9_-27" target="DKWFivreG9tPJ3AW_U5m-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-30" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1HuV_3KbINTHhJpnpn9_-29" vertex="1" connectable="0"> <mxGeometry x="-0.775" y="1" relative="1" as="geometry"> <mxPoint y="-11" as="offset" /> </mxGeometry> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-27" value="Feature Requirements&lt;br&gt;Verification Measures" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-765" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-28" value="Feature Architecture&lt;br&gt;Verification Measures" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-643" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-46" value="Filename: wp__traceability_model.drawio&lt;br&gt;Author: S-CORE&lt;br&gt;Version 16.12.2024&lt;br&gt;Status: In Review" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="-1034" y="-1220" width="315" height="60" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-51" value="Contribution&lt;br&gt;Request" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-1020" y="-1130" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-56" value="satisfies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.467;entryY=0.875;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="1HuV_3KbINTHhJpnpn9_-55" target="1HuV_3KbINTHhJpnpn9_-51" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="1HuV_3KbINTHhJpnpn9_-55" value="Issue Tracking System" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-1025" y="-1000" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-1" value="Feature&lt;br&gt;Safety Analysis" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="300" y="-540" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-2" value="Feature&lt;br&gt;Assumption of use" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-500" y="-640" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.65;entryY=0.775;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0.825;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-2" target="tyBHiRBJImQJOawUhfXX-1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="379" y="-503" as="targetPoint" /> <Array as="points"> <mxPoint x="-440" y="-420" /> <mxPoint x="378" y="-420" /> </Array> <mxPoint x="-427" y="-620" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-6" value="mitigates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-5" vertex="1" connectable="0"> <mxGeometry x="-0.0928" y="1" relative="1" as="geometry"> <mxPoint x="449" y="-13" as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-7" value="Platform Safety Manual" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" parent="1" vertex="1"> <mxGeometry x="-618" y="-890" width="120" height="80" as="geometry" /> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-8" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0.25;exitY=1.05;exitDx=0;exitDy=0;entryX=0.542;entryY=0.775;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-2" target="tyBHiRBJImQJOawUhfXX-7" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="-470" y="-420" /> <mxPoint x="-553" y="-420" /> </Array> <mxPoint x="-452" y="-188" as="sourcePoint" /> <mxPoint x="-569" y="-292" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-9" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-8" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-10" value="i" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-2" target="tyBHiRBJImQJOawUhfXX-7" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points" /> <mxPoint x="-460" y="-546" as="sourcePoint" /> <mxPoint x="-543" y="-818" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-11" value="contains" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="tyBHiRBJImQJOawUhfXX-10" vertex="1" connectable="0"> <mxGeometry x="0.4419" relative="1" as="geometry"> <mxPoint x="-1" y="5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-13" value="mitigates" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.025;entryY=0.375;entryDx=0;entryDy=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryPerimeter=0;" parent="1" source="DKWFivreG9tPJ3AW_U5m-10" target="tyBHiRBJImQJOawUhfXX-1" edge="1"> <mxGeometry x="0.9115" y="10" relative="1" as="geometry"> <Array as="points"> <mxPoint x="170" y="-685" /> <mxPoint x="170" y="-510" /> </Array> <mxPoint as="offset" /> <mxPoint x="-250" y="-310" as="sourcePoint" /> <mxPoint x="315" y="-130" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="tyBHiRBJImQJOawUhfXX-15" value="verifies" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.733;entryY=0.713;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.017;exitY=0.613;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="tyBHiRBJImQJOawUhfXX-1" target="DKWFivreG9tPJ3AW_U5m-14" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="315" y="-110" as="sourcePoint" /> <mxPoint x="3" y="-181" as="targetPoint" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><rect x="374" y="210" width="1150" height="220" fill="#b1ddf0" stroke="#10739e" stroke-dasharray="3 3" pointer-events="all"/><rect x="1564" y="440" width="120" height="930" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="374" y="1219" width="1150" height="150" fill="#f5f5f5" stroke="#666666" stroke-dasharray="3 3" pointer-events="all"/><rect x="374" y="445" width="1150" height="375" fill="#fff2cc" stroke="#d6b656" stroke-dasharray="3 3" pointer-events="all"/><rect x="374" y="830" width="1150" height="370" fill="#d5e8d4" stroke="#82b366" stroke-dasharray="3 3" pointer-events="all"/><path d="M 572.44 1028.77 L 572.4 1180 L 454.7 1180 L 454.72 917.92" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 572.44 1023.52 L 575.94 1030.52 L 572.44 1028.77 L 568.94 1030.52 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1180px; margin-left: 461px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="461" y="1183" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1074px; margin-left: 454px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="454" y="1077" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 514 950 L 634 950 L 634 1018 Q 604 996.4 574 1018 Q 544 1039.6 514 1018 L 514 962 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 978px; margin-left: 515px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Assumption of use</div></div></div></foreignObject><text x="574" y="982" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Assumption...</text></switch></g><path d="M 651 330 L 771 330 L 771 398 Q 741 376.4 711 398 Q 681 419.6 651 398 L 651 342 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 358px; margin-left: 652px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Stakeholder<br />Requirements</div></div></div></foreignObject><text x="711" y="362" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Stakeholder...</text></switch></g><path d="M 214 632.5 L 68.6 632.5 L 68.64 294.85" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 68.64 289.6 L 72.14 296.6 L 68.64 294.85 L 65.14 296.6 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 633px; margin-left: 115px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="115" y="636" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><rect x="214" y="445" width="125" height="375" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 123px; height: 1px; padding-top: 633px; margin-left: 215px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature</div></div></div></foreignObject><text x="277" y="636" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature</text></switch></g><path d="M 214 1015 L 67.8 1015 L 67.8 294.05" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 67.8 288.8 L 71.3 295.8 L 67.8 294.05 L 64.3 295.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1016px; margin-left: 103px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="103" y="1019" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><rect x="214" y="830" width="125" height="370" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 123px; height: 1px; padding-top: 1015px; margin-left: 215px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component</div></div></div></foreignObject><text x="277" y="1019" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component</text></switch></g><path d="M 714 475 L 714 401.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 714 396.16 L 717.5 403.16 L 714 401.41 L 710.5 403.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 444px; margin-left: 715px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="715" y="447" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 654 475 L 774 475 L 774 543 Q 744 521.4 714 543 Q 684 564.6 654 543 L 654 487 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 503px; margin-left: 655px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature Requirements</div></div></div></foreignObject><text x="714" y="507" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature Requirements</text></switch></g><path d="M 714 850 L 714 702.5 L 715 702.5 L 714.96 553.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 714.96 548.12 L 718.46 555.12 L 714.96 553.37 L 711.46 555.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 737px; margin-left: 717px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="717" y="740" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 774 900 L 1144 900 L 1144 1080 L 1332.63 1080" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1337.88 1080 L 1330.88 1083.5 L 1332.63 1080 L 1330.88 1076.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1070px; margin-left: 1306px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="1306" y="1073" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 654 850 L 774 850 L 774 918 Q 744 896.4 714 918 Q 684 939.6 654 918 L 654 862 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 878px; margin-left: 655px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Requirements</div></div></div></foreignObject><text x="714" y="882" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Requiremen...</text></switch></g><path d="M 924 1010 L 742 1010 L 741.96 912.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 741.96 907.12 L 745.46 914.12 L 741.96 912.37 L 738.46 914.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 959px; margin-left: 745px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="745" y="962" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 984 970 L 984 817.5 L 983.65 660.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 983.64 655.08 L 987.16 662.07 L 983.65 660.33 L 980.16 662.09 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 729px; margin-left: 984px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="984" y="733" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 924 970 L 1044 970 L 1044 1038 Q 1014 1016.4 984 1038 Q 954 1059.6 924 1038 L 924 982 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 998px; margin-left: 925px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component<br /> Architecture</div></div></div></foreignObject><text x="984" y="1002" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component...</text></switch></g><path d="M 924 625 L 737 625 L 737.04 538.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 737.04 533.16 L 740.54 540.16 L 737.04 538.41 L 733.54 540.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 625px; margin-left: 814px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="814" y="628" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 784 1279 L 694 1279 L 693.96 935.01" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 693.96 929.76 L 697.46 936.76 L 693.96 935.01 L 690.46 936.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 999px; margin-left: 684px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">implements</div></div></div></foreignObject><text x="684" y="1003" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">implements</text></switch></g><path d="M 904 1279 L 985 1279 L 984.96 1042.85" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 984.96 1037.6 L 988.46 1044.6 L 984.96 1042.85 L 981.46 1044.6 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1077px; margin-left: 984px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="984" y="1080" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 784 1239 L 904 1239 L 904 1307 Q 874 1285.4 844 1307 Q 814 1328.6 784 1307 L 784 1251 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1267px; margin-left: 785px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Implementation</div></div></div></foreignObject><text x="844" y="1271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Implementation</text></switch></g><path d="M 1334 958 L 1454 958 L 1454 1026 Q 1424 1004.4 1394 1026 Q 1364 1047.6 1334 1026 L 1334 970 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 986px; margin-left: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Architecture<br />Verification Measures</div></div></div></foreignObject><text x="1394" y="990" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Architectu...</text></switch></g><path d="M 1334 880 L 1054.5 880 L 780.37 880" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 775.12 880 L 782.12 876.5 L 780.37 880 L 782.12 883.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 870px; margin-left: 1254px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1254" y="873" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1334 840 L 1454 840 L 1454 908 Q 1424 886.4 1394 908 Q 1364 929.6 1334 908 L 1334 852 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 868px; margin-left: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component Requirements<br />Verification Measures</div></div></div></foreignObject><text x="1394" y="872" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component Requiremen...</text></switch></g><path d="M 1334 998 L 1189 998 L 1049.89 998.15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1044.64 998.16 L 1051.63 994.65 L 1049.89 998.15 L 1051.64 1001.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 988px; margin-left: 1254px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1254" y="991" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><rect x="1564" y="140" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 170px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ASPICE</div></div></div></foreignObject><text x="1624" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ASPICE</text></switch></g><rect x="1744" y="140" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 170px; margin-left: 1745px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISO 26262</div></div></div></foreignObject><text x="1804" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISO 26262</text></switch></g><rect x="1744" y="210" width="120" height="220" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 320px; margin-left: 1745px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Part 4</div></div></div></foreignObject><text x="1804" y="324" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Part 4</text></switch></g><rect x="1744" y="440" width="120" height="930" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 905px; margin-left: 1745px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Part 6</div></div></div></foreignObject><text x="1804" y="909" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Part 6</text></switch></g><rect x="1564" y="843" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 873px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SWE.1,6</div></div></div></foreignObject><text x="1624" y="877" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SWE.1,6</text></switch></g><rect x="1564" y="965" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 995px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SWE.2,5</div></div></div></foreignObject><text x="1624" y="999" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SWE.2,5</text></switch></g><rect x="1564" y="1245" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1275px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SWE.3,4</div></div></div></foreignObject><text x="1624" y="1279" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SWE.3,4</text></switch></g><rect x="1894" y="140" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 170px; margin-left: 1895px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISO 21434</div></div></div></foreignObject><text x="1954" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISO 21434</text></switch></g><rect x="1904" y="440" width="120" height="930" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 905px; margin-left: 1905px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clause 10</div></div></div></foreignObject><text x="1964" y="909" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Clause 10</text></switch></g><path d="M 394 848 L 514 848 L 514 916 Q 484 894.4 454 916 Q 424 937.6 394 916 L 394 860 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 876px; margin-left: 395px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Module Safety Manual</div></div></div></foreignObject><text x="454" y="880" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Module Safety Manual</text></switch></g><path d="M 1334 344 L 1052.5 344 L 779.65 343.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 774.4 343.36 L 781.41 339.88 L 779.65 343.37 L 781.39 346.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 345px; margin-left: 1232px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1232" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1334 617 L 1189 617 L 1050.37 617.69" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1045.12 617.71 L 1052.1 614.18 L 1050.37 617.69 L 1052.14 621.18 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 608px; margin-left: 1252px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1252" y="611" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1334 324 L 1454 324 L 1454 392 Q 1424 370.4 1394 392 Q 1364 413.6 1334 392 L 1334 336 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 352px; margin-left: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Platform Test</div></div></div></foreignObject><text x="1394" y="356" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Platform Test</text></switch></g><path d="M 1339 1100 L 1027.1 1100 L 1027.08 1035.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1027.08 1030.08 L 1030.58 1037.08 L 1027.08 1035.33 L 1023.58 1037.08 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1100px; margin-left: 1148px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1148" y="1103" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1339 1060 L 1459 1060 L 1459 1128 Q 1429 1106.4 1399 1128 Q 1369 1149.6 1339 1128 L 1339 1072 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1088px; margin-left: 1340px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Component<br />Safety Analysis</div></div></div></foreignObject><text x="1399" y="1092" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Component...</text></switch></g><path d="M 597.04 1008.16 L 597 1180 L 1402.8 1180 L 1402.84 1131.57" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1402.84 1126.32 L 1406.33 1133.32 L 1402.84 1131.57 L 1399.33 1133.32 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1167px; margin-left: 1343px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="1343" y="1170" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 924 585 L 1044 585 L 1044 653 Q 1014 631.4 984 653 Q 954 674.6 924 653 L 924 597 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 613px; margin-left: 925px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Architecture</div></div></div></foreignObject><text x="984" y="617" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><path d="M 214 1294 L 67 1294 L 66.96 295.73" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 66.96 290.48 L 70.46 297.48 L 66.96 295.73 L 63.46 297.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1295px; margin-left: 107px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="107" y="1298" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><rect x="214" y="1219" width="125" height="150" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 123px; height: 1px; padding-top: 1294px; margin-left: 215px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Unit</div></div></div></foreignObject><text x="277" y="1298" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Unit</text></switch></g><rect x="2064" y="140" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 170px; margin-left: 2065px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISO/PAS 8926</div></div></div></foreignObject><text x="2124" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISO/PAS 8926</text></switch></g><rect x="2064" y="830" width="120" height="540" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1100px; margin-left: 2065px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clause 4</div></div></div></foreignObject><text x="2124" y="1104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Clause 4</text></switch></g><rect x="699" y="510" width="20" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 525px; margin-left: 709px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 6px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 19px;"><br /></div></div></div></div></foreignObject><text x="709" y="527" fill="#000000" font-family="Helvetica" font-size="6px" text-anchor="middle"> </text></switch></g><path d="M 214 320 L 67.8 320 L 67.8 294.85" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 67.8 289.6 L 71.3 296.6 L 67.8 294.85 L 64.3 296.6 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 320px; margin-left: 125px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="125" y="323" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><rect x="214" y="210" width="125" height="220" fill="#b1ddf0" stroke="#10739e" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 123px; height: 1px; padding-top: 320px; margin-left: 215px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br />Platform<br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="277" y="324" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Platform...</text></switch></g><path d="M 711 330 L 711 310 L 477.8 310 L 477.83 291.57" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 477.84 286.32 L 481.33 293.32 L 477.83 291.57 L 474.33 293.31 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 310px; margin-left: 592px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="592" y="313" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 414 220 L 534 220 L 534 288 Q 504 266.4 474 288 Q 444 309.6 414 288 L 414 232 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 415px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Overview</div></div></div></foreignObject><text x="474" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Overview</text></switch></g><rect x="1564" y="455" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 485px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SWE.1, 6</div></div></div></foreignObject><text x="1624" y="489" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SWE.1, 6</text></switch></g><rect x="1564" y="590" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 620px; margin-left: 1565px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SWE.2,5</div></div></div></foreignObject><text x="1624" y="624" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SWE.2,5</text></switch></g><path d="M 1334 1279 L 1284 1279 L 910.37 1279" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 905.12 1279 L 912.12 1275.5 L 910.37 1279 L 912.12 1282.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1279px; margin-left: 1173px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1173" y="1282" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1339 1239 L 1459 1239 L 1459 1307 Q 1429 1285.4 1399 1307 Q 1369 1328.6 1339 1307 L 1339 1251 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1267px; margin-left: 1340px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Unit<br />Verification Measures</div></div></div></foreignObject><text x="1399" y="1271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Unit...</text></switch></g><path d="M 1334 495 L 780.37 495" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 775.12 495 L 782.12 491.5 L 780.37 495 L 782.12 498.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 486px; margin-left: 1272px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1272" y="489" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1334 455 L 1454 455 L 1454 523 Q 1424 501.4 1394 523 Q 1364 544.6 1334 523 L 1334 467 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 483px; margin-left: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature Requirements<br />Verification Measures</div></div></div></foreignObject><text x="1394" y="487" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature Requirements...</text></switch></g><path d="M 1334 577 L 1454 577 L 1454 645 Q 1424 623.4 1394 645 Q 1364 666.6 1334 645 L 1334 589 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature Architecture<br />Verification Measures</div></div></div></foreignObject><text x="1394" y="609" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature Architecture...</text></switch></g><rect x="0" y="0" width="315" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 313px; height: 1px; padding-top: 30px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Filename: wp__traceability_model.drawio<br />Author: S-CORE<br />Version 16.12.2024<br />Status: In Review</div></div></div></foreignObject><text x="2" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Filename: wp__traceability_model.drawio...</text></switch></g><path d="M 14 90 L 134 90 L 134 158 Q 104 136.4 74 158 Q 44 179.6 14 158 L 14 102 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 118px; margin-left: 15px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Contribution<br />Request</div></div></div></foreignObject><text x="74" y="122" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Contribution...</text></switch></g><path d="M 69 220 L 69 195 L 70 195 L 70.03 166.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 70.04 161.12 L 73.53 168.12 L 70.03 166.37 L 66.53 168.11 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 190px; margin-left: 70px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satisfies</div></div></div></foreignObject><text x="70" y="193" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satisfies</text></switch></g><path d="M 9 220 L 129 220 L 129 288 Q 99 266.4 69 288 Q 39 309.6 9 288 L 9 232 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 10px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Issue Tracking System</div></div></div></foreignObject><text x="69" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Issue Tracking System</text></switch></g><path d="M 1334 680 L 1454 680 L 1454 748 Q 1424 726.4 1394 748 Q 1364 769.6 1334 748 L 1334 692 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 708px; margin-left: 1335px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Safety Analysis</div></div></div></foreignObject><text x="1394" y="712" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><path d="M 534 580 L 654 580 L 654 648 Q 624 626.4 594 648 Q 564 669.6 534 648 L 534 592 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 608px; margin-left: 535px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feature<br />Assumption of use</div></div></div></foreignObject><text x="594" y="612" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Feature...</text></switch></g><path d="M 594 646 L 594 800 L 1412 800 L 1412 748.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1412 743.12 L 1415.5 750.12 L 1412 748.37 L 1408.5 750.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 787px; margin-left: 1357px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="1357" y="790" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 416 330 L 536 330 L 536 398 Q 506 376.4 476 398 Q 446 419.6 416 398 L 416 342 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 358px; margin-left: 417px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Platform Safety Manual</div></div></div></foreignObject><text x="476" y="362" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Platform Safety Manu...</text></switch></g><path d="M 564 670.37 L 564 800 L 481 800 L 481.04 392" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 564 665.12 L 567.5 672.12 L 564 670.37 L 560.5 672.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 705px; margin-left: 481px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="481" y="708" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 573px; margin-left: 481px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="481" y="576" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 644.63 370 L 536 370" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 649.88 370 L 642.88 373.5 L 644.63 370 L 642.88 366.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 593px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">i</div></div></div></foreignObject><text x="593" y="373" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">i</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 376px; margin-left: 568px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">contains</div></div></div></foreignObject><text x="568" y="379" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">contains</text></switch></g><path d="M 774 535 L 1204 535 L 1204 710 L 1324.63 710" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1329.88 710 L 1322.88 713.5 L 1324.63 710 L 1322.88 706.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 700px; margin-left: 1299px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigates</div></div></div></foreignObject><text x="1299" y="703" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigates</text></switch></g><path d="M 1331.96 729.04 L 1012 729 L 1011.96 648.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1011.96 643.16 L 1015.46 650.16 L 1011.96 648.41 L 1008.46 650.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 729px; margin-left: 1129px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1129" y="732" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></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> diff --git a/docs/process/workproducts/index.rst b/docs/process/workproducts/index.rst deleted file mode 100644 index 47cd82b15e..0000000000 --- a/docs/process/workproducts/index.rst +++ /dev/null @@ -1,199 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* - -Workproducts -============ - - -.. figure:: _assets/wp_traceability_model.drawio.svg - :width: 100% - :align: center - :alt: Project work product traceability model - :name: wp_traceability_model - - Project development work product traceability model - - -Platform management --------------------- - -General -^^^^^^^ - -.. workproduct:: Policies - :id: wp__policies - :status: draft - :tags: requirements_management - :complies: std_wp__iso26262__management_551 - - Policies for functional safety and cybersecurity. - -.. workproduct:: Training path - :id: wp__training_path - :status: draft - :tags: safety - :complies: std_wp__iso26262__management_552 - - Trainings for safety and security for S-CORE - -.. workproduct:: Quality management plan - :id: wp__qms - :status: draft - :tags: safety - :complies: std_wp__iso26262__management_553 - - Quality management process descriptions and definitions - -.. workproduct:: Quality report - :id: wp__qms_report - :status: draft - :tags: safety - :complies: std_wp__iso26262__management_553 - - | Evidence of quality conformance: - | * Identifies what tasks/activities/process produce the information - | * Identifies when the data was collected - | * Identifies source of any associated data - | * Identifies the associated quality criteria - | * Identifies any associated measurements using the information - -Process -^^^^^^^ - -.. workproduct:: Process Definition - :id: wp__process_definition - :status: draft - :tags: process - - Process definitions. - -.. workproduct:: Process Improvement Report - :id: wp__process_impr_report - :status: draft - :tags: process - - Process improvement report. - -.. workproduct:: Process Management Strategy - :id: wp__process_plan - :status: draft - :tags: process - - Plan to manage and guide execution of the process management activities. - - -Product development -------------------- - -Platform development -^^^^^^^^^^^^^^^^^^^^ - -.. workproduct:: Feature Safety Analysis - :id: wp__feature_safety_analysis - :status: draft - :tags: safety - :complies: std_wp__iso26262__analysis_851, std_wp__iso26262__software_752 - - 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 Assumptions of Use - -.. workproduct:: Feature DFA - :id: wp__feature_dfa - :status: draft - :tags: safety - :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753 - - Dependent Failure Analysis on platform/feature level - - Detection and prevention mitigations linked to Software Feature Requirements or Assumptions of Use - Perform analysis on interactions between safety related and non-safety related modules or modules with different ASIL of one feature. Including potential influences from the rest of the SW platform. - -.. workproduct:: Platform Build Configuration - :id: wp__platform_sw_build_config - :status: draft - :tags: safety - :complies: std_wp__iso26262__software_1052 - - Build configuration capable to create the SEooC Library for the reference HW, platform level. - Note: Embedded software in the sense of the Iso (i.e. deployed on the production HW) is not part of our delivery. - -.. workproduct:: Hardware-software interface document - :id: wp__hsi - :status: draft - :tags: safety - :complies: std_wp__iso26262__software_652, std_wp__isopas8926__4522 - - | The document shall specify the hardware and software interaction and be consistent with the safety concept. - | It shall include the platform's hardware parts that are controlled by software and hardware resources that support the execution of the software. - - -Component development -^^^^^^^^^^^^^^^^^^^^^ - -.. workproduct:: Component Safety Analysis - :id: wp__sw_component_safety_analysis - :status: draft - :tags: safety - :complies: std_wp__iso26262__analysis_851, std_wp__iso26262__software_752, 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 - -.. workproduct:: Component DFA - :id: wp__sw_component_dfa - :status: draft - :tags: safety - :complies: std_wp__iso26262__analysis_751, std_wp__iso26262__software_753 - - 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. - -.. workproduct:: Module Build Configuration - :id: wp__module_sw_build_config - :status: draft - :tags: safety - :complies: std_wp__iso26262__software_1052 - - Build configuration capable to create the SEooC Library for the reference HW, module level. - Note: Embedded software in the sense of the Iso (i.e. deployed on the production HW) is not part of our delivery. - - -Supporting activities ---------------------- - - - -S-CORE Work product Linkage ---------------------------- - -.. needpie:: S-CORE workproducts contained in exactly one S-CORE workflow - :labels: Not-Linked, Linked Workproduct, Linked Workproduct To Multiple Workflows - :legend: - :colors: red, green, blue - :filter-func: score_metamodel.checks.standards.my_pie_workproducts_contained_in_exactly_one_workflow - -S-CORE Work product list ------------------------- - -.. needtable:: - :style: table - :columns: title;id;tags - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["workproduct"]): - results.append(need) From 9133015019562e25873dc85ef2b321db6c88af79 Mon Sep 17 00:00:00 2001 From: "markus.schu" <markus.schu@accenture.com> Date: Wed, 4 Jun 2025 14:56:59 +0200 Subject: [PATCH 7/8] fix broken links to process_description --- docs/index.rst | 2 +- docs/platform_management_plan/change_management.rst | 2 +- docs/platform_management_plan/safety_management.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 4140f4a77f..ebaf238ed1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -112,7 +112,7 @@ Project structure and processes Process ^^^ - Understand how we work, by reading our `Process description <REPLACE_process_description>`. + Understand how we work, by reading our `Process description <https://eclipse-score.github.io/process_description/main/index.html>`_. And receive tips & tricks for our used tool stack by reading the :ref:`contribute`. diff --git a/docs/platform_management_plan/change_management.rst b/docs/platform_management_plan/change_management.rst index f77f1055e8..7021c03397 100644 --- a/docs/platform_management_plan/change_management.rst +++ b/docs/platform_management_plan/change_management.rst @@ -288,5 +288,5 @@ Change Management SW Platform Work Products - :need:`PROCESS_wf__def_app_process_definition` - :ndf:`copy('status', need_id='PROCESS_wf__def_app_process_definition')` - `Process community issues <https://github.com/orgs/eclipse-score/projects/7>`_ - - `REPLACE_process_description` + - `Process description <https://eclipse-score.github.io/process_description/main/index.html>`_ - <automated> diff --git a/docs/platform_management_plan/safety_management.rst b/docs/platform_management_plan/safety_management.rst index 458214c506..44808adceb 100644 --- a/docs/platform_management_plan/safety_management.rst +++ b/docs/platform_management_plan/safety_management.rst @@ -335,7 +335,7 @@ Functional Safety Management SW Platform Work Products - :need:`PROCESS_wf__def_app_process_definition` - :ndf:`copy('status', need_id='PROCESS_wf__def_app_process_definition')` - `Process community issues <https://github.com/orgs/eclipse-score/projects/7>`_ - - `REPLACE_process_description` + - `Process description <https://eclipse-score.github.io/process_description/main/index.html>`_ - <automated> * - :need:`PROCESS_wp__process_impr_report` From 40dd3751d43586168d5187e69a00c12ab0ba4aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20S=C3=B6ren=20Pollak?= <maximilian.pollak@expleogroup.com> Date: Fri, 6 Jun 2025 10:06:20 +0200 Subject: [PATCH 8/8] Enable external needs json & increase versions (#1201) * Adding comment with explanation * Increase version according to new release Increasing docs-as-code version Increasing own module version --- MODULE.bazel | 4 ++-- docs/conf.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 41ad565594..bf6d0c3344 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -13,7 +13,7 @@ module( name = "score_platform", - version = "0.1.1", + version = "0.2.0", compatibility_level = 0, ) @@ -90,5 +90,5 @@ bazel_dep(name = "score_cr_checker", version = "0.2.2") bazel_dep(name = "score_starpls_lsp", version = "0.1.0") # Checker rule for CopyRight checks/fixs -bazel_dep(name = "score_docs_as_code", version = "0.3.2") +bazel_dep(name = "score_docs_as_code", version = "0.3.3") bazel_dep(name = "score_process", version = "0.2.0") diff --git a/docs/conf.py b/docs/conf.py index 0ba38ba39b..43b53ab640 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -68,3 +68,5 @@ "options": ["source_code_link"], }, } +# This ensures all needs that are imported show up in the build 'needs.json' +needs_builder_filter = ""