IP Library Granted Patent US 9,128,804
Granted Patent B2
US 9,128,804 · App. 13/024,646 · Granted Sep 8, 2015

Systems and/or methods for identifying and resolving complex model merge conflicts based on atomic merge conflicts

Inventor: Jürgen Göres (Kaiserslautern, DE)
Assignee: SOFTWARE AG
G06F8/71
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,128,804
App. No.
13/024,646
Granted
Sep 8, 2015
Kind
B2
Abstract

Certain example embodiments described herein relate to interactive model merging systems and/or methods and, more particularly, to using basic information obtained during merging to help a user resolve high-level merge conflicts. In certain example embodiments, instead of leaving it to the user to resolve the merge conflicts on the level of the atomic elements (e.g., objects and connections with a non-empty merge state), the recognition of high-level merge conflicts may help capture the semantics of the differences between the models being merged on a larger scale (e.g., covering a possibly very large number of model elements in one conflict) and/or also may generally help allow the user to resolve them easily and quickly within a reduced number of operation. The high-level merge conflicts may be resolvable at their high levels or decomposed and resolved at a lower level depending, in part, on the type of conflict involved.

Claims (74)

1. A method of resolving model merge conflicts, the method comprising:

generating, via at least one processor, a conflict model based on a merging together of first and second models;

automatically detecting, via the at least one processor, at least one high-level conflict based on at least one merge state and at least one grouping of one or more objects being merged from the first and second models in the conflict model;

providing for display a list of the at least one detected high-level conflict, along with a visual representation of the conflict model, wherein each said high-level conflict includes a combination of atomic and/or other high-level conflicts and is classified as either (a) a simple high-level conflict that includes as its constituent(s) a plurality of atomic conflicts, or (b) a complex high-level conflict that includes as its constituent(s) at least one other high-level conflict; and

enabling a user to resolve the at least one detected high-level conflict after the displaying of the list and the visual representation of the conflict model, the resolving of the at least one detected high-level conflict includes accepting or rejecting the at least one high-level conflict and automatically accepting or rejecting one or more atomic conflicts corresponding to the accepted or rejected at least one high-level conflict, wherein

each said detected high-level conflict has an associated type,

simple high-level conflict types include at least: same state container connection, group of connected elements with atomic conflict of same type, simple container change, and simple symbol change high-level conflict types, and

complex high-level conflict types include at least: replacement in source model, replacement in target model, group of container changes, and group of symbol changes high-level conflict types.

2. The method of claim 1 , wherein the first model is a merge target model and the second model is a transformed model, the transformed model having been generated by applying a model transformation to a source model.

3. The method of claim 1 , wherein the detecting is based on information obtained during said merging.

4. The method of claim 3 , wherein the information includes merge states of objects including whether said objects are equal, changed, added, or conflicting, along with object constellation(s) or grouping(s).

5. The method of claim 1 , wherein each said detected high-level conflict is displayable in a hierarchical format.

6. The method of claim 1 , wherein at least some types of detected high-level conflicts are automatically resolvable only at the detected high-level conflict level.

7. The method of claim 6 , wherein at least some types of detected high-level conflicts are decomposable and resolvable at a corresponding constituent level.

8. The method of claim 1 , wherein at least some types of detected high-level conflicts are decomposable and resolvable at a corresponding constituent level.

9. The method of claim 1 , wherein each said model is based on an ARIS modeling language.

10. The method of claim 1 , further comprising determining and displaying an inverse conflict for at least one corresponding detected conflict.

11. A non-transitory computer readable storage medium tangibly storing instructions that, when executed by at least one processor of a system, performs functionality comprising:

generating, via at least one processor, a conflict model based on a merging together of first and second models;

automatically detecting, via the at least one processor, at least one high-level conflict based on at least one merge state and at least one grouping of one or more objects being merged from the first and second models in the conflict model;

