The Community for Technology Leaders
RSS Icon
Issue No.10 - Oct. (2013 vol.39)
pp: 1358-1375
Yuriy Brun , Dept. of Comput. Sci., Univ. of Massachusetts, Amherst, MA, USA
Reid Holmes , David R. Cheriton Sch. of Comput. Sci., Univ. of Waterloo, Waterloo, ON, Canada
Michael D. Ernst , D. Notkin are with the Dept. of Comput. Sci. & Eng., Univ. of Washington, Seattle, WA, USA
David Notkin , D. Notkin are with the Dept. of Comput. Sci. & Eng., Univ. of Washington, Seattle, WA, USA
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 conflicts can prevent some conflicts altogether. By studying nine open-source systems totaling 3.4 million lines of code, we establish that conflicts are frequent, persistent, and appear not only as overlapping textual edits but also as subsequent build and test failures. Motivated by this finding, we develop a speculative analysis technique that uses previously unexploited information from version control operations to precisely diagnose important classes of conflicts. Then, we design and implement Crystal, a publicly available tool that helps developers identify, manage, and prevent conflicts. Crystal uses speculative analysis to make concrete advice unobtrusively available to developers.
Crystals, Collaboration, History, Open source software, Control systems, Terminology, Computer science,Crystal, Collaborative development, collaboration conflicts, developer awareness, speculative analysis, version control
Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin, "Early Detection of Collaboration Conflicts and Risks", IEEE Transactions on Software Engineering, vol.39, no. 10, pp. 1358-1375, Oct. 2013, doi:10.1109/TSE.2013.28
[1] B. Al-Ani, E. Trainer, R. Ripley, A. Sarma, A. van der Hoek, and D. Redmiles, "Continuous Coordination within the Context of Cooperative and Human Aspects of Software Engineering," Proc. Int'l Workshop Cooperative and Human Aspects of Software Eng., pp. 1-4, May 2008.
[2] B. Appleton, S.P. Berczuk, R. Cabrera, and R. Orenstein, "Streamed Lines: Branching Patterns for Parallel Software Development," Proc. Pattern Languages of Programs Conf., 1998.
[3] T. Ball, J.-M. Kim, A.A. Porter, and H.P. Siy, "If Your Version Control System Could Talk," Proc. Workshop Process Modelling and Empirical Studies of Software Eng., May 1997.
[4] J.T. Biehl, M. Czerwinski, G. Smith, and G.G. Robertson, "FASTDash: A Visual Dashboard for Fostering Awareness in Software Teams," Proc. SIGCHI Conf. Human Factors in Computing Systems, pp. 1313-1322, Apr. 2007.
[5] C. Bird, P.C. Rigby, E.T. Barr, D.J. Hamilton, D.M. Germán, and P.T. Devanbu, "The Promises and Perils of Mining Git," Proc. Sixth IEEE Int'l Working Conf. Mining Software Repositories, pp. 1-10, 2009.
[6] C. Bird and T. Zimmermann, "Assessing the Value of Branches with What-If Analysis," Proc. ACM SIGSOFT 20th Int'l Symp. Foundations of Software Eng., 2012.
[7] Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin, "Speculative Analysis: Exploring Future States of Software," Proc. FSE/SDP Workshop Future of Software Eng. Research, pp. 59-63, Nov. 2010.
[8] Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin, "Crystal: Precise and Unobtrusive Conflict Warnings," Proc. 19th ACM SIGSOFT Symp. and 13th European Conf. Foundations of Software Eng., Sept. 2011.
[9] Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin, "Proactive Detection of Collaboration Conflicts," Proc. 19th ACM SIGSOFT Symp. and 13th European Conf. Foundations of Software Eng., pp. 168-178, Sept. 2011.
[10] M. Cataldo, P.A. Wagstrom, J.D. Herbsleb, and K.M. Carley, "Identification of Coordination Requirements: Implications for the Design of Collaboration and Awareness Tools," Proc. 20th Anniversary Conf. Computer Supported Cooperative Work, pp. 353-362, Nov. 2006.
[11] B. Collins-Sussman, "The Subversion Project: Buiding a Better CVS," Linux, vol. 3, no. 94, 2002.
[12] R. Conradi and B. Westfechtel, "Version Models for Software Configuration Management," ACM Computing Surveys, vol. 30, no. 2, pp. 232-282, 1998.
[13] C.R.B. de Souza, D. Redmiles, and P. Dourish, "'Breaking the Code,' Moving between Private and Public Work in Collaborative Software Development," Proc. Int'l ACM SIGGROUP Conf. Supporting Group Work, pp. 105-114, Nov. 2003.
[14] P. Dewan, "Dimensions of Tools for Detecting Software Conflicts," Proc. Int'l Workshop Recommendation Systems for Software Eng., pp. 21-25, Nov. 2008.
[15] P. Dewan and R. Hegde, "Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development," Proc. European Computer Supported Cooperative Workshop, pp. 159-178, Sept. 2007.
[16] S. Elbaum, H.N. Chin, M.B. Dwyer, and J. Dokulil, "Carving Differential Unit Test Cases from System Test Cases," Proc. 14th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 253-264, 2006.
[17] J. Estublier and S. Garcia, "Process Model and Awareness in SCM," Proc. 12th Int'l Workshop Software Configuration Management, pp. 59-74, Sept. 2005.
[18] D.S. Glasser, "Test Factoring with Amock: Generating Readable Unit Tests from System Tests," master's thesis, MIT Dept. of EECS, Aug. 2007.
[19] R.E. Grinter, "Using a Configuration Management Tool to Coordinate Software Development," Proc. Conf. Organizational Computing Systems, pp. 168-177, Aug. 1995.
[20] D. Grune, "Concurrent Versions System, a Method for Independent Cooperation," Technical Report IR 113, Vrije Universiteit, 1986.
[21] M.L. Guimarães and A. Rito-Silva, "Towards Real-Time Integration," Proc. ICSE Workshop Cooperative and Human Aspects of Software Eng., pp. 56-63, May 2010.
[22] M.L. Guimarães and A.R. Silva, "Improving Early Detection of Software Merge Conflicts," Proc. Int'l Conf. Software Eng., 2012.
[23] L. Hattori and M. Lanza, "Syde: A Tool for Collaborative Software Development," Proc. ACM/IEEE 32nd Int'l Conf. Software Eng., pp. 235-238, May 2010.
[24] P. Henderson and M. Weiser, "Continuous Execution: The VisiProg Environment," Proc. Eighth Int'l Conf. Software Eng., pp. 68-74, Aug. 1985.
[25] S. Horwitz, J. Prins, and T. Reps, "Integrating Noninterfering Versions of Programs," ACM Trans. Programming Languages and Systems, vol. 11, pp. 345-387, July 1989.
[26] R.R. Karinthi and M. Weiser, "Incremental Re-Execution of Programs," Proc. Symp. Interpreters and Interpretive Techniques, pp. 38-44, June 1987.
[27] B. Livshits and T. Zimmermann, "DynaMine: Finding Common Error Patterns by Mining Software Revision Histories," Proc. 10th European Software Eng. Conf. Held Jointly with 13th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 296-305, Sept. 2005.
[28] T. Mens, "A State-of-the-Art Survey on Software Merging," IEEE Tran. Software Eng., vol. 28, no. 5, pp. 449-462, May. 2002.
[29] K. Muşlu, Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin, "Speculative Analysis of Integrated Development Environment Recommendations," Proc. ACM Int'l Conf. Object Oriented Programming Systems Languages and Applications, Oct. 2012.
[30] N. Nagappan, T. Ball, and A. Zeller, "Mining Metrics to Predict Component Failures," Proc. 28th Int'l Conf. Software Eng., pp. 452-461, 2006.
[31] B. O'Sullivan, "Making Sense of Revision-Control Systems," Queue, vol. 7, no. 7, pp. 30-40, 2009.
[32] D.E. Perry, H.P. Siy, and L.G. Votta, "Parallel Changes in Large-Scale Software Development: An Observational Case Study," ACM Trans Software Eng. and Methodology, vol. 10, pp. 308-337, July 2001.
[33] M.J. Rochkind, "The Source Code Control System," IEEE Trans. Software Eng., vol. 1, no. 4, pp. 364-370, Dec. 1975.
[34] C. Rodriguez-Bustos and J. Aponte, "How Distributed Version Control Systems Impact Open Source Software Projects," Proc. Ninth IEEE Working Conf. Mining Software Repositories, pp. 36-39, 2012.
[35] D. Saff, S. Artzi, J.H. Perkins, and M.D. Ernst, "Automatic Test Factoring for Java," Proc. IEEE/ACM 20th Int'l Conf. Automated Software Eng., pp. 114-123, Nov. 2005.
[36] D. Saff and M.D. Ernst, "Reducing Wasted Development Time via Continuous Testing," Proc. 14th Int'l Symp. Software Reliability Eng., pp. 281-292, Nov. 2003.
[37] D. Saff and M.D. Ernst, "Continuous Testing in Eclipse," Proc. Second Eclipse Technology Exchange Workshop, Mar. 2004.
[38] D. Saff and M.D. Ernst, "An Experimental Evaluation of Continuous Testing during Development," Proc. ACM SIGSOFT Int'l Symp. Software Testing and Analysis, pp. 76-85, July 2004.
[39] A. Sarma, "A Survey of Collaborative Tools in Software Development," Technical Report UCI-ISR-05-3, Univ. of California, Irvine, Inst. of Software Research, 2005.
[40] A. Sarma, G. Bortis, and A. van der Hoek, "Towards Supporting Awareness of Indirect Conflicts Across Software Configuration Management Workspaces," Proc. 22nd IEEE/ACM Int'l Conf. Automated Software Eng., pp. 94-103, Nov. 2007.
[41] A. Sarma, Z. Noroozi, and A. van der Hoek, "Palantír: Raising Awareness among Configuration Management Workspaces," Proc. 25th Int'l Conf. Software Eng., pp. 444-454, May 2003.
[42] A. Sarma, D. Redmiles, and A. van der Hoek, "Empirical Evidence of the Benefits of Workspace Awareness in Software Configuration Management," Proc. 16th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 113-123, Nov. 2008.
[43] W.F. Tichy and W.F. Tichy, "RCS—A System for Version Control," Software: Practice and Experience, vol. 15, pp. 637-654, 1985.
[44] C. Walrad and D. Strom, "The Importance of Branching Models in SCM," Computer, vol. 35, no. 9, pp. 31-38, 2002.
[45] J. Wloka, B. Ryder, F. Tip, and X. Ren, "Safe-Commit Analysis to Facilitate Team Software Development," Proc. Int'l Conf. Software Eng., pp. 507-517, May 2009.
[46] J. Wuttke, I. Beschastnikh, and Y. Brun, "Effects of Centralized and Distributed Version Control on Commit Granularity," Tiny Trans. Computer Science, Sept. 2012.
[47] T. Zimmermann, "Mining Workspace Updates in CVS," Proc. Fourth Int'l Workshop Mining Software Repositories, May 2007.
[48] T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller, "Mining Version Histories to Guide Software Changes," Proc. 26th Int'l Conf. Software Eng., pp. 563-572, 2004.
106 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool