[論文レビュー] Machine Learning for Software Engineering: A Systematic Mapping
本系統的マッピング研究は、ソフトウェア工学(SE)ライフサイクル段階における機械学習(ML)応用を分類するために227編の論文を分析し、包括的なMLSE分類法を提案する。ML技術の主な種別、要件工学、テスト、欠陥予測などのSEタスクへの適用可能性、および今後の研究に向けた未開拓分野を特定する。
Context: The software development industry is rapidly adopting machine learning for transitioning modern day software systems towards highly intelligent and self-learning systems. However, the full potential of machine learning for improving the software engineering life cycle itself is yet to be discovered, i.e., up to what extent machine learning can help reducing the effort/complexity of software engineering and improving the quality of resulting software systems. To date, no comprehensive study exists that explores the current state-of-the-art on the adoption of machine learning across software engineering life cycle stages. Objective: This article addresses the aforementioned problem and aims to present a state-of-the-art on the growing number of uses of machine learning in software engineering. Method: We conduct a systematic mapping study on applications of machine learning to software engineering following the standard guidelines and principles of empirical software engineering. Results: This study introduces a machine learning for software engineering (MLSE) taxonomy classifying the state-of-the-art machine learning techniques according to their applicability to various software engineering life cycle stages. Overall, 227 articles were rigorously selected and analyzed as a result of this study. Conclusion: From the selected articles, we explore a variety of aspects that should be helpful to academics and practitioners alike in understanding the potential of adopting machine learning techniques during software engineering projects.
研究の動機と目的
- ソフトウェア工学(SE)ライフサイクル段階における機械学習(ML)応用の包括的概要の欠如に対処すること。
- 要件分析、欠陥予測、テスト自動化などの特定のSEタスクに最も効果的なML技術を特定すること。
- 特定のSEフェーズ(例:要件、設計、テスト)への適用可能性に基づき、ML技術を分類する構造的分類法を用いて、SEにおけるMLの最新状況を分類・整理すること。
- 未開拓分野と有望な応用分野を強調することで、研究者および実務家を支援すること。
- SE段階ごとのML研究の分布をマッピングすることで、今後の実証的研究の基盤を提供すること。
提案手法
- 実証的ソフトウェア工学のガイドラインに従い、系統的マッピング研究を実施した。
- 事前に定義されたキーワードおよび受入/除外基準を用いて、学術データベースを対象に複数段階の検索を実施した。
- SEライフサイクル段階におけるMLの適用性に鑑み、227件の関連論文を厳密にスクリーニングして選定した。
- 特定のSEフェーズ(例:要件、設計、テスト)における適用可能性に応じて、ML技術を分類する分類法を開発した。
- テーマ的および定量的分析を用いて、ML技術がSE活動にどのように分布しているかをマッピングした。
- 著者間の反復的レビューと合意形成を通じて結果を検証し、方法論的厳密性を確保した。
実験結果
リサーチクエスチョン
- RQ1どのソフトウェア工学ライフサイクル段階で機械学習技術が最も頻繁に適用されているか?
- RQ2SEで主に使用されている機械学習技術の種類は何か? また、それらは異なるSEフェーズでどのように応用されているか?
- RQ3MLの導入状況に鑑みた、SE活動(例:要件、テスト、保守)ごとの研究の分布はどのようになっているか?
- RQ4MLが主に取り組んでいる問題領域は何か? 一方で、未開拓な分野は何か?
- RQ5現在の研究動向に基づき、MLをSEプロセスに統合するにあたり、主な課題と機会は何か?
主な発見
- SEにおけるMLの応用の大部分は、テスト、欠陥予測、要件工学に集中しており、自動テストケース生成や障害予測分野での成長が著しい。
- サポートベクターマシン(SVM)、ランダムフォレスト、ニューラルネットワークなどの教師あり学習技術が、SE応用で最も広く使用されているML手法である。
- コードの類似コピー検出、脆弱性予測、作業量推定に多くの研究が集中しており、品質向上とコスト効率改善への強い関心がうかがえる。
- 系統的マッピングにより、保守およびアーキテクチャ設計分野におけるMLの応用は未開拓であることが判明し、大きな研究可能性を示している。
- 深層学習を用いた複雑なタスク(例:コード類似度検出、攻撃可能性予測)への応用傾向が顕著に増加している。
- 提案されたMLSE分類法は、既存の研究を効果的に整理し、今後のSEにおけるML研究の構造的基盤を提供する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。