本研究の目的は,複数言語で開発されたウエブアプリケーションからコードクローンを検出するツールを開発し,有効性の評価を行うことである. 本ツールは複数言語で実装された単一ファイルに対して,単一ファイルが単一の言語で実装されるように分割し,ウェブアプリケーションに含まれるプログラム間の静的コールグラフを構築した.また,構築されたコードグラフから同型部分グラフの同値類を検出することによってコードクローンを検出する. 本ツールの有効性の評価するために,オープンソースソフトウェアプロジェクトに置いて開発されたウェブアプリケーションに対して開発されたツールを適用し,本ツールのコードクローン検出精度を確認した.具体的にはオープンソースソフトウェアプロジェクトで公開されているドキュメントおよびテストケースの情報に基づいて本ツールが検出したコードクローンの中でどれぐらい正解か含まれているかを判断した.また,本ツールによってコードクローンとして検出されたがドキュメントやテストケース上で類似していない,誤検出されたソースコードに対してその原因を調査し,このような間違いを行わないようにツールの改善を行った.さらに,オープンソースソフトウェアプロジェクトに公開されているドキュメントやテストケース上では類似しているが,本ツールが検出できないソースコードを何個か特定し,検出できなかったが原因を調査して検出するようにツールの改善も行った.
|