Refactoring Methods

This tutorial provides an introduction to the problems faced in software evolution, and why we need to be concerned about refactoring design and code on a continuous basis. Such refactoring helps ensure that software is more easily changeable, and the costs of development and maintenance are reduced. This tutorial addresses (a) refactoring techniques that a developer can employ during design and coding and (b) static analysis techniques that detect opportunities for refactoring.