研究課題/領域番号 |
17200001
|
研究機関 | 大阪大学 |
研究代表者 |
井上 克郎 大阪大学, 大学院・情報科学研究科, 教授 (20168438)
|
研究分担者 |
楠本 真二 大阪大学, 大学院・情報科学研究科, 教授 (30234438)
松下 誠 大阪大学, 大学院・情報科学研究科, 准教授 (60304028)
石尾 隆 大阪大学, 大学院・情報科学研究科, 助教 (60452413)
|
キーワード | コードクローン / コードクローン分析 / ソフトウェア保守 |
研究概要 |
昨年度に引き続き、ギャップを含むコードクローンの分析技術や、コードクローン分類によるバグ発見手法に関する課題に対して取り組み、以下のような成果を得た。 既存のコードクローン検出手法の多くは、連続する一致部分を求めるアルゴリズムを採用している。そのため、連続する一致部分中にはギャップ(不一致部分)を含むことができず、従ってギャップドクローンを検出することができなかった。そこで、既存のコードクローン検出手法によって得られたコードクローンを入力とし、グラフマイニングアルゴリズムの1つであるAGMアルゴリズムを用いることによって、ギャップを含むコードクローンを検出する手法について研究を行った。一般的に、ギャップを含むコードクローンを直接求める手法では計算量の爆発が起きやすいが、本手法を用いることによって高速にギャップを含むコードクローンを検出することができるようになった。また、本手法を既存のコードクローン検出ツールであるCCFinderの後処理システムとして実装し、複数のオープンソースソフトウェアに対して適用を行った。その結果、多数のギャップを含むコードクローンを検出することができた。 ソフトウェアの保守を行う際、コードクローンの存在が保守作業を困難にするとされているが、実際には検出され得るすべてのコードクローンがそのような要因となるわけではない。そこで、事前に何らかの問題を抱えていることがわかっているソースコードを入力として与え、その入力のコードクローンを検出するための手法について考察を行った。この時、単にソースコード上での文字の並びが一致するかどうかではなく、ソースコード中の識別子や構文要素といった、ソースコードの構造的な特徴を用いることにより、保守作業において問題となるコードクローンのみを検出できるようにした。
|