To solve this problem we moved away from meaning-preserving transformational support and focused on helping programmers plan and carry out their restructurings. For example, we created a way of manipulating a star diagram--called trimming--that mimics the way that basic restructuring transformations affect the star diagram display, allowing a programmer to plan a restructuring without depending upon restructuring transformations. With the ability to annotate trimmed star diagram components, plans can be recorded and later recalled. Also, programmer-controlled elision can remove clutter from the star diagram view.
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 elision is effective in controlling star diagram size. In the study we found that each programming team successfully planned its restructuring in rather different, unanticipated ways. These experiments indirectly influenced important improvements in the tool's software design and user interface.