Project Details
Projekt Print View

Conflict Prevention and Proactive Conflict Resolution Strategies for Graph Transformation

Subject Area Software Engineering and Programming Languages
Term since 2026
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 569677785
 
Conflicts are a fundamental phenomenon in software engineering. For example, when a software system is developed collaboratively, merge conflicts can occur that need to be resolved by the developers. This can be a challenging task, especially when it comes to refactoring. While conflict detection is well supported, there is still a need to effectively manage conflicts. According to the CMMI, a process is generally more mature when it is proactive rather than reactive. To date, no research has systematically explored the possibilities of conflict prevention and proactive conflict resolution, where conflict resolution templates are computed at design time and applied at run time. In the field of graph transformation, a conflict occurs when two transformations are executable on a given graph, but after one transformation is executed, the other transformation is no longer executable. Graph transformation has proven to be a versatile foundation for supporting proactive conflict detection in software engineering, based on the following three principles: First, graphs are often used to represent complex structures of interest, such as computational states or system structures. Second, state changes can be easily described using graph transformation rules. Third, there is an extensive theory of graph transformation. Based on a proactive approach to conflict detection, we will develop conflict prevention and proactive conflict resolution strategies for graph transformations using heuristic and meta-heuristic search. If the rules of a given graph transformation system (GTS) can lead to unwanted conflicts, strategies will be available to modify the GTS at design time to prevent all unwanted conflicts. If conflicts occur naturally and the GTS must not be changed, there will be strategies to resolve the conflicts. A conflict between two graph transformations is resolved by transforming them into a common graph or at least into two similar graphs. The conflicts are resolved proactively, i.e. resolution templates are computed at design time and instantiated at runtime. For all considered strategies, we will develop the necessary theory on the correctness and completeness of the desired result sets. The strategies will be implemented in a toolkit based on Henshin, a model transformation environment using graph transformation concepts, and evaluated on typical software engineering examples, such as specifying and analyzing requirements, implementing model transformations, and collaborating on refactorings, to examine their usefulness in practice.
DFG Programme Research Grants
 
 

Additional Information

Textvergrößerung und Kontrastanpassung