Abstract
The goal of this study is to identify, review, and analyze the published research works that used network analysis as a tool for understanding the human collaboration on different levels of software development. This study and its findings are expected to be of benefit for software engineering practitioners and researchers who are mining software repositories using tools from network science field. We conducted a systematic literature review, in which we analyzed a number of selected papers from different digital libraries based on inclusion and exclusion criteria. We identified $35$ primary studies (PSs) from 4 digital libraries, then we extracted data from each PS according to a predefined data extraction sheet. The results of our data analysis showed that not all of the constructed networks used in the PSs were valid as the edges of these networks did not reflect a real relationship between the entities of the network. Additionally, the used measures in the PSs were in many cases not suitable for the used networks. Also, the reported analysis results by the PSs were not, in most cases, validated using any statistical model. Finally, many of the PSs did not provide lessons or guidelines for software practitioners that can improve the software engineering practices. Although employing network analysis in mining developers' collaboration showed some satisfactory results in some of the PSs, the application of network analysis needs to be conducted more carefully. That is said, the constructed network should be representative and meaningful, the used measure needs to be suitable for the context, and the validation of the results should be considered. More and above, we state some research gaps, in which network science can be applied, with some pointers to recent advances that can be used to mine collaboration networks.
Highlights
Network science is the set of mathematical frameworks, models, and measures that are used to analyze a complex system modeled as a network
4.1 From software engineering (SE) to a network (Fields A) we provide the results for the extraction features "A1" to "A3"
We have presented a systematic literature review to identify and evaluate the use of network science as a tool to understand the collaboration of developers in software engineering
Summary
Network science is the set of mathematical frameworks, models, and measures that are used to analyze a complex system modeled as a network. Since the seminal works of Watts and Strogatz [54] and Barabási and Albert [6], the field of network science exploded in different directions with a huge amount of measures, models, and applications for network analysis. Other domains benefited from the measures and tools provided in the field of network science, and software engineering is one of those. One face of the complexity of software engineering process is the interaction among developers who develop a software. The interactions between developers can be seen as a network where the nodes are, in most cases, the developers and the edges between these nodes are the interactions between them Having these interaction constructed as networks opens the way to use network science as an effective tool to analyze these networks. We systematically review the application of network analysis for the networks constructed from the collaboration interaction between software developers
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have