Detailed Design#
HealthMonitor Detailed Design
|
status: draft
security: NO
safety: ASIL_B
|
||||
Attention
The above directive must be updated according to your Component.
Modify
Your Component Nameto be your Component NameModify
idto be your Component Name in upper snake case preceded bydoc__and followed by_detailed_designAdjust
statusto bevalidAdjust
safetyandtagsaccording to your needs
Detailed Design for Component: HealthMonitor#
Description#
HealthMonitor component consists of these units:
deadline_monitor
logic_monitor
health_monitor
Implementation structure#
src
└── health_monitoring_lib
├── cpp # C++ API using Rust FFI
│ ├── include # C++ public header files.
│ │ └── ...
│ └── tests
└── rust # Rust implementation + FFI for C++
└── deadline
Implementation approach for multi language#
The implementation is done primarily in Rust language to leverage its memory safety features and concurrency model. Due to a need to interface with existing C++ codebases, a C-compatible Foreign Function Interface (FFI) is provided by this Rust implementation. C++ API is designed to be idiomatic wrapping around the Rust FFI, ensuring ease of use for C++ developers while maintaining the safe usage.
Rationale Behind Decomposition into Units#
Note
Reason for split into multiple units could be- - Based on design principles like SOLID,DRY etc - Based on design pattern’s etc.
Static Diagrams for Unit Interactions#
Class Diagram
|
status: valid
security: NO
safety: ASIL_B
|
||||
Dynamic Diagrams for Unit Interactions#
.. dd_dyn:: <Title>
:id: dd_dyn__<Feature>__<Title>
:security: <YES|NO>
:safety: <QM|ASIL_B>
:status: <valid|invalid>
:implements: <link to component requirement id>
:satisfies: <link to component architecture id>
.. image:: <link to drawio image> or .. uml:: assets/<link to plantuml>