[学士論文] リカレントニューラルネットワークと詳細な操作履歴を用いた変更支援手法

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

論文題目:リカレントニューラルネットワークと詳細な操作履歴を用いた変更支援手法
論文概要:

ソフトウェアの大規模化に伴い、依存関係によって変更の影響が波及する箇所を特定することが困難となるため、不具合修正や機能追加に費やされる労力は増加している。そのため、開発者の変更履歴を用いて変更の影響によって修正が必要となる箇所を特定する開発支援手法が盛んに研究されている。

従来手法の多くは、Git 等の版管理システムにおけるコミット単位の変更集合の解析を行う。変更された順序や変更に際して参照された情報は記録されていないため,頻繁に起こった共変更関係を利用して変更箇所を推薦する。そこで先行研究では統合開発環境Eclipse 上での変更、参照などの操作履歴を記録し、変更情報のみならず参照情報も用いた変更支援手法が提案された。しかし先行研究では変更推薦に直近の変更及び参照のみを用いており、一つの変更が複数個所に波及する場合に対応できない。

本研究では変更支援手法の新たなアプローチとして、リカレントニューラルネットワーク(RNN) を用いた手法を提案する。RNN は時間的に連続したデータを扱えるニューラルネットワークであり、これを用いることでそれまでの作業状況を考慮した変更支援が可能となる。本論文では、操作履歴中の変更情報のみを用いる手法と参照情報も合わせて利用する手法の2 つを提案する。

15 人分の操作履歴を使用して、2 つの提案手法と変更対を利用した従来手法の推薦精度を評価する実験を行った。実験の結果、変更情報のみを用いる手法は平均逆順位(MRR) がメソッドレベルで0.041, ファイルレベルで0.141 上昇し、推薦精度が向上することを確認した。参照情報も合わせて利用する場合はMRRがメソッドレベルで0.016 程度上昇し、参照情報は細かい粒度での推薦に有効に働くことが分かった。