Main Content

Hintergrund: Colourbox.de

Conflicts in software development: Prevent or resolve?

Conflicts often arise in software development. Whenever a development team works together on a system, conflicts can arise—for example, when working on code in a distributed team. Today's tools are good at detecting conflicts, but offer little support for resolving them effectively. Resolving conflicts is often difficult, especially for complex tasks such as code refactoring. According to the Capability Maturity Model Integration (CMMI), mature processes aim to prevent problems before they occur, rather than reacting after they occured. However, to date, there has been little research on how conflicts in software development can be proactively prevented or resolved. Graph transformation concepts provide a powerful basis for developing a proactive approach. There are three reasons for this: First, graphs are well suited for representing complex structures such as code artifacts, system architectures, or computing states. Second, changes to these structures can be clearly described using graph transformation rules. Third, graph transformation is based on a rich and well-established theory.

The new DFG project CORE is being funded at Philipps University of Marburg, where a proactive approach to dealing with conflicts based on graph transformation systems is being developed. Potential conflicts will be prevented at the time of development based on repair suggestions, while unavoidable conflicts will be resolved by searching for a solution that is suitable for both sides. Solution templates are prepared in advance and applied semi-automatically when conflicts arise. Heuristic search techniques are used to find such conflict solutions.

The CORE project is led by Prof.  Leen Lambers (BTU Cottbus) and Prof. Gabriele Taentzer. Two staff positions are planned to implement the project ideas within three years and to write doctoral theses on the topic.