Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Integrating Real-Time and Non-Real-Time Collaborative Programming: Workflow, Techniques, and Prototypes

Published: 29 December 2022 Publication History

Abstract

Real-time collaborative programming enables a group of programmers to edit shared source code at the same time, which significantly complements the traditional non-real-time collaborative programming supported by version control systems. However, one critical issue with this emerging technique is the lack of integration with non-real-time collaboration. Specifically, contributions from multiple programmers in a real-time collaboration session cannot be distinguished and accurately recorded in the version control system. In this study, we propose a scheme that integrates real-time and non-real-time collaborative programming with a novel workflow, and contribute enabling techniques to realize such integration. As a proof-of-concept, we have successfully implemented two prototype systems named CoEclipse and CoIDEA, which allow programmers to closely collaborate in a real-time fashion while preserving the work's compatibility with traditional non-real-time collaboration. User evaluation and performance experiments have confirmed the feasibility of the approach and techniques, demonstrated the good system performance, and presented the satisfactory usability of the prototypes.

References

[1]
Flora Amiti. 2020. Synchronous and asynchronous E-learning. European Journal of Open Education and E-Learning Studies, Vol. 5, 2 (2020).
[2]
Aaron Bangor, Philip T. Kortum, and James T. Miller. 2008. An empirical evaluation of the system usability scale. International Journal of Human-Computer Interaction, Vol. 24, 6 (2008), 574--594.
[3]
Brian Berliner et al. 1990. CVS II: Parallelizing software development. In Proceedings of the USENIX Winter 1990 Technical Conference, Vol. 341. 352.
[4]
Scott Chacon and Ben Straub. 2014. Pro git. Springer Nature.
[5]
Charles H. Chen and Philip J. Guo. 2019. Improv: Teaching Programming at Scale via Live Coding. In Proceedings of the Sixth (2019) ACM Conference on Learning @ Scale (Chicago, IL, USA) (L@S '19). Association for Computing Machinery, New York, NY, USA. https://doi.org/10.1145/3330430.3333627
[6]
Bryden Cho, Chengzheng Sun, and Agustina Ng. 2019. Issues and Experiences in Building Heterogeneous Co-Editing Systems. Proc. ACM Hum.-Comput. Interact., Vol. 3, GROUP, Article 245 (Dec. 2019), 28 pages. https://doi.org/10.1145/3361126
[7]
Ben Collins-Sussman. 2002. The Subversion Project: Buiding a Better CVS. Linux J., Vol. 2002, 94 (Feb. 2002), 3.
[8]
Hongfei Fan, Kun Li, Xiangzhen Li, Tianyou Song, Wenzhe Zhang, Yang Shi, and Bowen Du. 2019. CoVSCode: A Novel Real-Time Collaborative Programming Environment for Lightweight IDE. Applied Sciences, Vol. 9, 21 (2019). https://doi.org/10.3390/app9214642
[9]
Hongfei Fan and Chengzheng Sun. 2012. Achieving integrated consistency maintenance and awareness in real-time collaborative programming environments: The CoEclipse approach. In Proceedings of the 2012 IEEE 16th International Conference on Computer Supported Cooperative Work in Design (CSCWD). 94--101. https://doi.org/10.1109/CSCWD.2012.6221803
[10]
Hongfei Fan, Chengzheng Sun, and Haifeng Shen. 2012. ATCoPE: Any-Time Collaborative Programming Environment for Seamless Integration of Real-Time and Non-Real-Time Teamwork in Software Development. In Proceedings of the 17th ACM International Conference on Supporting Group Work (Sanibel Island, Florida, USA) (GROUP '12). Association for Computing Machinery, New York, NY, USA, 107--116. https://doi.org/10.1145/2389176.2389194
[11]
Hongfei Fan, Hongming Zhu, Qin Liu, Yang Shi, and Chengzheng Sun. 2017. A Novel DAL Scheme With Shared-Locking for Semantic Conflict Prevention in Unconstrained Real-Time Collaborative Programming. IEEE Access, Vol. 5 (2017), 22566--22583.
[12]
G2.com. 2020. Best Version Control Systems. https://www.g2.com/categories/version-control-systems Retrieved October 5, 2021 from
[13]
GitHub.com. 2021. Creating a commit with multiple authors. https://docs.github.com/en/github/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors Retrieved October 8, 2021 from
[14]
Max Goldman, Greg Little, and Robert C Miller. 2011. Real-time collaborative coding in a web IDE. In Proceedings of the 24th annual ACM symposium on User interface software and technology. 155--164.
[15]
Georgios Gousios, Martin Pinzger, and Arie van Deursen. 2014. An Exploratory Study of the Pull-Based Software Development Model (ICSE 2014). Association for Computing Machinery, New York, NY, USA, 345--355. https://doi.org/10.1145/2568225.2568260
[16]
Onur Hisarciklilar and Jean-Francc ois Boujut. 2006. Reducing the "Information Gap" between synchronous and asynchronous co-operative design phases. In Virtual Concept'06. 67.
[17]
Aditya Kurniawan, Christine Soesanto, and Joe Wijaya. 2015. CodeR: Real-time Code Editor Application for Collaborative Programming. Procedia Computer Science, Vol. 59 (12 2015), 510--519.
[18]
Janne Lautam"aki, Antti Nieminen, Johannes Koskinen, Timo Aho, Tommi Mikkonen, and Marc Englund. 2012. CoRED: browser-based Collaborative Real-time Editor for Java web applications. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work. 1307--1316.
[19]
Jon Loeliger and Matthew McCullough. 2012. Version Control with Git: Powerful tools and techniques for collaborative software development. O'Reilly Media, Inc.
[20]
Yifan Ma, Zichao Yang, Brian Chiu, Yiteng Zhang, Jinfeng Jiang, Bowen Du, and Hongfei Fan. 2021. Supporting Cross-Platform Real-Time Collaborative Programming: Architecture, Techniques, and Prototype System. In International Conference on Collaborative Computing: Networking, Applications and Worksharing. Springer, 124--143.
[21]
Martin Maguire. 2001. Methods to support human-centred design. International Journal of Human Computer Studies, Vol. 55, 4 (2001), 587--634. https://doi.org/10.1006/ijhc.2001.0503
[22]
Eugene W Myers. 1986. An O(ND) difference algorithm and its variations. Algorithmica, Vol. 1, 1--4 (1986), 251--266.
[23]
Agustina Ng and Chengzheng Sun. 2016. Operational Transformation for Real-Time Synchronization of Shared Workspace in Cloud Storage. In Proceedings of the 19th International Conference on Supporting Group Work (Sanibel Island, Florida, USA) (GROUP '16). Association for Computing Machinery, New York, NY, USA, 61--70.
[24]
Lutz Prechelt and Karl Beecher. 2011. Four Generic Issues for Tools-as-Plugins Illustrated by the Distributed Editor Saros. In Proceedings of the 1st Workshop on Developing Tools as Plug-Ins (Waikiki, Honolulu, HI, USA) (TOPI '11). Association for Computing Machinery, New York, NY, USA, 9--11. https://doi.org/10.1145/1984708.1984712
[25]
Chengzheng Sun, Yi Xu, and Agustina Ng. 2017. Exhaustive search and resolution of puzzles in OT systems supporting string-wise operations. In Proceedings of the 2017 ACM Conference on Computer Supported Cooperative Work and Social Computing. 2504--2517.
[26]
April Yi Wang, Anant Mittal, Christopher Brooks, and Steve Oney. 2019. How data scientists use computational notebooks for real-time collaboration. Proceedings of the ACM on Human-Computer Interaction, Vol. 3, CSCW (2019), 1--30.
[27]
Jeremy Warner and Philip J Guo. 2017. Codepilot: Scaffolding end-to-end collaborative software development for novice programmers. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. 1136--1141.
[28]
Yi Xu and Chengzheng Sun. 2015. Conditions and patterns for achieving convergence in OT-based co-editors. IEEE Transactions on Parallel and Distributed Systems, Vol. 27, 3 (2015), 695--709.
[29]
Jin Zhang. 2018. An Investigation of Technology Design Features for Supporting Real-Time Collaborative Programming in an Educational Environment. Master's thesis. Pennsylvania State University, State College, PA, USA. io

Cited By

View all
  • (2024)Understanding Real-Time Collaborative Programming: A Study of Visual Studio Live ShareACM Transactions on Software Engineering and Methodology10.1145/364367233:4(1-28)Online publication date: 27-Jan-2024
  • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
  • (2023)Supporting Collaboration in Introductory Programming Classes Taught in Hybrid Mode: A Participatory Design StudyProceedings of the 2023 ACM Designing Interactive Systems Conference10.1145/3563657.3596042(1248-1262)Online publication date: 10-Jul-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Proceedings of the ACM on Human-Computer Interaction
Proceedings of the ACM on Human-Computer Interaction  Volume 7, Issue GROUP
GROUP
January 2023
414 pages
EISSN:2573-0142
DOI:10.1145/3578937
Issue’s Table of Contents
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 ACM 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: 29 December 2022
Published in PACMHCI Volume 7, Issue GROUP

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code change authorship
  2. colored lines algorithm
  3. integrated collaboration workflow
  4. real-time collaborative programming
  5. software development environments

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)89
  • Downloads (Last 6 weeks)4
Reflects downloads up to 23 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Understanding Real-Time Collaborative Programming: A Study of Visual Studio Live ShareACM Transactions on Software Engineering and Methodology10.1145/364367233:4(1-28)Online publication date: 27-Jan-2024
  • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
  • (2023)Supporting Collaboration in Introductory Programming Classes Taught in Hybrid Mode: A Participatory Design StudyProceedings of the 2023 ACM Designing Interactive Systems Conference10.1145/3563657.3596042(1248-1262)Online publication date: 10-Jul-2023
  • (2023)Building Temporary Isolated Workspace in Real-Time Collaborative Programming Environment2023 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC53992.2023.10394060(4110-4115)Online publication date: 1-Oct-2023

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media