Software Restructuring: Implementing a Code Abstraction Transformation, 2002
نویسنده
چکیده
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.
منابع مشابه
Restructuring legacy C code into C + + 1 Richard
1 This work was partially supported by NSF grant #CCR-9803876 Abstract In this paper, we describe restructuring of C code into new C++ classes. Such restructuring is done to facilitate both software reuse and software evolution. The restructuring is accomplished by restructuring tools and scenarios. We discuss the transformation tool-set and the design of the individual tools. The approach is d...
متن کاملSource transformation in software engineering using the TXL transformation system
Many tasks in software engineering can be characterized as source to source transformations. Design recovery, software restructuring, forward engineering, language translation, platform migration and code reuse can all be understood as transformations from one source text to another. TXL, the Tree Transformation Language, is a programming language and rapid prototyping system specifically desig...
متن کاملRefactoring Methods and Tools
Producing software is a very complex process that takes a considerable time to evolve. Poorly designed software systems are difficult to understand and maintain. Software maintenance can take up to 50% of the overall development costs of producing software. One of the main attributes to these high costs is poorly designed code, which makes it difficult for developers to understand the system ev...
متن کاملProgram Graph Transformation
Graph transformation, a branch of theoretical computer science, is about the definition of graph languages by grammars, and the study of computations on graphs by rewrite rules. In this paper, we sketch a software engineering problem – the refactoring of object-oriented software – and indicate how graph grammars and graph rewrite rules can be extended for specifying and implementing refactoring...
متن کاملTowards Language-Independent Weaving Using Grammar Adapters
Current practices to support software evolution and restructuring, such as aspect-oriented software development and refactoring, have offered new capabilities for addressing the challenges of adapting software. Aspect weavers and refactoring engines enable the evolution of software in a modular and extensible manner, thereby improving the structure of the program and rendering new behavior. How...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002