論文の概要: Do code refactorings influence the merge effort?
- arxiv url: http://arxiv.org/abs/2305.06129v1
- Date: Wed, 10 May 2023 13:24:59 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 09:02:55.972728
- Title: Do code refactorings influence the merge effort?
- Title(参考訳): コードリファクタリングはマージ作業に影響を与えるか?
- Authors: Andre Oliveira, Vania Neves, Alexandre Plastino, Ana Carla Bibiano,
Alessandro Garcia, Leonardo Murta
- Abstract要約: 複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
- 参考スコア(独自算出の注目度): 80.1936417993664
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: In collaborative software development, multiple contributors frequently
change the source code in parallel to implement new features, fix bugs,
refactor existing code, and make other changes. These simultaneous changes need
to be merged into the same version of the source code. However, the merge
operation can fail, and developer intervention is required to resolve the
conflicts. Studies in the literature show that 10 to 20 percent of all merge
attempts result in conflicts, which require the manual developer's intervention
to complete the process. In this paper, we concern about a specific type of
change that affects the structure of the source code and has the potential to
increase the merge effort: code refactorings. We analyze the relationship
between the occurrence of refactorings and the merge effort. To do so, we
applied a data mining technique called association rule extraction to find
patterns of behavior that allow us to analyze the influence of refactorings on
the merge effort. Our experiments extracted association rules from 40,248 merge
commits that occurred in 28 popular open-source projects. The results indicate
that: (i) the occurrence of refactorings increases the chances of having merge
effort; (ii) the more refactorings, the greater the chances of effort; (iii)
the more refactorings, the greater the effort; and (iv) parallel refactorings
increase even more the chances of having effort, as well as the intensity of
it. The results obtained may suggest behavioral changes in the way refactorings
are implemented by developer teams. In addition, they can indicate possible
ways to improve tools that support code merging and those that recommend
refactorings, considering the number of refactorings and merge effort
attributes.
- Abstract(参考訳): 共同ソフトウェア開発では、複数のコントリビュータがソースコードを並行して変更し、新機能を実装し、バグを修正し、既存のコードをリファクタリングし、他の変更を加える。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
しかしマージ操作は失敗する可能性があり、コンフリクトを解決するには開発者による介入が必要である。
文献の研究によると、マージの試みの10%から20%は、プロセスを完成させるために手動開発者による介入を必要とする衝突を引き起こす。
本稿では、ソースコードの構造に影響を与え、マージの労力を増加させる可能性のある、特定のタイプの変更について懸念する。
リファクタリングの発生とマージ作業の関係を分析します。
そこで我々は,アソシエーションルール抽出と呼ばれるデータマイニング手法を適用し,リファクタリングがマージ作業に与える影響を分析するための行動パターンの探索を行った。
実験では,28のオープンソースプロジェクトで発生した40,248件のマージコミットから関連ルールを抽出した。
結果は次のように示しています。
(i)リファクタリングの発生は、マージ努力の機会を増加させる。
(ii)リファクタリングが多ければ多いほど、努力の機会が増えます。
(iii)リファクタリングが多ければ多いほど、努力は大きくなる。
(iv)並列リファクタリングは、努力の機会を増すだけでなく、その強度も増す。
得られた結果は、開発者チームによるリファクタリングの実装方法の振る舞いの変化を示唆するかもしれない。
さらに、コードのマージをサポートするツールとリファクタリングを推奨するツールの改善方法を示すこともできる。
関連論文リスト
- ReGAL: Refactoring Programs to Discover Generalizable Abstractions [66.37493420911979]
Generalizable Abstraction Learning (ReGAL)は、コードカプセル化によって再利用可能な関数のライブラリを学ぶ方法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはグラフィックスで11.5%、日付理解で26.1%、MinecraftベースのテキストゲームであるTextCraftで8.1%という絶対的な精度向上を実現している。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - Automating Source Code Refactoring in the Classroom [15.194527511076725]
本稿では,アンチパターン検出と修正をサポートするEclipseプラグインであるJandanrantを用いて,アンチパターンの除去を目的とした各種教室活動の実施に関する実験結果について述べる。
171人の学生による定量的・質的分析の結果、学生は学習の考え方を高く評価し、JDeodorantプラグインの動作の様々な側面に満足していることが示された。
論文 参考訳(メタデータ) (2023-11-05T18:46:00Z) - Software refactoring and rewriting: from the perspective of code
transformations [0.0]
マイクロパス/ナノパスコンパイラのアイデアを借りることができます。
ソフトウェアのプロシージャをコードを構成するものとして扱うことで、その正確さを手作業で分析できるように、プロセスの表現を十分に短くすることが可能になる。
論文 参考訳(メタデータ) (2023-08-12T17:11:54Z) - Predicting the Impact of Batch Refactoring Code Smells on Application
Resource Consumption [3.5557219875516646]
本稿では,ソフトウェアコードの臭いのバッチと資源消費の関係について検討する。
次に、コードの臭いがリソース消費に与える影響を予測するアルゴリズムを設計することを目的とする。
論文 参考訳(メタデータ) (2023-06-27T19:28:05Z) - State of Refactoring Adoption: Better Understanding Developer Perception
of Refactoring [5.516979718589074]
ソフトウェアライフサイクルにおける開発者の活動の文書化方法について検討する。
このようなアクティビティを自己確認リファクタリング(Self-Affirmed Refactoring, SAR)と呼びます。
本稿では,コミットが開発者関連のイベントを記述しているかどうかを,共通品質改善カテゴリに従って分類するアプローチを提案する。
論文 参考訳(メタデータ) (2023-06-09T16:38:20Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z) - A Transformer-based Approach for Source Code Summarization [86.08359401867577]
コードトークン間のペア関係をモデル化することにより,要約のためのコード表現を学習する。
アプローチは単純であるにもかかわらず、最先端技術よりもかなりの差があることが示される。
論文 参考訳(メタデータ) (2020-05-01T23:29:36Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。