Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Conditions to assure semantically consistent software merges in linear time
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
A Unified Interprocedural Program Representation for a Maintenance Environment
IEEE Transactions on Software Engineering
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
An extensible program representation for object-oriented software
ACM SIGPLAN Notices
Static analysis for a software transformation tool
Static analysis for a software transformation tool
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A quantitative framework for software restructuring
Journal of Software Maintenance: Research and Practice
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Software Testing: A Craftsman's Approach
Software Testing: A Craftsman's Approach
Classical and Object-Oriented Software Engineering
Classical and Object-Oriented Software Engineering
Systems Analysis, Design, and Implementation
Systems Analysis, Design, and Implementation
Art of Software Testing
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Supporting the restructuring of data abstractions through manipulation of a program visualization
Supporting the restructuring of data abstractions through manipulation of a program visualization
Practical analysis for refactoring
Practical analysis for refactoring
Software reengineering with architecture decomposition
Proceedings of the 2007 ACM symposium on Applied computing
Hi-index | 0.00 |
Software restructuring is a form of perfective maintenance that modifies the structure of a program's source code. Its goal is increased maintainability to better facilitate other maintenance activities, such as adding new functionality to, or correcting previously undetected errors within a software system. Changes to the structure are introduced through the application of transformations. Manually transforming the source code may introduce undesirable as well as undetectable changes in the system's behaviour. It is very difficult to ensure that manual restructuring preserves functionality and guaranteeing it is almost impossible. The problems associated with manual restructuring can be addressed by using a restructuring tool to automatically apply transformations. The majority of restructuring tools apply transformations by manipulating abstract program representations and specify the conditions of the transformation in terms of the representation structure. The context entity graph as program representation was developed to support specific language constructs, but can be adapted to support a variety of programming languages. The implementation of a code abstraction transformation in terms of this structure is examined and various improvements are also suggested.