AUTOSAR_AP_EXP_SWArchitecture
FIG-bc368756d2aadda0
930 × 1148 px
1 Release(s)
Figure 9.121: Interfaces for SOVD array data
SHA-256 Inhalts-Fingerabdruck:
bc368756d2aadda0f8ecc27ba8c31be3208a96dcb3f32e25fa1db4e8c262c341
✦
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 mit Komponentenkontext (
Adaptive Applicationund«aapFunctionalCluster»). - Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Release R25-11, Functional Cluster Diagnostic Management (DM, daemon-basiert).
- Technischer Zweck: Spezifikation der standardisierten C++ Native Interfaces (
«aapAPI,aapNativeInterface») für den Zugriff auf strukturierte Array-Daten innerhalb von SOVD (Service-Oriented Vehicle Diagnostics, ISO 22989 / ASAM SOVD). Die Schnittstellen kapseln dynamische, JSON-kompatible Array-Inhalte in typsichere, STL-konforme Abstraktionen für Adaptive Applications.
2. Komponenten, Entitäten & Schnittstellen
Akteure & Komponenten
Adaptive Application: Konsument der API, nutzt die View- und Iterator-Klassen für Diagnoseoperationen.Diagnostic Management(«aapFunctionalCluster»,daemon-based): Realisiert die Backend-Logik, Datenhaltung und IPC-Kommunikation zum Plattform-Daemon.
Schnittstellen & Datentypen («aapAPI,aapNativeInterface»)
DiagnosticSovdArrayContentElementDataView(Read/Write View):- Methoden:
Begin(),End(),CBegin(),CEnd(),Size(),Capacity(),Empty(),Reserve(),Clear(),Erase(),PushBack(),operator[](),HasError(),SetError(). - Semantik: Lese- und schreibbarer Container-Proxy für SOVD-Array-Elemente.
- Methoden:
DiagnosticSovdArrayContentElementDataConstView(Read-Only View):- Methoden:
Begin(),End(),CBegin(),CEnd(),Size(),Capacity(),Empty(),operator[](),HasError(). - Semantik: Unveränderliche Sicht auf Array-Daten (z. B. für reine Messwert-/Sensordatenabfragen).
- Methoden:
DiagnosticSovdArrayContentElementDataIterator:- Operatoren:
operator*(),operator->(),operator++(),operator==(),operator!=(). - Semantik: STL-konformer Mutable-Forward-/Bidirektional-Iterator.
- Operatoren:
DiagnosticSovdArrayContentElementDataConstIterator:- Operatoren:
operator*(),operator->(),operator++(),operator==(),operator!=(). - Semantik: STL-konformer Const-Iterator für schreibgeschützten Durchlauf.
- Operatoren:
Beziehungen & Abhängigkeiten
Adaptive Application–«use»→View/ConstView/Iterator/ConstIterator: Direkte API-Nutzung über C++-Header (ara::diag).Diagnostic Management⇢View/ConstView: Interface-Realization (gestrichelte Linie mit geschlossener Dreiecksspitze). Der DM-Daemon stellt die konkrete Laufzeit-Implementierung bereit.View/ConstView⇢Iterator/ConstIterator: Realisierungs-/Bereitstellungsbeziehung zur Erzeugung typisierter Iteratoren überBegin()/End().
Generische Element-Operationen (Tabellarischer Kontext)
- Allokation & Abfrage:
Size(),Reserve(),Capacity(),Empty(), wahlfreier Zugriff viaoperator[](). - SOVD Primitive Setter:
SetBool(),SetDouble(),SetSignedInt(),SetUnsignedInt(),SetString(). - Fehlersignalisierung:
SetError(),HasError(). - Record-/Dictionary-Operationen:
RecordReserve(),RecordEmpty(),RecordEnd(),RecordRemoveAll(),Remove().
3. Dynamisches Verhalten & Zugriffsmuster
- Sicht-Akquise: Die
Adaptive Applicationerhält bei SOVD-Operationen (z. B. Read/Write DataIdentifier oder SOVD REST Request Processing) eine Instanz vonDiagnosticSovdArrayContentElementDataViewbzw....ConstView. - Speicher-Reservierung (Synchron): Vor dem Befüllen variabler Daten ruft die Applikation
Reserve()auf, um Heap-Fragmentierung zu verhindern und Reallokationen im Daemon/Shared-Memory deterministisch zu halten. - Traversierung & Befüllung:
- Zugriff wahlfrei via
operator[](index)oder sequentiell via Iterator (Begin()bisEnd()). - Anfügen von Elementen über
PushBack(), Löschen überErase()oderClear().
- Zugriff wahlfrei via
- Fehlerbehandlung ohne Exceptions:
- Tritt während der Datenverarbeitung ein Fehler auf, markiert die Applikation das Element via
SetError(). - Konsumenten prüfen den Status non-invasiv über
HasError(), ohne dass C++ Stack-Unwinding ausgelöst wird.
- Tritt während der Datenverarbeitung ein Fehler auf, markiert die Applikation das Element via
4. Normative Relevanz & Entwickler-Hinweise
- View-Semantik & Zero-Copy: Die
*View-Klassen halten die Daten in der Regel nicht selbst, sondern verweisen auf Shared-Memory- bzw. IPC-Puffer des DM-Daemons. Entwickler müssen die Lebensdauer der übergeordneten Diagnosesitzung/Transaktion beachten (Dangling-View-Gefahr nach Methoden-Return). - MISRA & Echtzeit-Determinismus (AUTOSAR C++14):
PushBack()undReserve()triggern Speicherallokationen; in zeitkritischen Tasks ist die Zielkapazität vorab zwingend überReserve()anzufordern.- Exception-Freiheit: Fehler werden explizit über
HasError()undSetError()transportiert; die API wirft im Fehlerfall keine C++-Exceptions (noexcept-Policy gemäßara::core::Result).
- Const-Correctness: Reine Datenquellen (z. B. Sensor-Provider) dürfen ausschließlich gegen
DiagnosticSovdArrayContentElementDataConstViewarbeiten, um unbeabsichtigte Modifikationen der SOVD-Ressourcen im Plattform-Daemon zu verhindern.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.