DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_UpdateAndConfigurationManagement FIG-6a8703e390c71798 977 × 1019 px 1 Release(s)

Figure 9.4: UCM composite structure - Information related (Part 2)

SHA-256 Inhalts-Fingerabdruck: 6a8703e390c71798fe75462ebf4dfa0f5a000b412d62772d7437d0916a6b710d
✦ 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 / Datenstruktur- & Schnittstellendiagramm (AUTOSAR Adaptive Platform, Service Interface & Data Type Definition).
  • Funktionale Einordnung: Spezifiziert die Informations- und Abfrageschnittstellen (Getter) des Funktionsclusters Update and Configuration Management (UCM) gemäß AUTOSAR_AP_SWS_UpdateAndConfigurationManagement (R25-11). Es modelliert die Metadatenstrukturen für Software-Cluster (SwCluster), deren Versionsstände, Manifest-Informationen sowie die relationale Abhängigkeitsauflösung (Dependency Modeling) und Versionsvergleichslogik für OTA-Updates und Konsistenzprüfungen.

2. Komponenten, Entitäten & Schnittstellen

Service Interface
  • «interface» PackageManagement (Getter) (SWS_UCM_00131): Service-Schnittstelle zur statusfreien Zustands- und Metadatenabfrage:
    • GetHistory(unsigned long, unsigned long): HistoryVectorType
    • GetId(): UCMIdentifierAndVersionType
    • GetProgress(TransferIdType): char
    • GetSwClusterInfo(): SwClusterInfoVectorType
    • GetSwClusterManifestInfo(SwNameType): SwClusterManifestInfoType
    • GetSwClustersChangeInfo(): SwClusterInfoVectorType
    • GetSwPackages(): SwPackageInfoVectorType
Datenstrukturen für Software-Cluster-Zustände & Identifikation
  • «dataType» SwClusterInfoVectorType (SWS_UCM_00079):
    • Aggregiert swInfoTypes: SwClusterInfoType [1..n].
  • «dataType» SwClusterInfoType (SWS_UCM_00078):
    • Attribute: name: SwClusterNameType, size: uint64, state: SwClusterStateType, version: StrongRevisionLabelString.
  • «enumeration» SwClusterStateType (SWS_UCM_00077):
    • Literale: kPresent = 0x00, kAdded = 0x01, kUpdating = 0x02, kRemoved = 0x03.
  • «dataType» UCMIdentifierAndVersionType (SWS_UCM_00309):
    • Attribute: id: UCMIdentifierType, version: StrongRevisionLabelString.
  • «primitive» UCMIdentifierType (SWS_UCM_00173): Eindeutige primitive Instanz-ID des UCM.
Abhängigkeitsmodellierung (Dependency Model)
  • «dataType» SwClusterManifestInfoType (SWS_UCM_00312):
    • Attribute: name: SwClusterNameType, version: StrongRevisionLabelString, dependencyModel: DependencyVectorType, license: string, releaseNotes: string, typeApproval: string.
  • «dataType» DependencyVectorType (SWS_UCM_00313):
    • Aggregation von dependency: DependencyType [1..n] {ordered}.
  • «dataType» DependencyType (SWS_UCM_00314):
    • Attribute: category: string, compareCondition: DependencyCompareConditionType, dependencyRole: DependencyRoleType, logicalOperator: LogicalOperationType.
  • «enumeration» DependencyRoleType (SWS_UCM_00318):
    • dependsOn = 0x00 (Voraussetzung für Lauffähigkeit/Installation), conflictsTo = 0x01 (Inkompatibilität/Ausschluss).
  • «enumeration» LogicalOperationType (SWS_UCM_00317):
    • kLogicalAnd = 0x00, kLogicalOr = 0x01 zur Verknüpfung aufeinanderfolgender Terme im ordered Vector.
  • «dataType» DependencyCompareConditionType (SWS_UCM_00315):
    • Attribute: considerBuildNumber: bool, dependencyOperator: DependencyOperatorType, targetSwCluster: SwNameVersionType.
  • «enumeration» DependencyOperatorType (SWS_UCM_00316):
    • kGreaterThan = 0x00, kEqual = 0x01, kLessThan = 0x02, kGreaterThanOrEqual = 0x03, kLessThanOrEqual = 0x04.
  • «dataType» SwNameVersionType (SWS_UCM_00176):
    • Attribute: name: SwClusterNameType, version: StrongRevisionLabelString.

