Due to their increasing complexity, today's software systems are frequently built by leveraging reusable code in the form of libraries and packages. Software ecosystems (e.g., npm) are the primary enablers of this code reuse, providing developers with a platform to share their own and use others' code. These ecosystems evolve rapidly: developers add new packages every day to solve new problems or provide alternative solutions, causing obsolete packages to decline in their importance to the community. Developers should avoid depending on packages in decline, as these packages are reused less over time and may become less frequently maintained. However, current popularity metrics (e.g., Stars, and Downloads) are not fit to provide this information to developers because their semantics do not aptly capture shifts in the community interest. In this paper, we propose a scalable approach that uses the package's centrality in the ecosystem to identify packages in decline. We evaluate our approach with the npm ecosystem and show that the trends of centrality over time can correctly distinguish packages in decline with an ROC-AUC of 0.9. The approach can capture 87% of the packages in decline, on average 18 months before the trend is shown in currently used package popularity metrics. We implement this approach in a tool that can be used to augment the npms metrics and help developers avoid packages in decline when reusing packages from npm.


翻译:由于这些系统日益复杂,今天的软件系统往往通过利用图书馆和软件包形式的可重复使用的代码来建立。软件生态系统(例如npm)是该代码再利用的主要促进因素,为开发者提供一个共享自身和使用他人代码的平台。这些生态系统迅速演变:开发者每天增加新的软件包,以解决新的问题或提供替代解决方案,造成过时软件包对社区的重要性下降。开发者应当避免依赖正在下降的软件包,因为这些软件包经过一段时间后再利用较少,而且可能不再经常得到维护。然而,目前的普及度指标(例如星体和下载)不适合向开发者提供这一信息,因为其语义学不能恰当地反映社区利益的变化。在本文中,我们提出了一个可推广的方法,即利用软件包在生态系统中的核心地位来查明正在下降的软件包。我们用Npm生态系统评估了我们的方法,并表明随着时间周期的中心性趋势可以正确地区分正在下降的软件包,而ROC-ACC则可能越来越不经常得到维护。这一方法可以将87 %的软件包(例如星和下载)提供给开发者,因为他们的语义性指标包在平均18个月前就使用了我们使用的通用的版本。

0
下载
关闭预览

相关内容

最新《Transformers模型》教程,64页ppt
专知会员服务
292+阅读 · 2020年11月26日
专知会员服务
17+阅读 · 2020年9月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
101+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
已删除
将门创投
4+阅读 · 2019年10月11日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
意识是一种数学模式
CreateAMind
3+阅读 · 2019年6月24日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Arxiv
0+阅读 · 2021年12月15日
Arxiv
4+阅读 · 2021年11月29日
VIP会员
相关VIP内容
最新《Transformers模型》教程,64页ppt
专知会员服务
292+阅读 · 2020年11月26日
专知会员服务
17+阅读 · 2020年9月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
101+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
相关资讯
已删除
将门创投
4+阅读 · 2019年10月11日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
意识是一种数学模式
CreateAMind
3+阅读 · 2019年6月24日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Top
微信扫码咨询专知VIP会员