ABSTRACT
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.
- Bernstein, P. A., Hadzilacos, V., and Goodman, N. Concurrency Control and Recovery in Database Systems. Addison-Wesley (1987). Google ScholarDigital Library
- Brooks, F. P. The Mythical Man-Month (Anniversary Ed.). Addison-Wesley (1995). Google ScholarDigital Library
- Cockburn, A. and Williams, L. The costs and benefits of pair programming. In Extreme Programming Examined, Addison-Wesley (2001), 223--243. Google ScholarDigital Library
- Dewan, P. and Riedl, J. Toward computer-supported concurrent software engineering. Computer 26, 1 (1993), 17--27. Google ScholarDigital Library
- Ellis, C. A., Gibbs, S. J., and Rein, G. Groupware: some issues and experiences. Commun. ACM 34, 1 (1991), 39--58. Google ScholarDigital Library
- Ho, C., Raha, S., Gehringer, E., and Williams, L. Sangam: a distributed pair programming plug-in for Eclipse. In Proc. of OOPSLA Workshop on Eclipse Technology Exchange (2004), 73--77. Google ScholarDigital Library
- Kraut, R. E. and Streeter, L. A. Coordination in software development. Commun. ACM 38, 3 (1995), 69--81. Google ScholarDigital Library
- Malone, T. W. and Crowston, K. The interdisciplinary study of coordination. ACM Comput. Surv. 26, 1 (1994), 87--119. Google ScholarDigital Library
- Nosek, J. T. The case for collaborative programming. Commun. ACM 41, 3 (1998), 105--108. Google ScholarDigital Library
- Perry, D., Siy, H., and Votta, L. Parallel changes in large-scale software development: an observational case study. ACM Trans. Softw. Eng. Methodol. 10, 3 (2001), 308--337. Google ScholarDigital Library
- Reeves, M. and Zhu, J. Moomba - a collaborative environment for supporting distributed extreme programming in global software development. Extreme Programming and Agile Processes, LNCS, Springer, 3092 (2004), 38--50.Google Scholar
- Salinger, S., Oezbek, C., Beecher, K., and Schenk, J. Saros: an eclipse plug-in for distributed party programming. In Proc. of ICSE Workshop on Cooperative and Human Aspects of Softw. Eng. (2010), 48--55. Google ScholarDigital Library
- Sengupta, B., Chandra, S., and Sinha, V. A research agenda for distributed software development. In Proc. of 28th Intl. Conf. on Softw. Eng. (2006), 731--740. Google ScholarDigital Library
- Shen, H. and Sun, C. Recipe: a web-based environment for supporting real-time collaborative programming. In Proc. of Intl. Conf. on Networks, Parallel and Distributed Processing (2002), 283--288.Google Scholar
- Sun, C. Optional and responsive fine-grain locking in Internet-based collaborative systems. IEEE Trans. Parallel Distrib. Syst. 13, 9 (2002), 994--1008. Google ScholarDigital Library
- Sun, C., Jia, X., Zhang, Y., Yang, Y., and Chen, D. Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Trans. Comput.-Hum. Interact. 5, 1 (1998), 63--108. Google ScholarDigital Library
- Tichy, W. F. Tools for software configuration management. In Proc. of the Intl. Workshop on Software Version and Configuration Control (1988), 1--20.Google Scholar
- Whitehead, J. Collaboration in software engineering: a roadmap. In Future of Softw. Eng. (2007), 214--225. Google ScholarDigital Library
- Williams, L., Kessler, R. R., Cunningham, W., and Jeffries, R. Strengthening the case for pair programming. IEEE Softw. 17, 4 (2000), 19--25. Google ScholarDigital Library
Index Terms
- Dependency-based automatic locking for semantic conflict prevention in real-time collaborative programming
Recommendations
Balancing Conflict Prevention and Concurrent Work in Real-Time Collaborative Programming
ChineseCSCW '17: Proceedings of the 12th Chinese Conference on Computer Supported Cooperative Work and Social ComputingReal-time collaborative programming allows multiple programmers to concurrently edit a shared source code document at the same time. To support semantic conflict prevention in real-time collaborative programming, a dependency-based automatic locking (...
Supporting semantic conflict prevention in real-time collaborative programming environments
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 ...
Locking Timestamps versus Locking Objects
PODC '18: Proceedings of the 2018 ACM Symposium on Principles of Distributed ComputingWe present multiversion timestamp locking (MVTL), a new genre of multiversion concurrency control algorithms for serializable transactions. The key idea behind MVTL is simple: lock individual timestamps instead of locking objects. After presenting a ...
Comments