Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ Static Architecture
:includes: logic_arc_int__feature_name__interface_name
:consists_of: comp__component_name

General Feature Description

.. feat_arc_sta:: Static View
:id: feat_arc_sta__feature_name__static_view
Expand All @@ -100,7 +101,7 @@ Dynamic Architecture
:status: invalid
:fulfils: feat_req__feature_name__some_title

put here a sequence diagram
Put here a sequence diagram

Logical Interfaces
------------------
Expand All @@ -111,6 +112,8 @@ Logical Interfaces
:safety: ASIL_B
:status: invalid

General Interface Description

.. needarch::
:scale: 50
:align: center
Expand All @@ -124,6 +127,8 @@ Logical Interfaces
:status: invalid
:included_by: logic_arc_int__feature_name__interface_name

General Operation Description

Module Viewpoint
----------------

Expand Down Expand Up @@ -155,7 +160,7 @@ They will be replaced by linking the proper SW component definitions in the used
:implements: logic_arc_int__feature_name__interface_name

.. note::
Architecture can be split into multiple files, it is an High level architecture_design
Architecture can be split into multiple files, it is an high level architecture design
which can be shown without actual c++/rust interfaces and data types
and there will be link to lower level architecture till code to get actual api descriptions.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Requirements
:satisfies: stkh_req__requirements__template
:status: invalid

The Feature shall do xyz to the user to bring him to this condition at this time
The Feature shall do xyz to the user to bring him to this condition at this time.

Note: (optional, not to be verified)

Expand All @@ -66,7 +66,7 @@ Requirements
:safety: ASIL_B
:status: invalid

The Feature User shall do xyz to use the feature safely
The Feature User shall do xyz to use the feature safely.

.. attention::
The above directives must be updated according to your feature requirements.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Dependent Failure Initiators
:sufficient: <yes|no>
:status: <valid|invalid>

.. note:: argument is inside the 'content'. Therefore content is mandatory
.. note:: Argument is inside the 'content'. Therefore content is mandatory.

.. attention::
The above directive must be updated according to your feature DFA.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Failure Mode List
:sufficient: <yes|no>
:status: <valid|invalid>

.. note:: argument is inside the 'content'. Therefore content is mandatory
.. note:: Argument is inside the 'content'. Therefore content is mandatory.

.. attention::
The above directive must be updated according to your feature FMEA.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Dynamic Architecture
:status: invalid
:fulfils: comp_req__component_name__some_title

put here a sequence diagram
Put here a sequence diagram


Interfaces
Expand All @@ -128,7 +128,7 @@ Lower Level Components
:fulfils: comp_req__component_name__some_title
:implements: logic_arc_int__feature_name__interface_name

no architecture but detailed design
No architecture but detailed design

.. note::
Architecture can be split into multiple files. At component level the public interfaces to be used by the user and tester to be shown.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ Requirements
<Headlines (for the list of requirements if structuring is needed)>
===================================================================

Component Requirements
----------------------

.. comp_req:: Some Title
:id: comp_req__component_name__some_title
:reqtype: Process
Expand All @@ -53,6 +56,9 @@ Requirements
- Set the status to valid and start the review/merge process
- Add other needed requirements for your component

Assumption of Use Requirements
------------------------------

.. aou_req:: Next Title
:id: aou_req__component_name__next_title
:reqtype: Process
Expand All @@ -62,6 +68,22 @@ Requirements

The Component User shall do xyz to use the component safely

Environmental Requirements
--------------------------

.. aou_req:: Another Title
:id: aou_req__component_name__another_title
:reqtype: Process
:security: YES
:safety: ASIL_B
:status: invalid
:tags: environment

The Component shall only be used in a xyz environment to ensure its proper functioning.

Hints
-----

.. attention::
The above directives must be updated according to your feature requirements.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Dependent Failure Initiators
:sufficient: <yes|no>
:status: <valid|invalid>

