Affiliation:
1. University of Zurich
2. University of British Columbia
3. North Carolina State University
4. Montclair State University
Abstract
As a software system evolves, the system's codebase constantly changes, making it difficult for developers to answer such questions as who is knowledgeable about particular parts of the code or who needs to know about changes made. In this article, we show that an externalized model of a developer's individual knowledge of code can make it easier for developers to answer such questions. We introduce a degree-of-knowledge model that computes automatically, for each source-code element in a codebase, a real value that represents a developer's knowledge of that element based on a developer's authorship and interaction data. We present evidence that shows that both authorship and interaction data of the code are important in characterizing a developer's knowledge of code. We report on the usage of our model in case studies on expert finding, knowledge transfer, and identifying changes of interest. We show that our model improves upon an existing expertise-finding approach and can accurately identify changes for which a developer should likely be aware. We discuss how our model may provide a starting point for knowledge transfer but that more refinement is needed. Finally, we discuss the robustness of the model across multiple development sites.
Funder
International Business Machines Corporation
Natural Sciences and Engineering Research Council of Canada
Publisher
Association for Computing Machinery (ACM)
Cited by
42 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Source code expert identification: Models and application;Information and Software Technology;2024-06
2. Navigating Expertise in Configurable Software Systems through the Maze of Variability;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12
3. Using knowledge units of programming languages to recommend reviewers for pull requests: an empirical study;Empirical Software Engineering;2023-12-29
4. EASE: An effort-aware extension of unsupervised key class identification approaches;ACM Transactions on Software Engineering and Methodology;2023-12-02
5. BFSig: Leveraging File Significance in Bus Factor Estimation;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30