Trends in Java code changes: the key to identification of refactorings?
Steve Counsell, Youssef Hassoun, Roger G. Johnson, Keith Leonard Mannock, Emília Mendes · 2003
Changes made to object-oriented (OO) systems over time provide an insight into both design robustness and changes in requirements. When expressed at a high level of abstrac-tion, observing trends in changes to code can indicate op-portunities for refactoring at the architectural level. In this paper, we empirically investigate the changes made to a set of fifty-two Java library classes over a three year period. The research attempts to support the hypothesis that cer-tain types of changes made to Java code fall into distinct trends and, furthermore, are likely to be made at a high level of abstraction; in this case to method signatures. Our empirical results show that change trends are identifiable thus informing well-known refactorings, but not as we had envisaged. Control logic constructs were found to be the focus of most changes to the library classes examined.