研究概要 |
今年度は主に,文の追加・削除や識別子の修正漏れのような,不具合の可能性が高いコードクローンのみをソースコードから抽出することに取り組んだ.既存のコードクローン検出手法は,それぞれ用いている検出アルゴリズムが異なるため,同一ソースコードから検出処理を行った場合あっても,検出されるコードクローンは異なる.このような既存の検出手法によって検出されるコードクローンの差異に着目し,それらの差分を取得することで不具合の可能性が高いコードクローンの抽出を試みた. 実際に手法を簡単なツールとして実装し,大規模オープンソースソフトウェアに対して実験を行った.その結果,通常のコードクローン検出ツールのみを用いた場合に比べて,非常に短時間で目的め不具合を発見することができた.また,コードクローンに起因する不具合を発見するための既存研究と比較しても,より多くの不具合を検出できていることを確認できた.しかし検出されたコードクローンには,同じようなコードの繰り返しを多く含むものや,デバック用コードの存在により誤って抽出されていたも,のも存在していた.このようなコードクローンは特に不具合の原因とはならないため,これらを削除するフィルタリング手法を考案することでさちに精度を高めることができると考えられる. さらに,この研究を行う上で調査を行ったコードクローンに関する既存研究を体系化してまとめ,サーベイ論文として執筆した.
|