Using dependency graphs to support collaboration over GitHub: The Neo4j graph database approach

Software Configuration Management Systems capture direct conflicts which arise due to concurrent editing of same shared artifact. However, indirect conflicts, arising due to concurrent editing of related artifacts by collaborative developers, might eventually evade the build process employed by the underlying SCM. Additional collaborative software development tools have been developed, that supplement existing SCM systems, by providing change awareness information about potential indirect conflicts. In this paper, we propose the tool named Collaboration Over GitHub (COG), that provides support for collaborative software development over GitHub and also captures indirect conflicts at finer levels of granularity. For this, COG converts project repositories into dependency graphs which are stored as Neo4j Graph Databases. These graphs store structural and dependency information obtained from codebases and are used for identifying conflicts and affected artifacts.

[1]  Amiram Yehudai,et al.  Improving software team collaboration with Synchronized Software Development , 2015, ArXiv.

[2]  David F. Redmiles,et al.  Supporting collaborative software development through the visualization of socio-technical dependencies , 2007, GROUP.

[3]  Sanjay Goel,et al.  Investigating syntactic and semantic inconsistencies in Collaborative Software Development , 2015, 2015 Eighth International Conference on Contemporary Computing (IC3).

[4]  Robert J. Walker,et al.  Customized awareness: recommending relevant external change events , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[5]  André van der Hoek,et al.  Towards supporting awareness of indirect conflicts across software configuration management workspaces , 2007, ASE '07.

[6]  Sanjay Goel,et al.  Supporting collaborative software development over GitHub , 2017, Softw. Pract. Exp..

[7]  André van der Hoek,et al.  CASI: preventing indirect conflicts through a live visualization , 2010, CHASE '10.

[8]  Koichiro Ochimizu,et al.  A Change Support Model for Distributed Collaborative Work , 2012, ArXiv.

[9]  Hala Skaf-Molli,et al.  State Treemap: an awareness widget for multi-synchronous groupware , 2001, Proceedings Seventh International Workshop on Groupware. CRIWG 2001.

[10]  Yuriy Brun,et al.  Crystal: precise and unobtrusive conflict warnings , 2011, ESEC/FSE '11.

[11]  Li-Te Cheng,et al.  Jazzing up Eclipse with collaborative tools , 2003, eclipse '03.

[12]  Mary Czerwinski,et al.  FASTDash: a visual dashboard for fostering awareness in software teams , 2007, CHI.

[13]  António Rito Silva,et al.  Improving early detection of software merge conflicts , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[14]  Michael Reeves,et al.  Moomba - A Collaborative Environment for Supporting Distributed Extreme Programming in Global Software Development , 2004, XP.

[15]  Michele Lanza,et al.  Syde: a tool for collaborative software development , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[16]  Michele Lanza,et al.  Università Della Svizzera Italiana Usi Technical Report Series in Informatics a Qualitative Analysis of Preemptive Conflict Detection , 2022 .

[17]  Amiram Yehudai,et al.  Alleviating Merge Conflicts with Fine-grained Visual Awareness , 2015, ArXiv.