抽象構文木の構造を考慮した編集スクリプトのパターン抽出
修士論文, 大阪大学
概要: ソフトウェアの開発において,ソースコードの変更は繰り返される.
同じ変更が繰り返されるとき,その変更は変更パターンとして扱える.
変更パターンは統合開発環境の補完候補の計算や,自動プログラム修正の修正候補の生成に利用できる.
そのため,開発履歴から変更パターンをマイニングする手法が数多く提案されている.
変更パターンをマイニングする手法として,Negara らの研究がある.
Negara らの研究ではIDEの入力を監視し,一定時間間隔で編集スクリプトを求め,変更パターンをマイニングする.
しかし,Negara の手法には,「IDEのプラグインが必要」「不正確」「変更パターンの理解の難しさ」という課題がある.
このような課題が生じるのは,変更パターンをマイニングする際に抽象構文木の構造を考慮していないことが原因である.
そこで本研究では,抽象構文木の構造を考慮した変更パターンのマイニング手法を提案する.
提案手法はGitリポジトリを入力として受け取り,コミット間での編集スクリプトを計算し,抽象構文木に対して頻出部分木マイニングを行なうことで,抽象構文木の構造を保持した変更パターンを出力する.
また,提案手法をTC2Pとして実装し,TC2Pと既存手法である\negara らの研究と比較実験を行なった.
その結果,既存手法よりも正確に変更パターンをTC2Pはマイニングできただけでなく,既存手法ではマイニングできいなかった変更パターンもマイニングできた.
@mastersthesis{松本淳之介2020,
author = {松本 淳之介},
title = {抽象構文木の構造を考慮した編集スクリプトのパターン抽出},
school = {大阪大学},
year = {2020}
}