AUTOSAR_AP_SWS_UpdateAndConfigurationManagement
FIG-a5b299f4c376bf4b
931 × 1267 px
1 Release(s)
Figure 9.1: UCM composite structure
SHA-256 Inhalts-Fingerabdruck:
a5b299f4c376bf4b722f252953722ffec56f91dc76beb53fc0bf8e16b48aa662
✦
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 / Service-Strukturdiagramm (Composite Structure nach AUTOSAR Adaptive Platform Schnittstellendefinition).
- Technischer Zweck & Einordnung:
- Spezifikation des primären
ara::com-Service-InterfacesPackageManagement(SWS_UCM_00131) des Functional Clusters UCM (Update and Configuration Management) gemäß AUTOSAR Adaptive Platform (R24-11). - Formalisierung der Datenstrukturen, Typdefinitionen und Enums für OTA-Updates, URI-basierte Paketregistrierung, Suspend/Resume-Steuerung und Lifecycle-Management von Software-Clustern (
SwCluster). - Entkopplung des operativen Ausführungszustands (
RunningStateType) vom Fortschritt der Update-Pipeline (UpdateStateType) innerhalb des Status-AttributsCurrentStatus.
- Spezifikation des primären
2. Komponenten, Entitäten & Schnittstellen
Service-Schnittstelle
«service» UCM/ PortPackageManagement: Stellt die Service-Schnittstelle«interface» PackageManagement(requirements SWS_UCM_00131) bereit.- Attribute / Fields:
CurrentStatus: CurrentStateType(Strukturierte Zustandsüberwachung aus Ausführungs- und Update-Status).
- Methoden:
- Transfer & Registrierung:
TransferStart,TransferData,TransferExit,Cancel,DeleteTransfer,RegisterSoftwarePackage(UriString): TransferIdType. - Verarbeitung, Steuerung & Deployment:
ProcessSwPackage,RevertProcessedSwPackages,Activate,Finish,Rollback,Suspend(): void,Resume(): void. - Status- & Metadaten-Abfrage:
GetId,GetSwPackages,GetSwClusterInfo,GetSwClustersChangeInfo,GetSwClusterManifestInfo,GetHistory,GetProgress(TransferIdType): char.
- Transfer & Registrierung:
Primitiv- und Basis-Datentypen
«primitive» TransferIdType(requirements SWS_UCM_00031): Session-/Transfer-Identifier.«primitive» ByteVectorType(requirements SWS_UCM_00032): Dynamischer Byte-Puffer.«dataType» SwClusterNameType(requirements SWS_UCM_00071): Eindeutiger Bezeichner des Software-Clusters.«dataType» SwPackageNameType(requirements SWS_UCM_00362): Eindeutiger Bezeichner des Software-Pakets.«dataType» StrongRevisionLabelString(requirements SWS_UCM_00175): Semantischer Versions-String.«primitive» UCMIdentifierType(requirements SWS_UCM_00173): Identifier der UCM-Instanz.«dataType» UCMIdentifierAndVersionType(requirements SWS_UCM_00309): Tupel ausid: UCMIdentifierTypeundversion: StrongRevisionLabelString.
Aggregationen & Datenstrukturen
- Zustandsmodell:
«dataType» CurrentStateType(requirements SWS_UCM_00044): AggregiertrunningState: RunningStateTypeundupdateState: UpdateStateType.«enumeration» RunningStateType(requirements SWS_UCM_00395): LiteralekRunning = 0x00,kSuspended = 0x01.«enumeration» UpdateStateType(requirements SWS_UCM_00396): LiteralekPreparing = 0x02,kActivating = 0x03,kActivated = 0x04,kRollingBack = 0x05,kRolledBack = 0x06,kCleaningUp = 0x07,kVerifying = 0x08,kRollingBackFailed = 0x09.
- Fortschrittsinformation:
«dataType» ProgressInformationType(requirements SWS_UCM_00341):currentStatus: UpdateStateType,estimatedDuration: uint32,progress: uint8.
- Software-Cluster-Zustand:
SwClusterInfoVectorType(requirements SWS_UCM_00079) aggregiert 1..nSwClusterInfoType(requirements SWS_UCM_00078:name: SwClusterNameType,size: uint64,state: SwClusterStateType,version: StrongRevisionLabelString).«enumeration» SwClusterStateType(requirements SWS_UCM_00077): LiteralekPresent = 0x00,kAdded = 0x01,kUpdating = 0x02,kRemoved = 0x03.
- Package-Übertragungsstatus:
SwPackageInfoVectorType(requirements SWS_UCM_00040) aggregiert 1..nSwPackageInfoType(requirements SWS_UCM_00039:consecutiveBlocksReceived: uint64,consecutiveBytesReceived: uint64,state: SwPackageStateType,swClusterName: SwClusterNameType,swPackageName: SwPackageNameType,transferId: TransferIdType,version: StrongRevisionLabelString).«enumeration» SwPackageStateType(requirements SWS_UCM_00038): LiteralekTransferring = 0x00,kTransfered = 0x01,kProcessing = 0x02,kProcessed = 0x03,kProcessingStream = 0x04.
- Historie & Logging:
HistoryVectorType(requirements SWS_UCM_00135) aggregiert 1..nHistoryType(requirements SWS_UCM_00134:action: ActionType,failureError: uint64,name: SwClusterNameType,resolution: ResultType,time: uint64,version: StrongRevisionLabelString).«enumeration» ActionType(requirements SWS_UCM_00132): LiteralekUpdate = 0x00,kInstall = 0x01,kRemove = 0x02,kUpdateConfiguration = 0x03.«enumeration» ResultType(requirements SWS_UCM_00133): LiteralekActivated = 0x00,kActivatedAndRolledBack = 0x01,kVerificationFailed = 0x02.
- Manifest- & Abhängigkeitsmodell:
SwClusterManifestInfoType(requirements SWS_UCM_00312): Metadatenstruktur mitdependencyModel: DependencyVectorType,license: string,name: SwClusterNameType,releaseNotes: string,typeApproval: string,version: StrongRevisionLabelString.DependencyVectorType(requirements SWS_UCM_00313): Geordnete Liste von 1..nDependencyType(requirements SWS_UCM_00314:category: string,compareCondition: DependencyCompareConditionType,dependencyRole: DependencyRoleType,logicalOperator: LogicalOperationType).DependencyCompareConditionType(requirements SWS_UCM_00315):considerBuildNumber: bool,dependencyOperator: DependencyOperatorType,targetSwCluster: SwNameVersionType.SwNameVersionType(requirements SWS_UCM_00176):name: SwClusterNameType,version: StrongRevisionLabelString.«enumeration» DependencyRoleType(requirements SWS_UCM_00318): LiteraledependsOn = 0x00,conflictsTo = 0x01.«enumeration» LogicalOperationType(requirements SWS_UCM_00317): LiteralekLogicalAnd = 0x00,kLogicalOr = 0x01.«enumeration» DependencyOperatorType(requirements SWS_UCM_00316): LiteralekGreaterThan = 0x00,kEqual = 0x01,kLessThan = 0x02,kGreaterThanOrEqual = 0x03,kLessThanOrEqual = 0x04.
3. Dynamisches Verhalten & Sequenzablauf
- Paketbereitstellung & Registrierung:
- Pakete können entweder blockweise per
TransferStart/TransferData/TransferExithochgeladen oder direkt perRegisterSoftwarePackage(UriString)als URI referenziert werden; beide Wege liefern eineTransferIdTypezurück.
- Pakete können entweder blockweise per
- Steuerung der Ausführung (Suspend & Resume):
- Laufende UCM-Aktivitäten können während der Verarbeitung über
Suspend()unterbrochen (runningState == kSuspended) und überResume()fortgesetzt werden (runningState == kRunning).
- Laufende UCM-Aktivitäten können während der Verarbeitung über
- Verarbeitung & Fortschritt:
- Nach
ProcessSwPackagegeht UCM in den ZustandkPreparing. Der Fortschritt wird überGetProgressüberwacht (mit Rückgabe bzw. Unterstützung vonProgressInformationType).
- Nach
- Aktivierung, Rollback & Konfigurations-Update:
- Der Aktivierungspfad folgt
Activate()(kActivating->kActivated), gefolgt von Verifikation (kVerifying) und Abschluss (Finish()->kCleaningUp). - Unterstützt wird neben Paket-Installationen/Updates auch die Konfigurationsaktualisierung (
ActionType::kUpdateConfiguration). - Schlägt ein Rollback fehl, signalisiert UCM den expliziten Fehlerzustand
kRollingBackFailed (0x09).
- Der Aktivierungspfad folgt
4. Normative Relevanz & Entwickler-Hinweise
- Architektonische Neuerungen: Einführung von
RegisterSoftwarePackageermöglicht pull-basierte bzw. dezentrale Update-Szenarien, bei denen UCM Pakete über URIs bezieht, statt auf rein Client-getriebene Push-Transfers angewiesen zu sein. - Feingranulare Zustandsüberwachung: Die Aufteilung von
CurrentStatusinCurrentStateTypetrennt Ausführungsfluss (RunningStateType) von Phasenstatus (UpdateStateType). Der FehlerzustandkRollingBackFailedverlangt definierte Notfall- und Recovery-Strategien im Client. - Typensicherheit und 64-Bit-Harmonisierung:
- Datengrößen (
size), Blockzähler (consecutiveBlocksReceived,consecutiveBytesReceived) und Fehlercodes (failureError) sind einheitlich aufuint64typisiert. - Klare semantische Trennung zwischen Paketname (
SwPackageNameType) und Clusternamen (SwClusterNameType).
- Datengrößen (
- Profil-Aktualisierung: Konsistente Verknüpfung über das UML-Schlüsselwort
requirementsund Korrektur des Trace-Tags fürSwNameVersionType(SWS_UCM_00176).
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.