AUTOSAR_AP_EXP_SWArchitecture
FIG-2b07fd11809c0f60
448 × 308 px
1 Release(s)
Figure 8.2: Class Structure of a Plugin
SHA-256 Inhalts-Fingerabdruck:
2b07fd11809c0f6052bdb684497e02bb666480cfdf73a5ee29fa0cb472046ff5
✦
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
- Klassifikation: UML-Klassendiagramm / Architektur-Strukturdiagramm mit Paket-/Komponenten-Grenzziehung.
- Funktionale Einordnung: AUTOSAR Adaptive Platform (AP), Spezifikation
AUTOSAR_AP_EXP_SWArchitecture(Kapitel 8, Platform Extensions). - Technischer Zweck: Definition des Plugin-Musters zur modularen Funktionserweiterung der Adaptive Platform Core-Funktionalität. Es entkoppelt den Plattform-Kern (
Adaptive Platform) von hersteller- oder anwendungsspezifischen Implementierungen (Platform Extension 1,Platform Extension 2) über ein einheitliches, polymorphes Schnittstellenmodell.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Kapselungsgrenzen
Adaptive Platform(Namespace / Subsystem Scope):- Kapselt die Basisplattform und definiert den Schnittstellenvertrag.
Plugin Interface(Abstrakte Basisklasse / Interface):+ GetID(): Konkrete/vordefinierte Methode zur Abfrage des eindeutigen Identifikators des Plugins.+ Matches(String): boolean(kursiv / abstrakt): Prädikatfunktion zur Evaluierung, ob das Plugin für einen gegebenen Selektor/Konfigurations-String zuständig ist.+ Operation1(): int(kursiv / abstrakt): Domänenspezifische funktionale Operation mit Rückgabewert.+ Operation2(): void(kursiv / abstrakt): Domänenspezifische funktionale Prozedur/Aktion ohne Rückgabewert.
Platform Extension 1&Platform Extension 2(Extension Packages):- Unabhängige Bereitstellungseinheiten (z. B. Shared Libraries / dynamisch ladbare Binaries).
Plugin1/Plugin2(Konkrete Implementierungsklassen):- Überschreiben und implementieren jeweils die abstrakten Operationen:
+ Matches(String): boolean+ Operation1(): int+ Operation2(): void
- Überschreiben und implementieren jeweils die abstrakten Operationen:
Beziehungen & Vererbung
- Interface-Realisierung (
Plugin1/Plugin2⇢Plugin Interface):- Gestrichelte Linie mit offener Dreiecksspitze (UML-Realisierung/Implementierung).
- Polymorphe Substitution: Der Plattform-Kern interagiert ausschließlich gegen
Plugin Interface, ohne Kenntnis der konkreten KlassenPlugin1bzw.Plugin2zur Compile-Zeit.
3. Dynamisches Verhalten & Sequenzablauf
Obwohl statisch modelliert, impliziert die Schnittstellensignatur folgenden Laufzeitablauf im AP-Lifecycle:
- Plugin-Discovery & Registration: Die Plattform lädt Extensions (typischerweise als dynamische Bibliotheken über Shared-Object-Mechanismen oder statische Registrierungsfabriken).
- Identifikation: Aufruf von
GetID()zur internen Verwaltung und Registrierung im Extension-Manager der Plattform. - Dispatch & Selektion: Bei Auftreten einer Anfrage/Verarbeitungsaufgabe iteriert die Plattform über registrierte Instanzen und ruft
Matches(identifierString)auf. - Synchrone Ausführung: Nach erfolgreichem Match (
true) erfolgt der synchrone Methodenaufruf der Fachlogik überOperation1()bzw.Operation2().
4. Normative Relevanz & Entwickler-Hinweise
- C++ API-Vertrag:
- Implementierung als C++14/C++17-Klassenhierarchie mit virtuellem Destruktor (
virtual ~PluginInterface() = default;) und rein virtuellen Methoden (= 0) fürMatches,Operation1undOperation2. - ABI-Stabilität beachten: Da Platform Extensions oft separat kompiliert/ausgeliefert werden, muss die ABI der virtuellen Methodentabelle (vtable) zwischen Platform-Core und Extension exakt übereinstimmen (gleiche Toolchain, STL-Version und Compiler-Flags).
- Implementierung als C++14/C++17-Klassenhierarchie mit virtuellem Destruktor (
- Speicher- & Prozessmodell:
- Erweiterungen laufen in der Regel im Adressraum des aufrufenden Adaptive Core Prozesses oder werden über das Manifest (
Execution Manifest/Platform Health Management) deklarativ verwaltet. - Realzeit- und Thread-Safety: Aufrufe von
Matches(),Operation1()undOperation2()müssen reentrant bzw. threadsicher ausgelegt sein, falls die Plattform Multithreading-Dispatches initiiert.
- Erweiterungen laufen in der Regel im Adressraum des aufrufenden Adaptive Core Prozesses oder werden über das Manifest (
- Fehlerbehandlung:
- Da AUTOSAR AP primär auf
ara::core::Result<T>bzw.ara::core::ErrorCodesetzt, sollten konkrete Implementierungen vonOperation1()undOperation2()deterministisches Fehler-Handling ohne ungefangene C++-Exceptions gewährleisten (AUTOSAR C++14 Coding Guidelines A15-0-0 ff.).
- Da AUTOSAR AP primär auf
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.