Identifying refactoring opportunities by identifying dependency cycles

  • Authors:
  • Hayden Melton;Ewan Tempero

  • Affiliations:
  • Department of Computer Science, University of Auckland, Auckland, New Zealand;Department of Computer Science, University of Auckland, Auckland, New Zealand

  • Venue:
  • ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The purpose of refactoring is to improve the quality of a software system by changing its internal design so that it is easier to understand or modify, or less prone to errors and so on. One challenge in performing a refactoring is quickly determining where to apply it. We present a tool (Jepends) that analyses the source code of a system in order to identify classes as possible refactoring candidates. Our tool identifies dependency cycles among classes because long cycles are detrimental to understanding, testing and reuse. We demonstrate our tool on a widely-downloaded, open-source, medium-sized Java program and show how cycles can be eliminated through a simple refactoring.