ABSTRACT
Collaborative development can be hampered when conflicts arise because developers have inconsistent copies of a shared project. We present an approach to help developers identify and resolve conflicts early, before those conflicts become severe and before relevant changes fade away in the developers' memories. This paper presents three results.
First, a study of open-source systems establishes that conflicts are frequent, persistent, and appear not only as overlapping textual edits but also as subsequent build and test failures. The study spans nine open-source systems totaling 3.4 million lines of code; our conflict data is derived from 550,000 development versions of the systems.
Second, using previously-unexploited information, we precisely diagnose important classes of conflicts using the novel technique of speculative analysis over version control operations.
Third, we describe the design of Crystal, a publicly-available tool that uses speculative analysis to make concrete advice unobtrusively available to developers, helping them identify, manage, and prevent conflicts.
- Ban Al-Ani, Erik Trainer, Roger Ripley, Anita Sarma, André van der Hoek, and David Redmiles. Continuous coordination within the context of cooperative and human aspects of software engineering. In CHASE, pages 1--4, Leipzig, Germany, May 2008. Google ScholarDigital Library
- Thomas Ball, Jung-Min Kim, Adam A. Porter, and Harvey P. Siy. If your version control system could talk... In PMESSE, Boston, MA, USA, May 1997.Google Scholar
- Jacob T. Biehl, Mary Czerwinski, Greg Smith, and George G. Robertson. FASTDash: A visual dashboard for fostering awareness in software teams. In CHI, pages 1313--1322, San Jose, CA, USA, Apr. 2007. Google ScholarDigital Library
- Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. Speculative analysis: Exploring future states of software. In FoSER, pages 59--63, Santa Fe, NM, USA, Nov. 2010. Google ScholarDigital Library
- Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. Crystal: Precise and unobtrusive conflict warnings. In ESEC FSE Tool Demo, Szeged, Hungary, Sep. 2011. Google ScholarDigital Library
- Marcelo Cataldo, Patrick A. Wagstrom, James D. Herbsleb, and Kathleen M. Carley. Identification of coordination requirements: Implications for the design of collaboration and awareness tools. In CSCW, pages 353--362, Banff, AB, Canada, Nov. 2006. Google ScholarDigital Library
- Reidar Conradi and Bernhard Westfechtel. Version models for software configuration management. ACM Comput. Surv., 30(2):232--282, 1998. Google ScholarDigital Library
- Cleidson R. B. de Souza, David Redmiles, and Paul Dourish. "Breaking the code", Moving between private and public work in collaborative software development. In GROUP, pages 105--114, Sanibel Island, FL, USA, Nov. 2003. Google ScholarDigital Library
- Prasun Dewan. Dimensions of tools for detecting software conflicts. In RSSE, pages 21--25, Atlanta, GA, USA, Nov. 2008. Google ScholarDigital Library
- Prasun Dewan and Rajesh Hegde. Semi-synchronous conflict detection and resolution in asynchronous software development. In ECSCW, pages 159--178, Limerick, Ireland, Sep. 2007.Google ScholarCross Ref
- Jacky Estublier and Sergio Garcia. Process model and awareness in SCM. In SCM, pages 59--74, Oxford, England, UK, Sep. 2005. Google ScholarDigital Library
- David Samuel Glasser. Test factoring with amock: Generating readable unit tests from system tests. Master's thesis, MIT Dept. of EECS, Aug. 21, 2007.Google Scholar
- Rebecca E. Grinter. Using a configuration management tool to coordinate software development. In CoOCS, pages 168--177, Milpitas, CA, USA, Aug. 1995. Google ScholarDigital Library
- Mário Luís Guimarães and António Rito-Silva. Towards real-time integration. In CHASE, pages 56--63, Cape Town, South Africa, May 2010. Google ScholarDigital Library
- Lile Hattori and Michele Lanza. Syde: A tool for collaborative software development. In ICSE Tool Demo, pages 235--238, Cape Town, South Africa, May 2010. Google ScholarDigital Library
- Peter Henderson and Mark Weiser. Continuous execution: The VisiProg environment. In ICSE, pages 68--74, London, England, UK, Aug. 1985. Google ScholarDigital Library
- Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM TOPLAS, 11:345--387, July 1989. Google ScholarDigital Library
- R. R. Karinthi and M. Weiser. Incremental re-execution of programs. In SIIT, pages 38--44, St. Paul, MN, USA, June 1987. Google ScholarDigital Library
- Benjamin Livshits and Thomas Zimmermann. DynaMine: Finding common error patterns by mining software revision histories. In ESEC FSE, pages 296--305, Lisbon, Portugal, Sep. 2005. Google ScholarDigital Library
- Tom Mens. A state-of-the-art survey on software merging. IEEE TSE, 28(5):449--462, 2002. Google ScholarDigital Library
- Nachiappan Nagappan, Thomas Ball, and Andreas Zeller. Mining metrics to predict component failures. In ICSE, pages 452--461, Shanghai, China, 2006. Google ScholarDigital Library
- Bryan O'Sullivan. Making sense of revision-control systems. Queue, 7(7):30--40, 2009. Google ScholarDigital Library
- Dewayne E. Perry, Harvey P. Siy, and Lawrence G. Votta. Parallel changes in large-scale software development: an observational case study. ACM TOSEM, 10:308--337, July 2001. Google ScholarDigital Library
- David Saff and Michael D. Ernst. Reducing wasted development time via continuous testing. In ISSRE, pages 281--292, Denver, CO, USA, Nov. 2003. Google ScholarDigital Library
- David Saff and Michael D. Ernst. Continuous testing in Eclipse. In 2nd Eclipse Technology Exchange Workshop (eTX), Barcelona, Spain, Mar. 2004.Google ScholarCross Ref
- David Saff and Michael D. Ernst. An experimental evaluation of continuous testing during development. In ISSTA, pages 76--85, Boston, MA, USA, July 2004. Google ScholarDigital Library
- Anita Sarma. A survey of collaborative tools in software development. Technical Report UCI-ISR-05-3, University of California, Irvine, Institute for Software Research, 2005.Google Scholar
- Anita Sarma, Gerald Bortis, and André van der Hoek. Towards supporting awareness of indirect conflicts across software configuration management workspaces. In ASE, pages 94--103, Atlanta, GA, USA, Nov. 2007. Google ScholarDigital Library
- Anita Sarma, Zahra Noroozi, and André van der Hoek. Palantír: raising awareness among configuration management workspaces. In ICSE, pages 444--454, Portland, OR, May 2003. Google ScholarDigital Library
- Anita Sarma, David Redmiles, and André van der Hoek. Empirical evidence of the benefits of workspace awareness in software configuration management. In FSE, pages 113--123, Atlanta, GA, USA, Nov. 2008. Google ScholarDigital Library
- Chuck Walrad and Darrel Strom. The importance of branching models in SCM. Computer, 35(9):31--38, 2002. Google ScholarDigital Library
- Chuck Walrad and Darrel Strom. The importance of branching models in SCM. Computer, 35(9):31--38, Sep. 2002. Google ScholarDigital Library
- Jan Wloka, Barbara Ryder, Frank Tip, and Xiaoxia Ren. Safe-commit analysis to facilitate team software development. In ICSE, pages 507--517, Vancouver, BC, Canada, May 2009. Google ScholarDigital Library
- Thomas Zimmermann. Mining workspace updates in CVS. In MSR, Minneapolis, MN, USA, May 2007. Google ScholarDigital Library
- Thomas Zimmermann, Peter Weißgerber, Stephan Diehl, and Andreas Zeller. Mining version histories to guide software changes. In ICSE, pages 563--572, Edinburgh, Scotland, UK, 2004. Google ScholarDigital Library
Index Terms
- Proactive detection of collaboration conflicts
Recommendations
Early Detection of Collaboration Conflicts and Risks
Conflicts among developers' inconsistent copies of a shared project arise in collaborative development and can slow progress and decrease quality. Identifying and resolving such conflicts early can help. Identifying situations which may lead to ...
Crystal: precise and unobtrusive conflict warnings
ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineeringDuring collaborative development, individual developers can create conflicts in their copies of the code. Such conflicting edits are frequent in practice, and resolving them can be costly. We present Crystal, a tool that proactively examines developers' ...
Minimizing software conflicts through proactive detection of conflicts and task scheduling
FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software EngineeringSoftware conflicts arising because of conflicting changes are a regular occurrence and delay projects. Workspace awareness tools have been proposed to facilitate task coordination among developers, enabling them to identify potential conflicts early, ...
Comments