Tool support for planning the restructuring of data abstractions in large systems
- 1 October 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 21 (6) , 33-45
- https://doi.org/10.1145/239098.239107
Abstract
Restructuring software to improve its design can lower software maintenance costs. One problem in carrying out such a restructuring is planning the new detailed design. The manipulable visualization can help a programmer redesign a program based on abstract data types. However, our measurements revealed that the view can be too large for a programmer to effectively assimilate. Also, design plans can be expressed only by restructuring, although our studies revealed that it is beneficial to preplan a restructuring. Finally, the tool user can build a star diagram for only a single data structure, although an abstract data type might actually have several components or have multiple instantiations.Exploiting basic properties of the star diagram can mitigate these problems. First, programmer-controlled elision can remove clutter from the star diagram view. Second, elision and annotation of star diagram components can mimic restructuring, thereby supporting the planning of a restructuring. Such support also allows for the planning of a non-restructuring maintenance task. Finally, to dynamically control what data structures are visualized, the tool user can union star diagrams.We built a star diagram planning tool for C programs, measured its elision capabilities, and performed a programmer study for the encapsulation of a widely-used data structure in a 28,000 line program. We found that the amount of elision can be substantial, but is not always adequate. In the study we found that each programming team successfully planned their restructuring in rather different, unanticipated ways.This publication has 11 references indexed in Scilit:
- Visualizing program slicesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Getting the most from paired-user testingInteractions, 1995
- Automated support for encapsulating abstract data typesPublished by Association for Computing Machinery (ACM) ,1994
- Automated assistance for program restructuringACM Transactions on Software Engineering and Methodology, 1993
- Refactoring and aggregationPublished by Springer Nature ,1993
- Seesoft-a tool for visualizing line oriented software statisticsIEEE Transactions on Software Engineering, 1992
- Constructive Interaction and the Iterative Process of UnderstandingCognitive Science, 1986
- Program SlicingIEEE Transactions on Software Engineering, 1984
- Programming with abstract data typesPublished by Association for Computing Machinery (ACM) ,1974
- On the criteria to be used in decomposing systems into modulesCommunications of the ACM, 1972