International Journal of Advanced Research in Computer Science and Software Engineering (IJARCSSE)
Producing software is a very complex process that takes a considerable time to evolve. Poorly designed software systems are difficult to understand and maintain. Software maintenance can take up to 50% of the overall development costs of producing software. One of the main attributes to these high costs is poorly designed code, which makes it difficult for developers to understand the system even before considering implementing new code. In the context of software engineering process, software refactoring has a direct influence on reducing the cost of software maintenance through changing the internal structure of the code, without changing it external behavior. Refactoring is a technique for restructuring an existing body of code. Its heart is a series of small behavior preserving transformations. Each transformation called a 'refactoring' does little, but a sequence of transformations can produce a significant restructuring.