Knowledge is a valuable asset for software engineering organisations, as effective knowledge management is crucial for competitiveness and delivering high-quality software. This final-year project presents a software prototype designed to analyse contributors’ knowledge in source-code repositories, such as GitHub, using knowledge maps. The developed prototype uses data from the GitHub application programming interface and investigates improving knowledge-map construction to gain better insight into knowledge dispersion among contributors.
The project focused on knowledge-map construction through pull-request analysis, exploring its potential improvement over commit-only analysis. Pull requests, which constitute a collaborative mechanism in modern software development, allow contributors to propose codebase changes and engage in discussions. By analysing pull requests, the study sought to capture the knowledge exchanged during these interactions more accurately, representing it using knowledge maps.
An industry partner was recruited as a case study, providing access to Git repositories. These repositories underwent a commit analysis, a pull-request analysis, and a combination of both to construct knowledge maps, with a focus on identifying differences between the approaches and potential improvements. Stakeholders, such as team leads, evaluated the findings, providing feedback on the validity of the knowledge maps and offering practical insights.
The project was concluded through an evaluation of the strengths and weaknesses of the approach, with suggestions for future improvements. The main contributions included a software prototype investigating whether a pull-request analysis could add value to knowledge-map generation over the commit-only approach. The research findings could be of benefit to software engineering organisations seeking a better understanding of knowledge creation, sharing, and utilisation dynamics within their development teams.
Figure 1. Sample knowledge map generated through a commit analysis
Figure 2. KnowledgeFabric, the platform on which this project was based
Student: Daryl Ruggier
Supervisor: Dr Mark Micallef