arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2409.04830cs.SE
收藏

超越依赖:基于拷贝的复用在开源软件开发中的作用

Beyond Dependencies: The Role of Copy-Based Reuse in Open Source Software Development

Mahmoud Jahanshahi, David Reid, Audris Mockus

AI总结:

本研究利用 World of Code 基础设施测量了开源软件中基于拷贝的复用普遍程度及影响因素,发现该复用方式普遍存在且受项目规模、文件类型和时间影响,为未来提升复用效率与降低风险的研究奠定基础。

摘要:

在开源软件中,任何项目的资源都可以通过引入依赖或直接拷贝资源本身来进行复用。与基于依赖的复用相比,系统性地支持基于拷贝的复用的基础设施似乎完全缺失。我们的目标是推动未来的研究和工具开发,以提高基于拷贝的复用的效率并降低其风险。我们通过测量其普遍程度并识别影响复用倾向的因素,来更好地理解这种复用行为。为了识别被复用的制品并追踪其来源,我们的方法利用了 World of Code 基础设施。我们从一组与复用倾向相关的理论推导因素出发,抽样了不同复用类型的实例,并对开发者进行调查以更好地理解他们的意图。结果表明,基于拷贝的复用很普遍,许多开发者在编写代码时意识到这一点。文件被复用的倾向在不同编程语言之间以及源代码和二进制文件之间存在很大差异,并且随着时间的推移持续下降。由热门项目引入的文件更有可能被复用,但至少一半的被复用资源源自“小型”和“中型”项目。开发者进行复用的原因各不相同,但普遍对使用包管理器持积极态度。

英文摘要:

In Open Source Software, resources of any project are open for reuse by introducing dependencies or copying the resource itself. In contrast to dependency-based reuse, the infrastructure to systematically support copy-based reuse appears to be entirely missing. Our aim is to enable future research and tool development to increase efficiency and reduce the risks of copy-based reuse. We seek a better understanding of such reuse by measuring its prevalence and identifying factors affecting the propensity to reuse. To identify reused artifacts and trace their origins, our method exploits World of Code infrastructure. We begin with a set of theory-derived factors related to the propensity to reuse, sample instances of different reuse types, and survey developers to better understand their intentions. Our results indicate that copy-based reuse is common, with many developers being aware of it when writing code. The propensity for a file to be reused varies greatly among languages and between source code and binary files, consistently decreasing over time. Files introduced by popular projects are more likely to be reused, but at least half of reused resources originate from ``small'' and ``medium'' projects. Developers had various reasons for reuse but were generally positive about using a package manager.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