楠本研究室

業績一覧

ホーム業績一覧

プログラム依存グラフを用いたコードクローンのインクリメンタルな検出手法

プログラム依存グラフを用いたコードクローンのインクリメンタルな検出手法
修士論文, 大阪大学
概要: ソフトウェアの保守作業を困難にする要因の1つとして,コードクローンが指摘されている. コードクローンの存在により,ソフトウェアの理解が難化し,不具合等に対する一貫した修正が困難になる. そのような影響を軽減するには,ソフトウェアに存在するコードクローンの把握が必要であるため,コードクローンの自動検出を行う手法が多数提案されている. 特に近年は,インクリメンタルな検出手法が注目されている. この種の手法は,対象ソフトウェアに対する初回の検出処理は全てのファイルを解析するため長時間を要するものの,2度目以降は過去に解析した情報を再利用することで,短時間でコードクローンを検出することができる. 現在までに,行単位や字句単位のコードクローンをインクリメンタルに検出する手法が提案されている. しかし,プログラム依存グラフを用いたコードクローン検出においては,インクリメンタルな処理は行われていない. 本研究では,他の手法で検出できないコードクローンを発見できる一方で,処理時間が他の手法に比べて長くなるプログラム依存グラフを用いた検出を高速化し, 実用性を高めるため,インクリメンタルな処理を行う手法を提案する. その際にはそれに適したデータ構造が必要になるため,新たに“ユニット”というデータ構造を定義している. 本手法を実装したツールを用いた実験の結果,大規模なソフトウェアに対し,インクリメンタルな処理が可能な状況において,非常に短い時間でコードクローンを検出することができた. また,検出されたコードクローンはプログラム依存グラフを用いた既存の検出手法と極めて類似しており,検出結果も適切であるといえる. タグ: clone, detection, program, dependency, graph, incremental
@mastersthesis{西野稔2011,
  author = {西野 稔},
  title = {プログラム依存グラフを用いたコードクローンのインクリメンタルな検出手法},
  school = {大阪大学},
  year = {2011},
  month = {feb}
}