Due to its 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 a 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 npms metrics and help developers avoid packages in decline when reusing packages from npm.


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

0
下载
关闭预览

相关内容

专知会员服务
39+阅读 · 2020年9月6日
数据科学导论,54页ppt,Introduction to Data Science
专知会员服务
39+阅读 · 2020年7月27日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
149+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
计算机 | 入门级EI会议ICVRIS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年6月24日
计算机 | IUI 2020等国际会议信息4条
Call4Papers
6+阅读 · 2019年6月17日
已删除
将门创投
5+阅读 · 2019年4月29日
计算机类 | 低难度国际会议信息6条
Call4Papers
6+阅读 · 2019年4月28日
计算机 | EMNLP 2019等国际会议信息6条
Call4Papers
18+阅读 · 2019年4月26日
人工智能 | SCI期刊专刊/国际会议信息7条
Call4Papers
7+阅读 · 2019年3月12日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
计算机类 | 期刊专刊截稿信息9条
Call4Papers
4+阅读 · 2018年1月26日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
【计算机类】期刊专刊/国际会议截稿信息6条
Call4Papers
3+阅读 · 2017年10月13日
Arxiv
0+阅读 · 2021年9月20日
Learning to Importance Sample in Primary Sample Space
VIP会员
相关资讯
计算机 | 入门级EI会议ICVRIS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年6月24日
计算机 | IUI 2020等国际会议信息4条
Call4Papers
6+阅读 · 2019年6月17日
已删除
将门创投
5+阅读 · 2019年4月29日
计算机类 | 低难度国际会议信息6条
Call4Papers
6+阅读 · 2019年4月28日
计算机 | EMNLP 2019等国际会议信息6条
Call4Papers
18+阅读 · 2019年4月26日
人工智能 | SCI期刊专刊/国际会议信息7条
Call4Papers
7+阅读 · 2019年3月12日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
计算机类 | 期刊专刊截稿信息9条
Call4Papers
4+阅读 · 2018年1月26日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
【计算机类】期刊专刊/国际会议截稿信息6条
Call4Papers
3+阅读 · 2017年10月13日
Top
微信扫码咨询专知VIP会员