楠本研究室

業績一覧

ホーム業績一覧

極大クリーク列挙によるギャップを含むクローンセット検出手法の提案

極大クリーク列挙によるギャップを含むクローンセット検出手法の提案
修士論文, 大阪大学
概要: これまでに多数のコードクローン検出手法が提案されている.検出手法には互いに類似するコード片の組であるクローンペア形式で出力する手法と互いに類似するコード片の集合であるクローンセット形式で出力する手法がある.どちらの形式で出力すべきかはコードクローン情報の用途によって異なる.例えばソースコードの重複度を算出したい場合や,ある箇所からバグが見つかりその類似箇所も確認したい場合はクローンペア形式の出力で十分だが,類似コード片の集約や類似コード片のライブラリ化にはクローンセット形式で出力する必要がある.しかしコードクローン間に文の挿入や削除といったギャップを含んでいる場合,クローンセットの検出が難しくなる.そのため多くの既存手法ではギャップを含むコードクローンはクローンペアの形式で出力する.さらにクローンセットを検出できる手法は検出の精度や,スケーラビリティの面で課題が残る.したがってクローンペア形式で出力されたコードクローンの情報をクローンセット形式に変換する手法が必要である. そこで本研究では極大クリーク列挙を利用してクローンペア形式で出力されたコードクローンの情報からクローンセットを検出する手法を提案する.提案手法ではコード片を頂点,2 つのコード片がクローンペアであることを辺とみなしたグラフを作成したときに極大クリークを1 つのクローンセットとみなす.実験では提案手法を実装したツールを,5 つのオープンソースソフトウェアに対して適用した.その結果,ギャップを含まないクローンセットよりも平均2.4 倍も多くのギャップを含むクローンセットが得られた.さらにクローンセットの検出の実行時間も131 ミリ秒以下で高速に検出できた.さらに検出されたクローンセットを用いてリファクタリングを行い,その結果をプルリクエストを送り,2 個のプルリクエストがマージされた.
@mastersthesis{土居真之2020,
  author = {土居 真之},
  title = {極大クリーク列挙によるギャップを含むクローンセット検出手法の提案},
  school = {大阪大学},
  year = {2020},
  month = {feb}
}