論文の概要: Roseau: Fast, Accurate, Source-based API Breaking Change Analysis in Java
- arxiv url: http://arxiv.org/abs/2507.17369v1
- Date: Wed, 23 Jul 2025 10:07:19 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-07-24 22:33:14.949839
- Title: Roseau: Fast, Accurate, Source-based API Breaking Change Analysis in Java
- Title(参考訳): Roseau: Javaの高速で正確なソースベースのAPIが変更分析を破る
- Authors: Corentin Latappy, Thomas Degueule, Jean-Rémy Falleri, Romain Robbes, Lina Ochoa,
- Abstract要約: リッチなセマンティック分析を備えたライブラリコードから,技術に依存しないAPIモデルを構築する,新たな静的解析ツールであるRosauを紹介する。
従来のアプローチとは異なり、RosauはソースコードやバイトコードからAPIモデルを構築することができ、ライブラリ履歴の大規模な時系列解析に最適化されている。
Maven Centralから60の人気のあるライブラリを分析し、Rosauが優れたパフォーマンスを提供し、バージョン間のBCを検出するのに2秒もかからない。
- 参考スコア(独自算出の注目度): 6.839032445412094
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: 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.
- Abstract(参考訳): ソフトウェアライブラリのAPI進化と破壊的変更(BC)の導入を理解することは、ライブラリ保守者が後方互換性を管理するために不可欠であり、研究者はソフトウェアライブラリの進化に関する実証的研究を行う。
Javaでは、JApiCmpやRevapiといったツールがライブラリリリース間のBCを検出するために一般的に使用されているが、バイナリJARへの依存は適用性を制限している。
この制限は、APIの進化とコミットレベルのBC検出のようなきめ細かい分析の大規模な縦断的研究を妨げる。
本稿では,リッチなセマンティック分析を備えたライブラリコードから,技術に依存しないAPIモデルを構築する新しい静的解析ツールであるRosauを紹介する。
APIモデルはAPIの進化を研究するために分析でき、ライブラリのどの2つのバージョン(リリース、コミット、ブランチなど)間でBCを特定することができる。
従来のアプローチとは異なり、RosauはソースコードやバイトコードからAPIモデルを構築することができ、ライブラリ履歴の大規模な時系列解析に最適化されている。
JApiCmpとRevapiをベースラインとして,API進化の縦断的研究におけるRosauの精度,性能,適合性を評価した。
我々はBCの確立したベンチマークを拡張し、RoseauがJApiCmp(F1 = 0.86)やRevapi(F1 = 0.91)よりも高い精度(F1 = 0.99)を達成することを示す。
Maven Centralから60の人気のあるライブラリを分析し、Rosauは優れたパフォーマンスを提供し、数十万行のコードを持つライブラリを含むバージョン間のBCを検出する。
さらに、縦断的研究におけるJApiCmpとRevapiの限界と、GoogleのGuava APIの進化と、14年間のBCの導入と6,839のコミットを追跡し、分析時間を数日から数分に短縮することで、Rosauが提供する新たな分析機能について説明する。
関連論文リスト
- Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - ExploraCoder: Advancing code generation for multiple unseen APIs via planning and chained exploration [70.26807758443675]
ExploraCoderはトレーニング不要のフレームワークで、大規模な言語モデルにコードソリューションで見えないAPIを呼び出す権限を与える。
実験の結果、ExploreaCoderは、事前のAPI知識に欠けるモデルのパフォーマンスを大幅に改善することが示された。
論文 参考訳(メタデータ) (2024-12-06T19:00:15Z) - The Seeds of the FUTURE Sprout from History: Fuzzing for Unveiling Vulnerabilities in Prospective Deep-Learning Libraries [14.260990784121423]
Futureは、新しく導入され、将来的なDLライブラリ用に調整された最初のユニバーサルファジィフレームワークである。
既存のライブラリからの履歴バグ情報と、特殊なコード生成のための微調整LDMを使用する。
バグ検出、バグ再現の成功率、コード生成の妥当性、APIカバレッジにおいて、既存のファジィアよりも大幅に優れています。
論文 参考訳(メタデータ) (2024-12-02T09:33:28Z) - A Systematic Evaluation of Large Code Models in API Suggestion: When, Which, and How [53.65636914757381]
API提案は、現代のソフトウェア開発において重要なタスクである。
大規模コードモデル(LCM)の最近の進歩は、API提案タスクにおいて有望であることを示している。
論文 参考訳(メタデータ) (2024-09-20T03:12:35Z) - Enhancing Differential Testing With LLMs For Testing Deep Learning Libraries [8.779035160734523]
本稿では,DLライブラリのためのLLM強化差分試験手法を提案する。
与えられたAPIの代替実装を見つけ、多様なテストインプットを生成するという課題に対処する。
最先端技術で見られるAPIの1.84倍の数のAPIを合成する。
論文 参考訳(メタデータ) (2024-06-12T07:06:38Z) - Recommending Analogical APIs via Knowledge Graph Embedding [10.131362518700403]
私たちは35,773のJavaライブラリ向けにKGE4ARの統一APIKGを構築し、それを2つのAPIレコメンデーションシナリオで評価します。
以上の結果から,KGE4ARは,すべての指標において,最先端のドキュメンテーションベース技術を大幅に上回っていることがわかった。
論文 参考訳(メタデータ) (2023-08-22T13:12:13Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - torchgfn: A PyTorch GFlowNet library [56.071033896777784]
torchgfnはPyTorchライブラリで、このニーズに対処することを目指している。
環境のためのシンプルなAPIと、サンプルと損失のための有用な抽象化を提供する。
論文 参考訳(メタデータ) (2023-05-24T00:20:59Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeLは継続学習のためのライブラリで、PyTorchとJAXフレームワークの両方をサポートする。
それは、正規化ベースのアプローチ、リプレイベースのアプローチ、ハイブリッドアプローチを含む、幅広い連続学習アルゴリズムのための統一インターフェースを提供する。
私たちはSequeLをオープンソースライブラリとしてリリースし、研究者や開発者が自身の目的で簡単にライブラリを実験し拡張することができます。
論文 参考訳(メタデータ) (2023-04-21T10:00:22Z) - An Empirical Study of Library Usage and Dependency in Deep Learning
Frameworks [12.624032509149869]
ピトルチ、カフェ、シキットルンはプロジェクトの18%と14%で最も頻度の高い組み合わせである。
開発者は同じプロジェクトで2つか3つのdlライブラリを使用し、同じ関数と同じファイルの両方で異なる複数のdlライブラリを使用する傾向がある。
論文 参考訳(メタデータ) (2022-11-28T19:31:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。