From a9e3f1290eace91cabf193ca77431e75bbe96dec Mon Sep 17 00:00:00 2001 From: "rahul.singh" Date: Mon, 23 Mar 2026 08:03:22 +0100 Subject: [PATCH 1/2] rename relations for Codebeamer compatibility --- src/extensions/score_metamodel/metamodel.yaml | 50 +++++++++++++------ 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index 98f39f35..bf98505c 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -124,8 +124,8 @@ needs_types: mandatory_options: content: ^[\s\S]+$ optional_links: - # req-Id: tool_req__docs_req_link_satisfies_allowed - # TODO: fix once process_description is fixed + # req-Id: tool_req__docs_req_link_derived_from_allowed + derived_from: workflow satisfies: workflow complies: std_req tags: @@ -286,8 +286,11 @@ needs_types: status: ^(valid|invalid)$ content: ^[\s\S]+$ mandatory_links: - # req-Id: tool_req__docs_req_link_satisfies_allowed + # req-Id: tool_req__docs_req_link_derived_from_allowed + derived_from: stkh_req + optional_links: satisfies: stkh_req + belongs_to: feat # for evaluation optional_options: codelink: ^.*$ testlink: ^.*$ @@ -299,8 +302,6 @@ needs_types: # req-Id: tool_req__docs_req_attr_validity_correctness valid_from: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)(\.(0|[1-9]\d*))?$ valid_until: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)(\.(0|[1-9]\d*))?$ - optional_links: - belongs_to: feat # for evaluation tags: - requirement - requirement_excl_process @@ -320,9 +321,11 @@ needs_types: status: ^(valid|invalid)$ content: ^[\s\S]+$ mandatory_links: - # req-Id: tool_req__docs_req_link_satisfies_allowed - satisfies: feat_req + # req-Id: tool_req__docs_req_link_derived_from_allowed + derived_from: feat_req belongs_to: comp + optional_links: + satisfies: feat_req optional_options: codelink: ^.*$ testlink: ^.*$ @@ -342,8 +345,9 @@ needs_types: mandatory_options: content: ^[\s\S]+$ optional_links: - # req-Id: tool_req__docs_req_link_satisfies_allowed + # req-Id: tool_req__docs_req_link_derived_from_allowed # TODO: make it mandatory + derived_from: gd_req, stkh_req satisfies: gd_req, stkh_req optional_options: codelink: ^.*$ @@ -430,8 +434,10 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: includes: ^logic_arc_int(_op)*__.+$ - fulfils: feat_req + satisfies: feat_req belongs_to: feat # make it mandatory for evaluation + optional_links: + fulfils: feat_req tags: - architecture_element - architecture_view @@ -451,8 +457,10 @@ needs_types: # req-Id: tool_req__docs_common_attr_status status: ^(valid|invalid)$ mandatory_links: - fulfils: feat_req + satisfies: feat_req belongs_to: feat + optional_links: + fulfils: feat_req tags: - architecture_view - architecture_element @@ -474,6 +482,7 @@ needs_types: status: ^(valid|invalid)$ optional_links: includes: logic_arc_int_op + satisfies: feat_req fulfils: feat_req tags: - architecture_element @@ -578,9 +587,10 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: belongs_to: comp - fulfils: comp_req + satisfies: comp_req optional_links: uses: logic_arc_int, real_arc_int_op + fulfils: comp_req tags: - architecture_view parts: 3 @@ -600,6 +610,8 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: belongs_to: comp + satisfies: comp_req + optional_links: fulfils: comp_req tags: - architecture_view @@ -621,6 +633,7 @@ needs_types: status: ^(valid|invalid)$ language: ^(cpp|rust)$ optional_links: + satisfies: comp_req fulfils: comp_req tags: - architecture_element @@ -920,9 +933,9 @@ needs_extra_links: # S-CORE Metamodel ############################################################## # Requirements - satisfies: - incoming: satisfied by - outgoing: satisfies + derived_from: + incoming: derives + outgoing: derived from # Architecture consists_of: @@ -933,6 +946,11 @@ needs_extra_links: incoming: has outgoing: belongs to + satisfies: + incoming: satisfied by + outgoing: satisfies + + # kept for backward compatibility - old name for satisfies fulfils: incoming: fulfilled by outgoing: fulfils @@ -996,8 +1014,9 @@ graph_checks: include: stkh_req, feat_req, comp_req, aou_req, gd_req, tool_req condition: safety == QM check: + derived_from: safety == QM satisfies: safety == QM - explanation: QM requirements cannot satisfy ASIL requirements. + explanation: QM requirements cannot be derived from ASIL requirements. # req-Id: tool_req__docs_arch_link_qm_to_safety_req tool_req__docs_arch_link_qm_to_safety_req: @@ -1005,6 +1024,7 @@ graph_checks: include: feat_arc_sta, logic_arc_int, logic_arc_int_op, comp_arc_sta, real_arc_int, real_arc_int_op condition: safety == QM check: + satisfies: safety != QM fulfils: safety != QM explanation: An QM architecture element cannot implement ASIL requirements. From 9763c60652fb88296ad37e8db26cbe8260b26125 Mon Sep 17 00:00:00 2001 From: "rahul.singh" Date: Tue, 24 Mar 2026 10:10:50 +0100 Subject: [PATCH 2/2] update test RST files to use new relation names --- .../requirements/process_overview.rst | 6 +- docs/internals/requirements/requirements.rst | 132 +++++++++--------- .../requirements/tool_req_overview.rst | 2 +- src/extensions/score_metamodel/metamodel.yaml | 21 +-- .../rst/architecture/architecture_tests.rst | 10 +- .../test_attributes_external_prefix.rst | 10 +- .../rst/attributes/test_prohibited_words.rst | 2 +- .../tests/rst/graph/test_metamodel_graph.rst | 10 +- .../rst/options/test_options_options.rst | 8 +- 9 files changed, 103 insertions(+), 98 deletions(-) diff --git a/docs/internals/requirements/process_overview.rst b/docs/internals/requirements/process_overview.rst index dc12d86e..ad39382b 100644 --- a/docs/internals/requirements/process_overview.rst +++ b/docs/internals/requirements/process_overview.rst @@ -56,7 +56,7 @@ Unsatisfied – Priority 1 continue if not any(prio in tag for tag in need["tags"]): continue - if len(need["satisfies_back"]) >= 1: + if len(need["derived_from_back"]) >= 1: continue results.append(need) @@ -74,7 +74,7 @@ Unsatisfied – Priority 2 for need in needs.filter_types(["gd_req"]): if not any(prio in tag for tag in need["tags"]): continue - if len(need["satisfies_back"]) >= 1: + if len(need["derived_from_back"]) >= 1: continue results.append(need) @@ -88,7 +88,7 @@ does not mean it is implemented. .. needtable:: :types: gd_req - :columns: id as "Tool Requirement";implemented;satisfies + :columns: id as "Tool Requirement";implemented;derived_from :colwidths: 1;1;2 :style: table diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 31a36bbf..1017c9e2 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -55,7 +55,7 @@ This section provides an overview of current process requirements and their clar :id: tool_req__docs_common_attr_id :implemented: YES :tags: Common Attributes - :satisfies: + :derived_from: gd_req__req_attr_uid, gd_req__tool_attr_uid, gd_req__arch_attribute_uid, @@ -73,7 +73,7 @@ This section provides an overview of current process requirements and their clar :id: tool_req__docs_common_attr_id_scheme :implemented: YES :tags: Common Attributes - :satisfies: + :derived_from: gd_req__req_attr_uid, gd_req__arch_attribute_uid, gd_req__saf_attr_uid, @@ -98,7 +98,7 @@ This section provides an overview of current process requirements and their clar :id: tool_req__docs_common_attr_title :implemented: YES :tags: Common Attributes - :satisfies: + :derived_from: gd_req__req_attr_title, gd_req__saf_attr_title, :parent_covered: NO: Can not ensure summary @@ -119,7 +119,7 @@ This section provides an overview of current process requirements and their clar :tags: Common Attributes :parent_covered: NO: Can not cover 'ISO/IEC/IEEE/29148' :implemented: YES - :satisfies: gd_req__req_attr_description, gd_req__req_check_mandatory, + :derived_from: gd_req__req_attr_description, gd_req__req_check_mandatory, Docs-as-Code shall enforce that each need of type :need:`tool_req__docs_req_types` has a description (content) @@ -128,7 +128,7 @@ This section provides an overview of current process requirements and their clar :id: tool_req__docs_common_attr_desc_wording :tags: Common Attributes :implemented: YES - :satisfies: + :derived_from: gd_req__req_desc_weak, :parent_covered: YES @@ -150,7 +150,7 @@ This section provides an overview of current process requirements and their clar :id: tool_req__docs_common_attr_security :implemented: YES :tags: Common Attributes - :satisfies: + :derived_from: gd_req__req_attr_security, gd_req__arch_attr_security, gd_req__req_check_mandatory, @@ -177,7 +177,7 @@ This section provides an overview of current process requirements and their clar :tags: Common Attributes :implemented: YES :parent_covered: YES - :satisfies: + :derived_from: gd_req__req_check_mandatory, gd_req__req_attr_safety, gd_req__arch_attr_safety @@ -204,7 +204,7 @@ This section provides an overview of current process requirements and their clar :tags: Common Attributes :implemented: YES :parent_covered: NO: gd_req__saf_attr_status has additional constraints - :satisfies: + :derived_from: gd_req__req_attr_status, gd_req__arch_attr_status, gd_req__saf_attr_status, @@ -232,7 +232,7 @@ Versioning :tags: Common Attributes :implemented: NO :parent_covered: NO: to be checked after demo - :satisfies: gd_req__req_attr_version + :derived_from: gd_req__req_attr_version Docs-As-Code shall enable and enforce a versioning attribute for all needs. @@ -246,7 +246,7 @@ Versioning :tags: Common Attributes :implemented: NO :parent_covered: NO: parent talks about setting covered to false, but we want to issue a build error. - :satisfies: gd_req__req_suspicious + :derived_from: gd_req__req_suspicious :status: invalid Docs-as-Code shall check if linked parent needs have different versions, compared to @@ -263,7 +263,7 @@ Versioning :tags: Documents :implemented: YES :parent_covered: YES - :satisfies: gd_req__doc_types + :derived_from: gd_req__doc_types Docs-as-Code shall support the following document types: @@ -275,7 +275,7 @@ Versioning :id: tool_req__docs_doc_generic_mandatory :tags: Documents :implemented: PARTIAL - :satisfies: + :derived_from: gd_req__doc_attributes_manual, gd_req__change_attr_impact_safety :parent_covered: YES @@ -291,7 +291,7 @@ Versioning :id: tool_req__docs_doc_attr :tags: Documents :implemented: NO - :satisfies: + :derived_from: gd_req__doc_author, gd_req__doc_approver, gd_req__doc_reviewer, @@ -312,7 +312,7 @@ Versioning :id: tool_req__docs_doc_attr_author_autofill :tags: Documents :implemented: NO - :satisfies: gd_req__doc_author + :derived_from: gd_req__doc_author :parent_covered: NO, process requirement has changed and we do not understand the new wording. :status: invalid @@ -330,7 +330,7 @@ Versioning :id: tool_req__docs_doc_attr_approver_autofill :tags: Documents :implemented: NO - :satisfies: gd_req__doc_approver + :derived_from: gd_req__doc_approver :parent_covered: NO, process requirement has changed and we do not understand the new wording. :status: invalid @@ -344,7 +344,7 @@ Versioning :id: tool_req__docs_doc_attr_reviewer_autofill :tags: Documents :implemented: NO - :satisfies: gd_req__doc_reviewer + :derived_from: gd_req__doc_reviewer :parent_covered: NO, process requirement has changed and we do not understand the new wording. :status: invalid @@ -361,7 +361,7 @@ Versioning .. needtable:: :style: table :types: gd_req - :columns: id;satisfies_back as "tool_req" + :columns: id;derived_from_back as "tool_req" :filter: "gd_req__doc" in id @@ -376,7 +376,7 @@ Versioning :id: tool_req__docs_req_types :tags: Requirements :implemented: YES - :satisfies: gd_req__req_structure + :derived_from: gd_req__req_structure :parent_covered: YES: Together with tool_req__docs_linkage Docs-as-Code shall support the following requirement types: @@ -397,7 +397,7 @@ Versioning :tags: Requirements :implemented: YES :parent_covered: NO: Can not ensure correct reasoning - :satisfies: gd_req__req_attr_rationale, gd_req__req_check_mandatory + :derived_from: gd_req__req_attr_rationale, gd_req__req_check_mandatory Docs-as-Code shall enforce that each stakeholder requirement (stkh_req) contains a ``rationale`` attribute. @@ -405,7 +405,7 @@ Versioning :id: tool_req__docs_req_attr_reqtype :tags: Requirements :implemented: YES - :satisfies: gd_req__req_attr_type + :derived_from: gd_req__req_attr_type Docs-as-Code shall enforce that each need of type :need:`tool_req__docs_req_types` except process and tool requirements has a ``reqtype`` attribute with one of the @@ -420,7 +420,7 @@ Versioning :id: tool_req__docs_req_attr_reqcov :tags: Requirements :implemented: PARTIAL - :satisfies: gd_req__req_attr_req_cov + :derived_from: gd_req__req_attr_req_cov Docs as code shall shall enable marking requirements as covered by their linked children. @@ -436,7 +436,7 @@ Versioning :tags: Requirements :implemented: PARTIAL :parent_covered: YES - :satisfies: gd_req__req_attr_test_covered + :derived_from: gd_req__req_attr_test_covered :status: invalid Docs-As-Code shall allow for every need of type :need:`tool_req__docs_req_types` to @@ -454,7 +454,7 @@ Versioning :tags: Requirements :implemented: PARTIAL :parent_covered: YES - :satisfies: gd_req__req_validity + :derived_from: gd_req__req_validity :status: valid Docs-as-Code shall enforce that the ``valid_from`` and ``valid_until`` attributes of stakeholder and feature requirements are correct. @@ -467,7 +467,7 @@ Versioning :tags: Requirements :implemented: PARTIAL :parent_covered: YES - :satisfies: gd_req__req_validity + :derived_from: gd_req__req_validity :status: valid Docs-as-Code shall enforce that ``valid_from`` is before ``valid_until`` attribute in stakeholder and feature requirements. @@ -479,11 +479,11 @@ Versioning 🔗 Links ------------------------- -.. tool_req:: Enables needs linking via satisfies attribute - :id: tool_req__docs_req_link_satisfies_allowed +.. tool_req:: Enables needs linking via derived_from attribute + :id: tool_req__docs_req_link_derived_from_allowed :tags: Requirements :implemented: PARTIAL - :satisfies: gd_req__req_linkage, gd_req__req_traceability + :derived_from: gd_req__req_linkage, gd_req__req_traceability :parent_covered: YES :status: invalid @@ -512,7 +512,7 @@ Versioning :tags: Common Attributes :implemented: YES :parent_covered: YES - :satisfies: gd_req__req_linkage_safety + :derived_from: gd_req__req_linkage_safety QM requirements (safety == QM) shall not be linked to safety requirements (safety != QM) via the ``satisfies`` attribute. @@ -526,7 +526,7 @@ Versioning .. tool_req:: Architecture Types :id: tool_req__docs_arch_types :tags: Architecture - :satisfies: + :derived_from: gd_req__arch_hierarchical_structure, gd_req__arch_build_blocks, :implemented: YES @@ -551,7 +551,7 @@ Architecture Attributes .. tool_req:: Architecture Mandatory Attributes :id: tool_req__docs_arch_attr_mandatory :tags: Architecture - :satisfies: + :derived_from: gd_req__arch_attr_mandatory, gd_req__arch_attr_fulfils, gd_req__arch_attr_mandatory, @@ -578,7 +578,7 @@ Architecture Attributes :id: tool_req__docs_arch_link_fulfils :tags: Architecture :implemented: YES - :satisfies: + :derived_from: gd_req__arch_linkage_requirement_type, gd_req__arch_attr_fulfils, gd_req__arch_traceability, @@ -608,7 +608,7 @@ Architecture Attributes :id: tool_req__docs_arch_link_safety_to_req :tags: Architecture :implemented: YES - :satisfies: gd_req__arch_linkage_requirement + :derived_from: gd_req__arch_linkage_requirement :parent_covered: YES Docs-as-Code shall enforce that architecture elements of type @@ -620,7 +620,7 @@ Architecture Attributes :id: tool_req__docs_arch_link_qm_to_safety_req :tags: Architecture :implemented: YES - :satisfies: gd_req__arch_linkage_requirement + :derived_from: gd_req__arch_linkage_requirement :parent_covered: YES Docs-as-Code shall enforce that architecture elements of type @@ -632,7 +632,7 @@ Architecture Attributes :id: tool_req__docs_req_arch_link_safety_to_arch :tags: Architecture :implemented: PARTIAL - :satisfies: + :derived_from: gd_req__arch_linkage_safety_trace, gd_req__req_linkage_safety, :parent_covered: NO @@ -645,7 +645,7 @@ Architecture Attributes :tags: Architecture :implemented: YES :parent_covered: YES - :satisfies: gd_req__arch_linkage_security_trace + :derived_from: gd_req__arch_linkage_security_trace Docs-as-Code shall enforce that security relevant :need:`tool_req__docs_arch_types` (Security == YES) can only be linked against security relevant :need:`tool_req__docs_arch_types`. @@ -658,7 +658,7 @@ Architecture Attributes :id: tool_req__docs_arch_views :tags: Architecture :implemented: YES - :satisfies: + :derived_from: gd_req__arch_viewpoints, :parent_covered: YES @@ -689,7 +689,7 @@ Architecture Attributes :id: tool_req__docs_dd_link_source_code_link :implemented: YES :parent_covered: NO: we only enable linking, we do not link - :satisfies: + :derived_from: gd_req__req_attr_impl, Docs-as-Code shall allow source code to link to requirement sphinx-needs objects. @@ -704,7 +704,7 @@ Architecture Attributes :tags: Detailed Design & Code :implemented: NO :parent_covered: YES - :satisfies: gd_req__req_linkage_architecture_switch + :derived_from: gd_req__req_linkage_architecture_switch Docs-as-Code shall allow for a to-be-defined list of checks to be non-fatal for non release builds. These are typically better suited for metrics than for checks. @@ -717,7 +717,7 @@ Architecture Attributes :tags: Detailed Design & Code :implemented: YES :parent_covered: YES - :satisfies: gd_req__impl_static_diagram + :derived_from: gd_req__impl_static_diagram Provide needs type ``dd_sta`` for static diagrams showing unit interactions as UML. @@ -726,7 +726,7 @@ Architecture Attributes .. :tags: Detailed Design & Code .. :implemented: YES .. :parent_covered: YES -.. :satisfies: gd_req__impl_dynamic_diagram +.. :derived_from: gd_req__impl_dynamic_diagram .. Provide needs type ``dd_dyn`` for dynamic diagrams showing unit interactions as UML. @@ -740,7 +740,7 @@ Testing :tags: Testing :implemented: YES :parent_covered: YES - :satisfies: gd_req__req_attr_testlink + :derived_from: gd_req__req_attr_testlink Docs-as-Code shall allow requirements of type :need:`tool_req__docs_req_types` to include a ``testlink`` attribute. @@ -753,7 +753,7 @@ Testing :tags: Testing :implemented: NO :parent_covered: NO - :satisfies: gd_req__verification_checks + :derived_from: gd_req__verification_checks Docs-as-Code shall ensure that each test case has TestType and DerivationTechnique set. @@ -762,7 +762,7 @@ Testing :tags: Testing :implemented: NO :parent_covered: NO - :satisfies: gd_req__verification_checks + :derived_from: gd_req__verification_checks :status: invalid Docs-as-Code shall ensure that each test case has a non empty description. @@ -774,7 +774,7 @@ Testing :tags: Testing :implemented: NO :parent_covered: NO - :satisfies: gd_req__verification_checks + :derived_from: gd_req__verification_checks :status: invalid Docs-as-Code shall ensure that test cases link to requirements on the correct level: @@ -794,7 +794,7 @@ Testing :tags: Tool Verification Reports :implemented: YES :parent_covered: YES - :satisfies: gd_req__tool_attr_safety_affected, gd_req__tool_check_mandatory + :derived_from: gd_req__tool_attr_safety_affected, gd_req__tool_check_mandatory Docs-as-Code shall enforce that every Tool Verification Report (`doc_tool`) includes a ``safety_affected`` attribute with one of the following values: @@ -807,7 +807,7 @@ Testing :tags: Tool Verification Reports :implemented: YES :parent_covered: YES - :satisfies: gd_req__tool_attr_security_affected, gd_req__tool_check_mandatory + :derived_from: gd_req__tool_attr_security_affected, gd_req__tool_check_mandatory Docs-as-Code shall enforce that every Tool Verification Report (`doc_tool`) includes a `security_affected` attribute with one of the following values: @@ -820,7 +820,7 @@ Testing :id: tool_req__docs_tvr_status :tags: Tool Verification Reports :implemented: YES - :satisfies: gd_req__tool_attr_status, gd_req__tool_check_mandatory + :derived_from: gd_req__tool_attr_status, gd_req__tool_check_mandatory :parent_covered: YES Docs-as-Code shall enforce that every Tool Verification Report (`doc_tool`) includes a @@ -836,7 +836,7 @@ Testing :id: tool_req__docs_tvr_version :tags: Tool Verification Reports :implemented: YES - :satisfies: gd_req__tool_attr_version + :derived_from: gd_req__tool_attr_version :parent_covered: YES Docs-as-Code shall enforce that every Tool Verification Report (`doc_tool`) includes a @@ -846,7 +846,7 @@ Testing :id: tool_req__docs_tvr_confidence_level :tags: Tool Verification Reports :implemented: YES - :satisfies: gd_req__tool_attr_tcl + :derived_from: gd_req__tool_attr_tcl :parent_covered: YES Docs-as-Code shall enforce that every Tool Verification Report (`doc_tool`) includes a @@ -862,7 +862,7 @@ Testing :id: tool_req__docs_wf_types :tags: Process / Other :implemented: YES - :satisfies: gd_req__process_management_build_blocks_attr, gd_req__process_management_build_blocks_link + :derived_from: gd_req__process_management_build_blocks_attr, gd_req__process_management_build_blocks_link Docs-as-Code shall support the following workflow types: @@ -886,7 +886,7 @@ Testing :id: tool_req__docs_saf_types :implemented: YES :tags: Safety Analysis - :satisfies: + :derived_from: gd_req__saf_structure, gd_req__saf_attr_uid, :parent_covered: YES @@ -902,7 +902,7 @@ Testing :id: tool_req__docs_saf_attrs_mandatory :implemented: YES :tags: Safety Analysis - :satisfies: + :derived_from: gd_req__saf_attr_mandatory, gd_req__sec_attr_mandatory, :parent_covered: YES @@ -923,7 +923,7 @@ Testing :id: tool_req__docs_saf_attrs_mitigated_by :implemented: NO :tags: Safety Analysis - :satisfies: + :derived_from: gd_req__saf_attr_mitigated_by, gd_req__saf_attr_requirements, gd_req__saf_attr_requirements_check, @@ -947,7 +947,7 @@ Testing :id: tool_req__docs_saf_attrs_mitigation_issue :implemented: YES :tags: Safety Analysis - :satisfies: gd_req__saf_attr_mitigation_issue + :derived_from: gd_req__saf_attr_mitigation_issue :parent_covered: NO Docs-As-Code shall allow needs of type :need:`tool_req__docs_saf_types` to have a @@ -958,7 +958,7 @@ Testing :id: tool_req__docs_saf_attrs_sufficient :implemented: YES :tags: Safety Analysis - :satisfies: gd_req__saf_attr_sufficient + :derived_from: gd_req__saf_attr_sufficient :parent_covered: YES Docs-As-Code shall enforce needs of type :need:`tool_req__docs_saf_types` to @@ -971,7 +971,7 @@ Testing :id: tool_req__docs_saf_attrs_sufficient_check :implemented: NO :tags: Safety Analysis - :satisfies: gd_req__saf_attr_sufficient + :derived_from: gd_req__saf_attr_sufficient :parent_covered: YES Docs-As-Code shall ensure needs of type :need:`tool_req__docs_saf_types` with @@ -982,7 +982,7 @@ Testing :id: tool_req__docs_saf_attrs_content :implemented: NO :tags: Safety Analysis - :satisfies: gd_req__saf_argument + :derived_from: gd_req__saf_argument :parent_covered: NO Docs-As-Code shall enforce needs of type :need:`tool_req__docs_saf_types` to have a @@ -994,7 +994,7 @@ Testing :id: tool_req__docs_saf_attrs_violates :implemented: NO :tags: Safety Analysis - :satisfies: + :derived_from: gd_req__saf_linkage_check, gd_req__saf_linkage, gd_req__sec_linkage_check, @@ -1022,7 +1022,7 @@ Testing :id: tool_req__docs_saf_attr_fmea_fault_id :implemented: NO :tags: Safety Analysis - :satisfies: gd_req__saf_attr_fault_id + :derived_from: gd_req__saf_attr_fault_id :parent_covered: NO Docs-As-Code shall enforce that needs of type DFA (see @@ -1035,7 +1035,7 @@ Testing :id: tool_req__docs_saf_attr_dfa_failure_id :implemented: NO :tags: Safety Analysis - :satisfies: gd_req__saf_attr_failure_id + :derived_from: gd_req__saf_attr_failure_id :parent_covered: NO Docs-As-Code shall enforce that needs of type DFA (see @@ -1048,7 +1048,7 @@ Testing :id: tool_req__docs_saf_attr_fmea_failure_effect :implemented: NO :tags: Safety Analysis - :satisfies: gd_req__saf_attr_feffect + :derived_from: gd_req__saf_attr_feffect :parent_covered: NO :status: invalid @@ -1061,7 +1061,7 @@ Safety Analysis (DFA + FMEA) Process to Tool Requirement Mapping .. needtable:: :style: table :types: gd_req - :columns: id;satisfies_back as "tool_req" + :columns: id;derived_from_back as "tool_req" :filter: "gd_req__saf" in id @@ -1073,15 +1073,15 @@ Process to tools: .. needtable:: :style: table :types: gd_req - :columns: id;satisfies_back as "tool_req" + :columns: id;derived_from_back as "tool_req" Overview of Tool to Process Requirements ######################################## .. needtable:: :types: tool_req - :filter: any(s.startswith("gd_req") for s in satisfies) - :columns: satisfies as "Process Requirement" ;id as "Tool Requirement";implemented;source_code_link + :filter: any(s.startswith("gd_req") for s in derived_from) + :columns: derived_from as "Process Requirement" ;id as "Tool Requirement";implemented;source_code_link :style: table @@ -1110,5 +1110,5 @@ Grouped Requirements :status: valid .. needextend:: "metamodel.yaml" in source_code_link - :+satisfies: tool_req__docs_metamodel + :+derived_from: tool_req__docs_metamodel :+tags: config diff --git a/docs/internals/requirements/tool_req_overview.rst b/docs/internals/requirements/tool_req_overview.rst index 198d9b5a..8aa939d7 100644 --- a/docs/internals/requirements/tool_req_overview.rst +++ b/docs/internals/requirements/tool_req_overview.rst @@ -8,5 +8,5 @@ with some hopefully useful meta information. .. needtable:: :types: tool_req - :columns: satisfies as "Process Requirement" ;id as "Tool Requirement";implemented;source_code_link + :columns: derived_from as "Process Requirement" ;id as "Tool Requirement";implemented;source_code_link :style: table diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index bf98505c..e61a9172 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -285,10 +285,10 @@ needs_types: # req-Id: tool_req__docs_common_attr_status status: ^(valid|invalid)$ content: ^[\s\S]+$ - mandatory_links: + optional_links: # req-Id: tool_req__docs_req_link_derived_from_allowed + # TODO: make derived_from mandatory once downstream repos migrate from satisfies derived_from: stkh_req - optional_links: satisfies: stkh_req belongs_to: feat # for evaluation optional_options: @@ -321,10 +321,11 @@ needs_types: status: ^(valid|invalid)$ content: ^[\s\S]+$ mandatory_links: - # req-Id: tool_req__docs_req_link_derived_from_allowed - derived_from: feat_req belongs_to: comp optional_links: + # req-Id: tool_req__docs_req_link_derived_from_allowed + # TODO: make derived_from mandatory once downstream repos migrate from satisfies + derived_from: feat_req satisfies: feat_req optional_options: codelink: ^.*$ @@ -434,9 +435,10 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: includes: ^logic_arc_int(_op)*__.+$ - satisfies: feat_req belongs_to: feat # make it mandatory for evaluation optional_links: + # TODO: make satisfies mandatory once downstream repos migrate from fulfils + satisfies: feat_req fulfils: feat_req tags: - architecture_element @@ -457,9 +459,10 @@ needs_types: # req-Id: tool_req__docs_common_attr_status status: ^(valid|invalid)$ mandatory_links: - satisfies: feat_req belongs_to: feat optional_links: + # TODO: make satisfies mandatory once downstream repos migrate from fulfils + satisfies: feat_req fulfils: feat_req tags: - architecture_view @@ -587,9 +590,10 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: belongs_to: comp - satisfies: comp_req optional_links: uses: logic_arc_int, real_arc_int_op + # TODO: make satisfies mandatory once downstream repos migrate from fulfils + satisfies: comp_req fulfils: comp_req tags: - architecture_view @@ -610,8 +614,9 @@ needs_types: status: ^(valid|invalid)$ mandatory_links: belongs_to: comp - satisfies: comp_req optional_links: + # TODO: make satisfies mandatory once downstream repos migrate from fulfils + satisfies: comp_req fulfils: comp_req tags: - architecture_view diff --git a/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst b/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst index dedd7532..72d0a9ad 100644 --- a/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst +++ b/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst @@ -27,7 +27,7 @@ :reqtype: Process :security: YES :safety: ASIL_B - :satisfies: stkh_req__test_stakeholder_requirement_1__basic_stkh_req + :derived_from: stkh_req__test_stakeholder_requirement_1__basic_stkh_req :status: invalid Test Feature Requirement 1 @@ -45,7 +45,7 @@ :security: YES :safety: ASIL_B :status: invalid - :fulfils: feat_req__test_feature_1__test_req_1 + :satisfies: feat_req__test_feature_1__test_req_1 :includes: logic_arc_int__test_feature_1__test_interface_1 .. needarch @@ -59,7 +59,7 @@ :security: YES :safety: ASIL_B :status: invalid - :fulfils: feat_req__test_feature_1__test_req_1 + :satisfies: feat_req__test_feature_1__test_req_1 Put here a sequence diagram @@ -99,7 +99,7 @@ Component 1 :reqtype: Process :security: YES :safety: ASIL_B - :satisfies: feat_req__test_feature_1__test_req_1 + :derived_from: feat_req__test_feature_1__test_req_1 :status: invalid Test Component 1 Requirement @@ -123,7 +123,7 @@ Component 1 :safety: ASIL_B :security: YES :status: invalid - :fulfils: comp_req__test_component_1__requirement_1 + :satisfies: comp_req__test_component_1__requirement_1 :implements: logic_arc_int__test_feature_1__test_interface_1 :belongs_to: comp__test_sub_component_1 diff --git a/src/extensions/score_metamodel/tests/rst/attributes/test_attributes_external_prefix.rst b/src/extensions/score_metamodel/tests/rst/attributes/test_attributes_external_prefix.rst index 5ec9deeb..7cc71453 100644 --- a/src/extensions/score_metamodel/tests/rst/attributes/test_attributes_external_prefix.rst +++ b/src/extensions/score_metamodel/tests/rst/attributes/test_attributes_external_prefix.rst @@ -16,22 +16,22 @@ .. Test: No external prefixes (single documentation mega-build) .. Verifies links work when all needs are loaded in one Sphinx instance, without prefix logic. -#EXPECT-NOT tool_req__test_abcd.satisfies (doc_getstrt__req__process): does not follow pattern `^doc_.+$`. +#EXPECT-NOT tool_req__test_abcd.derived_from (doc_getstrt__req__process): does not follow pattern `^doc_.+$`. .. tool_req:: This is a test :id: tool_req__test_abcd - :satisfies: doc_getstrt__req__process + :derived_from: doc_getstrt__req__process This should not give a warning .. Also make sure it works with lists of links -#EXPECT-NOT: tool_req__test_aaaa.satisfies (doc_getstrt__req__process): does not follow pattern `^doc_.+$`. -#EXPECT-NOT: tool_req__test_aaaa.satisfies (gd_guidl__req__engineering): does not follow pattern `^gd_.+$`. +#EXPECT-NOT: tool_req__test_aaaa.derived_from (doc_getstrt__req__process): does not follow pattern `^doc_.+$`. +#EXPECT-NOT: tool_req__test_aaaa.derived_from (gd_guidl__req__engineering): does not follow pattern `^gd_.+$`. .. tool_req:: This is a test :id: tool_req__test_aaaa - :satisfies: doc_getstrt__req__process;gd_guidl__req__engineering + :derived_from: doc_getstrt__req__process;gd_guidl__req__engineering This should give a warning diff --git a/src/extensions/score_metamodel/tests/rst/attributes/test_prohibited_words.rst b/src/extensions/score_metamodel/tests/rst/attributes/test_prohibited_words.rst index 4a470eca..8969d1a3 100644 --- a/src/extensions/score_metamodel/tests/rst/attributes/test_prohibited_words.rst +++ b/src/extensions/score_metamodel/tests/rst/attributes/test_prohibited_words.rst @@ -81,7 +81,7 @@ :id: tool_req__docs_common_attr_desc_wording :tags: Common Attributes :implemented: YES - :satisfies: + :derived_from: gd_req__req_desc_weak, :parent_covered: YES diff --git a/src/extensions/score_metamodel/tests/rst/graph/test_metamodel_graph.rst b/src/extensions/score_metamodel/tests/rst/graph/test_metamodel_graph.rst index b93561e0..64313d74 100644 --- a/src/extensions/score_metamodel/tests/rst/graph/test_metamodel_graph.rst +++ b/src/extensions/score_metamodel/tests/rst/graph/test_metamodel_graph.rst @@ -36,7 +36,7 @@ .. feat_req:: Child requirement 1 :id: feat_req__child__1 :safety: QM - :satisfies: feat_req__parent__QM + :derived_from: feat_req__parent__QM :status: valid @@ -46,18 +46,18 @@ .. feat_req:: Child requirement 2 :id: feat_req__child__2 :safety: ASIL_B - :satisfies: feat_req__parent__ASIL_B + :derived_from: feat_req__parent__ASIL_B :status: valid .. Negative Test: Child requirement QM. Parent requirement is `ASIL_B`. Child cant fulfill the safety level of the parent. -#EXPECT: QM requirements cannot satisfy ASIL requirements. +#EXPECT: QM requirements cannot be derived from ASIL requirements. .. comp_req:: Child requirement 3 :id: feat_req__qm_child_with_asil_parent :safety: QM - :satisfies: feat_req__parent__ASIL_B + :derived_from: feat_req__parent__ASIL_B :status: valid @@ -69,7 +69,7 @@ :id: feat_req__linking_to_unknown_parent :safety: ASIL_B :status: valid - :satisfies: feat_req__parent0__abcd + :derived_from: feat_req__parent0__abcd diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_options.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_options.rst index 3a587e60..fbe57db5 100644 --- a/src/extensions/score_metamodel/tests/rst/options/test_options_options.rst +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_options.rst @@ -32,12 +32,12 @@ -.. Required link `satisfies` refers to wrong requirement type -#EXPECT: feat_req__abce: references 'std_wp__test__abce' as 'satisfies', but it must reference Stakeholder Requirement (stkh_req). +.. Optional link `derived_from` with wrong target type: non-fatal warning only (not a fatal Sphinx warning) +#EXPECT-NOT: feat_req__abce: references 'std_wp__test__abce' as 'derived_from', but it must reference Stakeholder Requirement (stkh_req). .. feat_req:: Child requirement :id: feat_req__abce - :satisfies: std_wp__test__abce + :derived_from: std_wp__test__abce @@ -46,7 +46,7 @@ .. feat_req:: Child requirement :id: feat_req__abcg - :satisfies: stkh_req__abcd + :derived_from: stkh_req__abcd .. stkh_req:: Parent requirement :id: stkh_req__abcd