Work experience versus refactoring to design patterns: a controlled experiment

Abstract:Program refactoring using design patterns is an attractive approach for facilitating anticipated changes. Its benefit depends on at least two factors, namely the effort involved in the refactoring and how effective it is. For example, the benefit would be small if too much effort is required to translate a program correctly into a refactorized form, and whether such a form could effectively guide maintainers to complete anticipated changes is unknown. A metric of effectiveness is the maintainers’ performance, which can be affected by their work experience, in realizing the changes. Hence, an interesting question arises. Is program refactoring to introduce additional patterns beneficial regardless of the work experience of the maintainers? In this paper, we report a controlled experiment on maintaining JHotDraw, an open source system deployed with multiple patterns. We compared maintainers with and without work experience. Our empirical results show that, to complete a maintenance task of perfective nature, the time spent even by the inexperienced maintainers on a refactorized version is much shorter than that of the experienced subjects on the original version. Moreover, the quality of their delivered programs, in terms of correctness, is found to be comparable.
Grants:CityU 1195/03E, HKUST 6187/02E
Citation:T. H. Ng, S. C. Cheung, W. K. Chan, and Y. T. Yu, "Work experience versus refactoring to design patterns: a controlled experiment," in Proceedings of the 14th ACM SIGSOFT Symposium on Foundations of Software Engineering (SIGSOFT 2006/FSE-14), pages 12-22, ACM Press, New York, NY, USA (2006).
Remarks:[Acceptance rate: 20.0%, 25 out of 125]
Related Papers:-

Selected Tags

Tag Groups


ACM SigSoft
IEEE Software Engineering Online