(object-oriented, programming)
Improving a computer program by reorganising its internal structure without altering its external behaviour.

When software developers add new features to a program, the code degrades because the original program was not designed with the extra features in mind.

This problem could be solved by either rewriting the existing code or working around the problems which arise when adding the new features. Redesigning a program is extra work, but not doing so would create a program which is more complicated than it needs to be. Refactoring is a collection of techniques which have been designed to provide an alternative to the two situations mentioned above.

The techniques enable programmers to restructure code so that the design of a program is clearer. It also allows programmers to extract reusable components, streamline a program, and make additions to the program easier to implement.

Refactoring is usually done by renaming methods, moving fields from one class to another, and moving code into a separate method.

Although it is done using small and simple steps, refactoring a program will vastly improve its design and structure, making it easier to maintain and leading to more robust code.

"Refactoring, Reuse & Reality" by Bill Opdyke.

"Refactoring, a first example" by Martin Fowler.
References in periodicals archive ?
Contract notice: Support for the development of the ti / si 2017 project portfolio, Application refactoring and maintenance of the e-usher @ -erp universitari
The tribally owned company is refactoring the software to best practice and tested development standards that leverage modern object-oriented practices.
to add serverless and application refactoring AWS solutions, the company said.
When management assumes refactoring is "not their problem," such unaddressed work remains an organizational problem, and organizationally, there are already enough problems.
During the second China Mobile 5G C-RAN Wireless Cloud Network Forum, Spirent presented the current outcomes and outlined the test practices used in refactoring for the China Mobile 5GC-RAN project.
TELECOMWORLDWIRE-October 13, 2017-Spirent and China Mobile to explore best practices of test refactoring
innoWake said the acquisition enables expansion of code refactoring, cloud migration and application modernisation market.
After an introduction to Scala, it covers the basics of object-orientation and software development, object-orientation in Scala, abstraction and polymorphism, GUIs (graphical user interfaces) and graphics, other collection types, stacks and queues, multithreading and concurrency, low-level multithreading and Java libraries, stream input/output and XML, networking, linked lists, priority queues, refactoring, recursion, trees, regular expressions and context-free parsers, binary heaps, direct access binary files, spatial trees, augmenting trees, and hash tables.
Refactoring seeks to improve a program structure and its maintainability.
JUST SIMPLIFY allows reducing the effort for model refactoring by avoiding time consuming manual search for model clones.
7 with JSON data type, support for Percona PAM Authentication, support for Amazon Aurora and improved code refactoring.
Foundation refers to testing, pair programming and refactoring.