DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_PlatformDesign FIG-aed7612a40a36901 927 × 1303 px 1 Release(s)

Figure 13.9: V-UCM state machine

SHA-256 Inhalts-Fingerabdruck: aed7612a40a36901240a2880c57d987cc9760452738096bf0c3704555314b742
✦ 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

UML-Zustandsdiagramm (stm DOC_V-UCM_StM_CampaignState) zur Modellierung der Update-Kampagnen-Zustandsmaschine des Vehicle Update and Configuration Management (V-UCM) innerhalb der AUTOSAR Adaptive Platform. Das Diagramm spezifiziert die hierarchischen und sequenziellen Makro- und Mikrozustände von der Kampagneninitiierung über die Verteilung und Paketverarbeitung bis zur Aktivierung und Verifikation auf Gesamtfahrzeugebene.

2. Komponenten, Entitäten & Schnittstellen

Das Diagramm umfasst als Zustände:

  • IDLE: Grundzustand.
  • SYNCING mit do / ComputeUpdates.
  • TRANSFERRING: Verbundzustand mit den Unterzuständen VEHICLEPACKAGE_TRANSFERRING (do / VehiclePackageReceiving) und SOFTWAREPACKAGE_TRANSFERRING (do / DistributeSoftwarePackages) sowie Übergangs- und Entscheidungsknoten.
  • UPDATING: Verbundzustand mit den Unterzuständen PROCESSING (do / ProcessingSoftwarePackages), ACTIVATING (do / UCM.Activate()) und VEHICLE_CHECKING (do / VehicleSanityCheck).
  • CANCELLING (do / Cancelling) und ROLLINGBACK_FAILED.

Schnittstellen, Methoden und Trigger umfassen SwPackageInventory(), GetSwClusterInfo(), transferVehiclePackage(), transferData(), transferExit(), TransferStart, die generische Bestätigung Approve(), VehicleCheck(True|False), cancelCampaign() und UCMMaster.deleteTransfer(). Zustands- und Guard-Variablen sind CurrentStatus (Wertebereich u. a. kPreparing), ProcessingStates / ProcessingState (Wertebereich u. a. kProcessed, kReady) sowie das Feld approvalRequired[transfer|process|activate].

3. Dynamisches Verhalten & Sequenzablauf

Aus IDLE wird über SYNCING ([SyncingDone]) die Aktualisierung ermittelt. transferVehiclePackage() führt bei [All CurrentStatus == kPreparing] nach TRANSFERRING in den Unterzustand VEHICLEPACKAGE_TRANSFERRING.

Im Zustand VEHICLEPACKAGE_TRANSFERRING wird das Fahrzeugpaket empfangen. Über den Selbstübergang transferExit() / Check vehicle package integrity, available resources and dependencies erfolgt die Prüfung. Das Ergebnis führt über Successful VP check / ApprovalRequired := approvalRequired[transfer] und gegebenenfalls Approve() / ApprovalRequired := False zur Freigabe. Bei Validität (ApprovalRequired set False [All CurrentStatus == kPreparing & not(InvalidPackageManifest | LackResources | FailedDependency)]) geht die Steuerung zu SOFTWAREPACKAGE_TRANSFERRING über; Fehler leiten über Campaign aborted nach CANCELLING.

In SOFTWAREPACKAGE_TRANSFERRING werden Softwarepakete übertragen. Nach Paketübertragung wird bei Bedarf über Approve() bestätigt. Sind alle Bedingungen erfüllt ([(Start Proc. first SWP || All SWPs transferred) & ApprovalRequired[process]==False & All ProcessingState==kReady]), verlässt die Zustandsmaschine TRANSFERRING über Transfer finished / Update start nach UPDATING.

In UPDATING verarbeitet PROCESSING die Pakete. Sind alle Pakete prozessiert (All Packages processed successfully [All ProcessingStates == kProcessed ...]), führt der Pfad direkt oder nach Approve() [approvalRequired[activate]==True] zu ACTIVATING. Nach Aktivierung (All CurrentStatus == Activated) führt VEHICLE_CHECKING den Sanity-Check aus: VehicleCheck(True) markiert die Kampagne als erfolgreich (Campaign successful) mit Rückkehr nach IDLE. Bei Fehlern (ActivationFailure, VehicleCheck(False), NonRecoverableFailure) wird Campaign failed ausgelöst, wodurch CANCELLING betreten wird. Bei Rollback-Fehlern führt [Any CurrentStatus == kRollingBackFailed] von ROLLINGBACK_FAILED ebenfalls nach CANCELLING, von wo aus bei [All CurrentStatus == kPreparing] die Rückkehr nach IDLE erfolgt.

4. Normative Relevanz & Entwickler-Hinweise

Normativ bindend ist die Verwendung der typspezifischen Statuswerte kPreparing, kProcessed und kReady für die Synchronisation verteilter UCM-Zustände. Die Autorisierung ist über die standardisierte Operation Approve() spezifiziert. Fehler- und Rollback-Pfade fordern explizite Konsistenzbedingungen vor der Rückkehr in den Zustand IDLE.

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

