R. W. Bowdidge, W. G. Griswold, ``How Software Tools Organize Programmer Behavior During the Task of Data Encapsulation,'' Empirical Software Engineering, Kluwer, 1997.


Tool-assisted meaning-preserving program restructuring has been proposed as a technique for aiding the evolution of large systems. However, there has been little research on how programmers perform restructuring with and without specialized tools, and how restructuring tools impact the way programmers work. We performed an exploratory study to determine how a restructuring tool interface called the ``star diagram'' organized and affected programmer behavior for the task of encapsulating a data structure. We videotaped six teams of two programmers while they encapsulated and enhanced a data structure in an existing program. Each team used one of three environments: standard UNIX tools, a restructuring tool with textual view of the source code, or a restructuring tool using the star diagram view. We transcribed and systematically analyzed the videotapes.

We used the observations to build a model of how programmers performed encapsulation and then compared how the different tool sets affected the performance of various subtasks. We observed that the star diagram's power derives in part from organizational and process properties not normally found in software engineering tools. In particular, we observed that the star diagram and restructuring tools provide explicit and implicit support of ``bookkeeping'' tasks such as maintaining current state and measuring progress in a modification. The studies also suggest ways to improve the restructuring tool's organizational and process properties.