Author: Gabriele Zorloni
Academic Year: 2021/2022
Defense Date: 17 June 2021
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering

Author: Gabriele Zorloni
Academic Year: 2021/2022
Defense Date: 17 June 2021
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering
Collaborative development platforms, such as GitHub and GitLab, integrate version control and source code management with collaboration features like issue tracking, wikis, continuous integration, and merge request management. Thus, the analysis of such platforms can reveal not only information about the structure and quality of a code-base, but also valuable insights on how a development team works and collaborates.
Popular development platforms provide development and contributions dashboards which offer a limited analysis of data and allow only to obtain a limited image of the development process of the software product, for example pull request, review, and commit statistics. In general, the information provided is coarse-grained and only related to the last period of development. This data offers a limited number of metrics over time, for example: number of commits made or number of lines added and removed, and no ability to interactively filter data points. Therefore, this can lead to partial or incorrect conclusions.
In this engineering thesis, we have tackled the problem of analyzing how software projects are developed within collaborative development platforms. We have devised an approach to analyze and visualize how repositories that are part of the GitLab collaborative development platform are developed. This approach is mainly based on an internal DSL that provides both data analysis and visualization functions. We have developed GitGlass, a framework that supports the analysis and visualization of GitLab repositories. It gives the possibility to specify custom queries and visualizations using an internal DSL, allowing users to manipulate the data with code, thus fulfilling a wide spectrum of requirements. However, most of the times are developers (or former developers in management roles) the ones interested in analyzing how software is developed. GitGlass is an approach built by developers for developers and can be considered a starting point for a new method of analyzing collaborative development platforms.
To provide anecdotal evidence of the usefulness of our approach, we analyzed the projects developed in the past 3 years by CodeLounge, an R&D group of the Software Institute, at Università della Svizzera italiana (USI). We compare and contrast different metrics related to contributions and project development process, illustrating how GitGlass can be used to learn how a collection of projects evolved and to uncover interesting, and sometimes surprising, facts.


Università della Svizzera italiana, Switzerland