Dependency-based automatic locking for semantic conflict prevention in real-time collaborative programming

Real-time collaborative programming environments support multiple programmers to edit the same source code document at the same time over communication networks. One key challenge in supporting real-time collaborative programming is semantic conflicts, which may occur when multiple programmers are performing concurrent and incompatible work in interdependent programming segments. Semantic conflicts may result in program errors that are difficult and costly to detect and resolve. In this paper, we present in-depth analyses on representative programming scenarios for understanding the nature and general conditions for semantic conflicts, and propose a Dependency-based Automatic Locking (DAL) approach for preventing semantic conflicts. The novelty of the approach is its capabilities of supporting automatic fine-grained locking on interdependent programming segments and providing flexible locking to balance conflict prevention and programmer convenience in real-time collaborative programming environments. The DAL approach has been implemented in the CoEclipse prototype for validating its feasibility.

[1]  Laurie A. Williams,et al.  Sangam: a distributed pair programming plug-in for Eclipse , 2004, eclipse '04.

[2]  John Riedl,et al.  Toward computer-supported concurrent software engineering , 1993, Computer.

[3]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.

[4]  Christopher Oezbek,et al.  Saros: an eclipse plug-in for distributed party programming , 2010, CHASE '10.

[5]  E. James Whitehead,et al.  Collaboration in Software Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[6]  Yanchun Zhang,et al.  Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems , 1998, TCHI.

[7]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[8]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[9]  Haifeng Shen,et al.  RECIPE: A Web-based Environment for Supporting Real-time Collaborative Programming , 2002 .

[10]  Bikram Sengupta,et al.  A research agenda for distributed software development , 2006, ICSE.

[11]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

[12]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[13]  Michael Reeves,et al.  Moomba - A collaborative environment for supporting distributed extreme programming in global software development , 2004 .

[14]  Robert E. Kraut,et al.  Coordination in software development , 1995, CACM.

[15]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[16]  Walter F. Tichy,et al.  Tools for Software Configuration Management , 1988, SCM.

[17]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, Proceedings of the 20th International Conference on Software Engineering.

[18]  Chengzheng Sun Optional and Responsive Fine-Grain Locking in Internet-Based Collaborative Systems , 2002, IEEE Trans. Parallel Distributed Syst..

[19]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.