Subscribe by Email

Wednesday, September 16, 2009

Restructuring Concepts

Software restructuring modifies source code and/or data in an effort to make it amenable to future changes. In general, restructuring does not modify the overall program architecture. It tends to focus on the design details of individual modules and on local data structures defined within modules. Reasons for restructuring :

1. The current code would have reached a stage where it is impossible to do any more modifications without breaking something else.
2. The requirements have changed so much that the current architecture/design cannot handle it without a redesign.
3. The current application doesn’t/will not scale, perform well enough as it wasn’t designed to handle the current load/anticipated growth.
4. The folks who worked on the code are no longer there and nobody knows what the code really does.
5. You don’t really like the current way it is implemented and think that there is a better way to do it using framework X or library Y.

Code Restructuring :
It is performed to yield a design that produces the same function as the original program but with higher quality. In general, code restructuring techniques model program logic using Boolean algebra and then apply a series of transformation rules that yield restructured logic. A resource exchange diagram maps each program module and the resources that are exchanged between it and other modules. By creating representations of resource flow, the program architecture can be restructured to achieve minimum coupling among modules.

Data Restructuring :
Before data restructuring begins, a reverse engineering activity called analysis of source code must be conducted. Once the data analysis is done, data redesign commences. A data record standardization step clarifies data definitions to achieve consistency among the data item names or physical record formats within an existing data structure or file format. Another form of redesign, called data name rationalization ensures that all data naming conventions conform to local standards and that aliases are eliminated as data flow through the system. When restructuring moves beyond standardization and rationalization, physical modifications to existing data structures are made to make the data design more effective.

No comments:

Facebook activity