Many of the seventy-two refactorings originally proposed by Fowler have the aim of reducing coupling in classes and thereby aiding programmer maintainability. While we might assume that classes with high levels of coupling would be the targets for refactoring more often than any other type of class, no empirical evidence exists to support this assumption. In this paper, we explore that open question through the extraction of fifty-two of Fowler's catalog of refactorings drawn from versions of four open-source systems. We compare the coupling characteristics of each set of refactored classes with the corresponding set of non-refactored classes (those for which no refactorings were applied across versions), we seek to inform one overriding research question: is there a significant difference between these two sets of classes in terms of their level of coupling? Results showed that highly-coupled classes were more prone to refactoring, particularly through a set of 'core' refactorings. However, wide variations were found across systems for our measures of coupling namely, fan-in and fan-out. Specific individual refactorings were also explored to gain an understanding of why these differences may have occurred.

Refactoring and its relationship with fan-in and fan-out: An empirical study

TONELLI, ROBERTO;MARCHESI, MICHELE;
2012-01-01

Abstract

Many of the seventy-two refactorings originally proposed by Fowler have the aim of reducing coupling in classes and thereby aiding programmer maintainability. While we might assume that classes with high levels of coupling would be the targets for refactoring more often than any other type of class, no empirical evidence exists to support this assumption. In this paper, we explore that open question through the extraction of fifty-two of Fowler's catalog of refactorings drawn from versions of four open-source systems. We compare the coupling characteristics of each set of refactored classes with the corresponding set of non-refactored classes (those for which no refactorings were applied across versions), we seek to inform one overriding research question: is there a significant difference between these two sets of classes in terms of their level of coupling? Results showed that highly-coupled classes were more prone to refactoring, particularly through a set of 'core' refactorings. However, wide variations were found across systems for our measures of coupling namely, fan-in and fan-out. Specific individual refactorings were also explored to gain an understanding of why these differences may have occurred.
2012
978-076954666-7
Coupling; Fan-in; Fan-out; Open-source; Refactoring; Software
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11584/109062
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 23
  • ???jsp.display-item.citation.isi??? 14
social impact