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
['Norihiro Yoshida', 'Yoshiki Higo', 'Toshihiro Kamiya', 'Shinji Kusumoto', 'Katsuro Inoue']
On refactoring support based on code clone dependency relation