R23-11 → R24-11 normative Änderung Vorgänger: FIG-6ecbddea87a36dbc
  • Zustandsprüfungen & Guards: Rückkehrbedingungen aus CANCELLING sowie der Start von transferVehiclePackage() prüfen nicht mehr [All CurrentStatus == Idle], sondern [All CurrentStatus == kPreparing].
  • Zustandsprüfungen in PROCESSING & UPDATING: Guard-Bedingungen prüfen statt SoftwarePackageStates bzw. CurrentStatus nun ProcessingStates (kProcessed, kReady).
  • Approval-Interaktion: DriverApproval(True) wurde durch die generische Operation Approve() ersetzt.
  • Entscheidungsknoten VEHICLEPACKAGE_TRANSFERRING: Die Verzweigung nach dem Empfang des Fahrzeugpakets wurde restrukturiert; Ausführung von transferExit() mit Guard /Check vehicle package integrity, available resources and dependencies sowie Rückkopplung über Successful VP check und explizites Setzen von ApprovalRequired durch Approve().
  • Fehlerbehandlung ROLLINGBACK_FAILED: Fehlerzustand ROLLINGBACK_FAILED führt bei [Any CurrentStatus == kRollingBackFailed] in CANCELLING.
  • Bedingungslogik für PROCESSING-Übergang: Übergangsbedingung [(Start Proc. first SWP || All SWPs transferred) & ApprovalRequired[process]==False & All ProcessingState==kReady] bindet den Verarbeitungsstatus kReady explizit ein.
R24-11 → R25-11 redaktionell Nachfolger: FIG-09024b0d4f60fc36
  • Schreibweise Methodenaufrufe (Groß-/Kleinschreibung): cancelCampaign() wurde zu CancelCampaign() vereinheitlicht.
  • Methodenaufrufe an SOFTWAREPACKAGE_TRANSFERRING & PROCESSING: Ergänzung von RegisterSoftwarePackage() zu den Selbstübergängen (TransferData(), TransferExit(), TransferStart(), RegisterSoftwarePackage()).
  • Methodenaufrufe an VEHICLEPACKAGE_TRANSFERRING: CamelCase-Anpassungen (TransferData(), TransferExit(), TransferVehiclePackage()).

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

stm DOC_V-UCM_StM_CampaignState | TRANSFERRING Campaign | start | Campaign | aborted | Transfer finished | IDLE | SYNCING | do / ComputeUpdates | VEHICLEPACKAGE_TRANSFERRING | do / VehiclePackageReceiving | UPDATING | Campaign | failed | Update | start Campaign | successful | PROCESSING | do / ProcessingSoftwarePackages | ACTIVATING | do / UCM.Activate() | VEHICLE_CHECKING | do / VehicleSanityCheck | CANCELLING | do / Cancelling | SOFTWAREPACKAGE_TRANSFERRING | do / DistributeSoftwarePackages | ROLLINGBACK_FAILED | All CurrentStatus == | Activated | cancelCampaign(), NonRecoverableFailure [InvalidPackageManifest] | SwPackageInventory (), GetSwClusterInfo() | transferData | () | All SWPs transferred | [approvalRequired | [process]==True] /ApprovalRequired := True | ApprovalRequired set False [All | CurrentStatus == kPreparing & | not(InvalidPackageManifest | | LackResources | FailedDependency)] | Approve() /ApprovalRequired := | False [InvalidPackageManifest | | LackResources | FailedDependency | NonRecoverableFailure] | All Packages processed successfully [All ProcessingStates | == kProcessed & approvalRequired | [activate]==False] | All Packages processed successfully [All ProcessingStates | == kProcessed & approvalRequired | [activate]==True] /ApprovalRequired := True | Approve() [approvalRequired | [activate]==True] /ApprovalRequired := False | cancelCampaign(), UCMMaster.deleteTransfer | () | NonRecoverableFailure, | cancelCampaign() | [All CurrentStatus | == kPreparing] | ActivationFailure, | cancelCampaign | () | VehicleCheck | (False), cancelCampaign() | VehicleCheck | (True) | [All CurrentStatus==kPreparing] | [(Start Proc. first SWP || A ll SWPs | transferred) & ApprovalRequired | [process]==False & All ProcessingState==kReady] | transferVehiclePackage | () /ApprovalRequired: | =False | transferData (),transferExit | (), TransferStart | Successful VP check /ApprovalRequired := | approvalRequired | [transfer] | [Any CurrentStatus | == kRollingBackFailed] | transferData (),transferExit(), | TransferStart | transferExit() /Check vehicle package integrity, available resources | and dependencies | All CurrentStatus == | Activated | [SyncingDone] | Approve() [approvalRequired[process]==True | && All ProcessingState==kReady] | /ApprovalRequired := False

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R24-11 AUTOSAR_AP_EXP_PlatformDesign S. 71 13.9 Figure 13.9: V-UCM state machine