From 6eb33f37c90a0f0d5f2ef8ecf02849d421b03c92 Mon Sep 17 00:00:00 2001 From: arsibo Date: Fri, 9 Jan 2026 14:00:56 +0000 Subject: [PATCH 1/6] process: add DR-005 for independent feature delivery Add design decision to enable SCORE features as independent SEooC delivery units in dedicated repositories (incl. correction of review findings). --- docs/design_decisions/DR-005-process.rst | 301 ++++++++++++++++++ .../DR-005-alternative_1_simplified.puml | 57 ++++ .../DR-005-alternative_2_simplified.puml | 57 ++++ .../DR-005-alternative_2b_simplified.puml | 127 ++++++++ .../DR-005-alternative_2c_simplified.puml | 89 ++++++ .../DR-005-artefact_overview.drawio.svg | 4 + ...5-artefact_overview_sub_feature.drawio.svg | 4 + ...5-artefact_overview_tracebility.drawio.svg | 4 + docs/design_decisions/index.rst | 1 + 9 files changed, 644 insertions(+) create mode 100644 docs/design_decisions/DR-005-process.rst create mode 100644 docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml create mode 100644 docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml create mode 100644 docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml create mode 100644 docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml create mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg diff --git a/docs/design_decisions/DR-005-process.rst b/docs/design_decisions/DR-005-process.rst new file mode 100644 index 00000000000..0b2afe6e41a --- /dev/null +++ b/docs/design_decisions/DR-005-process.rst @@ -0,0 +1,301 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. _decision_record_feature_as_independent_delivery: + +DR-005-process: Feature as Independent Delivery Product +======================================================= + +.. dec_rec:: Feature as Independent Delivery Product + :id: dec_rec__platform__feature_delivery + :status: proposed + :Context: TBD + :Decision: TBD + + Consequences: TBD + +Context +------- + +With S-CORE, we are jointly developing an open software platform with the goal of reducing complexity, +promoting reuse, gaining speed and enabling scalable innovations. + +From today's perspective, the S-CORE platform will not be able to replace the software platforms +currently used in OEM projects in a single step. For this reason, +S-CORE must support the replacement of parts of the currently used software platforms with S-CORE platform parts. + +Currently, there are two elements in S-CORE for the decomposition of the platform: + - Features + - Components + +The platform consists of features. A feature is realized by a number of components. + +Furthermore, S-CORE provides for two types of delivery products: + - Platform Release + - Software Module Release + +These can be used by OEM projects. +Both delivery types are also a Safety Element out of Context (SEooC), making them easier to integrate. + +A software module is defined as a component or a set of components. +A software module is contained in a repository. + +Features and their artifacts are currently contained in the platform repository. +As a result, they can only be delivered with the platform release. + +The goal is to be able to deliver features independently of the platform release. +For this, the Decision Record proposes that the software module also contains the feature artifacts. + +The software module that contains the feature artifacts is responsible for fulfilling the feature requirements. +Even though not all S-CORE components required for the feature are located in this SW module (repository). + +In section `Alternatives Considered`_, different alternatives are presented. +the current solution is compared with the alternative and evaluated with respect to the following aspects: + + - Independence of Release / Topic Coherence + - SEooC for Features + - Reusability across Platforms + - Maintainability + - Number of Repositories + - Traceability + +Decision +-------- + +Feature artifacts will be stored in the SW module repo. + +Comparing the alternatives based on the criteria in the decision table +below (see `Justification for the Decision`_) shows that Alternative 2b +(Dedicated Feature Repository with Sub-Features) offers the most advantages. +This alternative enables a clear separation and independence of features, +supports SEooC at the feature level, and promotes reusability across +different platforms. Sub-features should be used very sparingly to avoid +unnecessarily increasing complexity. + +Consequences +------------ + +- Process update +- Moving the feature artifacts to feature repos +- Adaptation of the traceability direction from "satisfies" to "satisfied by" between: + - Stakeholder Requirement and Feature Requirement + - Platform Architecture and Feature + +Alternatives Considered +----------------------- + +Alternative 1: Status Quo - Platform-Centric Feature Management +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The platform artifacts and the feature artifacts are contained in the S-CORE platform repository. +The component artifacts are contained in the module repository. +This is the current status. + +.. uml:: _assets/DR-005-alternative_1_simplified.puml + :caption: Alternative 1: Status Quo Architecture + + +Alternative 2: Feature in SW Module Repository +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The platform artifacts are located in the S-CORE platform repository. +The feature artifacts are located in the SW module repository. + +Feature artifacts are all artifacts at the feature level, such as feature requirements, +feature architecture, and feature tests. + +In addition, this SW module also contains the main components of the feature +that are not to be reused independently of this feature context. +A feature can reuse components from other SW modules, such as BaseLibs. + +Component artifacts are all artifacts at the component level, such as component requirements, +component architecture, and component tests. +They also include units with detailed design, source code, and unit tests. + +.. uml:: _assets/DR-005-alternative_2_simplified.puml + :caption: Alternative 2: Dedicated Feature Repository Architecture + + +Alternative 2b: Feature in SW Module Repository with Sub-Features (System of Systems) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This variant of Alternative 2 extends the dedicated feature repository +approach to support a System of Systems architecture. Features can be +composed of sub-features, each residing in their own repository. This +enables hierarchical composition where complex features can integrate +multiple sub-features, each maintaining its own complete set of artifacts +(requirements, architecture, tests, components, and units). + +.. uml:: _assets/DR-005-alternative_2b_simplified.puml + :caption: Alternative 2b: System of Systems Feature Repository Architecture + + +Alternative 2c: Dedicated Feature Repository +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Alternative 2c is similar to Alternative 2, +with the key difference beingthat there is an intermediate feature repository between +the S-CORE platform repository and the SW module repositories (implementation repositories). +The feature artifacts are located in the feature repository. + +This is to address the use case where two implementations exist for the same feature +and copies of the feature artifacts should be avoided. + +Alternative 2c represents a solution but should be avoided because it increases complexity, +the number of repositories, and thus the maintenance effort. +Furthermore, it increases the risk that the implementations for aspects that should be the same will diverge. + +.. uml:: _assets/DR-005-alternative_2c_simplified.puml + :caption: Alternative 2c: Hierarchical Feature Repository Architecture + + +Visualization of Artifact Structure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: _assets/DR-005-artefact_overview.drawio.svg + :align: center + :width: 50% + + Artifact Overview - Standard Feature Structure + +.. figure:: _assets/DR-005-artefact_overview_sub_feature.drawio.svg + :align: center + :width: 100% + + Artifact Overview - Feature with Sub-Features + +.. figure:: _assets/DR-005-artefact_overview_tracebility.drawio.svg + :align: center + :width: 50% + + Artifact Overview - Traceability Between Artifacts + + + +Justification for the Decision +------------------------------ + +.. list-table:: Decision Criteria Comparison + :header-rows: 1 + :widths: 25 18 18 18 21 + + * - Decision Criteria + - Alternative 1: Status Quo + - Alternative 2: Feature in SW Module Repository + - Alternative 2b: Feature in SW Module Repository with Sub-Features + - Alternative 2c: Dedicated Feature Repository + * - Independence of Release / Topic Coherence (How independently can + features be released and how well are related artifacts kept + together?) + - **(-)** + + Features bound to platform release cycle, split between platform + and modules + - **(+)** + + Complete independence, all artifacts self-contained in one place + - **(+)** + + Full independence with modular sub-features, clear feature + boundaries + - **(o)** + + Partial independence, requirements/architecture separated from + implementation + * - SEooC for Features (How well can features be delivered as Safety + Element out of Context?) + - **(-)** + + Only modules can be SEooC, features are not independent units + - **(+)** + + Complete SEooC at feature level with all artifacts + - **(+)** + + Complete SEooC at feature level with all artifacts + - **(o)** + + Complete SEooC at feature level with all artifacts + * - Reusability across Platforms (How well can the feature be reused + in different platforms?) + - **(-)** + + Platform-specific feature descriptions + - **(+)** + + Self-contained, portable across platforms + - **(+)** + + Self-contained, portable across platforms + sub-feature reuse + - **(o)** + + Self-contained, portable across platforms + * - Maintainability (How easy is it to maintain and update the + feature?) + - **(o)** + + Distributed across platform and module repos + - **(+)** + + All main artifacts in single location + - **(o)** + + Multiple repos increase complexity + - **(-)** + + Multiple repos increase complexity additional for feature + requirements/architecture + * - Number of Repositories (How many repositories are required to + manage?) + - **(+)** + + Minimal: Platform + Module repos + - **(+)** + + Minimal: Platform + Feature repo + - **(o)** + + Multiple per feature (main + sub-features) + - **(-)** + + Multiple per feature (additional for feature + requirements/architecture) + * - Traceability (How well can requirements, architecture, tests, and + code be traced?) + - **(+)** + + Only one tracebility direction + - **(o)** + + Different tracebility directions across repos + - **(o)** + + Different tracebility directions across repos + - **(o)** + + Different tracebility directions across repos + + +Example for Architecture work on platform level +----------------------------------------------- + +Architecture work at the platform level means that decisions are made that +are relevant to the entire system. These can include coding guidelines, +safety concepts, structuring the platform or commonly used interfaces. + +An example of an overarching concept is the definition of a standardized identifier for an application (APP_ID). +Each feature could define its own format, but this would result in an integrator +having to configure different formats for one application. Therefore, the +definition of APP_IDs should be done at the platform level and adopted by +the features. diff --git a/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml new file mode 100644 index 00000000000..c598d6df820 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml @@ -0,0 +1,57 @@ +@startuml elemente + +package "S-CORE Repo" { + class Platform { + + SEooC: bool + -- + Objectives + Stakeholder Requirements + Platform Architecture + SW-Platform Assumptions of use + Platform Integration Tests + } + + class Feature { + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } +} + +package "SW-Module Repo" { + class Component { + + SEooC: bool + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class Unit { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "Integration Repo" { +} + +' Package Relationships +"Integration Repo" ..> "S-CORE Repo" : derives from +"Integration Repo" ..> "SW-Module Repo" : uses +"S-CORE Repo" -[hidden]d- "SW-Module Repo" + +' Relationships +Platform "1" *-- "n" Feature +Feature "1" o-- "n" Component +Component "1" o-- "n" Component : contains +Component "1" o-d- "n" Unit + +@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml new file mode 100644 index 00000000000..e8dcc221d67 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml @@ -0,0 +1,57 @@ +@startuml elemente + +package "S-CORE Repo" { + class Platform { + + SEooC: bool + -- + Objectives + Stakeholder Requirements + Platform Architecture + SW-Platform Assumptions of use + Platform Integration Tests + } +} + +package "SW-Module Repo" { + class Feature { + + SEooC: bool + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } + + class Component { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class Unit { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "Integration Repo" { +} + +' Package Relationships +"Integration Repo" ..> "S-CORE Repo" : derives from +"Integration Repo" ..> "SW-Module Repo" : uses +"S-CORE Repo" -[hidden]d- "SW-Module Repo" + +' Relationships +Platform "1" *-- "n" Feature +Feature "1" o-- "n" Component +Component "1" o-- "n" Component : contains +Component "1" o-d- "n" Unit + +@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml new file mode 100644 index 00000000000..29920cb4ab3 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml @@ -0,0 +1,127 @@ +@startuml elemente + +package "S-CORE Repo" { + class Platform { + + SEooC: bool + -- + Objectives + Stakeholder Requirements + Platform Architecture + SW-Platform Assumptions of use + Platform Integration Tests + } +} + +package "SW-Module Repo (Main)" { + class Feature { + + SEooC: bool + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } + + class Component { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class Unit { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "SW-Module Repo (Sub 1)" { + class SubFeature1 { + + SEooC: bool + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } + + class SubComponent1 { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class SubUnit1 { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "SW-Module Repo (Sub 2)" { + class SubFeature2 { + + SEooC: bool + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } + + class SubComponent2 { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class SubUnit2 { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "Integration Repo" { +} + +' Package Relationships +"Integration Repo" ..> "S-CORE Repo" : derives from +"Integration Repo" ..> "SW-Module Repo (Main)" : uses +"SW-Module Repo (Main)" ..> "SW-Module Repo (Sub 1)" : uses +"SW-Module Repo (Main)" ..> "SW-Module Repo (Sub 2)" : uses +"S-CORE Repo" -[hidden]d- "SW-Module Repo (Main)" + +' Main Feature Relationships +Platform "1" *-- "n" Feature +Feature "1" o-- "n" Component +Component "1" o-- "n" Component : contains +Component "1" o-d- "n" Unit + +' Sub-Feature 1 Relationships +Feature "1" o-- "n" SubFeature1 : contains +SubFeature1 "1" o-- "n" SubComponent1 +SubComponent1 "1" o-- "n" SubComponent1 : contains +SubComponent1 "1" o-d- "n" SubUnit1 + +' Sub-Feature 2 Relationships +Feature "1" o-- "n" SubFeature2 : contains +SubFeature2 "1" o-- "n" SubComponent2 +SubComponent2 "1" o-- "n" SubComponent2 : contains +SubComponent2 "1" o-d- "n" SubUnit2 + +@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml new file mode 100644 index 00000000000..e87ccdfec20 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml @@ -0,0 +1,89 @@ +@startuml elemente + +package "S-CORE Repo" { + class Platform { + + SEooC: bool + -- + Objectives + Stakeholder Requirements + Platform Architecture + SW-Platform Assumptions of use + Platform Integration Tests + } +} + +package "Feature Repo" { + class Feature { + + SEooC: bool + -- + Feature Requirements + Feature Architecture + Feature Integration Tests + Feature Safety/Security Analysis + Feature Assumptions of use + } +} + +package "SW-Module Repo" as FeatureImplRepo1 { + note as N1 + C++ + end note + + class "Component" as ComponentCpp { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class "Unit" as UnitCpp { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "SW-Module Repo" as FeatureImplRepo2 { + note as N2 + Rust + end note + + class "Component" as ComponentRust { + -- + Component Requirements + Component Architecture + Component Integration Tests + Component Safety/Security Analysis + Component Assumption of use + } + + class "Unit" as UnitRust { + -- + Detailed Design + Source Code + Unit Test + } +} + +package "Integration Repo" { +} + +' Package Relationships +"Integration Repo" ..> "S-CORE Repo" : derives from +"Integration Repo" ..> "Feature Repo" : uses +"Integration Repo" ..> FeatureImplRepo1 : uses +"Integration Repo" ..> FeatureImplRepo2 : uses + +' Relationships +Platform "1" *-- "n" Feature +Feature "1" o-- "n" ComponentCpp +Feature "1" o-- "n" ComponentRust +ComponentCpp "1" o-- "n" ComponentCpp : contains +ComponentRust "1" o-- "n" ComponentRust : contains +ComponentCpp "1" o-d- "n" UnitCpp +ComponentRust "1" o-d- "n" UnitRust + +@enduml diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg new file mode 100644 index 00000000000..2219d5b6afd --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg @@ -0,0 +1,4 @@ + + + +
drives
drives
derives
derives
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg new file mode 100644 index 00000000000..211bbaa876c --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg @@ -0,0 +1,4 @@ + + + +
drives
drives
derives
derives
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Sub Feature
Sub Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
(Sub) SW-Module Repo
(Sub) SW-Module Repo
realize
realize
defines
defines
derives
derives
2
2
2
2
1
1
1
1
3
3
3
3
defines
defines

