[修士論文] 変更要素名の分散表現に基づく変更推薦

1/31 に小林研M2の叶さんが修士論文の発表を行います.

論文題目:
論文概要:

ソフトウェアへの変更は多くの箇所に影響が伝播する.その解析は困難であるため必要な変更箇所が見落とされることがある.この問題に対し,改版履歴から相関ルールを抽出し変更忘れを指摘する手法が提案されてきた.しかし,共変更ルールは改版履歴に依存し,新規ファイルへの対応ができないというCold-start問題が存在する.本研究は変更された要素名を構成する単語間の共起関係に着目し,過去の変更を構成する要素名の特徴を学習するモデルを提案する.

本研究では,周辺の単語から中心語を予測するCBOWモデルを変更された要素から変更を忘れた要素を予測する問題設定に適用し,要素名をそのまま用いるCBOW法と要素名を構成する単語の特徴を学習するSubword法の2つの手法を提案する.提案手法では,Javaプロジェクトを対象とし,変更されたファイルを構文解析することでメソッド粒度の変更情報を取り出し,この情報を基づいてモデルを訓練する.変更された要素名を単語に分解しその特徴を学習することで,Cold-start問題に対応する.提案手法の推薦性能を確認するため,提案手法と相関ルールマイニングを比較実験を行った.この実験により,CBOW法は相関ルールマイニングより推薦性能が改善した傾向があることを示した.そして,Subword法はmacro recall@kの評価尺度では相関ルールマイニングより推薦性能が改善した傾向があることを示した.

Cold-start問題に対する提案手法の効果を確認するため,変更されたJavaメソッドの大半が新規メソッドの場合と変更されたJavaメソッドの全てが新規メソッドの場合を設定し,提案手法と相関ルールマイニングのそれぞれの推薦性能を確認した.この実験により,変更されたJavaメソッドの大半が新規メソッドの場合に対してSubword法が一番良い結果を得たことを示した.そして,変更されたJavaメソッドの全てが新規メソッドの場合であっても,Subword法は25%の推薦で,変更忘れのJavaメソッドを指摘できることを示した.

最後に,提案手法と相関ルールマイニングのそれぞれ推薦しやすいと推薦し難いの場合を確認するための実験を行った.この実験により,全ての場合においてCBOW法は相関ルールマイニングより推薦性能が高い傾向があり,変更されたJavaメソッドの大半が頻繁に変更されたものの場合においてSubword法は相関ルールマイニングより推薦性能が高い傾向があることを示した.