- A change made to the internal structure of software to make it:
- Easier to understand.
- Cheaper to make future changes.
- This does not change the observable behavior of the software.
- Tests help ensure that we didn't change behavior.
- Software left alone will decay.
- Makes it cheaper to make changes.
- Make it easier to understand.
- Improves the design of the code.