|
|||
|
"Software reengineering often produces nothing more than sophisticated computerized systems that automate obsolete processes." - Hammer & Champy, Reengineering the Corporation, HarperBusiness, 1993.
In this article, I'll give a brief overview of restructuring - a subset of reengineering. Restructuring is the transformation from one representation form to another at the same relative abstraction level, while preserving the subject system's external behavior (functionality and semantics). Now there are two new terms in this definition: subject system and level of abstraction. By subject system we mean the program under consideration or the program which is to be restructured. Software reengineering activities are better understood when placed in context. The subject system being reengineered can be viewed as a point in the solution-space to a particular problem. The solution may be stratified into several abstraction levels, each of which represents a particular view of the subject system. For example, the specification of the problem to which the subject system is a solution may be represented as a set of functional requirements. The functional requirements may in turn be represented at a lower abstraction level as a set of high-level architecture and design documents. These may be further refined to a lower abstraction level representing the implementation of the high-level design as source code. Abstraction levels may correspond to different phases of the subject system's lifecycle. The higher abstraction levels typically deal with more application - or user-oriented concepts - while lower levels place increasing emphasis on implementation details. The transition of increasing detail through the forward progress of the life cycle provides a frame of reference for the definitions of relative transformations such as forward engineering and reverse engineering. A restructuring transformation is often one of appearance, such as altering code to improve its structure in the traditional sense of structural design. The term "restructuring" came into popular use from the code to code transform that recasts a program from an unstructured ("spaghetty") form to a structured ("goto-less") form. However, the term has a broader meaning that recognizes the application of similar transformations and recasting techniques in reshaping data models, design plans, and requirement structures. Data normalization, for example, is a data-to-data restructuring transform to improve a logical data model in the database design process. While restructuring creates new versions that implement or propose change to the subject system, it does not normally involve modifications because of new requirements. However, it may lead to better observations of the subject system that suggest changes that would improve aspects of the system. Go To Page: 1 2
The copyright of the article Restructuring in Software Re-engineering is owned by . Permission to republish Restructuring in print or online must be granted by the author in writing.
For a complete listing of article comments, questions, and other discussions related to Faisal Bin Bashir's Software Re-engineering topic, please visit the Discussions page. |
|||
|
|
|||
|
|
|||