skip to main content
10.1145/3106237.3106296acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article
Artifacts Evaluated & Functional

BDCI: behavioral driven conflict identification

Published:21 August 2017Publication History

ABSTRACT

Source Code Management (SCM) systems support software evolution by providing features, such as version control, branching, and conflict detection. Despite the presence of these features, support to parallel software development is often limited. SCM systems can only address a subset of the conflicts that might be introduced by developers when concurrently working on multiple parallel branches. In fact, SCM systems can detect textual conflicts, which are generated by the concurrent modification of the same program locations, but they are unable to detect higher-order conflicts, which are generated by the concurrent modification of different program locations that generate program misbehaviors once merged. Higher-order conflicts are painful to detect and expensive to fix because they might be originated by the interference of apparently unrelated changes.

In this paper we present Behavioral Driven Conflict Identification (BDCI), a novel approach to conflict detection. BDCI moves the analysis of conflicts from the source code level to the level of program behavior by generating and comparing behavioral models. The analysis based on behavioral models can reveal interfering changes as soon as they are introduced in the SCM system, even if they do not introduce any textual conflict.

To evaluate the effectiveness and the cost of the proposed approach, we developed BDCIf, a specific instance of BDCI dedicated to the detection of higher-order conflicts related to the functional behavior of a program. The evidence collected by analyzing multiple versions of Git and Redis suggests that BDCIf can effectively detect higher-order conflicts and report how changes might interfere.

