Skip to main content
QUICK REVIEW

[論文レビュー] Revisiting Process versus Product Metrics: a Large Scale Analysis

Suvodeep Majumder, Pranav Mody|arXiv (Cornell University)|Aug 21, 2020
Software Engineering Research被引用数 4
ひとこと要約

本研究では、700のGitHubプロジェクトにおける722,471件のコミットを対象とした大規模な分析を通じて、欠陥予測におけるプロセスメトリクスとプロダクトメトリクスの有効性を再評価した。プロセスマトリクスはプロダクトメトリクスを著しく上回る結果を示した(AUC: 95% 対 54%、再現率: 98% 対 44%)、が、小規模な研究から得られたメトリクスの重要度順位は大規模な環境に一般化されないという警告を発し、強力で一般化可能な知見を得るためにはアンサンブル手法とイン・ザ・ラージ分析を推奨する。

ABSTRACT

Numerous methods can build predictive models from software data. However, what methods and conclusions should we endorse as we move from analytics in-the-small (dealing with a handful of projects) to analytics in-the-large (dealing with hundreds of projects)? To answer this question, we recheck prior small-scale results (about process versus product metrics for defect prediction and the granularity of metrics) using 722,471 commits from 700 Github projects. We find that some analytics in-the-small conclusions still hold when scaling up to analytics in-the-large. For example, like prior work, we see that process metrics are better predictors for defects than product metrics (best process/product-based learners respectively achieve recalls of 98\%/44\% and AUCs of 95\%/54\%, median values). That said, we warn that it is unwise to trust metric importance results from analytics in-the-small studies since those change dramatically when moving to analytics in-the-large. Also, when reasoning in-the-large about hundreds of projects, it is better to use predictions from multiple models (since single model predictions can become confused and exhibit a high variance).

研究の動機と目的

  • 小規模なソフトウェア分析(イン・ザ・スモール)における結論が、数100のプロジェクトにスケーリングされた場合(イン・ザ・ラージ)に成り立つかどうかを評価すること。
  • 大規模なオープンソースプロジェクトのコーパスにおいて、プロセスマトリクスとプロダクトメトリクスの相対的な欠陥予測性能を評価すること。
  • 小規模な研究から導かれたメトリクスの重要度順位が、大規模データに適用された際にも安定しているかを調査すること。
  • ソフトウェア工学における予測モデルの産業的および学術的利用に向けたベストプラクティスを提案すること。特にスケーラビリティと一般化可能性に重点を置く。

提案手法

  • 700のGitHubプロジェクトから得た722,471件のコミットを、プロセスメトリクスとプロダクトメトリクスの両方を用いて収集・分析した。
  • 欠陥予測に複数の機械学習モデル(ランダムフォレスト、ロジスティック回帰、SVM)を適用した。
  • モデル間の公平な比較を確保するため、ハイパーパramータ最適化(HPO)を用いてモデルをチューニングした。
  • 予測性能を評価するために、標準的な指標(AUC、再現率、F1スコア)を用いてモデルの性能を比較した。
  • 個々のメトリクスの影響とその重要度順位の影響を評価するためにアブレーションスタディを実施した。
  • 大規模な予測における分散の低減と安定性の向上を目的として、アンサンブルモデリング(例:ランダムフォレスト)を採用した。

実験結果

リサーチクエスチョン

  • RQ1大規模なソフトウェア分析において、プロセスマトリクスは欠陥予測において一貫してプロダクトメトリクスを上回るのか?
  • RQ2小規模な研究から得られたメトリクスの重要度順位は、大規模データに適用された際にも安定しているのか?
  • RQ3大規模なソフトウェア欠陥予測において、単一モデルとアンサンブル予測の実用的意味合いは何か?
  • RQ4スケール上でのプロセスマトリクスとプロダクトメトリクスの間で、システム的およびデータ収集上の課題はどのように異なるのか?
  • RQ5小規模な研究からの知見は、大規模なソフトウェアプロジェクトに信頼性を持って一般化できるのか?

主な発見

  • プロセスマトリクスは、欠陥予測において中央値AUCが95%、再現率が98%を達成したのに対し、プロダクトメトリクスは中央値AUCが54%、再現率が44%にとどまった。
  • 小規模な研究(例:ICSE 2013、ICSM 2010)から得られたメトリクスの重要度順位は、大規模データに一般化されず、小規模研究で上位にランクされたメトリクスが大規模分析では無関係となることが多かった。
  • 大規模な環境における単一モデルの予測は高い分散を示し、混乱しやすいため、ランダムフォレストのようなアンサンブル手法がより信頼性が高い。
  • プロダクトメトリクスは約500CPU日という著しい計算リソースを要する一方、プロセスマトリクスは10倍以上速く計算可能である。
  • 本研究では、収集のオーバーヘッドが低く、言語に依存しない適用性があることから、プロセスマトリクスが産業的利用においてよりスケーラブルかつ実用的であると確認した。
  • 小規模な定性的研究からの知見は一般化されないため、安定的で一般化可能な知見を得るためには、大規模なプロジェクト群における定量的再現が不可欠である。

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

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

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

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