論文の概要: Together We Go Further: LLMs and IDE Static Analysis for Extract Method
Refactoring
- arxiv url: http://arxiv.org/abs/2401.15298v1
- Date: Sat, 27 Jan 2024 05:01:03 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-30 19:02:56.211294
- Title: Together We Go Further: LLMs and IDE Static Analysis for Extract Method
Refactoring
- Title(参考訳): LLMとIDE静的解析による抽出メソッドリファクタリング
- Authors: Dorin Pomian, Abhiram Bellur, Malinda Dilhara, Zarina Kurbatova, Egor
Bogomolov, Timofey Bryksin, Danny Dig
- Abstract要約: 抽出方法(Extract Method)と呼ばれるマークは、2つのフェーズから構成される: (i)抽出するステートメントを選択し、 (ii)これを実行するためのメカニクスを適用する。
本稿では,抽出手法の力でソフトウェア開発ツールの能力を増強するEM-Assistを紹介する。
- 参考スコア(独自算出の注目度): 10.37848865054563
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Excessively long methods that encapsulate multiple responsibilities within a
single method are challenging to comprehend, debug, reuse, and maintain. The
solution to this problem, a hallmark refactoring called Extract Method,
consists of two phases: (i) choosing the statements to extract and (ii)
applying the mechanics to perform this refactoring. While the application part
has been a staple feature of all modern IDEs, they leave it up to developers to
choose the statements to extract. Choosing which statements are profitable to
extract has been the subject of many research tools that employ hard-coded
rules to optimize software quality metrics. Despite steady improvements, these
tools often fail to generate refactorings that align with developers'
preferences and acceptance criteria. In this paper, we introduce EM-Assist, a
tool that augments the refactoring capabilities of IDEs with the power of LLMs
to perform Extract Method refactoring. We empirically evaluated EM-Assist on a
diverse, publicly available corpus that other researchers used in the past. The
results show that EM-Assist outperforms previous state-of-the-art tools: at 1%
tolerance, EM-Assist suggests the correct refactoring among its top-5
suggestions 60.6% of the time, compared to 54.2% reported by existing ML
models, and 52.2% reported by existing static analysis tools. When we
replicated 2,849 actual Extract Method instances from open-source projects,
EM-Assist's recall rate was 42.1% compared to 6.5% for its peers. Furthermore,
we conducted warehouse surveys with 20 industrial developers and suggested
refactorings on their recent commits. 81.3% of the respondents agreed with the
recommendations provided by EM-Assist. This shows the usefulness of our
approach and ushers us into a new era of refactoring when LLMs.
- Abstract(参考訳): ひとつのメソッドに複数の責任をカプセル化する非常に長いメソッドは、理解、デバッグ、再利用、保守が難しい。
この問題の解決策は、Extract Methodと呼ばれるマークリファクタリングで、2つのフェーズから構成される。
(i)抽出すべき文を選択すること、及び
(ii)このリファクタリングを行うために機械を適用すること。
アプリケーション部分は、現代のすべてのideにとって重要な機能ですが、開発者は抽出するステートメントを選択する必要があります。
ソフトウェア品質のメトリクスを最適化するためにハードコードルールを使用する多くの研究ツールでは、どのステートメントを抽出して利益を得るかを選択することが重要になっている。
着実に改善されているにも関わらず、これらのツールは多くの場合、開発者の好みや受け入れ基準に合致したリファクタリングの生成に失敗する。
本稿では,LLMの力でIDEのリファクタリング機能を強化し,抽出メソッドのリファクタリングを行うEM-Assistを紹介する。
EM-Assistを他の研究者が過去に使用した多種多様な公開コーパスで実証的に評価した。
EM-Assistは、既存のMLモデルで報告された54.2%、既存の静的解析ツールで報告された52.2%に対して、上位5つの提案のうち正しいリファクタリングを示唆している。
オープンソースプロジェクトから2,849の実際の抽出メソッドインスタンスを複製したとき、EM-Assistのリコール率は6.5%に対して42.1%だった。
さらに,20人の産業開発者を対象に倉庫調査を実施し,最近のコミットのリファクタリングを提案する。
回答者の81.3%がEM-Assistの勧告に同意した。
このことは、我々のアプローチの有用性を示し、LLMが新しいリファクタリングの時代へと導く。
関連論文リスト
- Combining Domain and Alignment Vectors to Achieve Better Knowledge-Safety Trade-offs in LLMs [64.83462841029089]
我々は、ドメインとアライメントベクトルを補間し、より安全なドメイン固有モデルを作成する、textscMergeAlignと呼ばれる効率的なマージベースのアライメント手法を導入する。
医学やファイナンスの専門家であるLlama3の変種にtextscMergeAlignを適用することで、ドメイン固有のベンチマークを最小限または全く劣化させることなく、大幅なアライメントの改善が得られる。
論文 参考訳(メタデータ) (2024-11-11T09:32:20Z) - An Empirical Study on the Potential of LLMs in Automated Software Refactoring [9.157968996300417]
自動ソフトウェアにおける大規模言語モデル(LLM)の可能性について検討する。
私たちは、ChatGPTが提案した176のソリューションのうち13と、Geminiが提案した137のソリューションのうち9が、ソースコードの機能を変更したり、構文エラーを導入したりすることを安全でないことに気付きました。
論文 参考訳(メタデータ) (2024-11-07T05:35:55Z) - AIME: AI System Optimization via Multiple LLM Evaluators [79.03422337674664]
AIME は複数の LLM を利用した評価プロトコルであり、それぞれが独立した基準で評価を生成し、結合を通してそれらを結合する。
コード生成タスクにおける AIME のベースラインメソッドのパフォーマンスは,LeetCodeHard と HumanEval データセットの単一 LLM 評価プロトコルよりも最大 62% 高いエラー検出率,最大 16% 高い成功率で向上している。
論文 参考訳(メタデータ) (2024-10-04T04:03:24Z) - Context-Enhanced LLM-Based Framework for Automatic Test Refactoring [10.847400457238423]
テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じます。
我々は,Javaプロジェクトにおける自動テストのための文脈拡張型LLMベースのフレームワークUTRefactorを提案する。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
論文 参考訳(メタデータ) (2024-09-25T08:42:29Z) - FactorLLM: Factorizing Knowledge via Mixture of Experts for Large Language Models [50.331708897857574]
本稿では,高度に訓練された高密度FFNを余分なサブネットワークに分解する新しいアプローチであるFacterLLMを紹介する。
FactorLLMは、最大85%のモデル性能を確保しながら、推論速度を30%以上増加させながら、ソースモデルに匹敵するパフォーマンスを達成する。
論文 参考訳(メタデータ) (2024-08-15T16:45:16Z) - What's Wrong with Your Code Generated by Large Language Models? An Extensive Study [80.18342600996601]
大規模言語モデル(LLM)は、標準解に比べて短いがより複雑なコードを生成する。
3つのカテゴリと12のサブカテゴリを含む誤ったコードに対するバグの分類を開発し、一般的なバグタイプに対する根本原因を分析する。
そこで本研究では,LLMがバグタイプやコンパイラフィードバックに基づいて生成したコードを批判し,修正することのできる,自己批判を導入した新たな学習自由反復手法を提案する。
論文 参考訳(メタデータ) (2024-07-08T17:27:17Z) - SORRY-Bench: Systematically Evaluating Large Language Model Safety Refusal Behaviors [64.9938658716425]
安全でないユーザリクエストを認識して拒否する、大規模な言語モデル(LLM)の既存の評価は、3つの制限に直面している。
まず、既存の手法では、安全でないトピックの粗い粒度を使い、いくつかのきめ細かいトピックを過剰に表現している。
第二に、プロンプトの言語的特徴とフォーマッティングは、様々な言語、方言など、多くの評価において暗黙的にのみ考慮されているように、しばしば見過ごされる。
第3に、既存の評価は大きなLCMに頼っているため、コストがかかる可能性がある。
論文 参考訳(メタデータ) (2024-06-20T17:56:07Z) - EM-Assist: Safe Automated ExtractMethod Refactoring with LLMs [9.474820853051702]
提案を生成し、その後検証し、拡張し、ランク付けするIntelliJ IDEAプラグインであるEM-Assistを紹介します。
オープンソースプロジェクトで実施された1,752の現実世界の評価では、EM-Assistのリコール率はトップ5の中で53.4%であり、以前のベストインクラスのツールでは39.4%だった。
論文 参考訳(メタデータ) (2024-05-31T00:32:04Z) - Behind the Intent of Extract Method Refactoring: A Systematic Literature
Review [15.194527511076725]
コードは、ソースコードの理解性と保守性を改善するために不可欠なソフトウェアエンジニアリングプラクティスとして広く認識されている。
Extract Method は、開発者がコード品質を改善するためにしばしばそれを適用するため、適用性の "Swiss Army knife" と見なされている。
近年、いくつかの研究が抽出法を推奨し、実行可能なデータ駆動の洞察の収集、分析、啓示を可能にしている。
論文 参考訳(メタデータ) (2023-12-19T21:09:54Z) - Empirical Evaluation of a Live Environment for Extract Method
Refactoring [0.0]
我々は,抽出手法を視覚的に識別し,推奨し,適用するLive Refactoring Environmentを開発した。
私たちの結果は、追加の助けなしに手作業で行うコードとは大きく異なり、改善されました。
論文 参考訳(メタデータ) (2023-07-20T16:36:02Z) - Self-Refine: Iterative Refinement with Self-Feedback [62.78755306241981]
Self-Refineは、反復的なフィードバックと改善を通じて、大きな言語モデル(LLM)からの初期出力を改善するアプローチである。
GPT-3.5, ChatGPT, および GPT-4) LLM を用いて, 対話応答生成から数学的推論に至るまで, 7 つのタスクにまたがる自己決定性を評価する。
我々の研究は、GPT-4のような最先端のLCMでさえ、単純でスタンドアロンなアプローチを使用してテスト時にさらに改善できることを示します。
論文 参考訳(メタデータ) (2023-03-30T18:30:01Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。