論文の概要: A Soundness and Precision Benchmark for Java Debloating Tools
- arxiv url: http://arxiv.org/abs/2510.20679v1
- Date: Thu, 23 Oct 2025 15:52:20 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-10-25 03:08:18.316383
- Title: A Soundness and Precision Benchmark for Java Debloating Tools
- Title(参考訳): Java Debloatingツールの健全性と精度ベンチマーク
- Authors: Jonas Klauke, Tom Ohlmer, Stefan Schott, Serena Elisa Ponta, Wolfram Fischer, Eric Bodden,
- Abstract要約: Deblometerは、デブロティングツールで様々なJava言語機能のサポートを評価するように設計された59のテストケースで構成される、マイクロベンチマークである。
Deptrim、JShrink、ProGuardの3つの人気のあるJavaデブロツールを評価します。
評価の結果,必要なプログラム構造がすべて削除され,セマンティクスや実行クラッシュが変更されることがわかった。
- 参考スコア(独自算出の注目度): 2.206395510692683
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Modern software development reuses code by importing libraries as dependencies. Software projects typically include an average of 36 dependencies, with 80% being transitive, meaning they are dependencies of dependencies. Recent research indicates that only 24.9% of these dependencies are required at runtime, and even within those, many program constructs remain unused, adding unnecessary code to the project. This has led to the development of debloating tools that remove unnecessary dependencies and program constructs while balancing precision by eliminating unused constructs and soundness by preserving all required constructs. To systematically evaluate this trade-off, we developed Deblometer, a micro-benchmark consisting of 59 test cases designed to assess support for various Java language features in debloating tools. Each test case includes a manually curated ground truth specifying necessary and bloated classes, methods, and fields, enabling precise measurement of soundness and precision. Using Deblometer, we evaluated three popular Java debloating tools: Deptrim, JShrink, and ProGuard. Our evaluation reveals that all tools remove required program constructs, which results in changed semantics or execution crashes. In particular, the dynamic class loading feature introduces unsoundness in all evaluated tools. Our comparison shows that Deptrim retains more bloated constructs, while ProGuard removes more required constructs. JShrink's soundness is significantly affected by limited support for annotations, which leads to corrupted debloated artifacts. These soundness issues highlight the need to improve debloating tools to ensure stable and reliable debloated software.
- Abstract(参考訳): 現代のソフトウェア開発は、ライブラリを依存物としてインポートすることでコードを再利用する。
ソフトウェアプロジェクトは一般的に平均36の依存関係を含み、80%は推移的であり、依存関係の依存関係である。
最近の研究によると、これらの依存関係の24.9%は実行時に必要であり、その内でさえ多くのプログラム構造は未使用のままであり、不要なコードをプロジェクトに追加している。
これにより、不要な依存関係やプログラムのコンストラクトを除去し、未使用のコンストラクトと健全性を排除し、必要なコンストラクトをすべて保存することで、精度のバランスをとるデブロ化ツールの開発につながった。
このトレードオフを体系的に評価するために,デブロメータを開発した。デブロメータは,デブロケーションツールにおける様々なJava言語機能のサポートを評価するために設計された59のテストケースで構成されるマイクロベンチマークである。
それぞれのテストケースには、必要で肥大したクラス、方法、フィールドを指定する手動でキュレートされた地上真実が含まれており、音質と精度を正確に測定することができる。
Deblometerを使って、Deptrim、JShrink、ProGuardの3つの人気のあるJavaデブロツールを評価しました。
評価の結果,必要なプログラム構造がすべて削除され,セマンティクスや実行クラッシュが変更されることがわかった。
特に、動的クラスローディング機能では、すべての評価ツールにアンサウンドネスが導入されている。
我々の比較では、Deptrimはより肥大化したコンストラクトを保持しており、ProGuardはより必要なコンストラクトを取り除いている。
JShrinkの健全性はアノテーションの限定的なサポートによって著しく影響を受けており、デブロ化されたアーティファクトが破損する。
これらの健全性問題は、安定的で信頼性の高いデブロ化ソフトウェアを保証するためにデブロ化ツールを改善する必要性を浮き彫りにする。
関連論文リスト
- D-LiFT: Improving LLM-based Decompiler Backend via Code Quality-driven Fine-tuning [49.16469288280772]
逆コンパイラは、バイナリから可読なソースコードを再構築する。
近年の進歩にもかかわらず、そのアウトプットは構文上の誤りや意味的な誤りに悩まされ、読みにくいままである。
大規模言語モデル (LLMs) の出現により、研究者は逆コンパイラ出力を洗練するためのLLMの可能性を探り始めた。
D-LIFTは、微調整強化学習を施した拡張逆コンパイラLLMパイプラインである。
論文 参考訳(メタデータ) (2025-06-11T19:09:08Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Automatic Build Repair for Test Cases using Incompatible Java Versions [7.4881561767138365]
依存性の最小化を行うことで、Javaプロジェクトのテストケースを修復するアプローチを導入します。
既存の最先端技術とは異なり、我々の手法はソースレベルで動作し、コンパイル時のエラーを修正できる。
論文 参考訳(メタデータ) (2024-04-27T07:55:52Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - A Broad Comparative Evaluation of Software Debloating Tools [3.0913520619484287]
ソフトウェアデ肥大化ツールは、bloatと呼ばれる不要なコードを削除することで、プログラムのセキュリティとパフォーマンスを改善しようとしている。
筆者らは,10年間のデブロ化文学と,デブロ化生態系に関する知識を分類するために現在,商業開発中のいくつかのツールを調査した。
評価は、20のベンチマークプログラム、12のパフォーマンス、セキュリティ、正当性の測定ツールに基づいて行われた。
論文 参考訳(メタデータ) (2023-12-20T18:53:18Z) - On the Security Blind Spots of Software Composition Analysis [46.1389163921338]
Mavenリポジトリで脆弱性のあるクローンを検出するための新しいアプローチを提案する。
Maven Centralから53万以上の潜在的な脆弱性のあるクローンを検索します。
検出された727個の脆弱なクローンを検出し、それぞれに検証可能な脆弱性証明プロジェクトを合成する。
論文 参考訳(メタデータ) (2023-06-08T20:14:46Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。