2023 年 40 巻 1 号 p. 1_97-1_116
ソースコード編集時の操作履歴を用いることで,ソースコードの過去の変更を詳細に知ることができる.しかしながら,一つ一つの編集操作を調べていくことは大変な労力を要するため,より効率良く履歴を理解する手法が求められる.そこで,我々はより抽象的で理解が容易な変更履歴の生成を目指して,操作履歴グラフOHG (Operation History Graph) の研究を進めてきた.本論文では,OHGを拡張したFOHG(Full-version OHG) を提案する.FOHGでは,OHGと異なり,操作履歴中の各編集操作終了時点のコードを解析して得られる抽象構文木の情報をメソッド内部まで含めてすべて保持し,なおかつ要素の改名や移動等の情報をグラフのエッジにより保持している.本論文では,FOHGの構成,グラフ構築手法について述べる.さらに,変更履歴の中でも特に重要と考えられるリファクタリングに着目し,過去に適用されたリファクタリングをどの程度正確にFOHGが表現しているかを評価した結果について述べる.結果として,既存の操作履歴に基づくリファクタリング検出手法と比べて,提案手法は多くの種類のリファクタリングを検出可能であること,手作業で行われたリファクタリングに関して,カット&ペーストやトークンの一部の変更が行われたときに生成されるエッジを利用することで理解支援が可能であることを確認できた.