On Refactoring Support Based on Code Clone Dependency Relation

  • Authors:
  • Norihiro Yoshida;Yoshiki Higo;Toshihiro Kamiya;Shinji Kusumoto;Katsuro Inoue

  • Affiliations:
  • Osaka University;Osaka University;National Institute of Advanced Industrial Science and Technology;Osaka University;Osaka University

  • Venue:
  • METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Generally, code clones are regarded as one of the factors that make software maintenance more difficult. A code clone is a set of source code fragments identical or similar to each other. From the viewpoint of software maintainability, code clones should be removed. However, sometimes there are dependency relations among each of which belong to the different code clone, and it is advisable to refactor all of such code clones at once. In this paper, we focus on the case that such code fragment corresponds to a method body in Java programs. We defined "chained method" as a set of methods that have dependency relations. A set of "chained methods" whose elements are each otherýs code clone is called "chained clone", and an equivalence class of "chained clone" is called a "chained clone set". We propose a refactoring support method for "chained clone set" by providing an appropriate refactoring pattern to them. Finally, we present the "chained clone set" refactoring support tool that we have developed, together with some case studies to show the usefulness of the proposed method.