Rhapsody DiffMerge model comparison method
Rhapsody DiffMerge makes a comparison of two units and looks for matches of the elements within their particular units. The units can be from the same Rhapsody project or two different versions of the same unit.
In the case of base-aware mode, you can also designate a third unit, which is the base unit. See Developing in parallel with Rhapsody DiffMerge. The compare algorithm works as follows:
- When two model elements have the same type (or, as known in Rhapsody , metaclass), name, and parent model element, then they are considered to be a match. If an element has no match by name, Rhapsody DiffMerge tries to find a match by ID. Matching elements always belong to the same parent and have the same metaclass.
- When two model elements are matched, then all their attributes and references to other model elements are compared to check if there are any differences.
- When two model elements are matched, then their aggregated model elements are compared the same way to check for differences. They are matched by metaclass and name or ID, their attributes and relations are checked for differences, and their aggregates (if any) are compared the same way. Basically, the process goes recursively through all aggregates.
You might also want to see Automatic merging for base-aware comparisons and Trivial versus non-trivial differences.