DEENESPTFRRUARHIKOZHNL
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-Interfaces PackageManagement (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-Attributs CurrentStatus.

2. Komponenten, Entitäten & Schnittstellen

Service-Schnittstelle
  • «service» UCM / Port PackageManagement: 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.
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 aus id: UCMIdentifierType und version: StrongRevisionLabelString.
Aggregationen & Datenstrukturen
  • Zustandsmodell:
    • «dataType» CurrentStateType (requirements SWS_UCM_00044): Aggregiert runningState: RunningStateType und updateState: UpdateStateType.
    • «enumeration» RunningStateType (requirements SWS_UCM_00395): Literale kRunning = 0x00, kSuspended = 0x01.
    • «enumeration» UpdateStateType (requirements SWS_UCM_00396): Literale kPreparing = 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..n SwClusterInfoType (requirements SWS_UCM_00078: name: SwClusterNameType, size: uint64, state: SwClusterStateType, version: StrongRevisionLabelString).
    • «enumeration» SwClusterStateType (requirements SWS_UCM_00077): Literale kPresent = 0x00, kAdded = 0x01, kUpdating = 0x02, kRemoved = 0x03.
  • Package-Übertragungsstatus:
    • SwPackageInfoVectorType (requirements SWS_UCM_00040) aggregiert 1..n SwPackageInfoType (requirements SWS_UCM_00039: consecutiveBlocksReceived: uint64, consecutiveBytesReceived: uint64, state: SwPackageStateType, swClusterName: SwClusterNameType, swPackageName: SwPackageNameType, transferId: TransferIdType, version: StrongRevisionLabelString).
    • «enumeration» SwPackageStateType (requirements SWS_UCM_00038): Literale kTransferring = 0x00, kTransfered = 0x01, kProcessing = 0x02, kProcessed = 0x03, kProcessingStream = 0x04.
  • Historie & Logging:
    • HistoryVectorType (requirements SWS_UCM_00135) aggregiert 1..n HistoryType (requirements SWS_UCM_00134: action: ActionType, failureError: uint64, name: SwClusterNameType, resolution: ResultType, time: uint64, version: StrongRevisionLabelString).
    • «enumeration» ActionType (requirements SWS_UCM_00132): Literale kUpdate = 0x00, kInstall = 0x01, kRemove = 0x02, kUpdateConfiguration = 0x03.
    • «enumeration» ResultType (requirements SWS_UCM_00133): Literale kActivated = 0x00, kActivatedAndRolledBack = 0x01, kVerificationFailed = 0x02.
  • Manifest- & Abhängigkeitsmodell:
    • SwClusterManifestInfoType (requirements SWS_UCM_00312): Metadatenstruktur mit dependencyModel: DependencyVectorType, license: string, name: SwClusterNameType, releaseNotes: string, typeApproval: string, version: StrongRevisionLabelString.
    • DependencyVectorType (requirements SWS_UCM_00313): Geordnete Liste von 1..n DependencyType (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): Literale dependsOn = 0x00, conflictsTo = 0x01.
    • «enumeration» LogicalOperationType (requirements SWS_UCM_00317): Literale kLogicalAnd = 0x00, kLogicalOr = 0x01.
    • «enumeration» DependencyOperatorType (requirements SWS_UCM_00316): Literale kGreaterThan = 0x00, kEqual = 0x01, kLessThan = 0x02, kGreaterThanOrEqual = 0x03, kLessThanOrEqual = 0x04.

3. Dynamisches Verhalten & Sequenzablauf

  • Paketbereitstellung & Registrierung:
    • Pakete können entweder blockweise per TransferStart/TransferData/TransferExit hochgeladen oder direkt per RegisterSoftwarePackage(UriString) als URI referenziert werden; beide Wege liefern eine TransferIdType zurück.
  • Steuerung der Ausführung (Suspend & Resume):
    • Laufende UCM-Aktivitäten können während der Verarbeitung über Suspend() unterbrochen (runningState == kSuspended) und über Resume() fortgesetzt werden (runningState == kRunning).
  • Verarbeitung & Fortschritt:
    • Nach ProcessSwPackage geht UCM in den Zustand kPreparing. Der Fortschritt wird über GetProgress überwacht (mit Rückgabe bzw. Unterstützung von ProgressInformationType).
  • 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).

