Software Engineering : An Intrinsic Property Of Software

1285 Words Sep 9th, 2014 6 Pages
Software Engineering Assignment 1
A Survey of Software Refactoring

An intrinsic property of software in a real-world environment is its need to evolve. As the software enhanced, modified, and adapted to new requirements, code becomes more complex and drifts away from original design, thereby lowering the quality of the software. Because of this, the major part of the total software development cost is devoted to software maintenance. Better software development methods and tools do not solve this problem because their increased capacity is used to implement more new requirements within the same time frame, making the software more complex again. The research domain that addresses this problem is referred to as restructuring or, in the specific case of object oriented software development, refactoring.

The given article is about software refactoring. Refactoring is basically the object-oriented variant of restructuring: “the process of changing a [object-oriented] software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure”. The key idea here is to redistribute classes, variables, and methods across the class hierarchy in order to facilitate future adaptations and extensions.

The refactoring process consists of a number of distinct activities:

 Identify where the software should be refactored.
 Determine which refactoring(s) should be applied to the identified places.
 Guarantee that the applied…
Open Document