W. G. Griswold, M. I. Chen, R. W. Bowdidge, J. D. Morgenthaler,
``Tool Support for Planning the
Restructuring of Data Abstractions in Large Systems,''
Proceedings of the ACM SIGSOFT Conference on the Foundations of
Software Engineering (FSE-4), October 1996.
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 star diagram 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.