2014 Fiscal Year Research-status Report
Project/Area Number |
26730036
|
Research Institution | Nagoya University |
Principal Investigator |
吉田 則裕 名古屋大学, 情報科学研究科, 准教授 (00582545)
|
Project Period (FY) |
2014-04-01 – 2017-03-31
|
Keywords | コードクローン |
Outline of Annual Research Achievements |
本研究で提案するツールである「トピック抽出を用いたコードクローン検出ツール」の実装を行った.本ツールを実装するために,まずソースコードに含まれるトピック(対象と関連の強い単語のリスト)を抽出する機能を,自然言語処理で用いられている文章中からトピックを自動的に特定する手法を用いて実装した.次に,トピックを特定した結果を用いて,コード片間の等価性を判定する機能を実装した.高速に等価性を判定するために,コード片に含まれるトピックを特徴ベクトルで表現し,ハッシュ関数に基づくクラスタリング手法を用いた.ソースコードに含まれるトピックの抽出では,各ソースファイルに含まれる語(基本的には識別子名.ただし,複数の語からなる識別子名は各語に分割)を抽出し,トピック(ソースファイルと関連の強い単語のリスト)の特定を行った.コード片間の等価性を判定するため,構文木中の部分木に対して特徴ベクトルを付加した.特徴ベクトルは,部分木に含まれるトピックの分布を表す.次に,特徴ベクトル間の距離に基づいて部分木のクラスタリングを行った.最後に,同一クラスタに属した部分木に対応するコード片を等価なコード片として提示した.各部分木をベクトルで表現する利点は, 部分木間の距離を求める問題をベクトル間の距離を求める問題に変換することで,計算量を低下させることができることである.特徴ベクトルの数が膨大になると,クラスタリングにかかる計算時間が大きくなると考えられるため,LSH (Locality Sensitive Hashing)というハッシュ関数を用いたクラスタリングを行った.LSHは,「類似したベクトルは高い可能性で同じハッシュ値になり,異なるベクトルは高い可能性で異なるハッシュ値になる」という性質を持つハッシュ関数である.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本研究で提案するツールである「トピック抽出を用いたコードクローン検出ツール」の実装について,概ね順調に行うことができた.ツールを実装するための情報収集についても,国内研究会への参加を通してある程度行うことができた.ただし,海外の大学に在籍する研究者からの情報収集については,学内業務の都合で国際会議に参加できなかったため,不安が残る.
|
Strategy for Future Research Activity |
これまで,ツールを実装するための情報収集については,国内研究会への参加を通してある程度行うことができた.ただし,海外の大学に在籍する研究者からの情報収集については,学内業務の都合で国際会議に参加できなかったため,情報収集や専門家との議論の深さについて不安が残っている.これを解決するために,来年度は専門家の所属大学を訪問する,もしくは専門家が集まる国際会議への参加を通して,十分な議論および情報収集の時間を確保したい.
|
Causes of Carryover |
国際会議への参加を通して専門家と議論することにより実装方法に関する情報収集を行う予定であったが,学内業務の都合で実施できなかった.そのため,国際会議参加に必要な旅費および登録費が残った.
|
Expenditure Plan for Carryover Budget |
海外の専門家が在籍する大学へ訪問,もしくは専門家が集まる国際会議への参加を通して情報収集を行う.これらを実施するための旅費および国際会議への登録費として使用する.
|
Research Products
(13 results)