Abstract:
Since more than a few decades now, Software Configuration Management (SCM) systems have played a key role in orchestrating concurrent activities of collaborative developers. These SCM systems help in maintaining consistency of volatile codebases that are being frequently modified in order to accommodate change. Additionally, various Collaborative Software Development (CSD) tools have been developed to supplement the underlying SCMs, and provide workspace awareness information to software developers. These tools inform developers about possibilities of arising inconsistencies in project codebase due to concurrent activities by collaborative developers on shared artifacts. This paper elaborates on scenarios of collaborative activities of software developers that introduce syntactic and semantic inconsistencies in the project repositories. Furthermore, a discussion on the current state-of-art research in the area of CSD tools is presented, together with their major contributions. The paper identifies, the crucial problem of semantic inconsistencies caused due to behavioral changes on artifacts that has not been sufficiently addressed by existing CSD tools. Finally, a novel method to capture indirect conflicts (syntactic and semantic) is proposed which uses dependency graphs, with proposed additional notations.