研究課題
本年度は2つのサブテーマについて取り組んだ.1つ目は,クローンセット形式でのコードクローン検出法の提案である.コードクローン情報を活用するという観点ではクローンペア形式の検出よりもクローンセット形式の検出の方が望ましいが,既存の検出手法はクローンペア形式でコードクローンを検出するものばかりである.クローンペア形式の検出では,検出された有害なコードクローン情報を活用することは難しい.そのため,有害なコードクローン情報を有効に活用するための基盤として,クローンセット形式で高速にコードクローンを検出する手法について取り組んだ.2つ目は,コードクローンを対象とした自動リファクタリング法の提案である.すでに既存手法でコードクローンはリファクタリングすべきコードとして指摘されており,さまざまなリファクタリング方法が提案されている.既存手法は,コードクローンになっているコードの関係(同じクラス内に存在するのか,共通の親クラスを持つ異なる子クラスに存在するのか等)を利用して,どのようにコードクローンが除去できるのかを提案するが,それ以降は開発者が手動でリファクタリングを行う必要がある.本研究では,検出されたコードクローンのうち,(1)リファクタリングが可能なものを特定し,(2)そのコードクローンの除去を行い,(3)テストを実装し動作が変わっていないことを確認する,という3つの処理を完全に自動で行う手法について取り組んだ.現時点では,Extract Methodリファクタリングパターンのみが対象となっているが,Pull Up MethodやForm Template Methodなど他のリファクタリングパターンに拡張することも可能である.
令和元年度が最終年度であるため、記入しない。
すべて 2020 2019
すべて 雑誌論文 (2件) 学会発表 (11件) (うち国際学会 5件)
Journal of Systems and Software
巻: 165 ページ: 110571~110571
10.1016/j.jss.2020.110571
電子情報通信学会論文誌D 情報・システム
巻: J102-D ページ: 730~739
10.14923/transinfj.2018JDP7074