利用包中心性趋势识别衰退中的软件包
软件工程
2021-10-22 v3
摘要
由于复杂性日益增加,当今软件系统常通过复用库与软件包形式的代码来构建。软件生态系统(如 npm)是此类代码复用的主要推动者,为开发者提供共享自有代码与使用他人代码的平台。这些生态系统演进迅速:开发者每日添加新包以解决新问题或提供替代方案,导致过时软件包在社区中的重要性下降。开发者应避免依赖衰退中的软件包,因为这类包随时间复用减少且可能维护频率降低。然而,当前流行度指标(如 Stars 与 Downloads)并不适合向开发者提供此信息,因其语义未能恰当捕捉社区兴趣的转移。本文提出一种可扩展方法,利用包在生态系统中的中心性识别衰退中的软件包。我们以 npm 生态系统评估该方法,表明中心性随时间趋势能以 0.9 的 ROC-AUC 正确区分衰退中的软件包。该方法平均可比当前所用软件包流行度指标显现趋势早 18 个月捕获 87% 的衰退软件包。我们将此方法实现为工具,可用于增强 npms 指标,帮助开发者从 npm 复用包时规避衰退中的软件包。
引用
@article{arxiv.2107.10168,
title = {Towards Using Package Centrality Trend to Identify Packages in Decline},
author = {Suhaib Mujahid and Diego Elias Costa and Rabe Abdalkareem and Emad Shihab and Mohamed Aymen Saied and Bram Adams},
journal= {arXiv preprint arXiv:2107.10168},
year = {2021}
}
备注
Accepted in the Special Issue on Collaboration and Innovation Dynamics in Software Ecosystems