(日本語) [学士論文] 変更履歴の事前学習に基づく分散表現による変更推薦

Sorry, this entry is only available in Japanese.

小林研B4の北林さんが学士特別課題研究論文(旧学士論文)を提出しました.

題目:変更履歴の事前学習に基づく分散表現による変更推薦
内容梗概:

近年のソフトウェアプロジェクトの大規模化・複雑化により,不具合修正や機能追加の際,変更が波及する個所を全て特定することが困難になっている.変更の波及を見落としてしまった場合,本来変更すべきプログラムの一部を変更し忘れる「変更漏れ」に繋がる.変更漏れはバグの発生などを誘発するため,ソフトウェア開発における重大な問題の1つである.

変更漏れに対処するため,ファイル同士が同時変更される傾向を「共変更ルール」という形で抽出し,開発者に対して変更すべきファイルを推薦する手法が提案されてきた.しかし,共変更ルールによって捉えることのできるファイル間の関係性には限界がある.例えば,共変更ルールは過去に変更履歴の中に現れた共起関係しか指摘できないという問題点がある.

本研究はファイルの変更履歴に対して分散表現を学習するアルゴリズムを適用し,共変更ルールでは捉えきれないファイル間の関係性を変更推薦に応用する手法を提案する.

ソフトウェアの変更履歴に基づいて学習した分散表現を分析した先行研究は存在しない.そこで,プロジェクトの変更履歴に基づくファイルの分散表現がどのような特徴を示しているのか明らかにする実験を行った.本研究では,共変更ルールによって推薦されるファイルとベクトル空間上で近傍に存在するファイルを比較する実験と,ベクトル空間上で近傍に存在するファイルの組に対して共変更ルールで推薦されるファイルを比較する実験を行った.結果,ベクトル空間上で近傍に存在するファイルは類似した共変更関係を持つことを示した.また,近傍に存在するファイル同士が互いに共変更の関係にあるとは限らないことも明らかにした.

次に,学習したファイルの分散表現を変更推薦に応用する方法を考察した.本研究では,ベクトル空間上での近接性を利用することにより,変更履歴中に直接現れない潜在的な共変更関係を捉えることができると考えた.本研究は,共変更ルールの右辺を分散表現に基づいて拡張する手法と,左辺を拡張する手法の2つにより,潜在的な共変更関係を利用することを試みた,実験の結果,後者の手法によって$Recall$を向上させられることを示し,分散表現によって明らかにできる潜在的な共変更関係が存在することを示した.