A Survey of Software Refactoring

A Survey of Software Refactoring

FEBRUARY 2004 | Tom Mens, Member, IEEE, and Tom Tourwé
This paper provides an extensive overview of existing research in the field of software refactoring. It compares and discusses refactoring activities based on criteria such as supported activities, techniques, software artifacts, tool development issues, and refactoring's impact on software processes. A running example illustrates key concepts. The paper discusses refactoring as a technique to reduce software complexity by improving internal quality, and its use in software evolution, reengineering, and restructuring. Refactoring is defined as a process that changes an object-oriented system without altering its external behavior, improving internal structure. The paper outlines refactoring activities, techniques, and formalisms, and discusses how refactoring fits into the software development process. It also covers the challenges of maintaining consistency between refactored software and other artifacts, and the importance of behavior preservation. The paper concludes by summarizing the key findings and implications of refactoring research.This paper provides an extensive overview of existing research in the field of software refactoring. It compares and discusses refactoring activities based on criteria such as supported activities, techniques, software artifacts, tool development issues, and refactoring's impact on software processes. A running example illustrates key concepts. The paper discusses refactoring as a technique to reduce software complexity by improving internal quality, and its use in software evolution, reengineering, and restructuring. Refactoring is defined as a process that changes an object-oriented system without altering its external behavior, improving internal structure. The paper outlines refactoring activities, techniques, and formalisms, and discusses how refactoring fits into the software development process. It also covers the challenges of maintaining consistency between refactored software and other artifacts, and the importance of behavior preservation. The paper concludes by summarizing the key findings and implications of refactoring research.
Reach us at info@study.space
[slides and audio] A survey of software refactoring