Model Merge

Model Merge is used when AUTOSAR projects are loaded and content is distributed across several ARXML files. During project load, DaVinci Configurator merges data from these files into one consistent internal model and reports situations where values cannot be combined safely.

This chapter gives an overview of what is new and where to find the relevant details:

The Prerequisites and Steps to follow if the project has merge conflicts are explained below.

Prerequisites

AUTOSAR distinguishes between splitable and non-splitable element types.

For splitable elements, a configuration can be distributed across multiple ARXML files and then merged into one logical element. The element must be AUTOSAR-conformant and mergeable without conflicts into the DaVinci Configurator internal model.

Non-splitable elements must be defined in exactly one place. Both types can still lead to model merge conflicts if the same information is configured inconsistently.

For model merge, conflicts are categorized as solvable or non-solvable. When Automatic Conflict Resolution is active, solvable conflicts are merged by the tool according to the Model Merge Priority. Non-solvable conflicts must be resolved manually.

Model Merge Conflict Types
Figure 1. Model Merge Conflict Types
Table 1. Terms
Term Description

Splitable

Configuration can be distributed across multiple ARXML files.

Non-Splitable

Configuration must be defined in exactly one place and cannot be split across files.

Conflicts

An AUTOSAR element is split across multiple ARXML files in an invalid way. A conflict is raised while merging into the DaVinci Configurator internal model.

Solvable Conflicts

For this type of conflict, DaVinci Configurator can apply optional Automatic Conflict Resolution, or you can resolve it manually.

Implicitly Resolved Conflicts

For this type of conflict, DaVinci Configurator always implicitly resolves conflicts internally to reduce expensive manual fixing on specific conflicts.

These conflicts are resolved even if Automatic Conflict Resolution is not activated. Details and an overview of these is provided here.

Non-Solvable Conflicts

For this type of conflict, DaVinci Configurator cannot determine a strategy for Automatic Conflict Resolution; the conflict requires Manual Resolution.

Workflow

The recommended workflow for resolving conflicts is manual resolution to prevent data loss. See Steps for a step-by-step guideline.

The following graphic describes the workflow with Manual Resolution (left) and with best-effort Automatic Conflict Resolution (right).

Workflow Conflict Resolution
Figure 2. Conflict resolution workflow — Manual (Left) or Automatic (Right)

If the project contains both solvable and non-solvable conflicts and Automatic Conflict Resolution is active, project load still aborts because of non-solvable conflicts.

However, all solvable conflicts are already resolved in that load iteration and appear only as warnings in the report. This reduces the remaining manual work to non-solvable conflicts.

Steps

  1. Load DaVinci Project.

  2. If the project could not be loaded successfully, follow these steps:

  3. If the project could be loaded successfully, Model Merge was successful.

Load DaVinci Project

  1. Open your DaVinci Project.
    DaVinci Configurator Version 6 tries to load the project and merges the ARXML files into the internal model.
    A Model Merge Report file (ModelMergeReport.sarif) is generated in Output/Log/ProjectLoad, containing all conflicts found during the merge.

The ModelMergeReport.sarif file contains Model Merge conflicts (errors and warnings) that were found during project load. If Automatic Conflict Resolution is enabled (see Prerequisites), it also contains information about automatically resolved conflicts.

Analyze Conflicts

Anaylze with SARIF Viewer

  1. Open the generated ModelMergeReport.sarif file (see Load DaVinci Project) in VS Code.

  2. Open the Results panel of SARIF Viewer (see SARIF Viewer for support).

  3. Review the reported conflicts in the Results panel of SARIF Viewer and open the linked ARXML locations.

Analyze in the file

  1. Open the ModelMergeReport.sarif file (see Load DaVinci Project) in your editor.

  2. Review the results block inside the file for detected conflicts.

See Model Merge Report for more information about the file structure, format and limitations of the SARIF report.

Solve Conflicts

  1. Solve Model Merge conflicts found in Analyze Conflicts.

    1. Solve conflicts manually by conflict type:

      Conflict Type Solution

      "Invalid Model Split"

      How to manually solve conflict "Invalid Model Split"

      "Missing Variation Point"

      How to manually solve conflict "Missing Variation Point"

      "Missing or Conflicting Short Labels in Variation Point"

      How to manually solve conflict "Missing or Conflicting Short Labels in Variation Point"

    2. Solve conflicts with Automatic Conflict Resolution.

      Not all conflicts can be resolved automatically. Resolve all remaining non-solvable conflicts manually, see Manual Resolution.
  2. Reload the project and resolve any remaining conflicts.