コードクローンのリファクタリングとは,ソースコード中に含まれるコードクローンの集合(互いに類似したコード片の集合)を単一の関数にまとめることである.あるコード片を修正するとその全てのコードクローンを見つけ出し,修正を検討する必要があるため,コードクローンをリファクタリングすることで保守コストを削減できる.本研究では,統合開発環境を使用する開発者の編集作業をオンライン分析することで,コードクローンに対する変更に対応するリファクタリングを支援する環境を構築した.本環境の実現により,開発者はコードクローンに対する変更を検知し, 適切なリファクタリングを行うことで,保守性の高いソースコードを開発することができる.評価実験として,所属研究科の大学院生に利用してもらう短期間の実験と,企業の開発者に長期間利用してもらう実験の2 種類を行った.大学院生に利用してもらう前者の実験は,使用するコードクローン検出ツールの選定やパラメータの調整を目的として実施した.精度の評価には,Precision とRecall を用いた.この実験では,申請者が予め用意したソースコードに対して保守作業をしてもらい全変更作業を記録することで,推薦すべき全リファクタリングを列挙し,Recall を計測した.「即時コードクローン検出プラグイン」について,コードクローンを作りこんでどのくらいの時間をおいて,通知すべきかを明らかにした.評価基準としては,何秒後に通知すると最も利用者にリファクタリングしてもらえる割合を用いた.企業の開発者に利用したもらう後者の実験は,提案する環境の有効性評価を目的として実施した.
|