- A new feature is created in a change request folder

- Once it is accepted, it is created in the feature repository

- A new feature is created in a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg new file mode 100644 index 00000000000..3b476c65b32 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg @@ -0,0 +1,4 @@ + + + +
satisfied by
satisfied by
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
Component Requirements
[comp_req]
Component Requiremen...
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
fullfills
fullfills
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
implements
implements
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
fullfills
fullfills
fullfills
fullfills
satisifies
satisifies
satisifies
satisifies
satisfied by
satisfied by
satisifies
satisifies
-New feature is created in a change request folder
-If accepted, it is created in the feature repo
-New feature is created in a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/index.rst b/docs/design_decisions/index.rst index 593cda3e448..cc947b28197 100644 --- a/docs/design_decisions/index.rst +++ b/docs/design_decisions/index.rst @@ -24,3 +24,4 @@ Infrastructure :glob: DR-*-infra* + DR-*-process* From b362b29f3dec2f2455cf49dfe47ab90a0337949a Mon Sep 17 00:00:00 2001 From: arsibo Date: Tue, 10 Mar 2026 15:47:31 +0000 Subject: [PATCH 2/6] process: rework to address circular dependencies in design --- docs/design_decisions/DR-005-process.rst | 398 ++++++++---------- .../_assets/DR-005-PoC_logging.drawio.svg | 4 + .../DR-005-alternative_1_simplified.puml | 57 --- .../DR-005-alternative_2_simplified.puml | 57 --- .../DR-005-alternative_2b_simplified.puml | 127 ------ .../DR-005-alternative_2c_simplified.puml | 89 ---- .../DR-005-artefact_overview.drawio.svg | 4 - ...5-artefact_overview_sub_feature.drawio.svg | 4 - ...5-artefact_overview_tracebility.drawio.svg | 4 - .../_assets/DR-005-breakdown.drawio.svg | 4 + ...core_building_blocks_meta_model.drawio.svg | 4 + ...core_building_blocks_meta_model.drawio.svg | 4 + 12 files changed, 198 insertions(+), 558 deletions(-) create mode 100644 docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg delete mode 100644 docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml delete mode 100644 docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml delete mode 100644 docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml delete mode 100644 docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml delete mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg delete mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg delete mode 100644 docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-005-breakdown.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg diff --git a/docs/design_decisions/DR-005-process.rst b/docs/design_decisions/DR-005-process.rst index 0b2afe6e41a..537e0228aa9 100644 --- a/docs/design_decisions/DR-005-process.rst +++ b/docs/design_decisions/DR-005-process.rst @@ -19,283 +19,249 @@ DR-005-process: Feature as Independent Delivery Product .. dec_rec:: Feature as Independent Delivery Product :id: dec_rec__platform__feature_delivery - :status: proposed - :Context: TBD - :Decision: TBD + :status: accepted + :Context: Feature artifacts are bound to the S-CORE platform repository and cannot be delivered independently of the platform release. The previous idea of moving all artifacts into the SW-Module repository leads to cyclic dependencies. + :Decision: Feature artifacts are split: feature requirements and platform architecture remain in the S-CORE repository. Feature architecture and component artifacts are moved to the SW-Module repository (feature repository). The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, not the other way around. + + :Consequences: Process update required. Feature architecture and component artifacts are moved to SW-Module repositories. Feature requirements and logical feature interfaces remain in the S-CORE repository. The dependency rule is mandatory. - Consequences: TBD Context ------- -With S-CORE, we are jointly developing an open software platform with the goal of reducing complexity, -promoting reuse, gaining speed and enabling scalable innovations. - -From today's perspective, the S-CORE platform will not be able to replace the software platforms -currently used in OEM projects in a single step. For this reason, -S-CORE must support the replacement of parts of the currently used software platforms with S-CORE platform parts. - -Currently, there are two elements in S-CORE for the decomposition of the platform: - - Features - - Components - -The platform consists of features. A feature is realized by a number of components. - -Furthermore, S-CORE provides for two types of delivery products: - - Platform Release - - Software Module Release - -These can be used by OEM projects. -Both delivery types are also a Safety Element out of Context (SEooC), making them easier to integrate. - -A software module is defined as a component or a set of components. -A software module is contained in a repository. - -Features and their artifacts are currently contained in the platform repository. -As a result, they can only be delivered with the platform release. - -The goal is to be able to deliver features independently of the platform release. -For this, the Decision Record proposes that the software module also contains the feature artifacts. +The intent of this decision record is to resolve the cyclic dependency problem present in the +current solution and to make features more independent from the S-CORE platform. +The original idea was to move all feature artifacts into the SW-Module repositories that +also contain the feature code. This was intended to strengthen the following aspects: -The software module that contains the feature artifacts is responsible for fulfilling the feature requirements. -Even though not all S-CORE components required for the feature are located in this SW module (repository). +- Release independence +- Topic cohesion +- Reusability -In section `Alternatives Considered`_, different alternatives are presented. -the current solution is compared with the alternative and evaluated with respect to the following aspects: - - - Independence of Release / Topic Coherence - - SEooC for Features - - Reusability across Platforms - - Maintainability - - Number of Repositories - - Traceability +To validate the feasibility of this concept, an initial proof of concept (PoC) was built +in which all feature artifacts were moved into the SW-Module repository. +It turned out that this leads to cyclic dependencies. +In addition, during the development of the PoC it became clear that the current solution +already contains cyclic dependencies (see :ref:`fig-current-meta-model`). +Therefore, neither the current concept nor the original PoC approach is a viable solution. Decision -------- -Feature artifacts will be stored in the SW module repo. +The feature artifacts are split between the **S-CORE repository** and the +**SW-Module repositories** to avoid cyclic dependencies: + +- The S-CORE repository contains the stakeholder requirements and the platform architecture, + including the feature requirements (requirements at feature level). +- The SW-Module repository contains the feature architecture, the component requirements, + and the detailed design of the components. -Comparing the alternatives based on the criteria in the decision table -below (see `Justification for the Decision`_) shows that Alternative 2b -(Dedicated Feature Repository with Sub-Features) offers the most advantages. -This alternative enables a clear separation and independence of features, -supports SEooC at the feature level, and promotes reusability across -different platforms. Sub-features should be used very sparingly to avoid -unnecessarily increasing complexity. +The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, +but not the other way around. The integration repository knows all repositories. +This rule structurally excludes cyclic dependencies (see :ref:`fig-new-meta-model`). Consequences ------------ -- Process update -- Moving the feature artifacts to feature repos -- Adaptation of the traceability direction from "satisfies" to "satisfied by" between: - - Stakeholder Requirement and Feature Requirement - - Platform Architecture and Feature - -Alternatives Considered ------------------------ - -Alternative 1: Status Quo - Platform-Centric Feature Management -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The platform artifacts and the feature artifacts are contained in the S-CORE platform repository. -The component artifacts are contained in the module repository. -This is the current status. - -.. uml:: _assets/DR-005-alternative_1_simplified.puml - :caption: Alternative 1: Status Quo Architecture - - -Alternative 2: Feature in SW Module Repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +- Process update to reflect the new artifact distribution +- Feature architecture and component artifacts are moved to the SW-Module repositories +- Feature requirements remain in the S-CORE repository +- Logical feature interfaces remain in the S-CORE repository +- The dependency rule "SW-Module repositories → S-CORE repository" is mandatory +- The integration repository takes the role of the only node with knowledge of all repositories -The platform artifacts are located in the S-CORE platform repository. -The feature artifacts are located in the SW module repository. - -Feature artifacts are all artifacts at the feature level, such as feature requirements, -feature architecture, and feature tests. +New Solution (Alternative 3 – Split Artifacts) +----------------------------------------------- -In addition, this SW module also contains the main components of the feature -that are not to be reused independently of this feature context. -A feature can reuse components from other SW modules, such as BaseLibs. +The new solution without cyclic dependencies is shown in :ref:`fig-new-meta-model`. +The new solution follows this approach: -Component artifacts are all artifacts at the component level, such as component requirements, -component architecture, and component tests. -They also include units with detailed design, source code, and unit tests. +The **S-CORE repository** contains: -.. uml:: _assets/DR-005-alternative_2_simplified.puml - :caption: Alternative 2: Dedicated Feature Repository Architecture +1. The stakeholder requirements that the platform must fulfill + (black-box view of the platform). +2. The platform architecture that breaks the platform down into features, and their + feature requirements (white-box view of the platform, black-box view of the features). +A feature consists of components. A distinction is made between: -Alternative 2b: Feature in SW Module Repository with Sub-Features (System of Systems) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +- **Shared components** (e.g. BaseLibs): These are reused by multiple features + and reside in their own SW-Module repositories. A feature can reference such components + as a dependency. +- **Feature-specific components**: These are developed exclusively for the realization of a + specific feature and are probably not intended for reuse. -This variant of Alternative 2 extends the dedicated feature repository -approach to support a System of Systems architecture. Features can be -composed of sub-features, each residing in their own repository. This -enables hierarchical composition where complex features can integrate -multiple sub-features, each maintaining its own complete set of artifacts -(requirements, architecture, tests, components, and units). +The feature-specific components are consolidated together with the feature artifacts in a single +SW-Module repository. This repository can therefore also be referred to as a **feature repository**. -.. uml:: _assets/DR-005-alternative_2b_simplified.puml - :caption: Alternative 2b: System of Systems Feature Repository Architecture +The **SW-Module repository (feature repository)** contains: +1. The feature architecture that breaks the feature down into components, and their + component requirements (white-box view of the feature, black-box view of the component). +2. The component architecture and/or the detailed design of the feature-specific components + (white-box view of the component). -Alternative 2c: Dedicated Feature Repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:ref:`fig-breakdown` illustrates exemplarily the decomposition from the platform via features +down to components, as well as the assignment of artifacts to the respective repositories. +The dependency relationships between repositories run exclusively from the SW-Module repository to the +S-CORE repository — never in the opposite direction. -Alternative 2c is similar to Alternative 2, -with the key difference beingthat there is an intermediate feature repository between -the S-CORE platform repository and the SW module repositories (implementation repositories). -The feature artifacts are located in the feature repository. +.. _fig-breakdown: -This is to address the use case where two implementations exist for the same feature -and copies of the feature artifacts should be avoided. +.. figure:: _assets/DR-005-breakdown.drawio.svg + :align: center + :width: 75% -Alternative 2c represents a solution but should be avoided because it increases complexity, -the number of repositories, and thus the maintenance effort. -Furthermore, it increases the risk that the implementations for aspects that should be the same will diverge. + Breakdown of Artifacts -.. uml:: _assets/DR-005-alternative_2c_simplified.puml - :caption: Alternative 2c: Hierarchical Feature Repository Architecture +A complete overview of all artifacts and their assignment to the repositories is shown in +:ref:`fig-new-meta-model`. +**Building blocks meta model with new repository mapping (Alternative 3 – Split Artifacts)** -Visualization of Artifact Structure -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _fig-new-meta-model: -.. figure:: _assets/DR-005-artefact_overview.drawio.svg +.. figure:: _assets/DR-005-new_score_building_blocks_meta_model.drawio.svg :align: center - :width: 50% + :width: 75% - Artifact Overview - Standard Feature Structure + Building blocks meta model with new repository mapping -.. figure:: _assets/DR-005-artefact_overview_sub_feature.drawio.svg - :align: center - :width: 100% +**Building blocks meta model with current repository mapping (status quo)** - Artifact Overview - Feature with Sub-Features +.. _fig-current-meta-model: -.. figure:: _assets/DR-005-artefact_overview_tracebility.drawio.svg +.. figure:: _assets/DR-005-current_score_building_blocks_meta_model.drawio.svg :align: center - :width: 50% - - Artifact Overview - Traceability Between Artifacts - - - -Justification for the Decision ------------------------------- - -.. list-table:: Decision Criteria Comparison - :header-rows: 1 - :widths: 25 18 18 18 21 + :width: 75% - * - Decision Criteria - - Alternative 1: Status Quo - - Alternative 2: Feature in SW Module Repository - - Alternative 2b: Feature in SW Module Repository with Sub-Features - - Alternative 2c: Dedicated Feature Repository - * - Independence of Release / Topic Coherence (How independently can - features be released and how well are related artifacts kept - together?) - - **(-)** + Building blocks meta model with current repository mapping (status quo) - Features bound to platform release cycle, split between platform - and modules - - **(+)** - Complete independence, all artifacts self-contained in one place - - **(+)** - - Full independence with modular sub-features, clear feature - boundaries - - **(o)** - - Partial independence, requirements/architecture separated from - implementation - * - SEooC for Features (How well can features be delivered as Safety - Element out of Context?) - - **(-)** - - Only modules can be SEooC, features are not independent units - - **(+)** - - Complete SEooC at feature level with all artifacts - - **(+)** +Considered Alternatives +----------------------- - Complete SEooC at feature level with all artifacts - - **(o)** +Four alternatives were examined: + +**Alternative 1 – Status Quo (platform-centric feature management)** + All platform and feature artifacts are located in the S-CORE platform repository. + Component artifacts are in the SW-Module repository. Features can only be delivered with + the platform release. Cyclic dependencies already exist today. + → *not chosen* + +**Alternative 2 – Feature in the SW-Module repository** + Platform artifacts remain in the S-CORE repository; all feature artifacts (requirements, + architecture, tests) and the associated components move into the SW-Module repository. + Enables independent feature releases, but leads to cyclic dependencies, since the + SW-Module repository depends on the S-CORE repository and vice versa. + → *not chosen, due to cyclic dependencies* + +**Alternative 3 – Split artifacts (chosen solution)** + Feature requirements and platform architecture remain in the S-CORE repository. + Feature architecture and component artifacts move to the SW-Module repository. + The dependency direction is unambiguous: SW-Module repositories → S-CORE repository. + Cyclic dependencies are structurally excluded. + → **chosen** + +**Alternative 4 – Dedicated feature repository** + A separate feature repository sits between the S-CORE repository and the SW-Module repositories. + Addresses the use case where two implementations exist for the same feature and + copies of feature artifacts are to be avoided. + Increases complexity, the number of repositories, and maintenance effort. + → *not chosen* + + +Proof of Concept (PoC): Logging +-------------------------------- + +The **logging feature** was used as the PoC. The version shown here already implements +the chosen solution (Alternative 3). + +The feature black-box view (feature requirements) is defined in the ``score`` repository. +The feature architecture and the feature-specific component artifacts are located in the +``logging`` SW-Module repository. The logging feature additionally depends on the +``baselib`` repository and the ``baselib_rust`` repository, which are used as shared +components by multiple features. +The dependency direction runs exclusively from the ``logging`` SW-Module repository +to the ``score`` repository — never the other way around. + +.. figure:: _assets/DR-005-PoC_logging.drawio.svg + :align: center + :width: 75% - Complete SEooC at feature level with all artifacts - * - Reusability across Platforms (How well can the feature be reused - in different platforms?) - - **(-)** + Proof of Concept: Logging Feature - Platform-specific feature descriptions - - **(+)** +Glossary +-------- - Self-contained, portable across platforms - - **(+)** +.. glossary:: - Self-contained, portable across platforms + sub-feature reuse - - **(o)** + Artifact + Any document or result produced during the development process, e.g. requirements, + architecture descriptions, tests or source code. - Self-contained, portable across platforms - * - Maintainability (How easy is it to maintain and update the - feature?) - - **(o)** + Black-box view + Observation of a unit from the outside — only interfaces and behavior are visible, + not the internal structure. - Distributed across platform and module repos - - **(+)** + Decision Record (DR) + A document that describes, justifies, and records the consequences of an architecture + or process decision. - All main artifacts in single location - - **(o)** + Feature + A distinct unit of functionality of the S-CORE platform, realized by a set of components. - Multiple repos increase complexity - - **(-)** + Feature architecture + The description of how a feature is broken down into components + (white-box view of the feature). - Multiple repos increase complexity additional for feature - requirements/architecture - * - Number of Repositories (How many repositories are required to - manage?) - - **(+)** + Feature repository + Designation for a SW-Module repository that contains, in addition to the + feature-specific source code, all associated feature artifacts (feature architecture, + component requirements, detailed design). - Minimal: Platform + Module repos - - **(+)** + Feature requirements + Requirements at the feature level. They describe what a feature must do and are + derived from the stakeholder requirements. - Minimal: Platform + Feature repo - - **(o)** + Integration repository + Repository that knows all other repositories and is responsible for integrating the + overall platform. - Multiple per feature (main + sub-features) - - **(-)** + Component architecture + The detailed structure of a component (white-box view of the component), also + referred to as detailed design. - Multiple per feature (additional for feature - requirements/architecture) - * - Traceability (How well can requirements, architecture, tests, and - code be traced?) - - **(+)** + Component requirements + Requirements at the component level, derived from the feature architecture. - Only one tracebility direction - - **(o)** + Platform architecture + The decomposition of the S-CORE platform into features (white-box view of the platform). - Different tracebility directions across repos - - **(o)** + S-CORE repository + The central platform repository containing stakeholder requirements, platform + architecture, and feature requirements. - Different tracebility directions across repos - - **(o)** + SEooC (Safety Element out of Context) + A safety element that can be developed and delivered independently of a concrete + system context, to facilitate integration into various projects. - Different tracebility directions across repos + Shared components + Components reused by multiple features (e.g. BaseLibs) that reside in their own + SW-Module repositories. Features reference them as dependencies. + SW-Module repository (SW-Module repo) + Repository containing feature architecture, component requirements, detailed design, + and source code of a feature implementation. -Example for Architecture work on platform level ------------------------------------------------ + Stakeholder requirements + Requirements placed on the S-CORE platform as a whole from the outside + (black-box view of the platform). -Architecture work at the platform level means that decisions are made that -are relevant to the entire system. These can include coding guidelines, -safety concepts, structuring the platform or commonly used interfaces. + White-box view + Observation of a unit from the inside — the internal structure and decomposition + are visible. -An example of an overarching concept is the definition of a standardized identifier for an application (APP_ID). -Each feature could define its own format, but this would result in an integrator -having to configure different formats for one application. Therefore, the -definition of APP_IDs should be done at the platform level and adopted by -the features. + Cyclic dependency + A dependency relationship in which two or more units depend on each other mutually, + leading to irresolvable build or versioning conflicts. diff --git a/docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg b/docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg new file mode 100644 index 00000000000..5b0bd11f5cc --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg @@ -0,0 +1,4 @@ + + + +

