DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_ARARustApplications FIG-0a43a3ba9a7f00c0 267 × 363 px 1 Release(s)

Figure 6.7: Simple representation of generic trait and implementation

SHA-256 Inhalts-Fingerabdruck: 0a43a3ba9a7f00c07146e5d66bcbef3261a2ad0f3e51cc1b09e793f66a5a20c2
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Diagrammtyp: UML-Klassendiagramm / Metamodell-Mapping-Profil (AUTOSAR AP Profilierung für die Programmiersprache Rust).
  • Technischer Zweck & Einordnung:
    • Spezifikation der normativen UML-Repräsentation von idiomatischen Rust-Konstrukten im Rahmen der AUTOSAR Adaptive Platform (AUTOSAR_AP_EXP_ARARustApplications, R23-11/R24-11).
    • Formalisierung der Abbildung von Generics, Trait Bounds, Lifetimes, Datenstrukturen (struct) und Trait-Implementierungen (impl) in Entwurfsmodellen für Adaptive Applications (ara::* Rust-Bindings).

2. Komponenten, Entitäten & Schnittstellen

  • Entitäten:
    • Module3::Trait1:
      • Stereotyp: «Trait» (Modellierung eines Rust-Traits als Interface-Klassifikator).
      • Modulpfad / Namespace: Module3.
      • Template-Parameter / Generics-Box (Dashed Compartment): T > Into<u64> + Copy – generischer Typparameter T mit zusammengesetztem Trait-Bound (T: Into<u64> + Copy).
      • Operation: + get_val(self: &): void – öffentliche Methode mit Shared Reference (&self) als Instanz-Receiver und Unit-/Void-Rückgabe.
    • Module3::Struct1:
      • Stereotyp: «Struct» (Modellierung einer Rust-Struktur / Product Type).
      • Modulpfad / Namespace: Module3.
      • Template-Parameter / Generics-Box (Dashed Compartment): T > Send – generischer Typparameter T, beschränkt auf den Marker-Trait Send (Thread-Transferierbarkeit).
      • Feld / Attribut: + var1: &'a T – öffentliches Member, deklariert als geborgte Referenz (&) mit explizitem Lifetime-Parameter 'a auf den generischen Typ T.
  • Beziehungen & Stereotypen:
    • Realisierung («impl»): Gestrichelte Verbindungslinie mit geschlossener, nicht ausgefüllter Dreiecksspitze von Module3::Struct1 nach Module3::Trait1.
    • Semantik: Entspricht der Rust-Code-Generierung:
      impl<'a, T> Module3::Trait1<T> for Module3::Struct1<'a, T> 
      where T: Into<u64> + Copy + Send { ... }
    • Keine Vererbung (Rust kennt keine Klassenvererbung); reine Schnittstellen- bzw. Verhaltensrealisierung via statischem Dispatch.

3. Dynamisches Verhalten & Sequenzablauf

  • Kategorie: Nicht zutreffend (rein statisches Typ- und Strukturmodell).
  • Compile-Time-Dispatch & Semantik:
    • Monomorphisierung: Statische Auflösung zur Übersetzungszeit (Zero-Cost Abstractions) anstelle von dynamischem vtable-Lookup (dyn Trait).
    • Borrow-Checker-Invariante: Durch das Attribut var1: &'a T kann eine Instanz von Struct1 niemals länger leben als die referenzierte Instanz von T.
    • Thread-Sicherheit: Durch die Bedingung T: Send ist sichergestellt, dass Instanzen der Struktur über Thread-Grenzen hinweg transferiert werden dürfen.

4. Normative Relevanz & Entwickler-Hinweise

  • Modellierungs- und Codegenerator-Vorgabe:
    • Werkzeuge (CASE-/UML-Tools) müssen Rust-spezifische Typ-Beschränkungen (Bounds) über UML-Template-Signaturen abbilden.
    • Das Stereotyp «impl» an einer Realisierungsbeziehung unterscheidet explizite Trait-Implementierungen von objektorientierter Interface-Implementierung.
  • API-Vertrag für Adaptive Application Entwickler:
    • Lifetime-Propagation: Entwickler müssen bei der Instanziierung von Struct1 die Lebensdauer 'a im Scope der aufrufenden Funktion binden; eine Rückgabe oder Übergabe an asynchrone Tasks (z. B. via ara::core::Future) erfordert den Nachweis 'a: 'static, andernfalls lehnt der Compiler den Code ab.
    • Konfliktfreie Bounds-Zusammenführung: Bei der Implementierung müssen alle Trait Bounds (Send, Into<u64>, Copy) am konkreten Typ T gleichzeitig erfüllt sein.

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

R24-11 → R25-11 keine inhaltliche Änderung Vorgänger: FIG-33ee8788f5e4b3d7

Keine inhaltlichen Änderungen erkennbar.

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_EXP_ARARustApplications S. 33 6.7 Figure 6.7: Simple representation of generic trait and implementation