[修士論文] 共変更の出現傾向を考慮した改版履歴分析の解析範囲動的決定

2/2 に小林研M2の内藤さんが修士論文の発表を行います.

論文題目:共変更の出現傾向を考慮した改版履歴分析の解析範囲動的決定
論文概要:

ソフトウェア開発の長期化にともない,ファイル間の依存関係は複雑化する.
開発者にとって,常に現在のタスクで変更が必要な箇所を全て把握することは困難である.
この問題に対処するため,改版履歴から共変更ルールを抽出することにより現在の変更で影響が生じる可能性のあるファイルを検出でき,それを開発者に推薦することが可能である.
このような変更支援において,先行研究では改版履歴全体を解析するのではなく直近の一定数のコミットに制限して解析する方が平均して精度が高いことを示している.
先行研究で示された解析範囲はあらゆるプロジェクトに同等の長さを適用することを前提としており,プロジェクトごとやコミットごとで解析範囲を切り替えるべきかは議論されていない.

本研究では,コミットごとに動的に解析範囲を決定する手法を提案し,改版履歴分析による変更推薦の精度向上を目指す.
提案手法は共変更ルールの抽出過程におけるルールの平均出現回数に着目することで,適した解析範囲の長さを推測するアプローチをとる.
提案手法では解析の前に改版履歴全体を走査し,コミット単位でルールの平均出現回数に対する閾値の算出を行う.
それにより開発者によるパラメータ指定を必要とせず,解析範囲を動的に決定する.

本研究では 12 の OSS を分析することで,解析範囲の最適長はプロジェクト単位に大きく異なることを示した.
また,変更推薦の精度向上のため,プロジェクト単位だけでなくコミット単位でも解析範囲を切り替えるべきであることを明らかにした.
そして,動的に解析範囲を推定する提案手法と先行研究で示された解析範囲の適用時における推薦性能の比較を行った.
その結果,提案手法の方が優れた性能を発揮する傾向にあることを確かめた.
特に大規模プロジェクトにおいて,大幅に推薦性能が向上することを示した.
実際に改版履歴分析を行う状況ではプロジェクト単位の最適長は未知数であり,提案手法はそれを適用したときと同程度の精度で変更推薦が可能であることを明かした.
動的に決まる長さはコミットごとの最適長に近い値を指す場合が多い一方で,長く解析をしてしまう場合もあるが,その分 Recall が高くなる傾向にあった.
さらに,提案手法は閾値決定のために改版履歴全体を走査するが,共変更ルールの抽出に掛かる時間は許容可能であり実用的な手法であることも示した.