baselibs repo

baselibs repo
baselibs_rust repo

logging repo

logging repo

score repo

score repo
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml deleted file mode 100644 index c598d6df820..00000000000 --- a/docs/design_decisions/_assets/DR-005-alternative_1_simplified.puml +++ /dev/null @@ -1,57 +0,0 @@ -@startuml elemente - -package "S-CORE Repo" { - class Platform { - + SEooC: bool - -- - Objectives - Stakeholder Requirements - Platform Architecture - SW-Platform Assumptions of use - Platform Integration Tests - } - - class Feature { - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } -} - -package "SW-Module Repo" { - class Component { - + SEooC: bool - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class Unit { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "Integration Repo" { -} - -' Package Relationships -"Integration Repo" ..> "S-CORE Repo" : derives from -"Integration Repo" ..> "SW-Module Repo" : uses -"S-CORE Repo" -[hidden]d- "SW-Module Repo" - -' Relationships -Platform "1" *-- "n" Feature -Feature "1" o-- "n" Component -Component "1" o-- "n" Component : contains -Component "1" o-d- "n" Unit - -@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml deleted file mode 100644 index e8dcc221d67..00000000000 --- a/docs/design_decisions/_assets/DR-005-alternative_2_simplified.puml +++ /dev/null @@ -1,57 +0,0 @@ -@startuml elemente - -package "S-CORE Repo" { - class Platform { - + SEooC: bool - -- - Objectives - Stakeholder Requirements - Platform Architecture - SW-Platform Assumptions of use - Platform Integration Tests - } -} - -package "SW-Module Repo" { - class Feature { - + SEooC: bool - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } - - class Component { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class Unit { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "Integration Repo" { -} - -' Package Relationships -"Integration Repo" ..> "S-CORE Repo" : derives from -"Integration Repo" ..> "SW-Module Repo" : uses -"S-CORE Repo" -[hidden]d- "SW-Module Repo" - -' Relationships -Platform "1" *-- "n" Feature -Feature "1" o-- "n" Component -Component "1" o-- "n" Component : contains -Component "1" o-d- "n" Unit - -@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml deleted file mode 100644 index 29920cb4ab3..00000000000 --- a/docs/design_decisions/_assets/DR-005-alternative_2b_simplified.puml +++ /dev/null @@ -1,127 +0,0 @@ -@startuml elemente - -package "S-CORE Repo" { - class Platform { - + SEooC: bool - -- - Objectives - Stakeholder Requirements - Platform Architecture - SW-Platform Assumptions of use - Platform Integration Tests - } -} - -package "SW-Module Repo (Main)" { - class Feature { - + SEooC: bool - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } - - class Component { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class Unit { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "SW-Module Repo (Sub 1)" { - class SubFeature1 { - + SEooC: bool - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } - - class SubComponent1 { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class SubUnit1 { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "SW-Module Repo (Sub 2)" { - class SubFeature2 { - + SEooC: bool - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } - - class SubComponent2 { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class SubUnit2 { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "Integration Repo" { -} - -' Package Relationships -"Integration Repo" ..> "S-CORE Repo" : derives from -"Integration Repo" ..> "SW-Module Repo (Main)" : uses -"SW-Module Repo (Main)" ..> "SW-Module Repo (Sub 1)" : uses -"SW-Module Repo (Main)" ..> "SW-Module Repo (Sub 2)" : uses -"S-CORE Repo" -[hidden]d- "SW-Module Repo (Main)" - -' Main Feature Relationships -Platform "1" *-- "n" Feature -Feature "1" o-- "n" Component -Component "1" o-- "n" Component : contains -Component "1" o-d- "n" Unit - -' Sub-Feature 1 Relationships -Feature "1" o-- "n" SubFeature1 : contains -SubFeature1 "1" o-- "n" SubComponent1 -SubComponent1 "1" o-- "n" SubComponent1 : contains -SubComponent1 "1" o-d- "n" SubUnit1 - -' Sub-Feature 2 Relationships -Feature "1" o-- "n" SubFeature2 : contains -SubFeature2 "1" o-- "n" SubComponent2 -SubComponent2 "1" o-- "n" SubComponent2 : contains -SubComponent2 "1" o-d- "n" SubUnit2 - -@enduml diff --git a/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml b/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml deleted file mode 100644 index e87ccdfec20..00000000000 --- a/docs/design_decisions/_assets/DR-005-alternative_2c_simplified.puml +++ /dev/null @@ -1,89 +0,0 @@ -@startuml elemente - -package "S-CORE Repo" { - class Platform { - + SEooC: bool - -- - Objectives - Stakeholder Requirements - Platform Architecture - SW-Platform Assumptions of use - Platform Integration Tests - } -} - -package "Feature Repo" { - class Feature { - + SEooC: bool - -- - Feature Requirements - Feature Architecture - Feature Integration Tests - Feature Safety/Security Analysis - Feature Assumptions of use - } -} - -package "SW-Module Repo" as FeatureImplRepo1 { - note as N1 - C++ - end note - - class "Component" as ComponentCpp { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class "Unit" as UnitCpp { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "SW-Module Repo" as FeatureImplRepo2 { - note as N2 - Rust - end note - - class "Component" as ComponentRust { - -- - Component Requirements - Component Architecture - Component Integration Tests - Component Safety/Security Analysis - Component Assumption of use - } - - class "Unit" as UnitRust { - -- - Detailed Design - Source Code - Unit Test - } -} - -package "Integration Repo" { -} - -' Package Relationships -"Integration Repo" ..> "S-CORE Repo" : derives from -"Integration Repo" ..> "Feature Repo" : uses -"Integration Repo" ..> FeatureImplRepo1 : uses -"Integration Repo" ..> FeatureImplRepo2 : uses - -' Relationships -Platform "1" *-- "n" Feature -Feature "1" o-- "n" ComponentCpp -Feature "1" o-- "n" ComponentRust -ComponentCpp "1" o-- "n" ComponentCpp : contains -ComponentRust "1" o-- "n" ComponentRust : contains -ComponentCpp "1" o-d- "n" UnitCpp -ComponentRust "1" o-d- "n" UnitRust - -@enduml diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg deleted file mode 100644 index 2219d5b6afd..00000000000 --- a/docs/design_decisions/_assets/DR-005-artefact_overview.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
drives
drives
derives
derives
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg deleted file mode 100644 index 211bbaa876c..00000000000 --- a/docs/design_decisions/_assets/DR-005-artefact_overview_sub_feature.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
drives
drives
derives
derives
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
drives
drives
derives
derives
Feature Requirements
[feat_req]
Feature Requirements...
drives
drives
Component Requirements
[comp_req]
Component Requiremen...
defines
defines
defines
defines
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
Sub Feature
Sub Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
(Sub) SW-Module Repo
(Sub) SW-Module Repo
realize
realize
defines
defines
derives
derives
2
2
2
2
1
1
1
1
3
3
3
3
defines
defines

- A new feature is created in a change request folder

- Once it is accepted, it is created in the feature repository

- A new feature is created in a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg b/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg deleted file mode 100644 index 3b476c65b32..00000000000 --- a/docs/design_decisions/_assets/DR-005-artefact_overview_tracebility.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
satisfied by
satisfied by
Stakeholder Requirements
[stkh_req]
Stakeholder Requirem...
Feature Requirements
[feat_req]
Feature Requirements...
has
has
has
has
has
has
S-Core Platform
S-Core Platform
Component Requirements
[comp_req]
Component Requiremen...
defines (logic)
defines (logic)
Platform Architecture
[...]
Platform Architectur...
Platform Interface (ext)
[...]
Platform Interface (...
defines
defines
fullfills
fullfills
Feature Architecture
[...]
Feature Architecture...
has
has
has
has
has
has
Feature
Feature
Feature Interface (ext)
[...]
Feature Interface (e...
has
has
has
has
has
has
Component
Component
Component Architecture
[...]
Component Architectu...
Component Interface (ext)
[...]
Component Interface...
implements
implements
Unit
Unit
Detailed Design
[...]
Detailed Design...
In case a component includes components
In case a component...
S-Core repo
S-Core repo
Definition of
- Feature + log. Interface
  (Dependencies)
-  Crosscutting Topics
Definition of- Feature + log....
SW-Module Repo
SW-Module Repo
fullfills
fullfills
fullfills
fullfills
satisifies
satisifies
satisifies
satisifies
satisfied by
satisfied by
satisifies
satisifies
-New feature is created in a change request folder
-If accepted, it is created in the feature repo
-New feature is created in a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-breakdown.drawio.svg b/docs/design_decisions/_assets/DR-005-breakdown.drawio.svg new file mode 100644 index 00000000000..cde95ace03b --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-breakdown.drawio.svg @@ -0,0 +1,4 @@ + + + +
 SW Modul Repository
 SW Modul Repository
 S-Core Repository
 S-Core Repository
implements
implements
Detailed Design Comp_B_2
Detailed Design Comp_B_2
Platform Arc
Platform Arc
uses
uses
Feature A
Feature A
provides
provides
Feature B
Feature B
Platform
Platform
has
has
Stakeholder Requirements
Stakeholder Requirem...
breakdown
breakdown
belogs to
belogs to
Feature A Requirements
Feature A Requiremen...
belongs to
belongs to
Feature B Requirements
Feature B Requiremen...
refinment
refinment
logical Interface B
logical Interface B
Feature A Arc
Feature A Arc
uses
uses
Comp_A_1
Comp_A_1
consists of
consists of
Comp_A_2
Comp_A_2
belongs to
belongs to
Comp_A_1 Requirements
Comp_A_1 Requirements
belongs to
belongs to
satisfies
satisfies
Comp_A_2 Requirements
Comp_A_2 Requirements
Feature B Arc
Feature B Arc
implements
implements
Comp_B_1
Comp_B_1
consists of
consists of
Comp_B_2
Comp_B_2
belongs to
belongs to
Comp_B_1 Requirements
Comp_B_1 Requirements
belongs to
belongs to
satisfies
satisfies
Comp_B_2 Requirements
Comp_B_2 Requirements

Platform Design

Platform Design
Comp_B_1 Arc
Comp_B_1 Arc
Comp_B_1_1
Comp_B_1_1
consists of
consists of
Comp_B_1_2
Comp_B_1_2
belongs to
belongs to
Comp_B_2_1 Requirements
Comp_B_2_1 Requireme...
belongs to
belongs to
satisfies
satisfies
Comp_B_2_2 Requirements
Comp_B_2_2 Requireme...
Unit_B_2_1
Unit_B_2_1
consists of
consists of
Unit_B_2_1
Unit_B_2_1

Feature Design

Feature Design

Componet Design

Componet Design
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg new file mode 100644 index 00000000000..77dc0d72b45 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg @@ -0,0 +1,4 @@ + + + +
SW Modul Repository
SW Modul Repository
S-Core Repository
S-Core Repository
1, *
1, *
belongs_to
belongs_to
includes
includes
Feature
Feature
uses
uses
Component
Component
Feature
Requirements
Feature...
fulfills
fulfills
includes
includes
belongs_to
belongs_to
Feature
Architecture
Feature...
satifies
satifies
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
consists of
consists of
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
Stakeholder
 Requirements
Stakeholder...
satifies
satifies
implements
implements
Platform
Platform
1, *
1, *
consists of
consists of
has
has
1, *
1, *
Objectives
Objectives
1
1
1, *
1, *
fulfills
fulfills
uses
uses
Component
Architecture
Component...
satifies
satifies

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
*
*
1, *
1, *
Feature Safety/
Security Analysis
Feature Safety/...
Assumption of use
Assumption of use
- own AoU
-other AoU
- own AoU...
Platform Integration 
Tests
Platform Integration...
Feature
Integration Tests
Feature...
verifies
verifies
violates
violates
mitigated_by
mitigated_by
verifies
verifies
Component
Integration Tests
Component...
Component Safety /
Security Analysis
Component Safety /...
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
verifies
verifies
verifies
verifies
1
1
1,*
1,*
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
mitigated_by
mitigated_by
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
Delivery Container
Delivery Container
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg new file mode 100644 index 00000000000..cf1625f7b33 --- /dev/null +++ b/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg @@ -0,0 +1,4 @@ + + + +

reference_integration 

Repository
reference_integration Repository
SW Modul Repository
SW Modul Repository
score Repository
score Repository
1, *
1, *
belongs_to
belongs_to
uses
uses
provides
provides
Feature
Feature
uses
uses
Component
Component
Delivery Container
Delivery Container
Feature
Requirements
Feature...
fulfills
fulfills
includes
includes
belongs_to
belongs_to
Feature
Architecture
Feature...
satifies
satifies
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
belongs to
belongs to
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
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
uses
uses
Component
Architecture
Component...
satifies
satifies

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Feature Safety/
Security Analysis
Feature Safety/...
Feature
Assumptions of use
Feature...
- own AoU
-other AoU
- own AoU...
Platform Integration 
Tests
Platform Integration...
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
Component
Integration Tests
Component...
Component Safety /
Security Analysis
Component Safety /...
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
verifies
verifies
verifies
verifies
1
1
1,*
1,*
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
mitigated_by
mitigated_by
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
includes
includes
Platform
Architecture
Platform...
Text is not SVG - cannot display
\ No newline at end of file From 5f9e64e20212aba62bb40390c0d242cac720c648 Mon Sep 17 00:00:00 2001 From: arsibo Date: Fri, 13 Mar 2026 17:14:35 +0000 Subject: [PATCH 3/6] process: rework due to review finding --- docs/design_decisions/DR-005-process.rst | 267 ------------------ ...svg => DR-001-proc-PoC_logging.drawio.svg} | 0 ...o.svg => DR-001-proc-breakdown.drawio.svg} | 0 ...ore_building_blocks_meta_model.drawio.svg} | 0 ...core_building_blocks_meta_model.drawio.svg | 4 + .../DR-001-proc-platform_design.drawio.svg | 4 + ...core_building_blocks_meta_model.drawio.svg | 4 - docs/design_decisions/index.rst | 10 +- 8 files changed, 17 insertions(+), 272 deletions(-) delete mode 100644 docs/design_decisions/DR-005-process.rst rename docs/design_decisions/_assets/{DR-005-PoC_logging.drawio.svg => DR-001-proc-PoC_logging.drawio.svg} (100%) rename docs/design_decisions/_assets/{DR-005-breakdown.drawio.svg => DR-001-proc-breakdown.drawio.svg} (100%) rename docs/design_decisions/_assets/{DR-005-current_score_building_blocks_meta_model.drawio.svg => DR-001-proc-current_score_building_blocks_meta_model.drawio.svg} (100%) create mode 100644 docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg create mode 100644 docs/design_decisions/_assets/DR-001-proc-platform_design.drawio.svg delete mode 100644 docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg diff --git a/docs/design_decisions/DR-005-process.rst b/docs/design_decisions/DR-005-process.rst deleted file mode 100644 index 537e0228aa9..00000000000 --- a/docs/design_decisions/DR-005-process.rst +++ /dev/null @@ -1,267 +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 - # ******************************************************************************* - -.. _decision_record_feature_as_independent_delivery: - -DR-005-process: Feature as Independent Delivery Product -======================================================= - -.. dec_rec:: Feature as Independent Delivery Product - :id: dec_rec__platform__feature_delivery - :status: accepted - :Context: Feature artifacts are bound to the S-CORE platform repository and cannot be delivered independently of the platform release. The previous idea of moving all artifacts into the SW-Module repository leads to cyclic dependencies. - :Decision: Feature artifacts are split: feature requirements and platform architecture remain in the S-CORE repository. Feature architecture and component artifacts are moved to the SW-Module repository (feature repository). The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, not the other way around. - - :Consequences: Process update required. Feature architecture and component artifacts are moved to SW-Module repositories. Feature requirements and logical feature interfaces remain in the S-CORE repository. The dependency rule is mandatory. - - -Context -------- - -The intent of this decision record is to resolve the cyclic dependency problem present in the -current solution and to make features more independent from the S-CORE platform. -The original idea was to move all feature artifacts into the SW-Module repositories that -also contain the feature code. This was intended to strengthen the following aspects: - -- Release independence -- Topic cohesion -- Reusability - -To validate the feasibility of this concept, an initial proof of concept (PoC) was built -in which all feature artifacts were moved into the SW-Module repository. -It turned out that this leads to cyclic dependencies. -In addition, during the development of the PoC it became clear that the current solution -already contains cyclic dependencies (see :ref:`fig-current-meta-model`). -Therefore, neither the current concept nor the original PoC approach is a viable solution. - -Decision --------- - -The feature artifacts are split between the **S-CORE repository** and the -**SW-Module repositories** to avoid cyclic dependencies: - -- The S-CORE repository contains the stakeholder requirements and the platform architecture, - including the feature requirements (requirements at feature level). -- The SW-Module repository contains the feature architecture, the component requirements, - and the detailed design of the components. - -The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, -but not the other way around. The integration repository knows all repositories. -This rule structurally excludes cyclic dependencies (see :ref:`fig-new-meta-model`). - -Consequences ------------- - -- Process update to reflect the new artifact distribution -- Feature architecture and component artifacts are moved to the SW-Module repositories -- Feature requirements remain in the S-CORE repository -- Logical feature interfaces remain in the S-CORE repository -- The dependency rule "SW-Module repositories → S-CORE repository" is mandatory -- The integration repository takes the role of the only node with knowledge of all repositories - -New Solution (Alternative 3 – Split Artifacts) ------------------------------------------------ - -The new solution without cyclic dependencies is shown in :ref:`fig-new-meta-model`. -The new solution follows this approach: - -The **S-CORE repository** contains: - -1. The stakeholder requirements that the platform must fulfill - (black-box view of the platform). -2. The platform architecture that breaks the platform down into features, and their - feature requirements (white-box view of the platform, black-box view of the features). - -A feature consists of components. A distinction is made between: - -- **Shared components** (e.g. BaseLibs): These are reused by multiple features - and reside in their own SW-Module repositories. A feature can reference such components - as a dependency. -- **Feature-specific components**: These are developed exclusively for the realization of a - specific feature and are probably not intended for reuse. - -The feature-specific components are consolidated together with the feature artifacts in a single -SW-Module repository. This repository can therefore also be referred to as a **feature repository**. - -The **SW-Module repository (feature repository)** contains: - -1. The feature architecture that breaks the feature down into components, and their - component requirements (white-box view of the feature, black-box view of the component). -2. The component architecture and/or the detailed design of the feature-specific components - (white-box view of the component). - -:ref:`fig-breakdown` illustrates exemplarily the decomposition from the platform via features -down to components, as well as the assignment of artifacts to the respective repositories. -The dependency relationships between repositories run exclusively from the SW-Module repository to the -S-CORE repository — never in the opposite direction. - -.. _fig-breakdown: - -.. figure:: _assets/DR-005-breakdown.drawio.svg - :align: center - :width: 75% - - Breakdown of Artifacts - -A complete overview of all artifacts and their assignment to the repositories is shown in -:ref:`fig-new-meta-model`. - -**Building blocks meta model with new repository mapping (Alternative 3 – Split Artifacts)** - -.. _fig-new-meta-model: - -.. figure:: _assets/DR-005-new_score_building_blocks_meta_model.drawio.svg - :align: center - :width: 75% - - Building blocks meta model with new repository mapping - -**Building blocks meta model with current repository mapping (status quo)** - -.. _fig-current-meta-model: - -.. figure:: _assets/DR-005-current_score_building_blocks_meta_model.drawio.svg - :align: center - :width: 75% - - Building blocks meta model with current repository mapping (status quo) - - -Considered Alternatives ------------------------ - -Four alternatives were examined: - -**Alternative 1 – Status Quo (platform-centric feature management)** - All platform and feature artifacts are located in the S-CORE platform repository. - Component artifacts are in the SW-Module repository. Features can only be delivered with - the platform release. Cyclic dependencies already exist today. - → *not chosen* - -**Alternative 2 – Feature in the SW-Module repository** - Platform artifacts remain in the S-CORE repository; all feature artifacts (requirements, - architecture, tests) and the associated components move into the SW-Module repository. - Enables independent feature releases, but leads to cyclic dependencies, since the - SW-Module repository depends on the S-CORE repository and vice versa. - → *not chosen, due to cyclic dependencies* - -**Alternative 3 – Split artifacts (chosen solution)** - Feature requirements and platform architecture remain in the S-CORE repository. - Feature architecture and component artifacts move to the SW-Module repository. - The dependency direction is unambiguous: SW-Module repositories → S-CORE repository. - Cyclic dependencies are structurally excluded. - → **chosen** - -**Alternative 4 – Dedicated feature repository** - A separate feature repository sits between the S-CORE repository and the SW-Module repositories. - Addresses the use case where two implementations exist for the same feature and - copies of feature artifacts are to be avoided. - Increases complexity, the number of repositories, and maintenance effort. - → *not chosen* - - -Proof of Concept (PoC): Logging --------------------------------- - -The **logging feature** was used as the PoC. The version shown here already implements -the chosen solution (Alternative 3). - -The feature black-box view (feature requirements) is defined in the ``score`` repository. -The feature architecture and the feature-specific component artifacts are located in the -``logging`` SW-Module repository. The logging feature additionally depends on the -``baselib`` repository and the ``baselib_rust`` repository, which are used as shared -components by multiple features. -The dependency direction runs exclusively from the ``logging`` SW-Module repository -to the ``score`` repository — never the other way around. - -.. figure:: _assets/DR-005-PoC_logging.drawio.svg - :align: center - :width: 75% - - Proof of Concept: Logging Feature - -Glossary --------- - -.. glossary:: - - Artifact - Any document or result produced during the development process, e.g. requirements, - architecture descriptions, tests or source code. - - Black-box view - Observation of a unit from the outside — only interfaces and behavior are visible, - not the internal structure. - - Decision Record (DR) - A document that describes, justifies, and records the consequences of an architecture - or process decision. - - Feature - A distinct unit of functionality of the S-CORE platform, realized by a set of components. - - Feature architecture - The description of how a feature is broken down into components - (white-box view of the feature). - - Feature repository - Designation for a SW-Module repository that contains, in addition to the - feature-specific source code, all associated feature artifacts (feature architecture, - component requirements, detailed design). - - Feature requirements - Requirements at the feature level. They describe what a feature must do and are - derived from the stakeholder requirements. - - Integration repository - Repository that knows all other repositories and is responsible for integrating the - overall platform. - - Component architecture - The detailed structure of a component (white-box view of the component), also - referred to as detailed design. - - Component requirements - Requirements at the component level, derived from the feature architecture. - - Platform architecture - The decomposition of the S-CORE platform into features (white-box view of the platform). - - S-CORE repository - The central platform repository containing stakeholder requirements, platform - architecture, and feature requirements. - - SEooC (Safety Element out of Context) - A safety element that can be developed and delivered independently of a concrete - system context, to facilitate integration into various projects. - - Shared components - Components reused by multiple features (e.g. BaseLibs) that reside in their own - SW-Module repositories. Features reference them as dependencies. - - SW-Module repository (SW-Module repo) - Repository containing feature architecture, component requirements, detailed design, - and source code of a feature implementation. - - Stakeholder requirements - Requirements placed on the S-CORE platform as a whole from the outside - (black-box view of the platform). - - White-box view - Observation of a unit from the inside — the internal structure and decomposition - are visible. - - Cyclic dependency - A dependency relationship in which two or more units depend on each other mutually, - leading to irresolvable build or versioning conflicts. diff --git a/docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-PoC_logging.drawio.svg similarity index 100% rename from docs/design_decisions/_assets/DR-005-PoC_logging.drawio.svg rename to docs/design_decisions/_assets/DR-001-proc-PoC_logging.drawio.svg diff --git a/docs/design_decisions/_assets/DR-005-breakdown.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-breakdown.drawio.svg similarity index 100% rename from docs/design_decisions/_assets/DR-005-breakdown.drawio.svg rename to docs/design_decisions/_assets/DR-001-proc-breakdown.drawio.svg diff --git a/docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-current_score_building_blocks_meta_model.drawio.svg similarity index 100% rename from docs/design_decisions/_assets/DR-005-current_score_building_blocks_meta_model.drawio.svg rename to docs/design_decisions/_assets/DR-001-proc-current_score_building_blocks_meta_model.drawio.svg diff --git a/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg new file mode 100644 index 00000000000..61bfc92addc --- /dev/null +++ b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg @@ -0,0 +1,4 @@ + + + +

reference_integration

Repository
reference_integrationRepository
SW Modul Repository
SW Modul Repository
score Repository
score Repository
belongs_to
belongs_to
provides
provides
uses
uses
Feature
Feature
uses
uses
Component
Component
Delivery Container
Delivery Container
fulfills
fulfills
includes
includes
belongs_to
belongs_to
satifies
satifies
covers - but not the own AoU
covers - but not the own AoU
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
belongs to
belongs to
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
Stakeholder
 Requirements
Stakeholder...
satifies
satifies
implements
implements
has
has
1, *
1, *
has
has
Platform
Platform
1, *
1, *
consists of
consists of
Objectives
Objectives
has
has
1, *
1, *
1, *
1, *
fulfills
fulfills
uses
uses
1, *
1, *
Component
Architecture
Component...

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform
Assumptions of use
Platform...
- own AoU
-other AoU
- own AoU...
verifies
verifies
mitigated_by
mitigated_by
Platform Integration 
Tests
Platform Integration...
verifies
verifies
verifies
verifies
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
Component
Integration Tests
Component...
violates
violates
mitigated_by
mitigated_by
Component Safety /
Security Analysis
Component Safety /...
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
1
1
1,*
1,*
verifies
verifies
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
includes
includes
Platform
Architecture
Platform...
Feature
Architecture
Feature...
Modul
Assumptions of use
Modul...
- own AoU
-other AoU
- own AoU...
satifies
satifies
Feature
Requirements
Feature...
Feature Safety/
Security Analysis
Feature Safety/...
Text
Text
covers - but not the own AoU
covers - but not the own AoU
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-001-proc-platform_design.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-platform_design.drawio.svg new file mode 100644 index 00000000000..d9ec27f92e5 --- /dev/null +++ b/docs/design_decisions/_assets/DR-001-proc-platform_design.drawio.svg @@ -0,0 +1,4 @@ + + + +
 S-Core Repository
 S-Core Repository

Platform Design

Platform Design
Platform Arc
Platform Arc
uses
uses
Feature A
Feature A
provides
provides
Feature B
Feature B
Platform
Platform
has
has
Stakeholder Requirements
Stakeholder Requirem...
breakdown
breakdown
belogs to
belogs to
Feature A Requirements
Feature A Requiremen...
belongs to
belongs to
Feature B Requirements
Feature B Requiremen...
refinment
refinment
logical Interface B
logical Interface B

Platform Design

Platform Design
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg deleted file mode 100644 index cf1625f7b33..00000000000 --- a/docs/design_decisions/_assets/DR-005-new_score_building_blocks_meta_model.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -

reference_integration 

Repository
reference_integration Repository
SW Modul Repository
SW Modul Repository
score Repository
score Repository
1, *
1, *
belongs_to
belongs_to
uses
uses
provides
provides
Feature
Feature
uses
uses
Component
Component
Delivery Container
Delivery Container
Feature
Requirements
Feature...
fulfills
fulfills
includes
includes
belongs_to
belongs_to
Feature
Architecture
Feature...
satifies
satifies
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
belongs to
belongs to
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
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
uses
uses
Component
Architecture
Component...
satifies
satifies

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Feature Safety/
Security Analysis
Feature Safety/...
Feature
Assumptions of use
Feature...
- own AoU
-other AoU
- own AoU...
Platform Integration 
Tests
Platform Integration...
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
Component
Integration Tests
Component...
Component Safety /
Security Analysis
Component Safety /...
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
verifies
verifies
verifies
verifies
1
1
1,*
1,*
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
mitigated_by
mitigated_by
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
includes
includes
Platform
Architecture
Platform...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design_decisions/index.rst b/docs/design_decisions/index.rst index cc947b28197..05347eb85b1 100644 --- a/docs/design_decisions/index.rst +++ b/docs/design_decisions/index.rst @@ -24,4 +24,12 @@ Infrastructure :glob: DR-*-infra* - DR-*-process* + +Process +~~~~~~~ + +.. toctree:: + :maxdepth: 1 + :glob: + + DR-*-proc* From 88bcfdc233f34769fa1a455a94586f1cf02de64b Mon Sep 17 00:00:00 2001 From: arsibo Date: Fri, 13 Mar 2026 17:21:18 +0000 Subject: [PATCH 4/6] process: rework due to review finding --- docs/design_decisions/DR-001-proc.rst | 271 ++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 docs/design_decisions/DR-001-proc.rst diff --git a/docs/design_decisions/DR-001-proc.rst b/docs/design_decisions/DR-001-proc.rst new file mode 100644 index 00000000000..4b1e6310782 --- /dev/null +++ b/docs/design_decisions/DR-001-proc.rst @@ -0,0 +1,271 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +.. _decision_record_feature_as_independent_delivery: + +DR-001-Proc: Feature as Independent Delivery Product +======================================================= + +.. dec_rec:: Feature as Independent Delivery Product + :id: dec_rec__platform__feature_delivery + :status: accepted + :Context: Feature artifacts are bound to the S-CORE platform repository and cannot be delivered independently of the platform release. The previous idea of moving all artifacts into the SW-Module repository leads to cyclic dependencies. + :Decision: Feature artifacts are split: feature requirements and platform architecture remain in the S-CORE repository. Feature architecture and component artifacts are moved to the SW-Module repository (feature repository). The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, not the other way around. + + :Consequences: Process update required. Feature architecture and component artifacts are moved to SW-Module repositories. Feature requirements and logical feature interfaces remain in the S-CORE repository. The dependency rule is mandatory. + + +Context +------- + +The intent of this decision record is to resolve the cyclic dependency problem present in the +current solution and to make features more independent from the S-CORE platform. +The original idea was to move all feature artifacts into the SW-Module repositories that +also contain the feature code. This was intended to strengthen the following aspects: + +- Release independence +- Topic cohesion +- Reusability + +To validate the feasibility of this concept, an initial proof of concept (PoC) was built +in which all feature artifacts were moved into the SW-Module repository. +It turned out that this leads to cyclic dependencies. +In addition, during the development of the PoC it became clear that the current solution +already contains cyclic dependencies (see :ref:`fig-current-meta-model`). +Therefore, neither the current concept nor the original PoC approach is a viable solution. + +Decision +-------- + +The feature artifacts are split between the **S-CORE repository** and the +**SW-Module repositories** to avoid cyclic dependencies: + +- The S-CORE repository contains the stakeholder requirements and the platform architecture, + including the feature requirements (requirements at feature level). +- The SW-Module repository contains the feature architecture, the component requirements, + and the detailed design of the components. + +The dependency direction is unambiguous: SW-Module repositories depend on the S-CORE repository, +but not the other way around. The integration repository knows all repositories. +This rule structurally excludes cyclic dependencies (see :ref:`fig-new-meta-model`). + +Consequences +------------ + +- Process update to reflect the new artifact distribution +- Feature architecture and component artifacts are moved to the SW-Module repositories +- Feature requirements remain in the S-CORE repository +- Logical feature interfaces remain in the S-CORE repository +- The dependency rule "SW-Module repositories → S-CORE repository" is mandatory +- The integration repository takes the role of the only node with knowledge of all repositories + +New Solution (Alternative 3 – Split Artifacts) +----------------------------------------------- + +The new solution without cyclic dependencies is shown in :ref:`fig-new-meta-model`. +The new solution follows this approach: + +The **S-CORE repository** contains: + +1. The stakeholder requirements that the platform must fulfill + (black-box view of the platform). +2. The platform architecture that breaks the platform down into features, their + feature requirements (white-box view of the platform, black-box view of the features), + and their logical architecture interfaces. +3. The platform safety/security analysis and platform assumptions of use. + +A feature consists of components. A distinction is made between: + +- **Shared components** (e.g. BaseLibs): These are reused by multiple features + and reside in their own SW-Module repositories. A feature can reference such components + as a dependency. +- **Feature-specific components**: These are developed exclusively for the realization of a + specific feature and are probably not intended for reuse. + +The feature-specific components are consolidated together with the feature artifacts in a single +SW-Module repository. This repository can therefore also be referred to as a **feature repository**. + +The **SW-Module repository (feature repository)** contains: + +1. The feature architecture that breaks the feature down into components, and their + component requirements (white-box view of the feature, black-box view of the component). +2. The component architecture and/or the detailed design of the feature-specific components + (white-box view of the component). +3. The feature safety/security analysis, component safety/security analysis, and module + assumptions of use. + +:ref:`fig-breakdown` illustrates exemplarily the decomposition from the platform via features +down to components, as well as the assignment of artifacts to the respective repositories. +The dependency relationships between repositories run exclusively from the SW-Module repository to the +S-CORE repository — never in the opposite direction. + +.. _fig-breakdown: + +.. figure:: _assets/DR-001-proc-breakdown.drawio.svg + :align: center + :width: 75% + + Breakdown of Artifacts + +A complete overview of all artifacts and their assignment to the repositories is shown in +:ref:`fig-new-meta-model`. + +**Building blocks meta model with new repository mapping (Alternative 3 – Split Artifacts)** + +.. _fig-new-meta-model: + +.. figure:: _assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg + :align: center + :width: 75% + + Building blocks meta model with new repository mapping + +**Building blocks meta model with current repository mapping (status quo)** + +.. _fig-current-meta-model: + +.. figure:: _assets/DR-001-proc-current_score_building_blocks_meta_model.drawio.svg + :align: center + :width: 75% + + Building blocks meta model with current repository mapping (status quo) + + +Considered Alternatives +----------------------- + +Four alternatives were examined: + +**Alternative 1 – Status Quo (platform-centric feature management)** + All platform and feature artifacts are located in the S-CORE platform repository. + Component artifacts are in the SW-Module repository. Features can only be delivered with + the platform release. Cyclic dependencies already exist today. + → *not chosen* + +**Alternative 2 – Feature in the SW-Module repository** + Platform artifacts remain in the S-CORE repository; all feature artifacts (requirements, + architecture, tests) and the associated components move into the SW-Module repository. + Enables independent feature releases, but leads to cyclic dependencies, since the + SW-Module repository depends on the S-CORE repository and vice versa. + → *not chosen, due to cyclic dependencies* + +**Alternative 3 – Split artifacts (chosen solution)** + Feature requirements and platform architecture remain in the S-CORE repository. + Feature architecture and component artifacts move to the SW-Module repository. + The dependency direction is unambiguous: SW-Module repositories → S-CORE repository. + Cyclic dependencies are structurally excluded. + → **chosen** + +**Alternative 4 – Dedicated feature repository** + A separate feature repository sits between the S-CORE repository and the SW-Module repositories. + Addresses the use case where two implementations exist for the same feature and + copies of feature artifacts are to be avoided. + Increases complexity, the number of repositories, and maintenance effort. + → *not chosen* + + +Proof of Concept (PoC): Logging +-------------------------------- + +The **logging feature** was used as the PoC. The version shown here already implements +the chosen solution (Alternative 3). + +The feature black-box view (feature requirements) is defined in the ``score`` repository. +The feature architecture and the feature-specific component artifacts are located in the +``logging`` SW-Module repository. The logging feature additionally depends on the +``baselib`` repository and the ``baselib_rust`` repository, which are used as shared +components by multiple features. +The dependency direction runs exclusively from the ``logging`` SW-Module repository +to the ``score`` repository — never the other way around. + +.. figure:: _assets/DR-001-proc-PoC_logging.drawio.svg + :align: center + :width: 75% + + Proof of Concept: Logging Feature + +Glossary +-------- + +.. glossary:: + + Artifact + Any document or result produced during the development process, e.g. requirements, + architecture descriptions, tests or source code. + + Black-box view + Observation of a unit from the outside — only interfaces and behavior are visible, + not the internal structure. + + Decision Record (DR) + A document that describes, justifies, and records the consequences of an architecture + or process decision. + + Feature + A distinct unit of functionality of the S-CORE platform, realized by a set of components. + + Feature architecture + The description of how a feature is broken down into components + (white-box view of the feature). + + Feature repository + Designation for a SW-Module repository that contains, in addition to the + feature-specific source code, all associated feature artifacts (feature architecture, + component requirements, detailed design). + + Feature requirements + Requirements at the feature level. They describe what a feature must do and are + derived from the stakeholder requirements. + + Integration repository + Repository that knows all other repositories and is responsible for integrating the + overall platform. + + Component architecture + The detailed structure of a component (white-box view of the component), also + referred to as detailed design. + + Component requirements + Requirements at the component level, derived from the feature architecture. + + Platform architecture + The decomposition of the S-CORE platform into features (white-box view of the platform). + + S-CORE repository + The central platform repository containing stakeholder requirements, platform + architecture, and feature requirements. + + SEooC (Safety Element out of Context) + A safety element that can be developed and delivered independently of a concrete + system context, to facilitate integration into various projects. + + Shared components + Components reused by multiple features (e.g. BaseLibs) that reside in their own + SW-Module repositories. Features reference them as dependencies. + + SW-Module repository (SW-Module repo) + Repository containing feature architecture, component requirements, detailed design, + and source code of a feature implementation. + + Stakeholder requirements + Requirements placed on the S-CORE platform as a whole from the outside + (black-box view of the platform). + + White-box view + Observation of a unit from the inside — the internal structure and decomposition + are visible. + + Cyclic dependency + A dependency relationship in which two or more units depend on each other mutually, + leading to irresolvable build or versioning conflicts. From 0698ae25e1851ceb855af4ea7b34efd71171e380 Mon Sep 17 00:00:00 2001 From: arsibo Date: Fri, 13 Mar 2026 17:30:49 +0000 Subject: [PATCH 5/6] process: rework due to review finding --- ...core_building_blocks_meta_model.drawio.svg | 2527 ++++++++++++++++- 1 file changed, 2523 insertions(+), 4 deletions(-) diff --git a/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg index 61bfc92addc..c035c305c67 100644 --- a/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg +++ b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg @@ -1,4 +1,2523 @@ - - - -

reference_integration

Repository
reference_integrationRepository
SW Modul Repository
SW Modul Repository
score Repository
score Repository
belongs_to
belongs_to
provides
provides
uses
uses
Feature
Feature
uses
uses
Component
Component
Delivery Container
Delivery Container
fulfills
fulfills
includes
includes
belongs_to
belongs_to
satifies
satifies
covers - but not the own AoU
covers - but not the own AoU
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
belongs to
belongs to
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
Stakeholder
 Requirements
Stakeholder...
satifies
satifies
implements
implements
has
has
1, *
1, *
has
has
Platform
Platform
1, *
1, *
consists of
consists of
Objectives
Objectives
has
has
1, *
1, *
1, *
1, *
fulfills
fulfills
uses
uses
1, *
1, *
Component
Architecture
Component...

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform
Assumptions of use
Platform...
- own AoU
-other AoU
- own AoU...
verifies
verifies
mitigated_by
mitigated_by
Platform Integration 
Tests
Platform Integration...
verifies
verifies
verifies
verifies
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
Component
Integration Tests
Component...
violates
violates
mitigated_by
mitigated_by
Component Safety /
Security Analysis
Component Safety /...
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
1
1
1,*
1,*
verifies
verifies
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
includes
includes
Platform
Architecture
Platform...
Feature
Architecture
Feature...
Modul
Assumptions of use
Modul...
- own AoU
-other AoU
- own AoU...
satifies
satifies
Feature
Requirements
Feature...
Feature Safety/
Security Analysis
Feature Safety/...
Text
Text
covers - but not the own AoU
covers - but not the own AoU
Text is not SVG - cannot display
\ No newline at end of file + + + + + + + + + + +
+
+
+
+

+ + + + refer + + + + ence_integration + + + + +
+
+
+
+
+

+ + Repository + +
+
+
+
+
+ + reference_integrationRepository + +
+
+
+ + + + + + + +
+
+
+
+
+ SW Modul Repository +
+
+
+
+
+
+ + SW Modul Repository + +
+
+
+ + + + + + + +
+
+
+ + + + + score Repository +
+
+
+
+ + score Repository + +
+
+
+ + + + + + + + + + + + +
+
+
+ belongs_to +
+
+
+
+ + belongs_to + +
+
+
+ + + + + + + + +
+
+
+ provides +
+
+
+
+ + provides + +
+
+
+ + + + + + + + +
+
+
+ uses +
+
+
+
+ + uses + +
+
+
+ + + + + + + + + +
+
+
+ Feature +
+
+
+
+ + Feature + +
+
+
+ + + + + + + + +
+
+
+ + uses + +
+
+
+
+ + uses + +
+
+
+ + + + + + + + + + + + + +
+
+
+ Component +
+
+
+
+ + Component + +
+
+
+ + + + + + + + + +
+
+
+ Delivery Container +
+
+
+
+ + Delivery Container + +
+
+
+ + + + + + + + +
+
+
+ fulfills +
+
+
+
+ + fulfills + +
+
+
+ + + + + + + + +
+
+
+ includes +
+
+
+
+ + includes + +
+
+
+ + + + + + + + +
+
+
+ belongs_to +
+
+
+
+ + belongs_to + +
+
+
+ + + + + + + + +
+
+
+ satifies +
+
+
+
+ + satifies + +
+
+
+ + + + + + + + +
+
+
+ + covers - but not the own AoU + +
+
+
+
+ + covers - but not the own AoU + +
+
+
+ + + + + + + + + +
+
+
+ Component +
+ Requirements +
+
+
+
+ + Component... + +
+
+
+ + + + + + + +
+
+
+ 1,* +
+
+
+
+ + 1,* + +
+
+
+ + + + +
+
+
+ belongs_to +
+
+
+
+ + belongs_to + +
+
+
+ + + + +
+
+
+ belongs to +
+
+
+
+ + belongs to + +
+
+
+ + + + + + + + +
+
+
+ includes +
+
+
+
+ + includes + +
+
+
+ + + + + + + + + +
+
+
+ Unit +
+
+
+
+ + Unit + +
+
+
+ + + + + + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + +
+
+
+ belongs_to +
+
+
+
+ + belongs_to + +
+
+
+ + + + + + + + + +
+
+
+ Source Code +
+
+
+
+ + Source Code + +
+
+
+ + + + + + + + + +
+
+
+ Stakeholder +
+ Requirements +
+
+
+
+ + Stakeholder... + +
+
+
+ + + + + + + + +
+
+
+ satifies +
+
+
+
+ + satifies + +
+
+
+ + + + + + + + +
+
+
+ implements +
+
+
+
+ + implements + +
+
+
+ + + + + + + + +
+
+
+ has +
+
+
+
+ + has + +
+
+
+ + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + + + + + +
+
+
+ has +
+
+
+
+ + has + +
+
+
+ + + + + + + + + +
+
+
+ Platform +
+
+
+
+ + Platform + +
+
+
+ + + + + + + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + +
+
+
+ consists of +
+
+
+
+ + consists of + +
+
+
+ + + + + + + + + +
+
+
+ Objectives +
+
+
+
+ + Objectives + +
+
+
+ + + + + + + + +
+
+
+ has +
+
+
+
+ + has + +
+
+
+ + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + + + + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + + + + + +
+
+
+ fulfills +
+
+
+
+ + fulfills + +
+
+
+ + + + + + + + +
+
+
+ uses +
+
+
+
+ + uses + +
+
+
+ + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + + + + + + +
+
+
+ Component +
+ Architecture +
+
+
+
+ + Component... + +
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ + + + +
+
+
+ + belongs_to + +
+
+
+
+ + belongs_to + +
+
+
+ + + + + + + + + +
+
+
+ Detailed +
+ Design +
+
+
+
+ + Detailed... + +
+
+
+ + + + + + + + + + + + +
+
+
+ satifies +
+
+
+
+ + satifies + +
+
+
+ + + + + + + + +
+
+
+ implements +
+
+
+
+ + implements + +
+
+
+ + + + +
+
+
+ consists of +
+
+
+
+ + consists of + +
+
+
+ + + + + + + + +
+
+
+ implements +
+
+
+
+ + implements + +
+
+
+ + + + + + + + + +
+
+
+ 1 +
+
+
+
+ + 1 + +
+
+
+ + + + + + + +
+
+
+ * +
+
+
+
+ + * + +
+
+
+ + + + + + + + + +
+
+
+ Dependable Element +
+
+
+
+ + Dependable Element + +
+
+
+ + + + + + + + +
+
+
+ includes +
+
+
+
+ + includes + +
+
+
+ + + + + + + +
+
+
+ 1,* +
+
+
+
+ + 1,* + +
+
+
+ + + + + + + + +
+
+
+ violates +
+
+
+
+ + violates + +
+
+
+ + + + + + + + +
+
+
+ mitigated_by +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + +
+
+
+ mitigated_by +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + + +
+
+
+ Platform +
+ Assumptions of use +
+
+
+
+ + Platform... + +
+
+
+ + + + + + + +
+
+
+ - own AoU +
+ -other AoU +
+
+
+
+ + - own AoU... + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ mitigated_by +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + + +
+
+
+ Platform Integration +
+ Tests +
+
+
+
+ + Platform Integration... + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + + +
+
+
+ Feature +
+ Integration Tests +
+
+
+
+ + Feature... + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + + +
+
+
+ Component +
+ Integration Tests +
+
+
+
+ + Component... + +
+
+
+ + + + + + + + +
+
+
+ violates +
+
+
+
+ + violates + +
+
+
+ + + + + + + + +
+
+
+ + mitigated_by + +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + + +
+
+
+ Component Safety / +
+ Security Analysis +
+
+
+
+ + Component Safety /... + +
+
+
+ + + + + + + + +
+
+
+ + mitigated_by + +
+
+
+
+ + mitigated_by + +
+
+
+ + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + + +
+
+
+ Unit Test +
+
+
+
+ + Unit Test + +
+
+
+ + + + + + + +
+
+
+ 1 +
+
+
+
+ + 1 + +
+
+
+ + + + + + + +
+
+
+ 1,* +
+
+
+
+ + 1,* + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ mitigated_by +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + +
+
+
+ mitigated_by +
+
+
+
+ + mitigated_by + +
+
+
+ + + + + + + + + +
+
+
+ Platform Safety/ +
+ Security Analysis +
+
+
+
+ + Platform Safety/... + +
+
+
+ + + + + + + + +
+
+
+ + violates + +
+
+
+
+ + violates + +
+
+
+ + + + + + + + +
+
+
+ fulfils +
+
+
+
+ + fulfils + +
+
+
+ + + + + + + + + +
+
+
+ Logical Arc. Interface +
+
+
+
+ + Logical Arc. Interface + +
+
+
+ + + + + + + +
+
+
+ Legend +
+
+
+
+ + Legend + +
+
+
+ + + + + + + +
+
+
+ UML +
+ (sphinx needs) +
+
+
+
+
+ + UML... + +
+
+
+ + + + + + + +
+
+
+ implicit +
+
+
+
+ + implicit + +
+
+
+ + + + + + + +
+
+
+ mandatory +
+
+
+
+ + mandatory + +
+
+
+ + + + + + + +
+
+
+ optional +
+
+
+
+ + optional + +
+
+
+ + + + + + + + +
+
+
+ includes +
+
+
+
+ + includes + +
+
+
+ + + + + + + + +
+
+
+ belongs_to +
+
+
+
+ + belongs_to + +
+
+
+ + + + + + + + + +
+
+
+ Dependable Element +
+ View +
+
+
+
+ + Dependable Element... + +
+
+
+ + + + + + + +
+
+
+ Tool generated +
+ Target not specified +
+
+
+
+ + Tool gener... + +
+
+
+ + + + + + + +
+
+
+ Line Color +
+
+
+
+ + Line Color + +
+
+
+ + + + + + + +
+
+
+ Line Style +
+
+
+
+ + Line Style + +
+
+
+ + + + + + + + +
+
+
+ + implements + +
+
+
+
+ + implements + +
+
+
+ + + + + + + + + +
+
+
+ 1 +
+
+
+
+ + 1 + +
+
+
+ + + + +
+
+
+ 1, * +
+
+
+
+ + 1, * + +
+
+
+ + + + + + + + + +
+
+
+ * +
+
+
+
+ + * + +
+
+
+ + + + +
+
+
+ 1 +
+
+
+
+ + 1 + +
+
+
+ + + + + + + + +
+
+
+ fulfills - but not the feature's own AoU +
+
+
+
+ + fulfills - but not the feature's own AoU + +
+
+
+ + + + + + + + +
+
+
+ fulfills - but not the component's own AoU +
+
+
+
+ + fulfills - but not the component's own AoU + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ verifies +
+
+
+
+ + verifies + +
+
+
+ + + + + + + + +
+
+
+ includes +
+
+
+
+ + includes + +
+
+
+ + + + + + + + + +
+
+
+ Platform +
+ Architecture +
+
+
+
+ + Platform... + +
+
+
+ + + + + + + + + +
+
+
+ Feature +
+ Architecture +
+
+
+
+ + Feature... + +
+
+
+ + + + + + + + + +
+
+
+ Modul +
+ Assumptions of use +
+
+
+
+ + Modul... + +
+
+
+ + + + + + + +
+
+
+ - own AoU +
+ -other AoU +
+
+
+
+ + - own AoU... + +
+
+
+ + + + + + + + +
+
+
+ + satifies + +
+
+
+
+ + satifies + +
+
+
+ + + + + + + + + +
+
+
+ Feature +
+ Requirements +
+
+
+
+ + Feature... + +
+
+
+ + + + + + + + + +
+
+
+ Feature Safety/ +
+ Security Analysis +
+
+
+
+ + Feature Safety/... + +
+
+
+ + + + + + + + +
+
+
+ + covers - but not the own AoU + +
+
+
+
+ + covers - but not the own AoU + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
From c219ba18dd4bc6589b2b529162186c34a1751ab6 Mon Sep 17 00:00:00 2001 From: arsibo Date: Mon, 16 Mar 2026 14:58:42 +0000 Subject: [PATCH 6/6] process: rework due to review finding --- docs/design_decisions/DR-001-proc.rst | 8 +- ...core_building_blocks_meta_model.drawio.svg | 2527 +---------------- 2 files changed, 11 insertions(+), 2524 deletions(-) diff --git a/docs/design_decisions/DR-001-proc.rst b/docs/design_decisions/DR-001-proc.rst index 4b1e6310782..bd069ee3621 100644 --- a/docs/design_decisions/DR-001-proc.rst +++ b/docs/design_decisions/DR-001-proc.rst @@ -93,9 +93,15 @@ A feature consists of components. A distinction is made between: - **Feature-specific components**: These are developed exclusively for the realization of a specific feature and are probably not intended for reuse. -The feature-specific components are consolidated together with the feature artifacts in a single +The feature-specific components are bundled together with the feature artifacts in a single SW-Module repository. This repository can therefore also be referred to as a **feature repository**. +.. note:: + + A feature repository may also contain components witch are used from other features. + Unlike BaseLibs, these components are related to the feature and are not used by all S-CORE features. + A component that merely *implements* a Logical Architecture Interface *provided* by a feature is not considered shared; it remains specific to that feature. + The **SW-Module repository (feature repository)** contains: 1. The feature architecture that breaks the feature down into components, and their diff --git a/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg index c035c305c67..ef19229c805 100644 --- a/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg +++ b/docs/design_decisions/_assets/DR-001-proc-new_score_building_blocks_meta_model.drawio.svg @@ -1,2523 +1,4 @@ - - - - - - - - - - -
-
-
-
-

- - - - refer - - - - ence_integration - - - - -
-
-
-
-
-

- - Repository - -
-
-
-
-
- - reference_integrationRepository - -
-
-
- - - - - - - -
-
-
-
-
- SW Modul Repository -
-
-
-
-
-
- - SW Modul Repository - -
-
-
- - - - - - - -
-
-
- - - - - score Repository -
-
-
-
- - score Repository - -
-
-
- - - - - - - - - - - - -
-
-
- belongs_to -
-
-
-
- - belongs_to - -
-
-
- - - - - - - - -
-
-
- provides -
-
-
-
- - provides - -
-
-
- - - - - - - - -
-
-
- uses -
-
-
-
- - uses - -
-
-
- - - - - - - - - -
-
-
- Feature -
-
-
-
- - Feature - -
-
-
- - - - - - - - -
-
-
- - uses - -
-
-
-
- - uses - -
-
-
- - - - - - - - - - - - - -
-
-
- Component -
-
-
-
- - Component - -
-
-
- - - - - - - - - -
-
-
- Delivery Container -
-
-
-
- - Delivery Container - -
-
-
- - - - - - - - -
-
-
- fulfills -
-
-
-
- - fulfills - -
-
-
- - - - - - - - -
-
-
- includes -
-
-
-
- - includes - -
-
-
- - - - - - - - -
-
-
- belongs_to -
-
-
-
- - belongs_to - -
-
-
- - - - - - - - -
-
-
- satifies -
-
-
-
- - satifies - -
-
-
- - - - - - - - -
-
-
- - covers - but not the own AoU - -
-
-
-
- - covers - but not the own AoU - -
-
-
- - - - - - - - - -
-
-
- Component -
- Requirements -
-
-
-
- - Component... - -
-
-
- - - - - - - -
-
-
- 1,* -
-
-
-
- - 1,* - -
-
-
- - - - -
-
-
- belongs_to -
-
-
-
- - belongs_to - -
-
-
- - - - -
-
-
- belongs to -
-
-
-
- - belongs to - -
-
-
- - - - - - - - -
-
-
- includes -
-
-
-
- - includes - -
-
-
- - - - - - - - - -
-
-
- Unit -
-
-
-
- - Unit - -
-
-
- - - - - - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - -
-
-
- belongs_to -
-
-
-
- - belongs_to - -
-
-
- - - - - - - - - -
-
-
- Source Code -
-
-
-
- - Source Code - -
-
-
- - - - - - - - - -
-
-
- Stakeholder -
- Requirements -
-
-
-
- - Stakeholder... - -
-
-
- - - - - - - - -
-
-
- satifies -
-
-
-
- - satifies - -
-
-
- - - - - - - - -
-
-
- implements -
-
-
-
- - implements - -
-
-
- - - - - - - - -
-
-
- has -
-
-
-
- - has - -
-
-
- - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - - - - - -
-
-
- has -
-
-
-
- - has - -
-
-
- - - - - - - - - -
-
-
- Platform -
-
-
-
- - Platform - -
-
-
- - - - - - - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - -
-
-
- consists of -
-
-
-
- - consists of - -
-
-
- - - - - - - - - -
-
-
- Objectives -
-
-
-
- - Objectives - -
-
-
- - - - - - - - -
-
-
- has -
-
-
-
- - has - -
-
-
- - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - - - - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - - - - - -
-
-
- fulfills -
-
-
-
- - fulfills - -
-
-
- - - - - - - - -
-
-
- uses -
-
-
-
- - uses - -
-
-
- - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - - - - - - -
-
-
- Component -
- Architecture -
-
-
-
- - Component... - -
-
-
- - - - - - - - -
-
-
-
-
-
-
-
-
-
- - -
-
-
- - - - -
-
-
- - belongs_to - -
-
-
-
- - belongs_to - -
-
-
- - - - - - - - - -
-
-
- Detailed -
- Design -
-
-
-
- - Detailed... - -
-
-
- - - - - - - - - - - - -
-
-
- satifies -
-
-
-
- - satifies - -
-
-
- - - - - - - - -
-
-
- implements -
-
-
-
- - implements - -
-
-
- - - - -
-
-
- consists of -
-
-
-
- - consists of - -
-
-
- - - - - - - - -
-
-
- implements -
-
-
-
- - implements - -
-
-
- - - - - - - - - -
-
-
- 1 -
-
-
-
- - 1 - -
-
-
- - - - - - - -
-
-
- * -
-
-
-
- - * - -
-
-
- - - - - - - - - -
-
-
- Dependable Element -
-
-
-
- - Dependable Element - -
-
-
- - - - - - - - -
-
-
- includes -
-
-
-
- - includes - -
-
-
- - - - - - - -
-
-
- 1,* -
-
-
-
- - 1,* - -
-
-
- - - - - - - - -
-
-
- violates -
-
-
-
- - violates - -
-
-
- - - - - - - - -
-
-
- mitigated_by -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - -
-
-
- mitigated_by -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - - -
-
-
- Platform -
- Assumptions of use -
-
-
-
- - Platform... - -
-
-
- - - - - - - -
-
-
- - own AoU -
- -other AoU -
-
-
-
- - - own AoU... - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- mitigated_by -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - - -
-
-
- Platform Integration -
- Tests -
-
-
-
- - Platform Integration... - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - - -
-
-
- Feature -
- Integration Tests -
-
-
-
- - Feature... - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - - -
-
-
- Component -
- Integration Tests -
-
-
-
- - Component... - -
-
-
- - - - - - - - -
-
-
- violates -
-
-
-
- - violates - -
-
-
- - - - - - - - -
-
-
- - mitigated_by - -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - - -
-
-
- Component Safety / -
- Security Analysis -
-
-
-
- - Component Safety /... - -
-
-
- - - - - - - - -
-
-
- - mitigated_by - -
-
-
-
- - mitigated_by - -
-
-
- - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - - -
-
-
- Unit Test -
-
-
-
- - Unit Test - -
-
-
- - - - - - - -
-
-
- 1 -
-
-
-
- - 1 - -
-
-
- - - - - - - -
-
-
- 1,* -
-
-
-
- - 1,* - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- mitigated_by -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - -
-
-
- mitigated_by -
-
-
-
- - mitigated_by - -
-
-
- - - - - - - - - -
-
-
- Platform Safety/ -
- Security Analysis -
-
-
-
- - Platform Safety/... - -
-
-
- - - - - - - - -
-
-
- - violates - -
-
-
-
- - violates - -
-
-
- - - - - - - - -
-
-
- fulfils -
-
-
-
- - fulfils - -
-
-
- - - - - - - - - -
-
-
- Logical Arc. Interface -
-
-
-
- - Logical Arc. Interface - -
-
-
- - - - - - - -
-
-
- Legend -
-
-
-
- - Legend - -
-
-
- - - - - - - -
-
-
- UML -
- (sphinx needs) -
-
-
-
-
- - UML... - -
-
-
- - - - - - - -
-
-
- implicit -
-
-
-
- - implicit - -
-
-
- - - - - - - -
-
-
- mandatory -
-
-
-
- - mandatory - -
-
-
- - - - - - - -
-
-
- optional -
-
-
-
- - optional - -
-
-
- - - - - - - - -
-
-
- includes -
-
-
-
- - includes - -
-
-
- - - - - - - - -
-
-
- belongs_to -
-
-
-
- - belongs_to - -
-
-
- - - - - - - - - -
-
-
- Dependable Element -
- View -
-
-
-
- - Dependable Element... - -
-
-
- - - - - - - -
-
-
- Tool generated -
- Target not specified -
-
-
-
- - Tool gener... - -
-
-
- - - - - - - -
-
-
- Line Color -
-
-
-
- - Line Color - -
-
-
- - - - - - - -
-
-
- Line Style -
-
-
-
- - Line Style - -
-
-
- - - - - - - - -
-
-
- - implements - -
-
-
-
- - implements - -
-
-
- - - - - - - - - -
-
-
- 1 -
-
-
-
- - 1 - -
-
-
- - - - -
-
-
- 1, * -
-
-
-
- - 1, * - -
-
-
- - - - - - - - - -
-
-
- * -
-
-
-
- - * - -
-
-
- - - - -
-
-
- 1 -
-
-
-
- - 1 - -
-
-
- - - - - - - - -
-
-
- fulfills - but not the feature's own AoU -
-
-
-
- - fulfills - but not the feature's own AoU - -
-
-
- - - - - - - - -
-
-
- fulfills - but not the component's own AoU -
-
-
-
- - fulfills - but not the component's own AoU - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- verifies -
-
-
-
- - verifies - -
-
-
- - - - - - - - -
-
-
- includes -
-
-
-
- - includes - -
-
-
- - - - - - - - - -
-
-
- Platform -
- Architecture -
-
-
-
- - Platform... - -
-
-
- - - - - - - - - -
-
-
- Feature -
- Architecture -
-
-
-
- - Feature... - -
-
-
- - - - - - - - - -
-
-
- Modul -
- Assumptions of use -
-
-
-
- - Modul... - -
-
-
- - - - - - - -
-
-
- - own AoU -
- -other AoU -
-
-
-
- - - own AoU... - -
-
-
- - - - - - - - -
-
-
- - satifies - -
-
-
-
- - satifies - -
-
-
- - - - - - - - - -
-
-
- Feature -
- Requirements -
-
-
-
- - Feature... - -
-
-
- - - - - - - - - -
-
-
- Feature Safety/ -
- Security Analysis -
-
-
-
- - Feature Safety/... - -
-
-
- - - - - - - - -
-
-
- - covers - but not the own AoU - -
-
-
-
- - covers - but not the own AoU - -
-
-
-
- - - - - Text is not SVG - cannot display - - - -
+ + + +

reference_integration

repository
reference_integrationrepository
SW Modul repository
SW Modul repository
score repository
score repository
belongs_to
belongs_to
provides
provides
uses
uses
Feature
Feature
uses
uses
Component
Component
Delivery Container
Delivery Container
fulfills
fulfills
includes
includes
belongs_to
belongs_to
satifies
satifies
covers - but not the own AoU
covers - but not the own AoU
Component
Requirements
Component...
1,*
1,*
belongs_to
belongs_to
belongs to
belongs to
includes
includes
Unit
Unit
1, *
1, *
belongs_to
belongs_to
Source Code
Source Code
Stakeholder
 Requirements
Stakeholder...
satifies
satifies
implements
implements
has
has
1, *
1, *
has
has
Platform
Platform
1, *
1, *
consists of
consists of
Objectives
Objectives
has
has
1, *
1, *
1, *
1, *
fulfills
fulfills
uses
uses
1, *
1, *
Component
Architecture
Component...

belongs_to
belongs_to
Detailed
Design
Detailed...
satifies
satifies
implements
implements
consists of
consists of
implements
implements
1
1
*
*
Dependable Element
Dependable Element
includes
includes
1,*
1,*
violates
violates
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform
Assumptions of use
Platform...
- own AoU
-other AoU
- own AoU...
verifies
verifies
mitigated_by
mitigated_by
Platform Integration 
Tests
Platform Integration...
verifies
verifies
verifies
verifies
Feature
Integration Tests
Feature...
verifies
verifies
verifies
verifies
Component
Integration Tests
Component...
violates
violates
mitigated_by
mitigated_by
Component Safety /
Security Analysis
Component Safety /...
mitigated_by
mitigated_by
verifies
verifies
Unit Test
Unit Test
1
1
1,*
1,*
verifies
verifies
mitigated_by
mitigated_by
mitigated_by
mitigated_by
Platform Safety/
Security Analysis
Platform Safety/...
violates
violates
fulfils
fulfils
Logical Arc. Interface
Logical Arc. Interface
Legend
Legend
UML
(sphinx needs)
UML...
implicit
implicit
mandatory
mandatory
optional
optional
includes
includes
belongs_to
belongs_to
Dependable Element
View
Dependable Element...
Tool generated
Target not specified
Tool gener...
Line Color
Line Color
Line Style
Line Style
implements
implements
1
1
1, *
1, *
*
*
1
1
fulfills - but not the feature's own AoU
fulfills - but not the feature's own AoU
fulfills - but not the component's own AoU
fulfills - but not the component's own AoU
verifies
verifies
verifies
verifies
includes
includes
Platform
Architecture
Platform...
Feature
Architecture
Feature...
Modul
Assumptions of use
Modul...
- own AoU
-other AoU
- own AoU...
satifies
satifies
Feature
Requirements
Feature...
Feature Safety/
Security Analysis
Feature Safety/...
covers - but not the own AoU
covers - but not the own AoU
Text is not SVG - cannot display
\ No newline at end of file