Skip to main content
QUICK REVIEW

[論文レビュー] Machine Learning and value generation in Software Development: a survey

Barakat J. Akinsanya, Luiz Jonatã Pires de Araújo|arXiv (Cornell University)|Jan 1, 2019
Software Engineering Research参考文献 43被引用数 62
ひとこと要約

本調査は2000年から2019年までのソフトウェア開発における機械学習(ML)の応用を調査し、作業量推定、リスク予測、欠陥検出に焦点を当てる。ニューラルネットワーク、ランダムフォレスト、ケースベース推論などのML技術を評価した結果、制御された研究では高い性能を示したが、小規模で古くなったデータセットと実世界のプロジェクトにおける一般化の悪さのため、産業界での採用は限定的であった。

ABSTRACT

Machine Learning (ML) has become a ubiquitous tool for predicting and classifying data and has found application in several problem domains, including Software Development (SD). This paper reviews the literature between 2000 and 2019 on the use the learning models that have been employed for programming effort estimation, predicting risks and identifying and detecting defects. This work is meant to serve as a starting point for practitioners willing to add ML to their software development toolbox. It categorises recent literature and identifies trends and limitations. The survey shows as some authors have agreed that industrial applications of ML for SD have not been as popular as the reported results would suggest. The conducted investigation shows that, despite having promising findings for a variety of SD tasks, most of the studies yield vague results, in part due to the lack of comprehensive datasets in this problem domain. The paper ends with concluding remarks and suggestions for future research.

研究の動機と目的

  • 2000年から2019年までのソフトウェア開発タスクへの機械学習の応用に関する最新状況を分析すること。
  • ソフトウェアプロジェクトにおける作業量推定、リスク予測、欠陥検出の分野で最も効果的なML技術を特定すること。
  • 学術的研究で報告された高い性能と、ソフトウェア工学におけるMLの実際の産業界での採用が限定的であるというギャップを評価すること。
  • データセットの質と代表性の欠如といった、信頼性のあるモデルの一般化を妨げる主な障壁を浮き彫りにすること。
  • 今後の研究方向性を提案すること。具体的には、より大きな代表的なデータセットの構築と、強化学習やディープラーニングといった現代のML技術をソフトウェア開発ワークフローに統合すること。

提案手法

  • 2000年から2019年までのソフトウェア工学におけるML応用に関する査読付き論文を対象とした体系的文献レビューを実施した。
  • 作業量推定、リスク予測、欠陥検出の3つの主要分野におけるML技術の分類を実施した。
  • MMRE(相対誤差の平均絶対値)やAUC(曲線下積分面積)といったパフォーマンス指標を、研究間で評価した。
  • 教師あり学習(回帰と分類)、ニューラルネットワーク、ケースベース推論、アンサンブル手法といったモデルタイプを分析した。
  • データ品質とデータセットサイズが、さまざまなソフトウェア開発タスクにおけるモデルの信頼性と一般化性能に与える影響を評価した。
  • モデルの人気度の傾向と研究ギャップを特定し、特にソフトウェア工学におけるディープラーニングや強化学習の利用に焦点を当てた。

実験結果

リサーチクエスチョン

  • RQ1ソフトウェア開発におけるプログラミング作業量推定に最も効果的な機械学習技術は何か?
  • RQ2機械学習モデルは、スケジュール超過や予算超過といったプロジェクトリスクをどの程度正確に予測できるか?
  • RQ3欠陥予測において最も正確な機械学習手法は何か。また、不均衡なデータセットに対し、どのように対処しているか?
  • RQ4学術的結果の高さに比して、なぜソフトウェア開発におけるMLの産業界での採用は低いのか?
  • RQ5特にデータセットの質と代表性に欠ける点を含め、現在の研究における主な制限要因は何か?

主な発見

  • 特にランダムフォレストとサポートベクターマシンを含む教師あり学習モデルは、欠陥検出とリスク推定において、従来のモデルを一貫して上回る性能を示した。
  • ニューラルネットワーク、特にカスケード相関ニューラルネットワークは、古典的回帰モデルに比べて作業量推定において優れた正確性を示した。
  • ケースベース推論は、限られたデータでも高い正確性を達成でき、データが不足する環境における作業量推定に適している。
  • 学術的結果は強くても、産業界での採用は依然として低い。63%のアジャイルプロフェッショナルが依然としてプランニングポーカーに依存しており、38%は専門家の推定に依存している。
  • 大規模で最新かつ代表的なデータセットが不足していることが、信頼性のあるモデルの一般化と産業界への導入を妨げる主要な障壁である。
  • 強化学習や高度なディープラーニングアーキテクチャ(例:CNN、RNN)は、ソフトウェア開発タスクにおいてほとんど検討されておらず、顕著な研究ギャップが存在する。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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