AUTOSAR_AP_SWS_LanguageBindingForModeledAPdatatypes
FIG-b0eb78cc5c3daf0c
478 × 338 px
2 Release(s)
Figure 7.4: ApApplicationError - Example Language Binding
SHA-256 Inhalts-Fingerabdruck:
b0eb78cc5c3daf0cf31e84836dc38e955baefa4c4bcb9190e9ab5402fd979df7
✦
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: Artefakt- und Codegenerierungs-Diagramm (Build-/Design-Time Transformation Model).
- Architektur-Kontext: AUTOSAR Adaptive Platform (AP), spezifiziert in
AUTOSAR_AP_SWS_LanguageBindingForModeledAPdatatypes(Kapitel 7: Application Error). - Technischer Zweck: Visualisierung des Mapping-Mechanismus vom formalen Datenmodell (ARXML) auf konkrete C++-Header-Artefakte für anwendungsspezifische Fehlerdomänen (
ApApplicationError/ApplicationErrorDomain). Es demonstriert, wie ein Language-Binding-Generator Schnittstellenbeschreibungen auflöst und die daraus resultierenden Fehlerdomänen-Header dateisystemseitig unterhalb der jeweiligen Service-Interface-Verzeichnisbäume emittiert.
2. Komponenten, Entitäten & Schnittstellen
- Eingangsartefakte (ARXML Model Files):
ifA.arxml: Modellbeschreibung des Service-Interfaces A.ifB.arxml: Modellbeschreibung des Service-Interfaces B.- Beide Interfaces referenzieren methoden- bzw. ereignisspezifische Anwendungsfehler (
ApApplicationError), die denselben drei Fehlerdomänen zugeordnet sind:domM(blau),domN(rot) unddomP(grün).
- Transformationsknoten:
Generator: AUTOSAR AP Language Binding Generator (Model-to-Code Compiler / Toolchain-Komponente), zuständig für die Synthese des C++14/C++17-Language-Bindings.
- Ausgangsartefakte (C++ Header Files):
- Scope Interface A:
src/.../ifA/.../domM_error_domain.hsrc/.../ifA/.../domN_error_domain.hsrc/.../ifA/.../domP_error_domain.h
- Scope Interface B:
src/.../ifB/.../domM_error_domain.hsrc/.../ifB/.../domN_error_domain.hsrc/.../ifB/.../domP_error_domain.h
- Scope Interface A:
- Strukturelle Beziehungen & Kardinalitäten:
- M:N-Modellbeziehung: Mehrere Service-Interfaces (A, B) teilen sich dieselben Fehlerdomänen (M, N, P).
- 1:N-Dateisystemabbildung: Bei entkoppelter bzw. interface-getriebener Codegenerierung erzeugt der Generator für jede im ARXML referenzierte Fehlerdomäne eine dedizierte Header-Datei innerhalb des Pfades des jeweiligen Service-Interfaces.
3. Dynamisches Verhalten & Sequenzablauf
- Phasenablauf (Build-Time / Tool-Pipeline):
- Modelleinlesung & Parsing: Der Generator konsumiert die ARXML-Beschreibungen
ifA.arxmlundifB.arxml. - Referenzauflösung: Identifikation aller assoziierten
ApApplicationError-Definitionen und Zuordnung zu ihren übergeordnetenApplicationErrorDomain-Instanzen (domM,domN,domP). - Artefakt-Synthese (Code Emission):
- Generierung der Klassen abgeleitet von
ara::core::ErrorDomainsowie der typisierten Fehler-Enumerationen (ErrorDomain::CodeType). - Platzierung der generierten
.h-Dateien in den jeweiligen interface-spezifischen Include-Verzeichnissen (.../ifA/...bzw..../ifB/...).
- Generierung der Klassen abgeleitet von
- Redundanz-Charakteristik: Da dieselben Fehlerdomänen (
domM,domN,domP) über verschiedene Interfaces instanziiert werden, erzeugt der Generator redundante Dateistrukturen über getrennte Namespace-/Verzeichnispfade.
- Modelleinlesung & Parsing: Der Generator konsumiert die ARXML-Beschreibungen
4. Normative Relevanz & Entwickler-Hinweise
- C++ Language Binding &
ara::coreIntegration:- Jede generierte
*_error_domain.hdeklariert die spezifische Subklasse vonara::core::ErrorDomain(Singleton-Instanz viaGetErrorDomain()) und die zugehörigen Fehlercodes zur Kapselung inara::core::ErrorCodebzw.ara::core::Result<T, E>.
- Jede generierte
- Include-Pfade & One Definition Rule (ODR):
- Entwickler und Toolchain-Integratoren müssen sicherstellen, dass die C++-Klassennamen und Header-Guards der Fehlerdomänen nicht kollidieren, wenn ein Anwendungsprozess sowohl
ifAals auchifBkonsumiert (Include-Pfad-Isolation vs. gemeinsame Domain-Namespaces). - Werden Domänen identisch in globalen Namespaces definiert, führt die getrennte Generierung ohne zentrale Entkopplung zu ODR-Verletzungen zur Link-Time.
- Entwickler und Toolchain-Integratoren müssen sicherstellen, dass die C++-Klassennamen und Header-Guards der Fehlerdomänen nicht kollidieren, wenn ein Anwendungsprozess sowohl
- Build-System & Dependency-Management (CMake / Make):
- Include-Suchpfade (
-I) müssen präzise auf die jeweiligen Interface-Strukturen konfiguriert werden. - Inkrementelle Builds müssen Dateiänderungen in geteilten ARXML-Domänen auf alle abgeleiteten Interface-Header synchron propagieren.
- Include-Suchpfade (
- Architekturempfehlung:
- Um Header-Duplikation zu vermeiden, sollten
ApplicationErrorDomains im Modell nach Möglichkeit als eigenständige, interface-unabhängige Pakete modelliert und zentral generiert werden, anstatt sie als Artefakte der individuellenServiceInterface-Generierung zu replizieren.
- Um Header-Duplikation zu vermeiden, sollten
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.