4. Normative Relevanz & Entwickler-Hinweise

  • Architektonische Neuerungen: Einführung von RegisterSoftwarePackage ermö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 CurrentStatus in CurrentStateType trennt Ausführungsfluss (RunningStateType) von Phasenstatus (UpdateStateType). Der Fehlerzustand kRollingBackFailed verlangt definierte Notfall- und Recovery-Strategien im Client.
  • Typensicherheit und 64-Bit-Harmonisierung:
    • Datengrößen (size), Blockzähler (consecutiveBlocksReceived, consecutiveBytesReceived) und Fehlercodes (failureError) sind einheitlich auf uint64 typisiert.
    • Klare semantische Trennung zwischen Paketname (SwPackageNameType) und Clusternamen (SwClusterNameType).
  • Profil-Aktualisierung: Konsistente Verknüpfung über das UML-Schlüsselwort requirements und Korrektur des Trace-Tags für SwNameVersionType (SWS_UCM_00176).

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

R23-11 → R24-11 normative Änderung Vorgänger: FIG-5cade7e51658aafe
  • PackageManagement: Attribut CurrentStatus von Typ PackageManagerStatusType auf CurrentStateType geändert.
  • PackageManagement: Methoden RegisterSoftwarePackage(UriString): TransferIdType, Resume(): void und Suspend(): void hinzugefügt; Methode GetSwProcessProgress in GetProgress umbenannt.
  • CurrentStateType & RunningStateType & UpdateStateType: Das Status-Enum PackageManagerStatusType (SWS_UCM_00044) wurde ersetzt durch die Struktur CurrentStateType (SWS_UCM_00044), bestehend aus runningState: RunningStateType (SWS_UCM_00395; Literale kRunning, kSuspended) und updateState: UpdateStateType (SWS_UCM_00396; enthält neues Literal kRollingBackFailed = 0x09, kPreparing = 0x02 statt kProcessing = 0x02, Entfall von kIdle und kReady).
  • ProgressInformationType (SWS_UCM_00341): Neuer Datentyp mit currentStatus: UpdateStateType, estimatedDuration: uint32 und progress: uint8 eingeführt.
  • SwPackageNameType (SWS_UCM_00362): Neuer Datentyp für Paketnamen eingeführt; SwNameType (SWS_UCM_00071) in SwClusterNameType umbenannt.
  • SwPackageInfoType: Attribut name: SwNameType aufgeteilt in swClusterName: SwClusterNameType und swPackageName: SwPackageNameType; Attribute consecutiveBlocksReceived und consecutiveBytesReceived von unsigned long auf uint64 geändert.
  • SwClusterInfoType: Typ des Attributs size von double auf uint64 geändert; Attribut name referenziert nun SwClusterNameType.
  • HistoryType: Typ von failureError von unsigned short auf uint64 geändert; Attribut name referenziert nun SwClusterNameType.
  • ActionType: Neues Literal kUpdateConfiguration = 0x03 ergänzt.
  • SwClusterManifestInfoType & SwNameVersionType: Attribut name von SwNameType auf SwClusterNameType geändert.
  • Tracing & UML-Profil: Stereotyp-Kompartimentbezeichnung von responsibilities auf requirements umgestellt; Anforderungs-Tag von SwNameVersionType von SWS_VUCM_00176 auf SWS_UCM_00176 korrigiert; Aufzählungstypen mit dem Abschnittsschlüsselwort literals versehen.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«interface» PackageManagement | + CurrentStatus: CurrentStateType | + Activate(): void + Cancel(TransferIdType): void + DeleteTransfer(TransferIdType): void + Finish(): void + GetHistory(unsigned long, unsigned long): HistoryVectorType + GetId(): UCMIdentifierAndVersionType + GetProgress(TransferIdType): char + GetSwClusterInfo(): SwClusterInfoVectorType + GetSwClusterManifestInfo(SwNameType): SwClusterManifestInfoType + GetSwClustersChangeInfo(): SwClusterInfoVectorType + GetSwPackages(): SwPackageInfoVectorType + ProcessSwPackage(TransferIdType): void + RegisterSoftwarePackage(UriString): TransferIdType + Resume(): void + RevertProcessedSwPackages(): void + Rollback(): void + Suspend(): void + TransferData(TransferIdType, ByteVectorType, uint32): void + TransferExit(TransferIdType): void + TransferStart(uint64, TransferIdType*, unsigned int*): void | requirements SWS_UCM_00131 | «dataType» SwClusterInfoType | + name: SwClusterNameType + size: uint64 + state: SwClusterStateType + version: StrongRevisionLabelString | requirements SWS_UCM_00078 | «primitive» TransferIdType | requirements SWS_UCM_00031 | «primitive» ByteVectorType | requirements SWS_UCM_00032 | «enumeration» SwClusterStateType | literals kPresent = 0x00 kAdded = 0x01 kUpdating = 0x02 kRemoved = 0x03 | requirements SWS_UCM_00077 | «enumeration» UpdateStateType | literals kPreparing = 0x02 kActivating = 0x03 kActivated = 0x04 kRollingBack = 0x05 kRolledBack = 0x06 kVerifying = 0x08 kCleaningUp = 0x07 kRollingBackFailed = 0x09 | requirements SWS_UCM_00396 | «dataType» SwClusterInfoVectorType | + swInfoTypes: SwClusterInfoType [1..n] | requirements SWS_UCM_00079 | «dataType» SwClusterNameType | requirements SWS_UCM_00071 | «dataType» StrongRevisionLabelString | requirements SWS_UCM_00175 | «enumeration» SwPackageStateType | literals kTransferring = 0x00 kTransfered = 0x01 kProcessing = 0x02 kProcessed = 0x03 kProcessingStream = 0x04 | requirements SWS_UCM_00038 | «dataType» SwPackageInfoType | + consecutiveBlocksReceived: uint64 + consecutiveBytesReceived: uint64 + state: SwPackageStateType + swClusterName: SwClusterNameType + swPackageName: SwPackageNameType + transferId: TransferIdType + version: StrongRevisionLabelString | requirements SWS_UCM_00039 «dataType» SwPackageInfoVectorType | + swPackageInfo: SwPackageInfoType [1..n] | requirements SWS_UCM_00040 | «primitive» UCMIdentifierType | requirements SWS_UCM_00173 | «dataType» HistoryVectorType | + history: HistoryType [1..n] | requirements SWS_UCM_00135 | «dataType» | HistoryType | + action: ActionType + failureError: uint64 + name: SwClusterNameType + resolution: ResultType + time: uint64 + version: StrongRevisionLabelString | requirements SWS_UCM_00134 | «enumeration» | ResultType | literals kActivated = 0x00 kActivatedAndRolledBack = 0x01 kVerificationFailed = 0x02 | requirements SWS_UCM_00133 | «enumeration» | ActionType | literals kUpdate = 0x00 kInstall = 0x01 kRemove = 0x02 kUpdateConfiguration = 0x03 | requirements SWS_UCM_00132 | «service» | UCM | PackageManagement | «dataType» DependencyVectorType | + dependency: DependencyType [1..n] {ordered} | requirements SWS_UCM_00313 | «enumeration» DependencyOperatorType | literals kGreaterThan = 0x00 kEqual = 0x01 kLessThan = 0x02 kGreaterThanOrEqual = 0x03 kLessThanOrEqual = 0x04 | requirements SWS_UCM_00316 | «enumeration» LogicalOperationType | literals kLogicalAnd = 0x00 kLogicalOr = 0x01 | requirements SWS_UCM_00317 | «dataType» SwNameVersionType | + name: SwClusterNameType + version: StrongRevisionLabelString | requirements SWS_UCM_00176 | «dataType» DependencyType | + category: string + compareCondition: DependencyCompareConditionType + dependencyRole: DependencyRoleType + logicalOperator: LogicalOperationType | requirements SWS_UCM_00314 | «enumeration» DependencyRoleType | literals dependsOn = 0x00 conflictsTo = 0x01 | requirements SWS_UCM_00318 | «dataType» DependencyCompareConditionType | + considerBuildNumber:: bool + dependencyOperator: Dependency

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R24-11 AUTOSAR_AP_SWS_UpdateAndConfigurationManagement S. 90 9.1 Figure 9.1: UCM composite structure