论文标题

对Java项目中第三方图书馆的使用,更新和风险的实证研究

An Empirical Study of Usages, Updates and Risks of Third-Party Libraries in Java Projects

论文作者

Wang, Ying, Chen, Bihuan, Huang, Kaifeng, Shi, Bowen, Xu, Congying, Peng, Xin, Liu, Yang, Wu, Yijian

论文摘要

第三方库是开发软件系统的中心构建块。但是,通常使用过时的第三方图书馆,开发人员通常不了解潜在风险。因此,关于第三方图书馆的使用,更新和风险的定量和整体研究可以提供可持续改善生态系统的实用见解。在本文中,我们在Java生态系统中进行了这样的研究。具体来说,我们使用806个开源项目进行了库的使用分析(例如使用强度和过时)和库更新分析(例如,更新强度和延迟)。这两个分析旨在从开源项目和第三方库的角度从整体上量化使用和更新实践。然后,我们对15个普遍使用的第三方库的错误进行了图书馆风险分析(例如,潜在风险和开发人员响应)。该分析旨在量化使用过时的库的潜在风险以及开发人员对风险的反应。我们从三个分析中的发现为开发人员和研究人员提供了维护第三方库(例如,智能警报和自动化过时的库)的问题和潜在解决方案的实用见解。为了证明我们的发现的有用性,我们提出了一个错误驱动的警报系统,以帮助开发人员在更新第三方库版本时做出自信决策。我们发布了数据集,以促进有价值的应用程序并改善生态系统。

Third-party libraries are a central building block to develop software systems. However, outdated third-party libraries are commonly used, and developers are usually less aware of the potential risks. Therefore, a quantitative and holistic study on usages, updates and risks of third-party libraries can provide practical insights to improve the ecosystem sustainably. In this paper, we conduct such a study in the Java ecosystem. Specifically, we conduct a library usage analysis (e.g., usage intensity and outdatedness) and a library update analysis (e.g., update intensity and delay) using 806 open-source projects. The two analyses aim to quantify usage and update practices holistically from the perspective of both open-source projects and third-party libraries. Then, we conduct a library risk analysis (e.g., potential risk and developer response) in terms of bugs with 15 popularly-used third-party libraries. This analysis aims to quantify the potential risk of using outdated libraries and the developer response to the risk. Our findings from the three analyses provide practical insights to developers and researchers on problems and potential solutions in maintaining third-party libraries (e.g., smart alerting and automated updating of outdated libraries). To demonstrate the usefulness of our findings, we propose a bug-driven alerting system for assisting developers to make confident decisions in updating third-party library versions. We have released our dataset to foster valuable applications and improve the ecosystem.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源