2017 Fiscal Year Annual Research Report
Retrieving code clones that are harmful for software quality
Project/Area Number |
17H01725
|
Research Institution | Osaka University |
Principal Investigator |
肥後 芳樹 大阪大学, 情報科学研究科, 准教授 (70452414)
|
Project Period (FY) |
2017-04-01 – 2020-03-31
|
Keywords | コードクローン / 自動生成ファイル / 自然さ |
Outline of Annual Research Achievements |
本年度は,プログラミング言語に依存するコードクローンを取り除く手法の準備として,コードクローンを検出する必要が無いファイルの自動特定手法を考案した.提案手法は,開発者が手作業により作成したコードとコンパイラコンパイラ等のツールにより自動生成したファイルを自動分類するためのものである.前者はコードクローンを検出し保守作業を行う必要があるが,後者についてはその必要が無いため,そもそもコードクローンを検出すること自体が無駄である.自動生成したファイルを人間が手直しして利用することはないのがその理由である.そのようなファイルを自動特定し,コードクローンの検出対象から除外することにより,検出する価値がないコードクローンを人間が目で見る手間を省くことができる. 提案手法をツールとして実現した.実装したツールはまず人間が手動で分類した結果(開発者が作成したファイルと自動生成ファイル)を受け取り,機械学習のモデルを構築する.そして,判定したいファイルを入力として受け取り,そのファイルが手作業により作成されたものか自動生成かを判定する.最初に人間が手動で判定した結果を必要とするのが手間ではあるが,一度モデルを構築してしまえば,同じプログラミング言語であればどのソフトウェアに対しても適用可能である. オープンソースソフトウェアに対して評価実験を行ったところ,約95~99%の精度で,自動特定できることを確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
コードクローンを検出する価値がないファイルを自動特定する手法を考案し,その手法が極めて高精度で自動生成ファイルを特定できることを確認した. 実施内容の中には当初は予定していなかった作業も含んではいるが,3年間の研究計画で問題なく当初の予定を達成できる見込みであり,初年度の成果としては順調に進展していると言える.
|
Strategy for Future Research Activity |
今年度は,複数プロジェクトからコードクローンを同時に検出することにより,ソフトウェア品質に悪影響を与えるクローンかどうかを自動判定する手法に取り組む.例えば,100のソフトウェアから同時にクローンを検出して,そのうちの80のソフトウェアにまたがって存在するクローンは,ソフトウェア固有の問題で発生したコードクローンではなく,そのプログラミング言語の都合上,どうしても生成されてしまうと考えられる. また,複数プロジェクトからの同時検出した結果を可視化および分析するツールの開発も行う.
|