From aea544b3990525d738977cec75386ff0997bf49d Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" Date: Mon, 15 Dec 2025 06:35:32 +0000 Subject: [PATCH 1/9] modify description of architecture types and fix drawing --- docs/internals/requirements/requirements.rst | 8 ++++---- src/extensions/score_draw_uml_funcs/__init__.py | 2 +- src/extensions/score_metamodel/metamodel.yaml | 5 ++--- .../tests/rst/attributes/test_prohibited_words.rst | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index a476ab15..9ef9f301 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -535,12 +535,13 @@ Mapping Docs-as-Code shall support the following architecture element types: - * Feature (feat_arc_sta) + * Feature (feat) * Logical Interface (logic_arc_int) * Logical Interface Operation (logic_arc_int_op) - * Component (comp_arc_sta) + * Component (comp) * Interface (real_arc_int) * Interface Operation (real_arc_int_op) + * Module (mod) -------------------------- Architecture Attributes @@ -669,8 +670,7 @@ Architecture Attributes * Module View (mod_view_sta) .. note:: - feat_arc_sta, comp_arc_sta, logic_arc_int, real_arc_int are architecture elements - AND architecture views. + feat_arc_sta, comp_arc_sta, logic_arc_int, real_arc_int are architecture views. 💻 Detailed Design & Code ########################## diff --git a/src/extensions/score_draw_uml_funcs/__init__.py b/src/extensions/score_draw_uml_funcs/__init__.py index 500ded74..067df1ea 100644 --- a/src/extensions/score_draw_uml_funcs/__init__.py +++ b/src/extensions/score_draw_uml_funcs/__init__.py @@ -156,7 +156,7 @@ def draw_comp_incl_impl_int( logger.info(f"{need}: include {need_inc} could not be found") continue - if curr_need["type"] != "comp_arc_sta": + if curr_need["type"] != "comp": continue sub_structure, sub_linkage, proc_impl_interfaces, proc_used_interfaces = ( diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index a18c32f8..53a0c690 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -419,7 +419,7 @@ needs_types: - architecture_element parts: 2 - # Architecture Element & View + # Architecture View # req-Id: tool_req__docs_arch_types # req-Id: tool_req__docs_arch_views feat_arc_sta: @@ -532,10 +532,9 @@ needs_types: title: Module Architecture Static View color: #FEDCD2 style: card - mandatory_links: - includes: comp_arc_sta optional_links: belongs_to: mod # for evaluation + includes: comp, comp_arc_sta tags: - architecture_view parts: 3 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 40546c00..4a470eca 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 @@ -66,7 +66,7 @@ -.. Description of requirement of type feat_arc_sta is not checked for weak words +.. Description of architecture view of type feat_arc_sta is not checked for weak words #EXPECT-NOT: feat_arc_sta_desc_good: contains a weak word: `really` in option: `content`. Please revise the wording. .. feat_arc_sta:: This is a test From 9002b24f629237d1a692c3add2da7d1a0452c520 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" Date: Tue, 16 Dec 2025 15:01:09 +0000 Subject: [PATCH 2/9] fix review findings and add latest change of process --- docs/internals/requirements/requirements.rst | 4 +++- src/extensions/score_metamodel/metamodel.yaml | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 9ef9f301..876e07c6 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -670,7 +670,9 @@ Architecture Attributes * Module View (mod_view_sta) .. note:: - feat_arc_sta, comp_arc_sta, logic_arc_int, real_arc_int are architecture views. + feat_arc_sta, comp_arc_sta, logic_arc_int, real_arc_int are architecture views, + but are still defined as architectural elements, what means have the properties of + architectural elements. 💻 Detailed Design & Code ########################## diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index 53a0c690..1cc19b45 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -419,7 +419,7 @@ needs_types: - architecture_element parts: 2 - # Architecture View + # Architecture View (but owns by requirement properties of architectural elements) # req-Id: tool_req__docs_arch_types # req-Id: tool_req__docs_arch_views feat_arc_sta: @@ -443,7 +443,7 @@ needs_types: - architecture_view parts: 3 - # Architecture View + # Architecture View (but owns by requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views feat_arc_dyn: title: Feature Sequence Diagram @@ -569,7 +569,7 @@ needs_types: - architecture_element parts: 2 - # Architecture View + # Architecture View (but owns by requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views comp_arc_sta: title: Component Package Diagram @@ -592,7 +592,7 @@ needs_types: - architecture_view parts: 3 - # Architecture View + # Architecture View (but owns by requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views comp_arc_dyn: title: Component Sequence Diagram From 93eebf3d8890a07c89e77e98512c7385ad5cde9c Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" Date: Tue, 16 Dec 2025 15:13:19 +0000 Subject: [PATCH 3/9] fix review findings --- docs/internals/requirements/requirements.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 876e07c6..97244e05 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -535,13 +535,14 @@ Mapping Docs-as-Code shall support the following architecture element types: + * Feature Static View (feat_arc_sta) * Feature (feat) * Logical Interface (logic_arc_int) * Logical Interface Operation (logic_arc_int_op) + * Component Static View (comp_arc_sta) * Component (comp) * Interface (real_arc_int) * Interface Operation (real_arc_int_op) - * Module (mod) -------------------------- Architecture Attributes From 1ba320cd42196f539b699412ae19eb6e1385c670 Mon Sep 17 00:00:00 2001 From: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> Date: Wed, 17 Dec 2025 07:02:27 +0100 Subject: [PATCH 4/9] Update src/extensions/score_metamodel/metamodel.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> --- src/extensions/score_metamodel/metamodel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index 1cc19b45..d14eeee9 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -419,7 +419,7 @@ needs_types: - architecture_element parts: 2 - # Architecture View (but owns by requirement properties of architectural elements) + # Architecture View (but owns the requirement properties of architectural elements) # req-Id: tool_req__docs_arch_types # req-Id: tool_req__docs_arch_views feat_arc_sta: From 9eb162a9c88c4e37d63cd71b748d1f5931f08c48 Mon Sep 17 00:00:00 2001 From: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> Date: Wed, 17 Dec 2025 07:02:46 +0100 Subject: [PATCH 5/9] Update docs/internals/requirements/requirements.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> --- docs/internals/requirements/requirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 97244e05..52203074 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -672,7 +672,7 @@ Architecture Attributes .. note:: feat_arc_sta, comp_arc_sta, logic_arc_int, real_arc_int are architecture views, - but are still defined as architectural elements, what means have the properties of + but are still defined as architectural elements, which means they have the properties of architectural elements. 💻 Detailed Design & Code From 2ebbd10b0b012b31f2e98cd2238e624122ef0c33 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" Date: Fri, 19 Dec 2025 11:17:07 +0000 Subject: [PATCH 6/9] add architecture metamodel example --- src/extensions/score_metamodel/metamodel.yaml | 4 +- .../rst/architecture/architecture_tests.rst | 148 ++++++++++++++++++ .../tests/test_rules_file_based.py | 1 + 3 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index d14eeee9..d7cd2c78 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -534,7 +534,7 @@ needs_types: style: card optional_links: belongs_to: mod # for evaluation - includes: comp, comp_arc_sta + includes: comp, comp_arc_sta # deprecated tags: - architecture_view parts: 3 @@ -585,7 +585,7 @@ needs_types: optional_links: fulfils: comp_req implements: logic_arc_int, real_arc_int_op - includes: comp_arc_sta + includes: comp_arc_sta, comp uses: logic_arc_int, real_arc_int_op belongs_to: comp # TODO: make it mandatory tags: diff --git a/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst b/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst new file mode 100644 index 00000000..c1421c20 --- /dev/null +++ b/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst @@ -0,0 +1,148 @@ +#CHECK: check_options + +.. stkh_req:: Test Stakeholder Requirement 1 + :id: stkh_req__test_stakeholder_requirement_1__basic_stkh_req + :reqtype: Non-Functional + :safety: ASIL_B + :security: YES + :rationale: Exists just for the test the component / feature drawings + :status: invalid + +.. feat_req:: Test Feature Requirement 1 + :id: feat_req__test_feature_1__test_req_1 + :reqtype: Process + :security: YES + :safety: ASIL_B + :satisfies: stkh_req__test_stakeholder_requirement_1__basic_stkh_req + :status: invalid + + Test Feature Requirement 1 + +.. feat:: Test Feature 1 + :id: feat__test_feature_1 + :security: YES + :safety: ASIL_B + :status: invalid + :includes: logic_arc_int__test_feature_1__test_interface_1, logic_arc_int_op__test_feature_1__test_operation_1 + :consists_of: comp__test_component_1, comp__test_component_2 + +.. feat_arc_sta:: Test Feature Static View Feature 1 + :id: feat_arc_sta__test_feature_1__static_view + :security: YES + :safety: ASIL_B + :status: invalid + :fulfils: feat_req__test_feature_1__test_req_1 + :includes: logic_arc_int__test_feature_1__test_interface_1 + + .. needarch + :scale: 50 + :align: center + + {{ draw_feature(need(), needs) }} + +.. feat_arc_dyn:: Test Feature Static Dynamic Feature 1 + :id: feat_arc_dyn__test_feature_1__dynamic_view + :security: YES + :safety: ASIL_B + :status: invalid + :fulfils: feat_req__test_feature_1__test_req_1 + + Put here a sequence diagram + +.. logic_arc_int:: Logic Interface Test 1 + :id: logic_arc_int__test_feature_1__test_interface_1 + :security: YES + :safety: ASIL_B + :status: invalid + +.. logic_arc_int_op:: Logic Operation Test 1 + :id: logic_arc_int_op__test_feature_1__test_operation_1 + :security: YES + :safety: ASIL_B + :status: invalid + :included_by: logic_arc_int__test_feature_1__test_interface_1 + +.. logic_arc_int:: Logic Interface Test 2 + :id: logic_arc_int__test_feature_1__test_interface_2 + :security: YES + :safety: ASIL_B + :status: invalid + +Component 1 +~~~~~~~~~~~ + +.. comp:: Test Component 1 + :id: comp__test_component_1 + :security: YES + :safety: ASIL_B + :status: invalid + :implements: logic_arc_int__test_feature_1__test_interface_1 + :uses: logic_arc_int__test_feature_1__test_interface_2 + :consists_of: sw_unit__component_1__test_unit_1, comp__test_sub_component_1 + +.. comp_req:: Test Component 1 Requirement 1 + :id: comp_req__test_component_1__requirement_1 + :reqtype: Process + :security: YES + :safety: ASIL_B + :satisfies: feat_req__test_feature_1__test_req_1 + :status: invalid + + Test Component 1 Requirement + +.. sw_unit:: SW Test Unit 1 + :id: sw_unit__component_1__test_unit_1 + :security: YES + :safety: ASIL_B + :status: invalid + +.. comp:: Test Sub Component 1 + :id: comp__test_sub_component_1 + :security: YES + :safety: ASIL_B + :status: invalid + :implements: logic_arc_int__test_feature_1__test_interface_1 + :consists_of: sw_unit__sub_component_1__test_unit_2 + +.. comp_arc_sta:: Test Component Architecture Component 1 + :id: comp_arc_sta__feature_name__component_name + :safety: ASIL_B + :security: YES + :status: invalid + :fulfils: comp_req__test_component_1__requirement_1 + :implements: logic_arc_int__test_feature_1__test_interface_1 + :belongs_to: comp__test_sub_component_1 + +.. sw_unit:: SW Test Unit 2 + :id: sw_unit__sub_component_1__test_unit_2 + :security: YES + :safety: ASIL_B + :status: invalid + +Component 1 +~~~~~~~~~~~ + +.. comp:: Test Component 2 + :id: comp__test_component_2 + :security: YES + :safety: QM + :status: invalid + :implements: logic_arc_int__test_feature_1__test_interface_2 + +.. mod:: Feature Test Module 1 + :id: mod__test_feature_1_module_1 + :security: YES + :safety: ASIL_B + :status: valid + :includes: comp__test_component_1, comp__test_component_2 + +.. mod_view_sta:: Feature Test Module 1 Static View + :id: mod_view_sta__test_feature_1_module_1__test_static_view_1 + :belongs_to: mod__test_feature_1_module_1 + :includes: comp_arc_sta__feature_name__component_name + + .. needarch + :scale: 50 + :align: center + + {{ draw_module(need(), needs) }} diff --git a/src/extensions/score_metamodel/tests/test_rules_file_based.py b/src/extensions/score_metamodel/tests/test_rules_file_based.py index 050a60b5..13d3ace5 100644 --- a/src/extensions/score_metamodel/tests/test_rules_file_based.py +++ b/src/extensions/score_metamodel/tests/test_rules_file_based.py @@ -193,6 +193,7 @@ def test_rst_files( # Collect the warnings warnings = app.warning.getvalue().splitlines() + print("\n".join(w for w in warnings if "score_metamodel" in w)) # Check if the expected warnings are present for warning_info in rst_data.warning_infos: From ac17d57d74703c3368f43d2d37fae129fe9aac28 Mon Sep 17 00:00:00 2001 From: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:48:32 +0100 Subject: [PATCH 7/9] Update src/extensions/score_metamodel/metamodel.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> --- src/extensions/score_metamodel/metamodel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index d7cd2c78..c539f1b4 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -443,7 +443,7 @@ needs_types: - architecture_view parts: 3 - # Architecture View (but owns by requirement properties of architectural elements) + # Architecture View (but owns the requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views feat_arc_dyn: title: Feature Sequence Diagram From 4a70568deda53d0720211de9a14006533f64d3b5 Mon Sep 17 00:00:00 2001 From: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:52:06 +0100 Subject: [PATCH 8/9] Fix comment wording in metamodel.yaml Signed-off-by: RolandJentschETAS <135332348+RolandJentschETAS@users.noreply.github.com> --- src/extensions/score_metamodel/metamodel.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index c539f1b4..e75ed9c4 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -569,7 +569,7 @@ needs_types: - architecture_element parts: 2 - # Architecture View (but owns by requirement properties of architectural elements) + # Architecture View (but owns requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views comp_arc_sta: title: Component Package Diagram @@ -592,7 +592,7 @@ needs_types: - architecture_view parts: 3 - # Architecture View (but owns by requirement properties of architectural elements) + # Architecture View (but owns requirement properties of architectural elements) # req-Id: tool_req__docs_arch_views comp_arc_dyn: title: Component Sequence Diagram From 35fc80481307be8f0e644b4a3c4679c66dd5f450 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" Date: Fri, 19 Dec 2025 12:25:42 +0000 Subject: [PATCH 9/9] add copyright --- .../tests/rst/architecture/architecture_tests.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 c1421c20..dedd7532 100644 --- a/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst +++ b/src/extensions/score_metamodel/tests/rst/architecture/architecture_tests.rst @@ -1,3 +1,17 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + #CHECK: check_options .. stkh_req:: Test Stakeholder Requirement 1