Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development
Fulltext URI
Document type
Files
Additional Information
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Previous work has found that (a) when software is developed collaboratively, concurrent accesses to related pieces of code are made, and (b) when these accesses are coordinated asynchronously through a version control system, they result in increased defects because of conflicting concurrent changes. Previous findings also show that distance collaboration aggravates software-development problems and radical colocation reduces them. These results motivate a semi-synchronous distributed computersupported model that allows programmers creating code asynchronously to synchronously collaborate with each other to detect and resolve potentially conflicting tasks before they have completed the tasks. We describe, illustrate, and evaluate a new model designed to meet these requirements. Our results show that the model can catch conflicts at editing time that would be expensive to manage at later times.
Description
Keywords
Citation
URI
URI
Endorsement
Review
Supplemented By
Referenced By
Number of citations to item: 71
- Anita Sarma, Larry Maccherone, Patrick Wagstrom, James Herbsleb (2009): Tesseract: Interactive visual exploration of socio-technical relationships in software development, In: 2009 IEEE 31st International Conference on Software Engineering, doi:10.1109/icse.2009.5070505
- Cong Chen, Kang Zhang (2014): The Effects of Continuous Awareness on Distributed Software Development, In: 2014 IEEE 9th International Conference on Global Software Engineering, doi:10.1109/icgse.2014.28
- Olaf Leßenich, Janet Siegmund, Sven Apel, Christian Kästner, Claus Hunsen (2017): Indicators for merge conflicts in the wild: survey and empirical study, In: Automated Software Engineering 2(25), doi:10.1007/s10515-017-0227-0
- Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin (2013): Early Detection of Collaboration Conflicts and Risks, In: IEEE Transactions on Software Engineering 10(39), doi:10.1109/tse.2013.28
- Petra Brosch, Philip Langer, Martina Seidl, Konrad Wieland, Manuel Wimmer, Gerti Kappel (2000): The Past, Present, and Future of Model Versioning, In: Emerging Technologies for the Evolution and Maintenance of Software Models, doi:10.4018/978-1-61350-438-3.ch015
- Kelly Blincoe (2012): Timely and efficient facilitation of coordination of software developers' activities, In: 2012 34th International Conference on Software Engineering (ICSE), doi:10.1109/icse.2012.6227042
- Kelly Blincoe, Giuseppe Valetto, Daniela Damian (2015): Facilitating Coordination between Software Developers: A Study and Techniques for Timely and Efficient Recommendations, In: IEEE Transactions on Software Engineering 10(41), doi:10.1109/tse.2015.2431680
- Gustavo Vale, Angelika Schmid, Alcemir Rodrigues Santos, Eduardo Santana de Almeida, Sven Apel (2019): On the relation between Github communication activity and merge conflicts, In: Empirical Software Engineering 1(25), doi:10.1007/s10664-019-09774-x
- Konrad Wieland, Geraldine Fitzpatrick, Gerti Kappel, Martina Seidl, Manuel Wimmer (2011): Towards an Understanding of Requirements for Model Versioning Support, In: International Journal of People-Oriented Programming 2(1), doi:10.4018/ijpop.2011070101
- Claudia-Lavinia Ignat (2008): Annotation of concurrent changes in collaborative software development, In: 2008 4th International Conference on Intelligent Computer Communication and Processing, doi:10.1109/iccp.2008.4648365
- Carl Gutwin, T.C. Nicholas Graham, Chris Wolfe, Nelson Wong, Brian de Alwis (2010): Gone but not forgotten, In: Proceedings of the 2010 ACM conference on Computer supported cooperative work, doi:10.1145/1718918.1718951
- Anita Sarma, Andrea van der Hoek (2010): Categorizing the Spectrum of Coordination Technology, In: Computer 6(43), doi:10.1109/mc.2010.90
- Shukor Sanim Mohd Fauzi, Paul L. Bannerman, Mark Staples (2010): Software Configuration Management in Global Software Development: A Systematic Map, In: 2010 Asia Pacific Software Engineering Conference, doi:10.1109/apsec.2010.53
- Amanuel Koshima, Vincent Englebert, Philippe Thiran (2011): Distributed Collaborative Model Editing Framework for Domain Specific Modeling Tools, In: 2011 IEEE Sixth International Conference on Global Software Engineering, doi:10.1109/icgse.2011.18
- Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin (2011): Crystal, In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, doi:10.1145/2025113.2025187
- Cristiano M. Cesario, Leonardo G. P. Murta (2016): Topology Awareness for Distributed Version Control Systems, In: Proceedings of the XXX Brazilian Symposium on Software Engineering, doi:10.1145/2973839.2973854
- Inderdeep Kaur, Parminder Kaur, Hardeep Singh (2017): Analysis of workspace awareness tools in distributed software development, In: 2017 International Conference on Intelligent Communication and Computational Techniques (ICCT), doi:10.1109/intelcct.2017.8324051
- Mário Luís Guimarães, António Rito Silva (2012): Making Software Integration Really Continuous, In: Lecture Notes in Computer Science, doi:10.1007/978-3-642-28872-2_23
- Hoai Le Nguyen, Claudia-Lavinia Ignat (2018): An Analysis of Merge Conflicts and Resolutions in Git-Based Open Source Projects, In: Computer Supported Cooperative Work (CSCW) 3-6(27), doi:10.1007/s10606-018-9323-3
- Prasun Dewan (2011): Semantics-based collaborative systems: Combining the advantages of unstructured and structure-based systems, In: 2011 International Conference on Collaboration Technologies and Systems (CTS), doi:10.1109/cts.2011.5928679
- Kelly Blincoe (2012): Timely detection of Coordination Requirements to support collaboration among software developers, In: 2012 34th International Conference on Software Engineering (ICSE), doi:10.1109/icse.2012.6227230
- Alex R. Sabau, Simon Hacks, Andreas Steffens (2020): Implementation of a continuous delivery pipeline for enterprise architecture model evolution, In: Software and Systems Modeling 1(20), doi:10.1007/s10270-020-00828-z
- Phan Thi Thanh Huyen, Koichiro Ochimizu (2011): Toward Inconsistency Awareness in Collaborative Software Development, In: 2011 18th Asia-Pacific Software Engineering Conference, doi:10.1109/apsec.2011.24
- Phan Thi Thanh Huyen, Kunihiko Hiraishi, Koichiro Ochimizu (2013): Modeling and Verification of Change Processes in Collaborative Software Engineering, In: Lecture Notes in Computer Science, doi:10.1007/978-3-642-39646-5_2
- (2010): Computer Highlights Society Magazines, In: Computer 6(43), doi:10.1109/mc.2010.164
- Claudia-Lavinia Ignat, Stavroula Papadopoulou, Gérald Oster, Moira C. Norrie (2008): Providing awareness in multi-synchronous collaboration without compromising privacy, In: Proceedings of the 2008 ACM conference on Computer supported cooperative work, doi:10.1145/1460563.1460665
- Rajesh Hegde, Prasun Dewan (2008): Connecting Programming Environments to Support Ad-Hoc Collaboration, In: 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, doi:10.1109/ase.2008.28
- Gustavo Vale, Heitor Costa, Sven Apel (2023): Predicting merge conflicts considering social and technical assets, In: Empirical Software Engineering 1(29), doi:10.1007/s10664-023-10395-8
- Ivan Mistrík, John Grundy, André van der Hoek, Jim Whitehead (2010): Collaborative Software Engineering: Challenges and Prospects, In: Collaborative Software Engineering, doi:10.1007/978-3-642-10294-3_19
- Mario Luis Guimaraes, Antonio Rito Silva (2012): Improving early detection of software merge conflicts, In: 2012 34th International Conference on Software Engineering (ICSE), doi:10.1109/icse.2012.6227180
- Thaís Rocha, Paulo Borba (2023): Using acceptance tests to predict merge conflict risk, In: Empirical Software Engineering 2(28), doi:10.1007/s10664-022-10266-8
- Anita Sarma (2019): Coordination Technologies, In: Handbook of Software Engineering, doi:10.1007/978-3-030-00262-6_10
- Phan Thi Thanh HUYEN, Koichiro OCHIMIZU (2014): An Inconsistency Management Support System for Collaborative Software Development, In: IEICE Transactions on Information and Systems 1(E97.D), doi:10.1587/transinf.e97.d.22
- Gleiph Ghiotto, Leonardo Murta, Marcio Barros, Andre van der Hoek (2020): On the Nature of Merge Conflicts: A Study of 2,731 Open Source Java Projects Hosted by GitHub, In: IEEE Transactions on Software Engineering 8(46), doi:10.1109/tse.2018.2871083
- A. Sarma, D. F. Redmiles, A. van der Hoek (2012): Palantir: Early Detection of Development Conflicts Arising from Parallel Code Changes, In: IEEE Transactions on Software Engineering 4(38), doi:10.1109/tse.2011.64
- Jose Ricardo da Silva Junior, Daniel Prett Campagna, Esteban Clua, Anita Sarma, Leonardo Murta (2022): Dominoes: An Interactive Exploratory Data Analysis Tool for Software Relationships, In: IEEE Transactions on Software Engineering 2(48), doi:10.1109/tse.2020.2988241
- Max Ellis, Sarah Nadi, Danny Dig (2023): Operation-Based Refactoring-Aware Merging: An Empirical Evaluation, In: IEEE Transactions on Software Engineering 4(49), doi:10.1109/tse.2022.3228851
- Jae Young Bang, Nenad Medvidovic (2015): Proactive Detection of Higher-Order Software Design Conflicts, In: 2015 12th Working IEEE/IFIP Conference on Software Architecture, doi:10.1109/wicsa.2015.15
- Claudia-Lavinia Ignat, Gérald Oster (2008): Awareness of Concurrent Changes in Distributed Software Development, In: Lecture Notes in Computer Science, doi:10.1007/978-3-540-88871-0_32
- Prasun Dewan (2016): Inferred Awareness to Support Mixed-Activity Collaboration, In: 2016 IEEE 2nd International Conference on Collaboration and Internet Computing (CIC), doi:10.1109/cic.2016.052
- Hongzhi Song, Yu Qi, Zhaoming Ou, Yueming Hu, Zichao Zhang, Shang Ye (2011): A general collaborative editing platform based on file locking mechanism, In: 2011 IEEE International Conference on Computer Science and Automation Engineering, doi:10.1109/csae.2011.5952503
- Xiaoming Ma, Hongming Cai, Lihong Jiang (2014): A Creative Approach to Conflict Detection in Web-Based 3D Cooperative Design, In: Lecture Notes in Computer Science, doi:10.1007/978-3-319-10831-5_38
- Qingchao Shen, Haoyang Ma, Junjie Chen, Yongqiang Tian, Shing-Chi Cheung, Xiang Chen (2021): A comprehensive study of deep learning compiler bugs, In: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, doi:10.1145/3468264.3468591
- Bakhtiar Khan Kasi, Anita Sarma (2013): Cassandra: Proactive conflict minimization through optimized task scheduling, In: 2013 35th International Conference on Software Engineering (ICSE), doi:10.1109/icse.2013.6606619
- S.S.M. Fauzi, A.J. Suali, W.A.W.M. Sobri (2018): A State of the Art: Software Configuration Management Tools for Global Software Development, In: Journal of Physics: Conference Series, doi:10.1088/1742-6596/1049/1/012006
- Sergio Luis Herrera Gonzalez, Piero Fraternali (2023): Almost Rerere: Learning to Resolve Conflicts in Distributed Projects, In: IEEE Transactions on Software Engineering 4(49), doi:10.1109/tse.2022.3215289
- Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin (2011): Proactive detection of collaboration conflicts, In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, doi:10.1145/2025113.2025139
- Ahmed-Nacer Mehdi, Pascal Urso, François Charoy (2014): Evaluating software merge quality, In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, doi:10.1145/2601248.2601275
- Pedro Sousa, Nuno Preguiça, Carlos Baquero (2009): Forby: Providing Groupware Features Relying on Distributed File System Event Dissemination, In: Lecture Notes in Computer Science, doi:10.1007/978-3-642-04216-4_13
- Mário Luís Guimarães, António Rito-Silva (2010): Towards real-time integration, In: Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering, doi:10.1145/1833310.1833320
- Jim Whitehead, Ivan Mistrík, John Grundy, André van der Hoek (2010): Collaborative Software Engineering: Concepts and Techniques, In: Collaborative Software Engineering, doi:10.1007/978-3-642-10294-3_1
- Lile Hattori, Michele Lanza, Marco D'Ambros (2012): A Qualitative User Study on Preemptive Conflict Detection, In: 2012 IEEE Seventh International Conference on Global Software Engineering, doi:10.1109/icgse.2012.20
- Jae Young Bang, Yuriy Brun, Nenad Medvidovic (2017): Continuous Analysis of Collaborative Design, In: 2017 IEEE International Conference on Software Architecture (ICSA), doi:10.1109/icsa.2017.45
- Petra Brosch, Martina Seidl, Konrad Wieland, Manuel Wimmer, Philip Langer (2009): We can work it out: Collaborative Conflict Resolution in Model Versioning, In: ECSCW 2009, doi:10.1007/978-1-84882-854-4_12
- Fabrizio Pastore, Leonardo Mariani, Daniela Micucci (2017): BDCI: behavioral driven conflict identification, In: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, doi:10.1145/3106237.3106296
- Mehran Mahmoudi, Sarah Nadi, Nikolaos Tsantalis (2019): Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts, In: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), doi:10.1109/saner.2019.8668012
- Amanuel Alemayehu Koshima, Vincent Englebert (2015): Collaborative editing of EMF/Ecore meta-models and models: Conflict detection, reconciliation, and merging in DiCoMEF, In: Science of Computer Programming, doi:10.1016/j.scico.2015.07.004
- Caius Brindescu, Iftekhar Ahmed, Rafael Leano, Anita Sarma (2020): Planning for untangling, In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, doi:10.1145/3377811.3380344
- (2011): CTS 2011 tutorials, In: 2011 International Conference on Collaboration Technologies and Systems (CTS), doi:10.1109/cts.2011.5928652
- Alex R. Sabau (2024): A Guided Modeling Approach for Secure System Design, In: 2024 IEEE 21st International Conference on Software Architecture Companion (ICSA-C), doi:10.1109/icsa-c63560.2024.00026
- Anita Sarma, David Redmiles, André van der Hoek (2008): Empirical evidence of the benefits of workspace awareness in software configuration management, In: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, doi:10.1145/1453101.1453118
- Paulo Elias, Heleno de S. Campos, Eduardo Ogasawara, Leonardo Gresta Paulino Murta (2023): Towards accurate recommendations of merge conflicts resolution strategies, In: Information and Software Technology, doi:10.1016/j.infsof.2023.107332
- Samridhi Choudhary, Christopher Bogart, Carolyn Rose, Jim Herbsleb (2020): Using Productive Collaboration Bursts to Analyze Open Source Collaboration Effectiveness, In: 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), doi:10.1109/saner48275.2020.9054852
- Thorsten Wuensche, Artur Andrzejak, Sascha Schwedes (2020): Detecting Higher-Order Merge Conflicts in Large Software Projects, In: 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), doi:10.1109/icst46399.2020.00043
- Rafael de Souza Santos, Leonardo Gresta Paulino Murta (2012): Evaluating the Branch Merging Effort in Version Control Systems, In: 2012 26th Brazilian Symposium on Software Engineering, doi:10.1109/sbes.2012.16
- Anja Guzzi, Alberto Bacchelli, Yann Riche, Arie van Deursen (2015): Supporting Developers' Coordination in the IDE, In: Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing, doi:10.1145/2675133.2675177
- Anita Sarma, Andrea van der Hoek (2010): Categorizing the Spectrum of Coordination Technology, In: Computer 6(43), doi:10.1109/mc.2010.163
- Iftekhar Ahmed, Caius Brindescu, Umme Ayda Mannan, Carlos Jensen, Anita Sarma (2017): An Empirical Examination of the Relationship between Code Smells and Merge Conflicts, In: 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), doi:10.1109/esem.2017.12
- Caius Brindescu, Iftekhar Ahmed, Carlos Jensen, Anita Sarma (2019): An empirical investigation into merge conflicts and their effect on software quality, In: Empirical Software Engineering 1(25), doi:10.1007/s10664-019-09735-4
- Gustavo Vale, Claus Hunsen, Eduardo Figueiredo, Sven Apel (2021): Challenges of Resolving Merge Conflicts: A Mining and Survey Study, In: IEEE Transactions on Software Engineering, doi:10.1109/tse.2021.3130098
- Bakhtiar Khan Kasi, Anita Sarma (2013): How to evaluate a conflict minimizing task scheduler through a user study, In: 2013 2nd International Workshop on User Evaluations for Software Engineering Researchers (USER), doi:10.1109/user.2013.6603078