概要: ソフトウェア開発において,開発者がソースコードの差分を理解することは重要である.ソースコードの差分を検出するツールとしてGumTreeがある.GumTreeは変更前後のソースコードを入力として受け取ると,内部で抽象構文木を生成し,削除・挿入・移動・更新といった操作を抽象構文木のノード単位で検出する.しかし,GumTreeは単一ファイルの差分しか検出できないため,ファイルを横断するソースコードの移動を検出できないという問題点がある.そこで本研究では,プロジェクトに含まれる全てのソースファイルから1つの抽象構文木を構築し,ファイルを横断するソースコードの移動を検出する手法を提案する.そして8個のオープンソースソフトウェアに対して提案手法を用いて実験を行った結果,全てのプロジェクトから合計で76,600個のファイルを横断する移動を検出できた.また,検出結果を確認したところ,ファイルを横断するソースコードの移動やファイル名に,いくつかの特徴が得られた.さらに,ソースコードの移動を検出できる既存ツールと比較を行った結果,提案手法のみが検出できる移動の特徴についても明らかになった.
@mastersthesis{藤本章良2020a,
author = {藤本 章良},
title = {抽象構文木を利用したファイル間の移動コード検出},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2020},
month = {feb}
}