.. note:: argument is inside the 'content'. Therefore content is mandatory
.. note:: Argument is inside the 'content'. Therefore content is mandatory.

.. attention::
The above directive must be updated according to your component DFA.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Dependent Failure Initiators
:mitigation_issue: <ID from Issue Tracker>
:sufficient: <yes|no>
:status: <valid|invalid>
.. note:: argument is inside the 'content'. Therefore content is mandatory
.. note:: Argument is inside the 'content'. Therefore content is mandatory.

.. attention::
The above directive must be updated according to the platform DFA.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ Static View

The first viewpoint is named as *feature architecture*. It displays the SW modules (= top level SW components) which are required to realize the feature including their interactions. Also the *logical interfaces* and the interaction between the feature and the user are included in this view. On this architectural level the feature requirements shall be allocated. An example for the static architecture is shown here:

.. feat_arc_sta:: Feature 1
.. feat_arc_sta:: Feature 1 Architecture
:id: feat_arc_sta__example_feature__feature_1
:security: YES
:safety: QM
Expand Down Expand Up @@ -265,7 +265,7 @@ Although it is required to create a *DFA* on platform level no additional view i
Specification of the architectural design
*****************************************

The architectural design shall be modeled with the help of static, dynamic and interfaces at each defined level.
The architectural design shall be modeled according to the :ref:`building blocks meta model <general_concepts_building_blocks>` with the help of static, dynamic and interfaces at each defined level.
For the description a natural language, diagrams or a semi-formal language (*UML*, see :ref:`uml_diagram_selection`) shall be used.

The architectural elements itself including their correlations shall be modeled in a database like approach. Therefore following architectural elements shall be used:
Expand All @@ -277,30 +277,25 @@ The *static view* shows the *building blocks* of the architecture. It shall be c

.. list-table:: Definition of the static architectural elements
:header-rows: 1
:widths: 15,35,35
:widths: 15,35

* - Element
- Sphinx Needs Directive
- Code Template
* - Feature Architecture
- feat_arc_sta
- feat_arc_sta_t
* - Component Architecture
- comp_arc_sta
- comp_arc_sta_t

To represent the CI build tool module (for example a `Bazel Modules <https://bazel.build/external/module>`_) an additional container (or package) is introduced. It can only contain components:

.. list-table:: Definition of the static module view
:header-rows: 1
:widths: 15,35,35
:widths: 15,35

* - Element
- Sphinx Needs Directive
- Code Template
* - Module View
- mod_view_sta
- mod_view_sta_t

Dynamic view
============
Expand All @@ -311,17 +306,14 @@ The dynamic view shall be modeled partly in Sphinx Needs and PlantUML. The compo

.. list-table:: Definition of the dynamic architectural elements
:header-rows: 1
:widths: 15,35,35
:widths: 15,35

* - Element
- Sphinx Needs Directive
- Code Template
* - Dynamic Feature Architecture
- feat_arc_dyn
- feat_arc_sta_t
* - Dynamic Component Architecture
- comp_arc_dyn
- comp_arc_dyn_t

Interface view
==============
Expand All @@ -330,26 +322,28 @@ The *interface view* focuses on the interfaces of the components and shows the o

.. list-table:: Definition of the architectural elements
:header-rows: 1
:widths: 15,35,35
:widths: 15,35

* - (Logical) Interface
- logic_arc_int
- logic_arc_int_t
* - (Logical) Interface Operation
- logic_arc_int_op
- logic_arc_int_op_t
* - (Real) Interface
- real_arc_int
- real_arc_int_t
* - (Real) Interface Operation
- real_arc_int_op
- real_arc_int_op_t

Relations between the architectural elements
============================================

The traceability between the architectural elements itself shall be established by modeling the elements in the *docs-as-code* tool. Here a "clickable" architecture can be generated which allows an easy tracing through the element tree. The previously introduced architectural components shall be connected by using following relations:

.. note::
The current state only considers logic_arc_int, others will be addressed later in the model and is work in progress.

The following picture shows the metamodel for the architectural design including the defined elements and their relations.
It serves as a guidance for modeling the architecture.

.. figure:: _assets/metamodel_architectural_design.drawio.svg
:width: 90%
:align: center
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,12 @@ Tooling support
Templates
=========

For creating the architectural design, snippets in vs code are available:
For creating the architectural design, snippets in RestructuredText (rst) are available:

* feat_arc_<sta|dyn|int|int_op>_t
* comp_arc_<sta|dyn|int|int_op>_t
* feat
* feat_arc_<sta|dyn>
* comp
* comp_arc_<sta|dyn>

The needs itself which are the basis for the template are defined in the :ref:`Architectural Design <architectural_design>`.

Expand All @@ -58,7 +60,7 @@ Architecture Generation for Sphinx-Needs
Overview
--------

The system provides utilities to generate `PlantUML <https://plantuml.com/en/>`_ diagrams from requirement specifications. It supports various architectural elements types including:
The system provides utilities to generate diagrams (like `PlantUML <https://plantuml.com/en/>`_) diagrams from requirement specifications. It supports various architectural elements types including:

* Features
* Logical Interfaces
Expand Down Expand Up @@ -112,7 +114,15 @@ Feature Architecture

The following section is an example, how an `Feature <https://eclipse-score.github.io/score/main/features/index.html>`_ looks like and how the architecture of an Feature is described. Please note that components with an "ASIL_B" safety rating are highlighted with red borders in the diagram (e.g., "Component 1").

.. feat_arc_sta:: Feature Getting Started
.. feat:: Feature Name
:id: feat__feature_name_example
:security: YES
:safety: ASIL_B
:status: invalid
:includes: logic_arc_int__feature_name__interface_name
:consists_of: comp__component_name

.. feat_arc_sta:: Feature Static Architecture - Getting Started Example
:id: feat_arc_sta__example_feature__archdes_getstrt
:security: YES
:safety: QM
Expand All @@ -128,7 +138,15 @@ The following section is an example, how an `Feature <https://eclipse-score.gith

.. code-block:: rst

.. feat_arc_sta:: Feature Getting Started
.. feat:: Feature Name
:id: feat__feature_name
:security: YES
:safety: ASIL_B
:status: invalid
:includes: logic_arc_int__feature_name__interface_name
:consists_of: comp__component_name

.. feat_arc_sta:: Feature Static Architecture View Getting Started
:id: feat_arc_sta__example_feature__archdes_getstrt
:security: YES
:safety: QM
Expand All @@ -144,6 +162,10 @@ The following section is an example, how an `Feature <https://eclipse-score.gith

Component Architecture
^^^^^^^^^^^^^^^^^^^^^^

The following section is an example, how an component looks like and how the detail design of an component is described. Please note that components with an "ASIL_B" safety rating are highlighted with red borders in the diagram (e.g., "Component 1").


.. comp_arc_sta:: Component 1
:id: comp_arc_sta__example_feature__component_getstrt
:status: valid
Expand All @@ -161,7 +183,14 @@ Component Architecture

.. code-block:: rst

.. comp_arc_sta:: Component 1
.. comp:: Component 1
:id: comp__component_name
:security: YES
:safety: ASIL_B
:status: invalid
:implements: logic_arc_int__feature_name__interface_name

.. comp_arc_sta:: Static View - Component 1
:id: comp_arc_sta__example_feature__component_getstrt
:status: valid
:safety: ASIL_B
Expand Down Expand Up @@ -225,7 +254,7 @@ To make *needuml* work we have to replace the *need()* call with a different fun
}
CM -> LI1: EXTRA_LINKAGE_MANUALLY_ADDED

.. comp_arc_sta:: Component Get Started Manually Edited
.. comp_arc_sta:: Component Static View - Get Started Manually Edited
:id: comp_arc_sta__example_feature__component_manual_getstrt
:status: valid
:safety: ASIL_B
Expand Down
Loading
Loading