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.
No takes yet. Share an insight, caveat, or question.
Counsell et al. (2003) studied this question.
Synapse has enriched 3 closely related papers on similar clinical questions. Consider them for comparative context: