2010 Fiscal Year Annual Research Report
プログラム依存グラフを用いたコードクローン検出法の実用化に関する研究
Project/Area Number |
22700031
|
Research Institution | Osaka University |
Principal Investigator |
肥後 芳樹 大阪大学, 大学院・情報科学研究科, 助教 (70452414)
|
Keywords | コードクローン / ソフトウェア保守 / ソフトウェア工学 |
Research Abstract |
本年度は既存研究を精査し,申請者自らが既存呪法をツールとして実装し,そのツールを用いてコードクローン検出を行うことで,既存手法の問題点を洗い出した.そして,その問題点を解決すべく,以下の三つの手法を考案した. 1.PDG頂点間への実行依存の導入:従来のPDGにはデータ依存と制御依存の二種類が存在するが,この二種類の依存辺だけだと同形の部分グラフとして検出できない場合があることが確認された.実行依存を導入することで,より多くの同形部分グラフを検出可能になる. 2.双方向スライスの利用:PDGは有向グラフである.そのため,グラフの形によっては前方スライスのみ,または後方スライスのみでは検出できない同稀有部分グラフが存在していた.よって双方向スライスを用いる. 3.スライス基点とするPDG頂点数の削減:PDGを用いたクローン検出手法の大きな弱点は実行時間が長いことである.そのため,冗長と思われる検出処理を省くために,スライス基点とするPDG頂点数を削減する。 上記の各手法をツールとして実装した.そして,複数のオープンソースソフトウェアに対して実験を行った.その結果従来手法では検出できないクローンを多数検出できていること,また,従来手法に比べ最大で検出に必要なコストが36%にまで減少していることが確認できた. 作成したツールは,http://sdl.ist.osaka-u.ac.jp/~higo/cgi-bin/moin.cgi/scorpioにて公開している.すでにこのツールは他の研究でも使われ始めている.
|