[学士論文] プログラム変更支援システムにおける累積尤度を用いた推薦手法

小林研B4の山森さんが学士論文の発表を行いました.

論文題目:プログラム変更支援システムにおける累積尤度を用いた推薦手法
論文概要:

ソフトウェアの大規模化に伴い、不具合修正や機能追加といった保守工程において依存関係を解析しながら影響の波及先を特定する労力が増大している。変更の影響によって修正が必要な箇所を見落とすことを防ぐために、開発者の開発履歴を用いた変更支援手法が近年盛んに研究されている。

従来の版管理システムのコミット単位での解析では、プログラムの変更順やプログラムを参照した履歴などが記録されない。そのため先行研究においては統合開発環境のエディタ上での変更および参照を操作履歴として記録し、2 つの変更イベントの間で発生した参照イベントを変更コンテキスト情報として用いる変更支援手法が提案された。しかしながら、この先行研究ではある変更による影響が複数個所に波及する場合、直後の変更以外を適切に推薦できない場合がある。

本研究では、変更コンテキストだけでなく、その時点までの推薦履歴を考慮した推薦手法を提案する。提案手法では直前の変更内容に基づいた次に必要な変更箇所の尤度に、以前の推薦における尤度を累積することで、複数の波及先の問題を解決する。提案手法による推薦を実現するEclipse プラグインを実装し、実際の開発で利用できる環境も整えた。

15 人分の作業履歴を利用した交差検定により、ファイルレベルでは5 つ前の、メソッドレベルでは6 つ前の推薦まで考慮した場合に推薦精度が最大となること、提案手法のDCG はメソッドレベルで0.68、ファイルレベルで0.70 となり、提案手法はいずれも先行研究より高い推薦精度であることを示した。