Does the Reengineering Pattern ``Refactor to Understand'' Improve Program Comprehension?

TitleDoes the Reengineering Pattern ``{R}efactor to {U}nderstand'' Improve Program Comprehension?
Publication TypeConference Paper
Year of Publication2005
AuthorsDu Bois, B, Demeyer S, Verelst J
Conference NameProceedings {CSMR}'05(Conference on Software Maintenance and Reengineering)
PublisherIEEE Press
Abstract

Program comprehension is a fundamental requirement for all but the most trivial maintenance activities. Previous research has demonstrated key principles for improving comprehension. Among others, these consist of the introduction of beacons as indexes into knowledge, and the chunking of low-level structures into higher-level abstractions. These principles are naturally reflected in the reverse engineering pattern Refactor to Understand, which uses incremental renaming and extracting of program elements as the means to decipher cryptic code. In this paper, we discuss a controlled experiment to explore differences in program comprehension between the application of Refactor to Understand and the traditional Read to Understand pattern. Our results support added value of Refactor to Understand regarding specific aspects of program comprehension and specific types of source code. These findings illustrate the need for further experiments to provide clear guidelines on the application of refactorings for improving program comprehension.