Issue No. 04 - July/August (2011 vol. 28)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2011.76
Refactoring has a more precise definition than common practice might suggest: it's a change that improves the developmental quality of some part of a system while preserving its functional behavior. Refactoring isn't limited to code detail but can range up to the larger scale of a system's software architecture. Yet refactoring is limited in what qualities it can help improve. It can also do more harm than good when practiced informally or ad hoc or when it's used as a synonym for any form of change in a system.
refactoring, code quality, design quality, developmental quality
F. Buschmann, "Gardening Your Architecture, Part 1: Refactoring," in IEEE Software, vol. 28, no. , pp. 92-94, 2011.