Skip to main content
QUICK REVIEW

[論文レビュー] The Effectiveness of Supervised Machine Learning Algorithms in Predicting Software Refactoring

Maurício Aniche, Erick Galani Maziero|arXiv (Cornell University)|Jan 10, 2020
Software Engineering Research被引用数 4
ひとこと要約

本研究では、11,149のオープンソースプロジェクトを対象に、教師あり機械学習アルゴリズムを用いてソフトウェアのリファクタリング機会を予測する手法を評価している。200万件を超えるラベル付きリファクタリングを用いて、ランダムフォレストモデルがクラス、メソッド、変数レベルの20種類のリファクタリングタイプを90%以上の精度で予測できることを示している。また、プロセスおよび所有者関連メトリクスが、多様なエコシステムにわたるモデルの性能向上と一般化性能を顕著に向上させた。

ABSTRACT

Refactoring is the process of changing the internal structure of software to improve its quality without modifying its external behavior. Empirical studies have repeatedly shown that refactoring has a positive impact on the understandability and maintainability of software systems. However, before carrying out refactoring activities, developers need to identify refactoring opportunities. Currently, refactoring opportunity identification heavily relies on developers' expertise and intuition. In this paper, we investigate the effectiveness of machine learning algorithms in predicting software refactorings. More specifically, we train six different machine learning algorithms (i.e., Logistic Regression, Naive Bayes, Support Vector Machine, Decision Trees, Random Forest, and Neural Network) with a dataset comprising over two million refactorings from 11,149 real-world projects from the Apache, F-Droid, and GitHub ecosystems. The resulting models predict 20 different refactorings at class, method, and variable-levels with an accuracy often higher than 90%. Our results show that (i) Random Forests are the best models for predicting software refactoring, (ii) process and ownership metrics seem to play a crucial role in the creation of better models, and (iii) models generalize well in different contexts.

研究の動機と目的

  • 教師あり機械学習が実世界のシステムにおいてソフトウェアリファクタリング機会を効果的に予測できるかどうかを調査すること。
  • ロジスティック回帰、ナイーブベイズ、SVM、決定木、ランダムフォレスト、ニューラルネットワークの6つの機械学習アルゴリズムが、20種類の異なるリファクタリング操作を予測する性能を評価すること。
  • 特にプロセスおよび所有者関連メトリクスを含む、コードメトリクスおよびシステム特徴量のうち、モデルの有効性に最も寄与する要因を特定すること。
  • 訓練済みモデルが異なるソフトウェアエコシステムやプロジェクトタイプにわたって一般化できる能力を評価すること。
  • 実践的なリファクタリング意思決定を支援するデータ駆動型の推奨事項が、誤検出を低減できることを実証的に示すこと。

提案手法

  • アパッチ、F-Droid、GitHubの11,149の実世界プロジェクトから、200万件を超えるラベル付きリファクタリング操作のデータセットを収集した。
  • リファクタリング予測を、クラス、メソッド、変数レベルでの各リファクタリングタイプ(例:メソッドの抽出、変数名の変更)ごとの二値分類タスクとして定式化した。
  • 設計、複雑性、所有者関連の特徴量(例:コミット者数、ファイルの年数)を含む142種類の静的コードメトリクスを抽出し、コード要素を表現した。
  • 10-fold交差検証を用いて、ロジスティック回帰、ナイーブベイズ、SVM、決定木、ランダムフォレスト、ニューラルネットワークの6つの教師あり機械学習モデルをデータセット上で学習させた。
  • 正解率、適合率、再現率、F1スコアを用いてモデルの性能を評価し、特徴量の重要度を評価するためのアブレーションスタディを追加で実施した。
  • エコシステム間での一般化テストと時系列順の学習/テストを実施し、モデルの頑健性を検証し、データ漏洩を回避した。

実験結果

リサーチクエスチョン

  • RQ1多様なオープンソースプロジェクトにわたるソフトウェアリファクタリング操作の予測において、どの教師あり機械学習アルゴリズムが最も優れた性能を示すか?
  • RQ2設計および所有者関連の特徴量を含む、さまざまなコードメトリクスがリファクタリングモデルの予測性能にどのように影響を与えるか?
  • RQ3多様なプロジェクトから得たデータで学習したモデルは、異なるエコシステムに属する新たな未確認のソフトウェアシステムへどの程度一般化できるか?
  • RQ4リファクタリングの時系列順序を組み込むことで、モデルの性能と信頼性にどのような影響が生じるか?
  • RQ5データセットのサイズとプロジェクトの多様性は、モデルの一般化能力および正解率にどのような影響を及えるか?

主な発見

  • ランダムフォレストモデルは、20種類のすべてのリファクタリングタイプにおいて平均正解率が最も高く、他のアルゴリズムを一貫して上回り、正解率はしばしば90%を超えた。
  • プロセスおよび所有者関連メトリクス(例:コミット者数、ファイルの年数、変更頻度)が最も重要な特徴量の一つであり、モデル性能の顕著な向上に寄与した。
  • アパッチ、F-Droid、GitHubの多様なエコシステムからのデータで学習したモデルは、新しいプロジェクトへも良好に一般化され、強力なプロジェクト間転送性を示した。
  • 時系列順の評価(最初の90%のリファクタリングで学習、残りの10%でテスト)では平均正解率が87%に達し、時系列のデータ漏洩が重大な問題ではなかったことが確認された。
  • クラスレベルのリファクタリングモデルは、メソッドおよび変数レベルのモデルを上回ったが、特にF-Droidやアパッチのような小さなデータセットでは顕著な差が見られた。一方、GitHubのような大きなデータセットでは、その差は縮まった。
  • 本研究は、機械学習モデルがリファクタリング機会を正確に予測できることを、大規模な実証的証拠として初めて提供した。これは、誤検出率の高いヒューリスティックベースのツールとは対照的に、実用的かつ代替可能な手法を示している。

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

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

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

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