M. I. Chen, ``A Tool for Planning the Restructuring of Data Abstractions in Large Systems'', M.S. Thesis, Technical Report CS96-472, Department of Computer Science and Engineering, University of California, San Diego, February 1996.


Software maintenance is a complex and costly process. Previous research has shown that software restructuring techniques can be used to reduce the overall time and cost required to perform software maintenance. This research builds on a visualization technique called the star diagram that can help a programmer understand and manipulate the overall structure of a program. The star diagram uses a tree-like graphical representation to display the definition of a variable and its uses throughout the program. It has been proven to work successfully on small programs written in a simple, elegant programming language. However, as the number of references of a global variable increases, the arms in the original star diagram grow longer and wider, increasingly becoming less effective in promoting the understanding of the structure. In addition, the original star diagram does not allow the user to modify the visualization without restructuring the actual source code. This research uses simple elision techniques to deal with the scalability of a star diagram and provide the flexibility of planning a restructuring without modifying the program. For a software restructuring tool to help lower maintenance costs on large, modern systems, it must work on a widely used programming language such as C. This research provides numerous extensions to the original star diagram to work specifically with the C language grammar. Our work presents a simple visualization method for understanding and planning the restructuring of data abstractions in large systems written in the C programming language.