Saturday, September 24th, 2016
Refactoring is defined as “a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior“.
In Agile Methods refactoring is an integral part of the development process; it is adopted to improve continuously the structure and understandability of source code during development.
The aim of the refactoring is to decrease the complexity of a system at design and source code level, allowing it to evolve further in a low-cost manner by ensuring the developers’ productivity and leaving less room for design errors.
Refactoring increases Quality because it improves the design of the software, makes software easier to understand and helps developers to find bugs.
Refactoring increases Productivity because it helps developers to program faster.
The problem faced by software engineers is discovering where to apply refactorings. Most of the times, the detection of such problematic areas is based on human intuition or when is detected the notion of “bad smells” in code.
Fortunately, software metrics can be used to identify areas that would benefit from refactoring. Tool support is necessary to assist the human intuition in this decision-making process in an efficient manner.
Summing-up: refactoring can help to increase software quality and developer productivity. Good skilled developers in conjunction with tool support are the best way to identify where to apply refactorings.
These notes have been taken from: