B. Du Bois, S. Demeyer, J. Verelst, T. Mens, and M. Temmerman (Belgium)
Comprehension, refactoring, decomposition
Continuous alterations and extensions of a software system introduce so called god classes, accumulating ever more responsibilities. As god classes make essential steps in program comprehension harder, it is expected that effec tive and efficient techniques to resolve them will facilitate future maintenance tasks. This work reports on a laboratory experiment with 63 computer science students, in which we verified whether the decomposition of a god class using well-known refac torings can affect comprehensibility of the relevant code part. Five alternative god class decompositions were de rived through application of refactorings, by which the re sponsibilities of a natural god class were increasingly split into a number of collaborating classes. Our results indicate that the derived class decompo sitions differed significantly with regard to the ability of students to map attributes in the class hierarchy to descrip tions of the problem domain. Moreover, this effect has been found to interact with the institution in which the partici pants were enrolled, confirming that comprehensibility is a subjective notion for which we have to take into account people’s skills and expectations. This work indicates that improving comprehensibil ity is within the grasp of a single maintainer preparing for future change requests by redistributing the responsibilities of a god class using well-known refactorings.
Important Links:
Go Back