Component Architecture#
[Your Component Name] Architecture
|
status: draft
security: NO
safety: ASIL_B
|
||||
Attention
The above directive must be updated according to your needs.
Modify
Your Component Nameto be your Component NameModify
idto be your Component Name in upper snake case preceded bydoc__and followed by_architectureAdjust
statusto bevalidAdjust
safetyandtagsaccording to your needs
Overview#
<Brief summary>
Requirements Linked to Component Architecture#
.. needtable:: Overview of Component Requirements
:style: table
:columns: title;id
:filter: search("comp_arch_sta__archdes$", "fulfils_back")
:colwidths: 70,30
Description#
<General Description>
<Design Decisions - For the documentation of the decision the Decision Record Template can be used.>
<Design Constraints>
Rationale Behind Architecture Decomposition#
Mandatory: A motivation for the decomposition or reason for not further splitting it into internal components.
Note
Common decisions across components / cross cutting concepts is at the higher level.
Static Architecture#
The components are designed to cover the expectations from the feature architecture (i.e. if already exists a definition it should be taken over and enriched).
A component can optional also consist of subcomponents to further structure the architecture. The component and its static views can also optionally use interfaces provided by other components.
The live component architecture template is maintained in the module template documentation.
.. comp:: Component Name
:id: comp__component_name_template
:security: YES
:safety: ASIL_B
:status: invalid
:implements: logic_arc_int__feature_name__interface_name1
:consists_of: comp__component_name_internal_1, comp__component_name_internal_2, comp__component_name_internal_3
:belongs_to: feat__feature_name
.. comp_arc_sta:: Component Name (Static View)
:id: comp_arc_sta__component_name__static_view
:security: YES
:safety: ASIL_B
:status: invalid
:belongs_to: comp__component_name_template
:uses: logic_arc_int__feature_name__interface_name1
:fulfils: comp_req__component_name__some_title
.. needarch::
:scale: 50
:align: center
{{ draw_component(need(), needs) }}
Dynamic Architecture#
.. comp_arc_dyn:: Dynamic View
:id: comp_arc_dyn__component_name__dynamic_view
:security: YES
:safety: ASIL_B
:status: invalid
:belongs_to: comp__component_name_template
:fulfils: comp_req__component_name__some_title
Put here a sequence diagram
Interfaces#
.. real_arc_int:: <Title>
:id: real_arc_int__<component>__<Title>
:security: <YES|NO>
:safety: <QM|ASIL_B>
:fulfils: <link to component requirement id>
:language: cpp
Internal Components#
.. comp_arc_sta:: Component Name Static View
:id: comp_arc_sta__component_name__2
:status: invalid
:safety: ASIL_B
:security: YES
:fulfils: comp_req__component_name__some_title
:belongs_to: comp__component_name_template
No architecture but detailed design
.. comp:: Internal Component 1
:id: comp__component_name_internal_1
:status: invalid
:safety: ASIL_B
:security: YES
:belongs_to: feat__feature_name
.. comp:: Internal Component 2
:id: comp__component_name_internal_2
:status: invalid
:safety: ASIL_B
:security: YES
:belongs_to: feat__feature_name
.. comp:: Internal Component 3
:id: comp__component_name_internal_3
:status: invalid
:safety: ASIL_B
:security: YES
:belongs_to: feat__feature_name
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.
Attention
The above directives must be updated according to your component architecture.
Replace the example content by the real content (according to Architectural Design Guideline)
Set the status to valid and start the review/merge process