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