2003 Fiscal Year Annual Research Report
コードクローン情報に基づくソフトウェア保守支援に関する研究
Project/Area Number |
15700031
|
Research Institution | Osaka University |
Principal Investigator |
楠本 真二 大阪大学, 大学院・情報科学研究科, 助教授 (30234438)
|
Keywords | コードクローン / メトリクス / Javaプログラム / 集約 |
Research Abstract |
本研究では,ソフトウェア中に含まれるコードクローン(類似したコード片の集合)を効率よく検出,除去する手法について堤案し,堤案手法に基づく支援ツールを開発した.提案手法は,Javaプログラムを対象とした.先ず,既に我々が開発してきている,高速なコードクローン検出ツールCCFinderを用いることによりトークン単位のコードクローンを検出する.しかし,トークン単位のコードクローンを一つの関数やモジュール等に集約することは無理があるため,そのコードクローンをプログラミング言語の構文規則に基づいて,集約が可能な単位に調整する.Javaプログラムの場合では,構造的なまとまりをもったブロック(宣言・メソッド,文等)がその単位となる.そして,調整したコードクローンに対して幾つかの特徴を計測するためのメトリクスを適用し,どのような集約が可能であるかを開発者に提示する.集約の手法は,メソッドの抽出(ソースコードのある一部分を新たなメソッドとして再定義すること)とメソッドの引き上げ(ある親子クラス関係が存在した場合に,子クラスに存在するメソッドを親クラスに引き上げること)の2種類を対象とした.更に,提案手法に基づいてJavaプログラム中のコードクローンの集約を支援するツールを開発した.最後に,開発した支援ツールを幾つかのオープンソースソフトウェア,研究室で開発している各種ツールに適用した.オープンソースソフトウェアとして有名なAnt(サイズは約18万行)に対して適用した結果では,15種類のコードクローンが抽出され,その中の12種類に対して効率よく集約を行うことができた.実際のソフトウェア会社で開発しているソフトウェアに対して開発したツールを適用し,提案手法の有用性の評価を行うことが今後の課題である.
|
Research Products
(4 results)
-
[Publications] 肥後芳樹: "類似コード片を利用したリファクタリングの試み"情報処理学会研究報告(2003-SE-143). Vol.2003,No.73. 29-36 (2003)
-
[Publications] Yoshiki Higo: "On Refectoring for Open Source Java Program"ACOSM 2003 Proceedings : Austrian Conference on Software Measurement. Volume 2. 247-251 (2003)
-
[Publications] 植田泰士: "開発保守支援を目指したコードクローン分析環境"電子情報通信学会論文誌D-I. Vol.86-D-I, No.12. 863-871 (2003)
-
[Publications] 泉田聡介: "ソフトウェア保守のための類似コード検索ツール"電子情報通信学会論文誌D-I. Vol.86-D-I, No.12. 906-908 (2003)