Component Architecture Documentation#

IAV Primula Architecture
status: draft
security: YES
safety: QM
tags: iav_primula, iav_primula
version: 0

Overview#

The IAV Primula component is a lightweight Rust library exposing one public API to return a deterministic baseline message.

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#

The component currently has no internal sub-components. Public API and implementation are both located in src/main.rs.

Design constraints:

  • Keep API deterministic and side-effect free.

  • Keep implementation simple for initial onboarding and traceability.

Rationale Behind Architecture Decomposition#

No decomposition into lower-level components is introduced in this initial version because complexity is low and responsibilities are clear.

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 lower level components to further structure the architecture. The component and its static views can also optionally use interfaces provided by other components.

IAV Primula
status: valid
security: YES
safety: QM
IAV Primula Static View
status: valid
security: YES
safety: QM
tags: iav_primula
version: 0

Dynamic Architecture#

IAV Primula Dynamic View
status: valid
security: YES
safety: QM
tags: iav_primula
version: 0

Caller invokes get_hello_message() and receives the constant baseline string response immediately.

Interfaces#

Public hello message interface
status: valid
security: NO
safety: QM
tags: iav_primula
language: rust
version: 0

Internal Components#

No internal components are defined in this baseline version.

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.