while preserving meaning and behavior.
Refactoring is an important part of Software Engineering. It is done in small steps. After each step the system remains functionally unchanged. A sequence of these behavior-preserving transformations can produce significant restructuring. Keeping each step small minimizes the likelyhood that something will go wrong.