
300 ◾ Software Essentials
In a large system, incompatible or redundant details may degrade perfor-
mance but do complicate maintainability. Design defects compromise lon-
gevity. Refactoring addresses internal deciencies and transforms code into
soware that more easily absorbs modications as the system evolves. As a
form of reengineering that orchestrates internal change to meet new standards
or performance expectations, refactoring aims to reduce soware complex-
ity. Refactoring is an iterative process, involving multiple internal modica-
tions to alter the soware structure so that it may absorb future changes or
upgrades. Incremen