Skip to main content
QUICK REVIEW

[論文レビュー] Recommending Extract Method Refactoring Based on Confidence of Predicted Method Name

Jinto Yamanaka, Yasuhiro Hayase|arXiv (Cornell University)|Aug 25, 2021
Software Engineering Research参考文献 28被引用数 5
ひとこと要約

本論文では、最先端のコードto名前モデルである code2seq からのメソッド名予測の信頼度スコアを活用することで、Extract Method リファクタリングの推奨手法を新たに提案する。GEMS に統合されたこの信頼度メトリクスにより、ベースライン手法を上回る正答率が実現され、特に code2seq 信頼度が最も重要な特徴量として浮き彫りになった。F-measure とカバレッジの両方が向上した。

ABSTRACT

Refactoring is an important activity that is frequently performed in software development, and among them, Extract Method is known to be one of the most frequently performed refactorings. The existing techniques for recommending Extract Method refactoring calculate metrics from the source method and the code fragments to be extracted to order the recommendation candidates. This paper proposes a new technique for accurately recommending Extract Method refactoring by considering whether code fragments are semantically coherent chunks that can be given clear method names, in addition to the metrics used in previous studies. As a criterion for the semantic coherency, the proposed technique employs the probability (i.e. confidence) of the predicted method names for the code fragments output by code2seq, which is a state-of-the-art method name prediction technique. The evaluation experiment confirmed that the proposed technique has higher correctness of recommendation than the existing techniques.

研究の動機と目的

  • コード断片の意味的整合性を組み込むことで、Extract Method リファクタリング推奨の正確性を向上させること。
  • 既存手法が抽出可能なコードが意味的に名付け可能かどうかを無視するという限界を是正すること。
  • メソッド名予測の信頼度がリファクタリングの適性と相関するかどうかを評価すること。
  • GEMS フレームワークに信頼度ベースのフィルタリングを拡張し、推奨の正確性と再現率を向上させること。

提案手法

  • 提案手法は、コード2seq を用いて候補となるコード断片のメソッド名を予測し、上位予測の信頼度スコアを抽出する。
  • 従来のメトリクス(例:結合度、複雑度)に加え、この信頼度スコアを GEMS で使用される特徴量として統合する。
  • モデルは信頼度と TYPEDELE_COHESION や INVOCATION_COHESION、RATIO_LOC などの既存特徴量を組み合わせ、リファクタリング候補をランク付けする。
  • この手法は GEMS の拡張として実装され、分類に XGBoost を使用し、特徴量の重要度分析も実施する。
  • 実際のリファクタリングデータからポジティブ例とネガティブ例を構築し、モデルの学習と評価に用いる。
  • 特徴量の重要度を分析することで、信頼度が他のメトリクスに比べて果たす貢献度を評価する。

実験結果

リサーチクエスチョン

  • RQ1code2seq からの予測信頼度を組み込むことで、Extract Method リファクタリング推奨の正答率が向上するか?
  • RQ2予測されたメソッド名の信頼度スコアは、コード断片の意味的整合性とどの程度相関するか?
  • RQ3推奨モデルにおいて、信頼度が従来のリファクタリングメトリクスに比べて果たす相対的貢献度はどの程度か?
  • RQ4信頼度スコアは、実行可能と非実行可能なリファクタリング候補を効果的に区別できるか?

主な発見

  • 提案手法は、すべての許容度レベルにおいて GEMS よりも高い F-measure を達成し、推奨の正答性が向上したことが確認された。
  • code2seq からの信頼度スコア(CODE2SEQ_CONFIDENCE)が最も重要な特徴量となり、重要度スコアが 0.30011 に達し、次に重要な特徴量を大きく上回った。
  • ポジティブ例(リファクタリング済み)の平均信頼度は 0.063695 であり、ネガティブ例の平均 0.011233 よりも高いことが示され、実行可能な候補に意味的整合性が高かった。
  • ポジティブ例の中央値信頼度(0.0036578)は、ネガティブ例の中央値(0.00000049674)よりも高いことが確認され、信頼度の識別力が裏付けられた。
  • モデルの再現率は精度よりもより顕著に向上したため、信頼度が推奨対象のカバレッジを効果的に拡大していることが示された。
  • 信頼度スコアが予測に著しく寄与していることが、特徴量重要度ランキングでの優位性と一貫した性能向上の両方で裏付けられた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。