DEENESPTFRRUARHIKOZHNL
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 Moduldeklaration mod module1;.
      • Attribut-Kompartment (Variablen/Konstanten):
        • + STATIC_VAR_PUBLIC: u64 = 0: Öffentliche Modulkonstante/-variable (pub static bzw. pub const) vom Primitivtyp u64, initialisiert mit 0.
        • - STATIC_VAR_PRIVATE: u64 = 1234: Private Modulvariable (static bzw. const) vom Typ u64, initialisiert mit 1234.
      • Operations-Kompartment (Freie Modulfunktionen):
        • + pub_func(&'a u64): void: Öffentliche Funktion (pub fn) mit Lifetime-annotierter Referenz &'a u64 und 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().
    • «Module» module2: Weiteres Rust-Modul (mod module2;), das als Konsument auftritt.
  • Beziehungen:
    • «use» (UML Dependency): Gerichtete gestrichelte Abhängigkeit von module2 nach module1. 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_PUBLIC unterliegen den Borrow-Checker- und Mutabilitätsregeln: Read-Only-Zugriff bei static/const; Schreibzugriffe bei static mut würden einen expliziten unsafe-Kontext oder atomare Typen (AtomicU64) erfordern.

4. Normative Relevanz & Entwickler-Hinweise

  • Codegenerierung & MDA:
    • Klassen mit dem Stereotyp «Module» dürfen von Codegeneratoren nicht als Rust-struct generiert werden, sondern müssen als Dateimodul (module1.rs) oder Verzeichnismodul (module1/mod.rs) abgebildet werden.
  • Sichtbarkeitsregeln:
    • + mappt strikt auf das Rust-Schlüsselwort pub.
    • - erzwingt die Standard-Sichtbarkeit von Rust (beschränkt auf das aktuelle Modul und dessen Kind-Module, ohne pub).
  • Lifetime-Annotationen:
    • Parameter mit Lifetimes wie &'a u64 fordern im Interface zwingend die Deklaration generischer Lebenszeitparameter am Funktionsrumpf (<'a>).
  • 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).

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 keine inhaltliche Änderung Nachfolger: FIG-7fb7288cd7281438

Keine inhaltlichen Änderungen erkennbar.

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_AP_EXP_ARARustApplications S. 30 6.1 Figure 6.1: Module
R24-11 AUTOSAR_AP_EXP_ARARustApplications S. 30 6.1 Figure 6.1: Module