論文の概要: How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation
- arxiv url: http://arxiv.org/abs/2010.13890v1
- Date: Mon, 26 Oct 2020 20:33:17 GMT
- ステータス: 処理完了
- システム内更新日: 2022-10-02 20:16:41.790028
- Title: How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation
- Title(参考訳): どのようにリファクタリングし、どのように文書化するか?
リファクタリングドキュメンテーションの分類における教師付き機械学習アルゴリズムの利用について
- Authors: Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian
Newman, Ali Ouni, Marouane Kessentini
- Abstract要約: リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
- 参考スコア(独自算出の注目度): 25.626914797750487
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Refactoring is the art of improving the design of a system without altering
its external behavior. Refactoring has become a well established and
disciplined software engineering practice that has attracted a significant
amount of research presuming that refactoring is primarily motivated by the
need to improve system structures. However, recent studies have shown that
developers may incorporate refactorings in other development activities that go
beyond improving the design. Unfortunately, these studies are limited to
developer interviews and a reduced set of projects. To cope with the
above-mentioned limitations, we aim to better understand what motivates
developers to apply refactoring by mining and classifying a large set of
111,884 commits containing refactorings, extracted from 800 Java projects. We
trained a multi-class classifier to categorize these commits into 3 categories,
namely, Internal QA, External QA, and Code Smell Resolution, along with the
traditional BugFix and Functional categories. This classification challenges
the original definition of refactoring, being exclusive to improving the design
and fixing code smells. Further, to better understand our classification
results, we analyzed commit messages to extract textual patterns that
developers regularly use to describe their refactorings. The results show that
(1) fixing code smells is not the main driver for developers to refactoring
their codebases. Refactoring is solicited for a wide variety of reasons, going
beyond its traditional definition; (2) the distribution of refactorings differs
between production and test files; (3) developers use several patterns to
purposefully target refactoring; (4) the textual patterns, extracted from
commit messages, provide better coverage for how developers document their
refactorings.
- Abstract(参考訳): リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
リファクタリングは十分に確立され、規律化されたソフトウェアエンジニアリングの実践となり、リファクタリングが主にシステム構造を改善する必要性によって動機づけられていると仮定する多くの研究が寄せられている。
しかし、最近の研究では、開発者は設計の改善を超えて、他の開発活動にリファクタリングを組み込むことが示されている。
残念ながら、これらの研究は開発者インタビューとプロジェクトの縮小に限られています。
上記の制限に対処するため、800のjavaプロジェクトから抽出されたリファクタリングを含む大規模な111,884のコミットをマイニングし、分類することで、開発者がリファクタリングを適用する動機を理解することを目指している。
従来のBugFixとFunctionalのカテゴリとともに、これらのコミットを内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類するように、マルチクラス分類器をトレーニングしました。
この分類はリファクタリングの本来の定義に挑戦し、設計の改善とコードの臭いの修正に特化している。
さらに,この分類結果の理解を深めるために,コミットメッセージを解析して,開発者がリファクタリングを記述するために定期的に使用するテキストパターンを抽出する。
その結果、(1)コードの臭いの修正は、開発者がコードベースをリファクタリングする主な要因ではないことがわかった。
2) リファクタリングの配布はプロダクションファイルとテストファイルで異なり、(3) 開発者は意図的にリファクタリングをターゲットにするためにいくつかのパターンを使う;(4) コミットメッセージから抽出されたテキストパターンは、開発者がリファクタリングを文書化する方法についてより適切なカバレッジを提供する。
関連論文リスト
- Deciphering Refactoring Branch Dynamics in Modern Code Review: An Empirical Study on Qt [5.516979718589074]
本研究の目的は,Refactorブランチの変更に対するレビュープロセスの理解と,このブランチのコードをレビューする場合の開発者が何に関心を持っているかを明らかにすることである。
リファクタリングブランチからのレビューは、コードレビューの観点で解決する時間が非常に少なくなっています。
さらに、開発者意図のドキュメンテーションは、他のブランチと比べて、Refactorブランチ内では特に少ない。
論文 参考訳(メタデータ) (2024-10-07T01:18:56Z) - In Search of Metrics to Guide Developer-Based Refactoring Recommendations [13.063733696956678]
モチベーションは、外部の振る舞いを損なうことなく、ソースコードの品質を改善するための確立されたアプローチである。
本研究では,開発者の運用意欲を調査する指標に関する実証的研究を提案する。
実行すべき開発者のモチベーションを把握する上で、製品とプロセスのメトリクスの価値を定量化します。
論文 参考訳(メタデータ) (2024-07-25T16:32:35Z) - 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) - CodeRAG-Bench: Can Retrieval Augment Code Generation? [78.37076502395699]
検索拡張生成を用いたコード生成の系統的,大規模な解析を行う。
まず、コード生成タスクの3つのカテゴリを含む総合的な評価ベンチマークであるCodeRAG-Benchをキュレートする。
CodeRAG-Bench上のトップパフォーマンスモデルについて、1つまたは複数のソースから検索したコンテキストを提供することにより検討する。
論文 参考訳(メタデータ) (2024-06-20T16:59:52Z) - On The Importance of Reasoning for Context Retrieval in Repository-Level Code Editing [82.96523584351314]
我々は、コンテキスト検索のタスクをリポジトリレベルのコード編集パイプラインの他のコンポーネントと分離する。
我々は、推論が収集された文脈の精度を向上させるのに役立っているが、それでもその十分性を識別する能力は欠如していると結論づける。
論文 参考訳(メタデータ) (2024-06-06T19:44:17Z) - A Survey of Deep Learning Based Software Refactoring [5.716522445049744]
大量のディープラーニングベースのアプローチがソフトウェアをリファクタリングするために提案されている。
このような作品に関する包括的なレビューや、深層学習に基づくアプローチのための分類の欠如がある。
ディープラーニング技術のほとんどは、コードの臭いの検出やソリューションの推奨に使われてきた。
論文 参考訳(メタデータ) (2024-04-30T03:07:11Z) - 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) - State of Refactoring Adoption: Better Understanding Developer Perception
of Refactoring [5.516979718589074]
ソフトウェアライフサイクルにおける開発者の活動の文書化方法について検討する。
このようなアクティビティを自己確認リファクタリング(Self-Affirmed Refactoring, SAR)と呼びます。
本稿では,コミットが開発者関連のイベントを記述しているかどうかを,共通品質改善カテゴリに従って分類するアプローチを提案する。
論文 参考訳(メタデータ) (2023-06-09T16:38:20Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - Toward the Automatic Classification of Self-Affirmed Refactoring [22.27416971215152]
SAR(Self-Affirmed Refactoring)は、開発者がコミットメッセージでアクティビティをドキュメント化する方法について調査するために導入された。
まず、コミットが開発者関連の事象を記述しているかを識別し、共通の品質改善カテゴリに従って分類する2段階のアプローチを提案する。
我々のモデルは、コミットを正確に分類し、パターンベースのランダムアプローチより優れ、より関連する40のSARパターンを発見できる。
論文 参考訳(メタデータ) (2020-09-19T18:35:21Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。