コードクローンに特化した自動リファクタリング手法の提案と実装
Project/Area Number |
04J08351
|
Research Category |
Grant-in-Aid for JSPS Fellows
|
Allocation Type | Single-year Grants |
Section | 国内 |
Research Field |
Software
|
Research Institution | Osaka University |
Research Fellow |
肥後 芳樹 大阪大学, 大学院情報科学研究科, 特別研究員(PD)
|
Project Period (FY) |
2004 – 2006
|
Project Status |
Completed (Fiscal Year 2006)
|
Budget Amount *help |
¥2,800,000 (Direct Cost: ¥2,800,000)
Fiscal Year 2006: ¥900,000 (Direct Cost: ¥900,000)
Fiscal Year 2005: ¥900,000 (Direct Cost: ¥900,000)
Fiscal Year 2004: ¥1,000,000 (Direct Cost: ¥1,000,000)
|
Keywords | コードクローン / リファクタリング / ソフトウェア保守 / 可視化 / 理解支援 / Javaプログラム / ツール |
Research Abstract |
本年度はまず、コードクローンに対するリファクタリングの有効性を確認するために、リファクタリングがソフトウェアの保守に与える効果を調査した。具体的には、ソフトウェアに対して修正が加わる過程においてどのようにコードクローンが変化しているか、およびリファクタリングにより複雑度メトリクスの値がどのように変化するかを調べた。調査の結果、コードクローンに対するリファクタリングは複雑度メトリクスの値は改善するとは限らないが、一度修正が加えられたコードクローンには、その後も引き続き修正が加えられる傾向であることが判明した。このため一度修正が加わったコードクローンに対してリファクタリングを行うことにより、その後の保守コストを削減することができるといえる。 また、コードクローンに対するより効率的な分析作業を実現するために、調査の対象とならないコードクローンのフィルタリングを行う手法を提案した。これまでの経験により、ツールによるコードクローン自動検出では、連続した変数宣言やswitch文のcaseエントリなど、調査を行う必要のないコードクローンを多数検出してしまうことがわかっている。このようなコードクローンをフィルタリングすることにより、より効率的に分析作業を行うことができる。このようなコードクローンのフィルタリング方法をメトリクスRNRとして提案し、昨年度実装したツールGeminiに追加実装した。また、オープンソースのソフトウェアに対して実験を行い、調査すべきコードクローンを誤ってフィルタリングすることなく、調査の必要のないコードクローンの約2/3のフィルタリングができていることを確認した。
|
Report
(3 results)
Research Products
(17 results)