[修士論文] コミットの付加情報を考慮した協調フィルタリングに基づく不完全変更の補完支援

小林研M2の北林さんが修士論文を提出しました.

題目:コミットの付加情報を考慮した協調フィルタリングに基づく不完全変更の補完支援
論文概要:

ソフトウェア開発が長期化するとプログラム要素(ファイルやクラス,メソッド)同士の依存関係は複雑化する. ソフトウェア開発者にとってそのような状況で変更の波及個所を把握することは困難であり,しばしば不完全な変更が発生する.不完全変更はバグの要因ともなるため,開発上の重要な課題の1つである.

この問題に対処するため,開発者の変更に対し同時変更すべき個所を推薦する手法が提案されている.代表的なものが改版履歴に対し相関ルールマイニングを適用する手法群である.これらの手法は,プログラム要素が改版履歴の中でどれだけ同時に変更されてきたという情報を利用し,開発者が現在変更している要素と強い共変更関係にあるものを抽出する.しかし,この種の既存手法ではプログラム要素の共変更関係のみを利用しており,改版履歴に付随する文章などの有益な情報を活用していない.

そこで,本研究ではコミット間で様々な情報に基づく類似度を計測し,それらを活用した変更推薦手法を提案する.提案手法では開発者が現在加えようとしている変更と改版履歴中の過去の変更を比較し,その中から抽出された類似変更の内容を集約することで同時変更すべきプログラム要素を推薦する.これにより,既存手法と比べてより変更全体の特徴を捉えた推薦が可能となる.本研究では,変更要素に対する推薦手法として4種,文章情報に対する推薦手法として5種,それらの統合手法として2種を比較検討した.

提案手法の有効性を確認するために,OSSで実際に発生した不完全変更のデータセットを対象に手法を適用し,欠損個所を推薦できるかという評価実験を行った.提案手法を比較した結果,変更推薦に有益な情報として「プログラム要素の出現頻度」「コミットメッセージ」「変更の差分」などがあること,変更要素と文章情報の双方が変更推薦に有益であることを明らかにした.また,既存手法との比較においては計測した全ての評価尺度において向上が見られ,特に実用での有益性を示すために重要なHit@10においては30%近い改善が確認できた.実行時間の観点では既存手法よりも長時間を要する傾向にあるものの,評価を行った範囲では1つの変更に対し最長でも30秒以内に推薦が可能であり,十分実用可能な範囲であることを示した.また,プロジェクト初期のような改版履歴が短く情報源が限られる状況であっても,提案手法は比較的安定して推薦を行えることを確認した.