ABSTRACT
Software development is a collaborative activity that may lead to conflicts when changes are performed in parallel by several developers. Direct conflicts arise when multiple developers make changes in the same source code entity, and indirect conflicts are produced when multiple developers make changes to source code entities that depend on each other. Previous approaches of code analysis either cannot predict all kinds of indirect conflicts, since they can be caused by syntactic or semantic changes, or they produce so much information as to make them virtually useless. Workspace awareness techniques have been proposed to enhance software configuration management systems by providing developers with information about the activity that is being performed by other developers. Most workspace awareness tools detect direct conflicts while only some of them warn about potential indirect conflicts. We propose a new approach to the problem of indirect conflicts. Our tool CASI informs developers of the changes that are taking place in a software project and the source code entities influenced by them. We visualize this influence together with directionality and severity information to help developers decide whether a concrete situation represents an indirect conflict. We introduce our approach, explain its implementation, discuss its behavior on an example, and lay out several steps that we will be taking to improve it in the future.
- Apache Subversion. http://subversion.apache.org/Google Scholar
- I. Almeida Da Silva, P. H. Chen, C. van der Westhuizen, R. M. Ripley, and A. van der Hoek, "Lighthouse: coordination through emerging design," Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange, 2006, p. 15. Google ScholarDigital Library
- S. Bajracharya, J. Ossher, and C. Lopes, "Sourcerer: An internet-scale software repository," Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, 2009, pp. 1--4. Google ScholarDigital Library
- Li-Te Cheng, S. Ross, and J. Patterson, "Jazzing up Eclipse with collaborative tools," Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange, 2003, pp. 45--49. Google ScholarDigital Library
- CVS - Open Source Version Control. http://www.nongnu.org/cvs/Google Scholar
- P. Deitel and H. Deitel, Java#8482; how to program, 2006.Google Scholar
- Eclipse. http://www.eclipse.orgGoogle Scholar
- R. Hegde and P. Dewan, "Connecting programming environments to support ad-hoc collaboration," 23rd IEEE/ACM International Conference on Automated Software Engineering, 2008. ASE 2008, 2008, pp. 178--187. Google ScholarDigital Library
- Java Primitive Data Types. http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.htmlGoogle Scholar
- B. Magnusson and U. Asklund, "Fine grained version control of configurations in COOP/Orm," Lecture Notes in Computer Science, 1996, pp. 31--48. Google ScholarDigital Library
- A. Sarma, G. Bortis, and A. van der Hoek, "Towards supporting awareness of indirect conflicts across software configuration management workspaces," Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, 2007, pp. 94--103. Google ScholarDigital Library
- T. Schümmer and J. M. Haake, "Supporting distributed software development by modes of collaboration," Proceedings of the seventh conference on European Conference on Computer Supported Cooperative Work, 2001, p. 98. Google ScholarDigital Library
- D. Shao, S. Khurshid, and D. E. Perry, "Evaluation of semantic interference detection in parallel changes: an exploratory experiment," Compare, vol. 4, p. 5.Google Scholar
- M. A. Storey, D. Čubranić, and D. M. German, "On the use of visualization to support awareness of human activities in software development: a survey and a framework," Proceedings of the 2005 ACM symposium on Software visualization, 2005, pp. 193--202. Google ScholarDigital Library
- C. van der Westhuizen, P. H. Chen, and A. van der Hoek, "Emerging design: new roles and uses for abstraction," Proceedings of the 2006 international workshop on Role of abstraction in software engineering, 2006, p. 28. Google ScholarDigital Library
- M. Weiser, "Program slicing," Proceedings of the 5th international conference on Software engineering, 1981, pp. 439--449. Google ScholarDigital Library
Index Terms
- CASI: preventing indirect conflicts through a live visualization
Recommendations
Empirical evidence of the benefits of workspace awareness in software configuration management
SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineeringIn this paper, we present results from our empirical evaluations of a workspace awareness tool that we designed and implemented to augment the functionality of software configuration management systems. Particularly, we performed two user experiments ...
Reconciling transactional conflicts with compiler's help
CGO '12: Proceedings of the Tenth International Symposium on Code Generation and OptimizationSoftware transactional memory(STM) is a promising programming paradigm for shared memory multithreaded programs. While STM offers the promise of being less error-prone and more programmer friendly compared to traditional lock-based synchronization, it ...
An Analysis of Merge Conflicts and Resolutions in Git-Based Open Source Projects
Version control systems such as Git support parallel collaborative work and became very widespread in the open-source community. Whilst Git offers some very interesting features, resolving conflicts that arise during synchronisation of parallel changes ...
Comments