3. Dynamisches Verhalten & Auswertungssemantik

  • Query-Pattern (Pull-Prinzip): UCM-Clients (z. B. UCM Master, Diagnostic Client oder Update-Orchestrator) fragen vor einer Paketaktivierung via GetSwClusterInfo bzw. GetSwClusterManifestInfo den Ist-Zustand und die Zielmanifeste ab.
  • Evaluierung der Abhängigkeiten:
    1. Iteration über den geordneten Vektor DependencyVectorType ({ordered}).
    2. Prüfung der Cluster-Identität (targetSwCluster.name) und Versionsvergleich (version) basierend auf DependencyOperatorType. Ist considerBuildNumber == false, wird die Build-Metadatenkomponente des SemVer-basierten StrongRevisionLabelString ignoriert.
    3. Rollenbewertung (DependencyRoleType):
      • Bei dependsOn: Bedingung muss erfüllt sein (true).
      • Bei conflictsTo: Bedingung darf nicht zutreffen (false), andernfalls liegt ein harter Versionskonflikt vor.
    4. Verknüpfung der Zwischenergebnisse über LogicalOperationType (kLogicalAnd, kLogicalOr).
  • Fehler- und Abbruchkriterien: Schlägt die Prädikatauswertung fehl, verweigert der UCM die nachfolgenden Transitionen (ProcessSwPackage / Activate) und meldet Inkompatibilität.

4. Normative Relevanz & Entwickler-Hinweise

  • ara::com API & Serialisierung: Die Typen werden direkt in C++-Strukturen und -Enums im Namespace ara::ucm::pkgmgr projiziert. Vector-Typen entsprechen ara::core::Vector<T>, Strings ara::core::String.
  • Versionsformat: StrongRevisionLabelString erzwingt standardkonforme semantische Versionierung (AUTOSAR-spezifisch an SemVer 2.0 angelehnt). Entwickler müssen sicherstellen, dass Versionsvergleiche streng monoton implementiert werden.
  • Zustandsüberwachung: SwClusterStateType unterscheidet installierte Cluster (kPresent), in der aktuellen Transaktion hinzugefügte (kAdded), modifizierte (kUpdating) oder zur Deinstallation markierte (kRemoved) Cluster. Diese Information ist deterministisch für die Generierung von Rollback- und Commit-Strategien im UCM.
  • Manifest-Parsing: DependencyVectorType verlangt deterministische Auswertung in Index-Reihenfolge ({ordered}). Eine Vertauschung der Elemente verändert bei gemischten AND/OR-Operatoren das logische Gesamtergebnis.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«dataType» SwClusterInfoType | + name: SwClusterNameType + size: uint64 + state: SwClusterStateType + version: StrongRevisionLabelString | requirements SWS_UCM_00078 | «enumeration» SwClusterStateType | literals kPresent = 0x00 kAdded = 0x01 kUpdating = 0x02 kRemoved = 0x03 | requirements SWS_UCM_00077 | «dataType» SwClusterInfoVectorType | + swInfoTypes: SwClusterInfoType [1..n] | requirements SWS_UCM_00079 | «primitive» UCMIdentifierType | requirements SWS_UCM_00173 «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: DependencyOperatorType + targetSwCluster: SwNameVersionType | requirements SWS_UCM_00315 | «dataType» UCMIdentifierAndVersionType | + id: UCMIdentifierType + version: StrongRevisionLabelString | requirements SWS_UCM_00309 | «dataType» SwClusterManifestInfoType | + dependencyModel: DependencyVectorType + license: string + name: SwClusterNameType + releaseNotes: string + typeApproval: string + version: StrongRevisionLabelString | requirements SWS_UCM_00312 | «interface» PackageManagement (Getter) | + GetHistory(unsigned long, unsigned long): HistoryVectorType + GetId(): UCMIdentifierAndVersionType + GetProgress(TransferIdType): char + GetSwClusterInfo(): SwClusterInfoVectorType + GetSwClusterManifestInfo(SwNameType): SwClusterManifestInfoType + GetSwClustersChangeInfo(): SwClusterInfoVectorType + GetSwPackages(): SwPackageInfoVectorType | requirements SWS_UCM_00131

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_SWS_UpdateAndConfigurationManagement S. 87 9.4 Figure 9.4: UCM composite structure - Information related (Part 2)