References

  1. H. Agrawal, R. A. Demillo, B. Hathaway, W. Hsu, W. Hsu, E. W. Krauser, R. J. Martin, A. P. Mathur, and E. H. Spafford. 1989. Design Of Mutant Operators For The C Programming Language. Technical Report. Department of Computer Science, Purdue University.Google ScholarGoogle Scholar
  2. Apache. visited in 2017. SubVersion. https://subversion.apache.org. (visited in 2017).Google ScholarGoogle Scholar
  3. W. Appelt. 1999. WWW Based Collaboration with the BSCW Systems. In Proceedings of the International Conference on Current Trends in Theory and Informatic (SOFSEM). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Y. Bang. 2015. Proactive detection of higher-order software design conflicts. Ph.D. Dissertation. Faculty of the USC Graduate School University of Southern California.Google ScholarGoogle Scholar
  5. J. Y. Bang and N. Medvidovic. 2015. Proactive Detection of Higher-Order Software Design Conflicts. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Y. Bang, D. Popescu, and N. Medvidovic. 2012. Enabling Workspace Awareness for Collaborative Software Modeling. In Proceedings of the CSCW Workshop on The Future of Collaborative Software Development (FutureCSD).Google ScholarGoogle Scholar
  7. J. T. Biehl, M. Czerwinski, G. Smith, and G. G. Robertson. 2007. FASTDash: A Visual Dashboard for Fostering Awareness in Software Teams. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Bird and T. Zimmermann. 2012. Assessing the Value of Branches with What-if Analysis. In Proceedings of the ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. Brown, S .P. Berczuk, and B. Appleton. 2002. Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Pearson Education. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin. 2011. Crystal: Precise and Unobtrusive Conflict Warnings. In Proceedings of the ACM SIGSOFT Symposium and the European Conference on Foundations of Software Engineering (ESEC/FSE), Tool Demo Track. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Y. Brun, R. Holmes, M.D. Ernst, and D. Notkin. 2013. Early Detection of Collaboration Conflicts and Risks. IEEE Transactions on Software Engineering (TSE) 39, 10 (2013), 1358–1375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. 2011. Proactive Detection of Collaboration Conflicts. In Proceedings of the ACM SIGSOFT Symposium and the European Conference on Foundations of Software Engineering (ESEC/FSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Dewan and R. Hegde. 2007. Semi-synchronous conflict detection and resolution in asynchronous software development. In Proceedings of the European Conference on Computer-Supported Cooperative Work (ECSCW).Google ScholarGoogle Scholar
  14. Michael D. Ernst, Jake Cockrell, William G. Griswold, and David Notkin. 2001. Dynamically Discovering Likely Program Invariants to Support Program Evolution. IEEE Transactions on Software Engineering (TSE) 27, 2 (2001), 99–123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Estublier and S. Garcia. 2005. Process Model and Awareness in SCM. In Proceedings of the International Workshop on Software Configuration Management (SCM). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Estublier, D. Leblang, A. van der Hoek, R. Conradi, G. Clemm, W. Tichy, and D. Wiborg-Weber. 2005. Impact of Software Engineering Research on the Practice of Software Configuration Management. ACM Transactions on Software Engineering and Methodologies (TOSEM) 14, 4 (2005), 383–430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Fitzpatrick, S. Kaplan, T. Mansfield, D. Arnold, and B. Segall. 2002. Supporting Public Availability and Accessibility with Elvin: Experiences and Reflections. In Proceedings of the International Conference on Computer Supported Cooperative Work (CSCW). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. GitHub. visited in 2017. Git. https://git-scm.com. (visited in 2017).Google ScholarGoogle Scholar
  19. R. E. Grinter. 1995. Using a Configuration Management Tool to Coordinate Software Development. In Proceedings of Conference on Organizational Computing Systems (COCS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. L. Guimaraes and A. R. Silva. 2010. Towards Real-time Integration. In Proceedings of the ICSE Workshop on Cooperative and Human Aspects of Software Engineering (CHASE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. L. Guimaraes and A. R. Silva. 2012. Improving early detection of software merge conflicts. In Proceedings of the International Conference on Software Engineering (ICSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Carl Gutwin and Saul Greenberg. 1996. Workspace Awareness for Groupware. In Proceedings of the Conference Companion on Human Factors in Computing Systems (CHI). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Hattori and M. Lanza. 2010. Syde: A Tool for Collaborative Software Development. In Proceedings of the International Conference on Software Engineering (ICSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. Horwitz, J. Prins, and T. Reps. 1989. Integrating Noninterfering Versions of Programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 11, 3 (1989), 345–387. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Intel. visited in 2017. PIN - A Dynamic Binary Instrumentation Tool. https: //software.intel.com/en-us/articles/pintool. (visited in 2017).Google ScholarGoogle Scholar
  26. Y. Jia and M. Harman. 2008. Milu: A Customizable, Runtime-Optimized Higher Order Mutation Testing Tool for the Full C Language. In Proceedings of the Testing: Academic and Industrial Conference - Practice and Research Techniques (TAIC PART). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. K. Kasi and A. Sarma. 2013. Cassandra: Proactive Conflict Minimization Through Optimized Task Scheduling. In Proceedings of the International Conference on Software Engineering (ICSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Linux. visited in 2017. Linux diff. http://linux.about.com/library/cmd/blcmdl1_ diff.htm. (visited in 2017).Google ScholarGoogle Scholar
  29. D. Lo, N. Nagappan, and T. Zimmermann. 2015. How Practitioners Perceive the Relevance of Software Engineering Research. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (FSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. D. Lorenzoli, L. Mariani, and M. Pezzè. 2008. Automatic Generation of Software Behavioral Models. In Proceedings of the International Conference on Software Engineering (ICSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. L. Mariani, D. Micucci, and F. Pastore. 2014. Early Conflict Detection with Mined Models. In Proceedings of the International Symposium on Software Reliability Engineering (ISSRE), Fast Abstract. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Meyer. 2014. Continuous Integration and Its Tools. IEEE Software 31, 3 (2014), 14–16.Google ScholarGoogle ScholarCross RefCross Ref
  33. Microsoft. visited in 2017. Z3 Theorem Prover. https://github.com/z3prover/z3/ wiki. (visited in 2017).Google ScholarGoogle Scholar
  34. H. V. Nguyen, M. H. Nguyen, S. C. Dang, C. Kastner, and T. N. Nguyen. 2015. Detecting Semantic Merge Conflicts with Variability-Aware Execution. In Proceedings of the joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE), NIER Track. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. K. Noyes. visited in 2017. Git Turns 8, Sees Wide Adoption in the Enterprise. http://www.linux.com/news/enterprise/systemsmanagement/ 715287-git-turns-8-enterprise-wide-adoption/. (visited in 2017).Google ScholarGoogle Scholar
  36. F. Pastore, L. Mariani, and A. Goffi. 2013. RADAR: A Tool for Debugging Regression Problems in C/C++ Software. In Proceedings of the International Conference on Software Engineering (ICSE), Tool Demo. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. F. Pastore, L. Mariani, A. Goffi, M. Oriol, and M. Wahler. 2012. Dynamic Analysis of Upgrades in C/C++ Software. In International Symposium on Software Reliability Engineering (ISSRE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. E. Perry, H. P. Siy, and L. G. Votta. 2001. Parallel Changes in Large-scale Software Development: An Observational Case Study. ACM Transactions on Software Engineering Methodologies (TOSEM) 10, 3 (2001), 308–337. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Redis Labs. visited in 2017. Redis. http://www.redis.io. (visited in 2017).Google ScholarGoogle Scholar
  40. A. Sarma, D. Redmiles, and A. van der Hoek. 2008. Empirical Evidence of the Benefits of Workspace Awareness in Software Configuration Management. In Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. A. Sarma, D. Redmiles, and A. van der Hoek. 2010. Categorizing the Spectrum of Coordination Technology. IEEE Computer 43, 6 (2010), 61–67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. A. Sarma, D. Redmiles, and A. van der Hoek. 2012. Palantir: Early Detection of Development Conflicts Arising from Parallel Code Changes. IEEE Transactions on Software Engineering (TSE) 38, 4 (2012), 889–908. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. T. Schümmer and J. M. Haake. 2001. Supporting distributed software development by modes of collaboration. In Proceedings of the European Conference on Computer-Supported Cooperative Work (ECSCW). Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Travis. visited in 2017. Continuous Integration Service. http://www.travis-ci.com. (visited in 2017).Google ScholarGoogle Scholar
  45. M. Weiser. 1984. Program Slicing. IEEE Transactions on Software Engineering (TSE) 10, 4 (1984), 352–357. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. J. Wloka, B. Ryder, F. Tip, and X. Ren. 2009. Safe-commit Analysis to Facilitate Team Software Development. In Proceedings of the International Conference on Software Engineering (ICSE). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. BDCI: behavioral driven conflict identification

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
          August 2017
          1073 pages
          ISBN:9781450351058
          DOI:10.1145/3106237

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 21 August 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate112of543submissions,21%

          Upcoming Conference

          FSE '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader