一句话:提出用文件重要性加权改进巴士系数估计的 BFSig,在真实 GitHub 项目上将 NMAE 最多降低 18%。
软件项目中的开发者离职会造成知识流失,巴士系数(Bus Factor, BF)用于衡量这种知识流失对项目连续性的影响。现有方法通常依据开发者编写的文件数量来度量其知识,但忽略了不同文件的重要性差异。本文利用项目依赖图计算 PageRank、入度/出度/总度数和介数中心性等五种图指标,为文件赋予重要性权重,并实现原型 BFSig。作者还通过问卷从五个知名 GitHub 仓库收集从业者报告的 BF 分数,构建新数据集。结果表明,BFSig 相比基线在归一化平均绝对误差(NMAE)上最多降低 18%,在识别低 BF 潜在风险时假阴性减少 18%,且受访者确认其能评估项目子文件夹的 BF。作者认为,从作者身份估计 BF 时应给更重要的软件组件更高权重,未来可结合代码复杂度和缺陷倾向等属性。
Software projects experience the departure of developers due to various reasons. As developers are one of the main sources of knowledge in software projects, their absence will inevitably result in a certain degree of knowledge depletion. Bus Factor (BF) is a metric to evaluate how this knowledge loss can affect the project’s continuity. Conventionally, BF is calculated as the smallest set of developers, removing over half the project knowledge upon departure. Current state-of-the-art approaches measure developers’ knowledge by the number of authored files, utilizing version control system (VCS) information. However, numerous studies have shown that files in software projects have different significance. In this study, we explore how weighting files according to their significance affects the performance of two prevailing BF estimators. We derive significance scores by computing five well-known graph metrics from the project’s dependency graph: PageRank, In-/Out-/All-Degree, and Betweenness Centralities. Furthermore, we introduce BFSig , a prototype of our approach. Finally, we present a new dataset comprising reported BF scores collected by surveying software practitioners from five prominent Github repositories. Our results indicate that BFSig outperforms the baselines by up to an 18% reduction in terms of Normalized Mean Absolute Error (NMAE). Moreover, BFSig yields 18% fewer False Negatives in identifying potential risks associated with low BF. Besides, our respondent confirmed BFSig versatility by showing its ability to assess the BF of the project’s subfolders. In conclusion, we believe to estimate BF from authorship, software components of higher importance should be assigned heavier weight. Currently, BFSig exclusively explores the topological characteristics of these components. Nevertheless, considering attributes such as code complexity and bug proneness could potentially enhance the performance of BFSig.
@inproceedings{HaratianEDTK23,
title = {BFSig: Leveraging File Significance in Bus Factor Estimation},
author = {Vahid Haratian and Mikhail Evtikhiev and Pouria Derakhshanfar and Eray Tüzün and Vladimir Kovalenko},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3613877}
}