Skip to main content
CenXiv.org
此网站处于试运行阶段,支持我们!
我们衷心感谢所有贡献者的支持。
贡献
赞助
cenxiv logo > cs > arXiv:2507.17369

帮助 | 高级搜索

计算机科学 > 软件工程

arXiv:2507.17369 (cs)
[提交于 2025年7月23日 ]

标题: Roseau:Java 中基于源代码的快速、准确的 API 破坏性更改分析

标题: Roseau: Fast, Accurate, Source-based API Breaking Change Analysis in Java

Authors:Corentin Latappy (LaBRI), Thomas Degueule (LaBRI), Jean-Rémy Falleri (LaBRI), Romain Robbes (LaBRI), Lina Ochoa (TU/e)
摘要: 理解软件库中的API演化和引入的破坏性变更(BCs)对于库维护者管理向后兼容性以及研究人员进行软件库演化的实证研究至关重要。在Java中,JApiCmp和Revapi等工具常用于检测库版本之间的BCs,但它们依赖于二进制JAR文件,这限制了其适用性。这种限制阻碍了API演化的大规模纵向研究以及细粒度分析,如提交级别的BC检测。在本文中,我们介绍了Roseau,一种新颖的静态分析工具,它能够从配备丰富语义分析的库代码中构建与技术无关的API模型。API模型可以用于研究API演化,并与之比较以识别任何两个库版本(发布、提交、分支等)之间的BCs。与传统方法不同,Roseau可以从源代码或字节码构建API模型,并针对库历史的大规模纵向分析进行了优化。我们评估了Roseau在纵向研究API演化中的准确性、性能和适用性,并以JApiCmp和Revapi作为基准。我们扩展并完善了一个已建立的BCs基准,并表明Roseau的准确性(F1 = 0.99)高于JApiCmp(F1 = 0.86)和Revapi(F1 = 0.91)。我们分析了Maven Central中的60个流行库,并发现Roseau表现出卓越的性能,在不到两秒内检测版本之间的BCs,包括在拥有数十万行代码的库中。我们进一步通过跟踪Google的Guava API的演化以及14年和6,839次提交中BCs的引入,说明了JApiCmp和Revapi在纵向研究中的局限性,以及Roseau提供的新颖分析能力,将分析时间从几天减少到几分钟。
摘要: Understanding API evolution and the introduction of breaking changes (BCs) in software libraries is essential for library maintainers to manage backward compatibility and for researchers to conduct empirical studies on software library evolution. In Java, tools such as JApiCmp and Revapi are commonly used to detect BCs between library releases, but their reliance on binary JARs limits their applicability. This restriction hinders large-scale longitudinal studies of API evolution and fine-grained analyses such as commit-level BC detection. In this paper, we introduce Roseau, a novel static analysis tool that constructs technology-agnostic API models from library code equipped with rich semantic analyses. API models can be analyzed to study API evolution and compared to identify BCs between any two versions of a library (releases, commits, branches, etc.). Unlike traditional approaches, Roseau can build API models from source code or bytecode, and is optimized for large-scale longitudinal analyses of library histories. We assess the accuracy, performance, and suitability of Roseau for longitudinal studies of API evolution, using JApiCmp and Revapi as baselines. We extend and refine an established benchmark of BCs and show that Roseau achieves higher accuracy (F1 = 0.99) than JApiCmp (F1 = 0.86) and Revapi (F1 = 0.91). We analyze 60 popular libraries from Maven Central and find that Roseau delivers excellent performance, detecting BCs between versions in under two seconds, including in libraries with hundreds of thousands of lines of code. We further illustrate the limitations of JApiCmp and Revapi for longitudinal studies and the novel analysis capabilities offered by Roseau by tracking the evolution of Google's Guava API and the introduction of BCs over 14 years and 6,839 commits, reducing analysis times from a few days to a few minutes.
主题: 软件工程 (cs.SE)
引用方式: arXiv:2507.17369 [cs.SE]
  (或者 arXiv:2507.17369v1 [cs.SE] 对于此版本)
  https://doi.org/10.48550/arXiv.2507.17369
通过 DataCite 发表的 arXiv DOI(待注册)
期刊参考: 41st IEEE International Conference on Software Maintenance and Evolution (ICSME 2025), Sep 2025, Auckland, New Zealand

提交历史

来自: Thomas Degueule [查看电子邮件]
[v1] 星期三, 2025 年 7 月 23 日 10:07:19 UTC (82 KB)
全文链接:

获取论文:

    查看标题为《》的 PDF
  • 查看中文 PDF
  • 查看 PDF
  • TeX 源代码
  • 其他格式
查看许可
当前浏览上下文:
cs.SE
< 上一篇   |   下一篇 >
新的 | 最近的 | 2025-07
切换浏览方式为:
cs

参考文献与引用

  • NASA ADS
  • 谷歌学术搜索
  • 语义学者
a 导出 BibTeX 引用 加载中...

BibTeX 格式的引用

×
数据由提供:

收藏

BibSonomy logo Reddit logo

文献和引用工具

文献资源探索 (什么是资源探索?)
连接的论文 (什么是连接的论文?)
Litmaps (什么是 Litmaps?)
scite 智能引用 (什么是智能引用?)

与本文相关的代码,数据和媒体

alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)

演示

复制 (什么是复制?)
Hugging Face Spaces (什么是 Spaces?)
TXYZ.AI (什么是 TXYZ.AI?)

推荐器和搜索工具

影响之花 (什么是影响之花?)
核心推荐器 (什么是核心?)
IArxiv 推荐器 (什么是 IArxiv?)
  • 作者
  • 地点
  • 机构
  • 主题

arXivLabs:与社区合作伙伴的实验项目

arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。

与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。

有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.

这篇论文的哪些作者是支持者? | 禁用 MathJax (什么是 MathJax?)
  • 关于
  • 帮助
  • contact arXivClick here to contact arXiv 联系
  • 订阅 arXiv 邮件列表点击这里订阅 订阅
  • 版权
  • 隐私政策
  • 网络无障碍帮助
  • arXiv 运营状态
    通过...获取状态通知 email 或者 slack

京ICP备2025123034号