providing for display a list of the at least one detected high-level conflict, along with a visual representation of the conflict model, wherein each said high-level conflict includes a combination of atomic and/or other high-level conflicts and is classified as either (a) a simple high-level conflict that includes as its constituent(s) a plurality of atomic conflicts, or (b) a complex high-level conflict that includes as its constituent(s) at least one other high-level conflict; and

enabling a user to resolve the at least one detected high-level conflict after the displaying of the list and the visual representation of the conflict model, wherein resolving the at least one detected high-level conflict includes accepting or rejecting the at least one high-level conflict and automatically accepting or rejecting and thus resolving at least one atomic conflict, the at least one atomic conflict being a sub-conflict of the at least one high-level conflict, wherein

each said detected high-level conflict has an associated type,

simple high-level conflict types include at least: same state container connection, group of connected elements with atomic conflict of same type, simple container change, and simple symbol change high-level conflict types, and

complex high-level conflict types include at least: replacement in source model, replacement in target model, group of container changes, and group of symbol changes high-level conflict types.

12. A system for resolving model merge conflicts, comprising:

at least one memory; and

at least one processor communicatively coupled with the at least one memory and configured to:

generate a conflict model based on a merging together of first and second models, the merging being performable via a merge engine,

automatically detect high-level conflicts within the conflict model based at least in part on at least one merge state and at least one grouping of one or more objects being merged from the first and second models in the conflict model, and

provide for display, via a user interface, a list of detected high-level conflicts, along with a visual representation of the conflict model, wherein each high-level conflict is of a predefined type, includes constituent conflicts, and either is (a) a simple high-level conflict that includes as its constituent(s) a plurality of atomic conflicts, or (b) a complex high-level conflict that includes as its constituent(s) at least one other high-level conflict,

wherein the user interface is further programmed to receive user input enabling a user to resolve detected high-level conflicts, wherein resolution of the at least one detected high-level conflict includes accepting or rejecting the at least one high-level conflict and automatically accepting or rejecting one or more atomic conflicts corresponding to the accepted or rejected at least one high-level conflict,

each said detected high-level conflict has an associated type,

simple high-level conflict types include at least: same state container connection, group of connected elements with atomic conflict of same type, simple container change, and simple symbol change high-level conflict types, and

complex high-level conflict types include at least: replacement in source model, replacement in target model, group of container changes, and group of symbol changes high-level conflict types.

13. The system of claim 12 , wherein the at least one processor is further configured to perform functionality comprising receiving user input enabling the user to create models and define transforms for models.

14. The system of claim 13 , wherein the first model is a merge target model and the second model is a transformed model, the transformed model having been generated by applying a model transformation to a source model.

15. The system of claim 12 , wherein the merge engine is configured to store information including merge states of objects including whether said objects are equal, changed, added, or conflicting, along with object constellation(s) or grouping(s).

16. The system of claim 12 , wherein at least some types of detected high-level conflicts are resolvable only at the detected high-level conflict level.

17. The system of claim 12 , wherein at least some types of detected high-level conflicts are decomposable and resolvable at a corresponding constituent level.

18. The system of claim 12 , wherein the user interface is further configured to display an inverse sub-conflict or constituent for at least one corresponding detected sub-conflict or constituent.

19. A method of resolving model merge conflicts, the method comprising:

generating, via at least one processor, a conflict model based on a merging together of first and second models;

automatically detecting, via the at least one processor, at least one high-level conflict based on at least one merge state and at least one grouping of one or more objects being merged from the first and second models in the conflict model, wherein each said high-level conflict comprises at least one atomic and/or other high-level conflict and is classified as either (a) a simple high-level conflict that includes as its constituent(s) a plurality of atomic conflicts, or (b) a complex high-level conflict that includes as its constituent(s) at least one other high-level conflict; and

enabling a user to resolve the at least one detected high-level conflict by accepting or rejecting the at least one high-level conflict where one or more atomic conflicts corresponding to the accepted or rejected at least one high-level conflict are also automatically accepted or rejected, wherein

each said detected high-level conflict has an associated type,

simple high-level conflict types include at least: same state container connection, group of connected elements with atomic conflict of same type, simple container change, and simple symbol change high-level conflict types, and

