AUTOSAR_AP_EXP_ARARustApplications
FIG-6d560d5f7df085c7
467 × 234 px
2 Release(s)
Figure 6.1: Module
SHA-256 Inhalts-Fingerabdruck:
6d560d5f7df085c78ae2481252e9ea90027616a472a1e3ac61b95f8bbbbf2868
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Klassendiagramm / Metamodell-Profildefinition (AUTOSAR UML Profile for Rust).
- Architektur-Kontext: Entstammt dem Konzeptdokument
AUTOSAR_AP_EXP_ARARustApplications(Kapitel 6, Module). Es definiert die normative Modellierungskonvention zur Repräsentation des Rust-Modulsystems (mod) in UML-Modellen für die AUTOSAR Adaptive Platform (R23-11, R24-11). - Technischer Zweck: Da Rust nicht dem klassischen objektorientierten Klassenmodell (OOP) folgt, überbrückt dieses Profil die semantische Lücke zwischen UML-Klassen und idiomatischen Rust-Konstrukten: Ein Modul kapselt freie Funktionen (
fn), Konstanten/statische Variablen (const/static) und Importbeziehungen (use).
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Stereotypen:
«Module» module1: Repräsentiert die Moduldeklarationmod module1;.- Attribut-Kompartment (Variablen/Konstanten):
+ STATIC_VAR_PUBLIC: u64 = 0: Öffentliche Modulkonstante/-variable (pub staticbzw.pub const) vom Primitivtypu64, initialisiert mit0.- STATIC_VAR_PRIVATE: u64 = 1234: Private Modulvariable (staticbzw.const) vom Typu64, initialisiert mit1234.
- Operations-Kompartment (Freie Modulfunktionen):
+ pub_func(&'a u64): void: Öffentliche Funktion (pub fn) mit Lifetime-annotierter Referenz&'a u64und Unit-Rückgabetyp()(void). Signatur:pub fn pub_func<'a>(_param: &'a u64).- private_func(): void: Modulinterne, private Hilfsfunktion ohne Parameter und Rückgabewert. Signatur:fn private_func().
- Attribut-Kompartment (Variablen/Konstanten):
«Module» module2: Weiteres Rust-Modul (mod module2;), das als Konsument auftritt.
- Beziehungen:
«use»(UML Dependency): Gerichtete gestrichelte Abhängigkeit vonmodule2nachmodule1. Bildet die Pfadbindung via Rust-Imports ab (use crate::module1;bzw.use super::module1::*;).
3. Dynamisches Verhalten & Sequenzablauf
- Klassifikation: Rein statisches Struktur- und Schnittstellenmodell.
- Aufruf- & Speichersemantik:
- Direkter, synchroner Aufruf über Namensraum-Präfixierung (
module1::pub_func(&val)). - Kein Instanziierungskontext (
self,&self,&mut self), da es sich um statische Modulsymbole handelt. - Zugriffe auf
STATIC_VAR_PUBLICunterliegen den Borrow-Checker- und Mutabilitätsregeln: Read-Only-Zugriff beistatic/const; Schreibzugriffe beistatic mutwürden einen explizitenunsafe-Kontext oder atomare Typen (AtomicU64) erfordern.
- Direkter, synchroner Aufruf über Namensraum-Präfixierung (
4. Normative Relevanz & Entwickler-Hinweise
- Codegenerierung & MDA:
- Klassen mit dem Stereotyp
«Module»dürfen von Codegeneratoren nicht als Rust-structgeneriert werden, sondern müssen als Dateimodul (module1.rs) oder Verzeichnismodul (module1/mod.rs) abgebildet werden.
- Klassen mit dem Stereotyp
- Sichtbarkeitsregeln:
+mappt strikt auf das Rust-Schlüsselwortpub.-erzwingt die Standard-Sichtbarkeit von Rust (beschränkt auf das aktuelle Modul und dessen Kind-Module, ohnepub).
- Lifetime-Annotationen:
- Parameter mit Lifetimes wie
&'a u64fordern im Interface zwingend die Deklaration generischer Lebenszeitparameter am Funktionsrumpf (<'a>).
- Parameter mit Lifetimes wie
- Applikations- & Stack-Entwicklung:
- Dient als Vorlage für die Modellierung und Bindung von Functional Clusters (
ara::*) in Rust-basierten Adaptive Applications (z. B. Modellierung modularer Core-APIs ohne OOP-Overhead).
- Dient als Vorlage für die Modellierung und Bindung von Functional Clusters (