CSC/ECE 517 Fall 2009/wiki1a 9 DS: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 29: Line 29:


Various books are available on the topic of refactoring these days. The initial list of books includes “Refactoring: Improving the Design of Existing Code“ by Martin Flower and Refactoring to Patterns, by Joshua Kerievsky and many more books on this topic. For listing of books refer to the external links on books on refactoring.
Various books are available on the topic of refactoring these days. The initial list of books includes “Refactoring: Improving the Design of Existing Code“ by Martin Flower and Refactoring to Patterns, by Joshua Kerievsky and many more books on this topic. For listing of books refer to the external links on books on refactoring.
== Initiatives taken to improve current generation of refactoring tools ==

Revision as of 00:18, 8 September 2009

Reasearch in refactoring tools

Refactoring is defined as the technique by which the existing body of the code is restructured by changing the inner structure and without changing its external behavior. The tools which are used to achieve this purpose are commonly known as refactoring tools.

Overview

This deals with the academic underpinnings of refactoring starting from its evolution and the initiatives taken to improve the current generation of refactoring tools. It also throws lights up on the various books and papers on the topic of refactoring and also various conferences and workshops conducted.

Academic Underpinnings

Motivation

The first official thesis on the area of refactoring leads back to 1992 when Bill Opdyke finished his thesis on the topic "Refactoring Object-Oriented Frameworks". Bill Opdyke was working in Bill Laboratories developing electronic switching systems. When he started to pursue his doctoral studies he wanted it to be related to practical business application. That is when he narrowed down on this topic and lead to the official shaping of the cloud refactoring.

The Basic motivation behind the emergence of refactoring was the software re usability, cutting down cost involved in restructuring software later for various use. Thus refactoring leads to software reuse in future.

Though it might appear that refactoring began in research labs it actually emerged on ad-hoc basis when object-oriented programmers came across situations where they felt the need for change in object oriented software. Refactoring actually has its roots way back. Factoring was a key technique in Forth Language from its birth in 70’s. Absence of appropriate syntax made it not possible to extract the best use out of it. Ralph jhonson was the first person to use the name refactoring in print. Along with Bill Opdyke he published a paper on refactoring in 1990.

Etymology

The first known use of the term “refactoring” appeared in “Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems” by Ralph Johnson and Bill Opdyke in 1990. But Refactoring as a function and as technique was almost certainly used before then.

More Works

Lot of work has been done on this area which includes the thesis work “Practical Analysis for refactoring” by Donald Bradley Roberts. It focuses on several ways to make a refactoring tool that is both fast enough and reliable enough to be useful. In another thesis work “Refactoring as Formal Refinements” by Márcio Cornélio throws light on algebraic technique that presents refactoring as behavior preserving transformation. For list of other thesis works and papers refer to the external links.

Books on Refactoring

Various books are available on the topic of refactoring these days. The initial list of books includes “Refactoring: Improving the Design of Existing Code“ by Martin Flower and Refactoring to Patterns, by Joshua Kerievsky and many more books on this topic. For listing of books refer to the external links on books on refactoring.


Initiatives taken to improve current generation of refactoring tools