Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
Concurrency control in groupware systems
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Groupware: some issues and experiences
Communications of the ACM
The interdisciplinary study of coordination
ACM Computing Surveys (CSUR)
Coordination in software development
Communications of the ACM
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
The case for collaborative programming
Communications of the ACM
ACM Transactions on Computer-Human Interaction (TOCHI)
Operational transformation in real-time group editors: issues, algorithms, and achievements
CSCW '98 Proceedings of the 1998 ACM conference on Computer supported cooperative work
The costs and benefits of pair programming
Extreme programming examined
Parallel changes in large-scale software development: an observational case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
Strengthening the Case for Pair Programming
IEEE Software
Optional and Responsive Fine-Grain Locking in Internet-Based Collaborative Systems
IEEE Transactions on Parallel and Distributed Systems
Sangam: a distributed pair programming plug-in for Eclipse
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
A research agenda for distributed software development
Proceedings of the 28th international conference on Software engineering
Collaboration in Software Engineering: A Roadmap
FOSE '07 2007 Future of Software Engineering
Jazz and the Eclipse Way of Collaboration
IEEE Software
Connecting Programming Environments to Support Ad-Hoc Collaboration
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Saros: an eclipse plug-in for distributed party programming
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Real-time collaborative programming environments support multiple programmers to concurrently edit shared source code documents at the same time over communication networks. One of the key challenges in supporting real-time collaborative programming is semantic conflicts, which may occur when multiple programmers are performing concurrent and incompatible programming work in the same source code region or in different source code regions with dependency relationships. Semantic conflicts may result in programming errors that are difficult to detect and costly to resolve. This paper presents in-depth analyses of representative collaborative programming scenarios for understanding the nature and general conditions of semantic conflicts, and proposes a novel Dependency-based Automatic Locking (DAL) approach for supporting semantic conflict prevention in real-time collaborative programming environments. The novelty of the DAL approach lies in its capabilities of supporting automatic and fine-grained locking on selected source code regions with dependency relationships to balance conflict prevention, concurrent work, and programmer convenience in real-time collaborative programming. The DAL approach and technical solutions have been implemented in the CoEclipse prototype system as a proof-of-concept for this emerging technique, which is being continuously extended for further exploration and evaluation.