complex high-level conflict types include at least: replacement in source model, replacement in target model, group of container changes, and group of symbol changes high-level conflict types.

20. The method of claim 19 , further comprising:

displaying a list of the at least one detected high-level conflict, along with a visual representation of the conflict model,

wherein the enabling a user to resolve the at least one detected high-level conflict is performed after the displaying of the list and the visual representation of the conflict model.

21. The method of claim 19 , wherein the detecting is performed following said generating.

22. The method of claim 19 , wherein the detecting is based on information obtained during said merging.

23. The method of the preceding claim 22 , wherein the information includes merge states of objects including whether said objects are equal, changed, added, or conflicting, along with object constellation(s) or grouping(s).

24. The method of claim 19 , wherein at least some types of detected high-level conflicts are automatically resolvable only at the detected high-level conflict level and/or are decomposable and resolvable at a corresponding constituent level.

25. The method of claim 19 , further comprising determining and displaying an inverse conflict for at least one corresponding detected conflict.

26. A system for resolving model merge conflicts, comprising:

at least one memory; and

at least one processor communicatively coupled with the at least one memory and configured to:

generate a conflict model based on a merging together of first and second models;

automatically detect high-level conflicts within the conflict model based on at least one merge state and at least one grouping of one or more objects being merged from the first and second models in the conflict model, wherein each said high-level conflict comprises at least one atomic and/or other high-level conflict and is classified as either (a) a simple high-level conflict that includes as its constituent(s) a plurality of atomic conflicts, or (b) a complex high-level conflict that includes as its constituent(s) at least one other high-level conflict; and

receive, via a user interface, user input enabling a user to resolve detected high-level conflicts by accepting or rejecting the at least one high-level conflict where one or more atomic conflicts corresponding to the accepted or rejected at least one high-level conflict are also automatically accepted or rejected,

each said detected high-level conflict has an associated type,

simple high-level conflict types include at least: same state container connection, group of connected elements with atomic conflict of same type, simple container change, and simple symbol change high-level conflict types, and

complex high-level conflict types include at least: replacement in source model, replacement in target model, group of container changes, and group of symbol changes high-level conflict types.

27. The system of claim 26 , wherein the user interface is further configured to display a list of detected high-level conflicts, along with a visual representation of the conflict model.

28. The system of claim 26 , wherein high-level conflicts within the conflict model are detected based at least in part on output from a merge engine.

29. The system of claim 26 , wherein the merging together of first and second models is performable via a merge engine.

30. The method of claim 1 , wherein the generating the conflict model occurs during a post-processing of the merging together of the first and the second models in order to allow for recognition of high-level merge conflicts based on constellations of model elements in the conflict model and merge states of the model elements in the conflict model.

31. The method of claim 1 , wherein the resolving of the at least one detected high-level conflict includes automatically resolving all simple atomic conflicts that necessarily underlie the at least one detected high-level conflict being resolved.

32. The method of claim 1 , wherein the constituent(s) of the high-level conflict include(s) a group of sub-conflicts and inverse sub-conflicts.

33. The method of claim 32 , wherein

when accepting a high-level conflict, the sub-conflicts are automatically accepted and the inverse sub-conflicts are automatically rejected, and

when rejecting the high-level conflict, the sub-conflicts are automatically rejected and the inverse sub-conflicts are automatically accepted.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SOFTWARE GMBH
To: SAG ARIS GMBH
Reel/Frame 072867/0138 →
CHANGE OF NAME Recorded Dec 17, 2024
From: MOSEL BIDCO AG
To: SOFTWARE GMBH
Reel/Frame 069715/0415 →
MERGER Recorded Dec 17, 2024
From: SOFTWARE AG
To: MOSEL BIDCO AG
Reel/Frame 070095/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2011
From: GORES, JURGEN
To: SOFTWARE AG
Reel/Frame 025787/0295 →
Continuity (1)
Related Publication 20120210294A1 · Aug 16, 2012