How Software Engineering Tools Organize Programmer BehaviorDuring the Task of Data Encapsulation

  • Authors:
  • Robert W. Bowdidge;William G. Griswold

  • Affiliations:
  • IBM T. J. Watson Research Center, Yorktown Heights, NY/ bowdidge@watson.ibm.com;Department of Computer Science and Engineering, University of California, San Diego, CA

  • Venue:
  • Empirical Software Engineering
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tool-assisted meaning-preserving program restructuring has beenproposed to aid the evolution of large software systems. These systems aredifficult to modify because relevant information is often widelydistributed. We performed an exploratory study to determine how programmersused a restructuring tool interface called the ’’star diagram‘‘ to organizetheir behavior for the task of encapsulating a data structure. We videotapedsix pairs of programmers while they encapsulated and enhanced a datastructure in an existing program. Each team used one of three environments:standard UNIX tools, a restructuring tool with textual view of the sourcecode, or a restructuring tool using the star diagram view.We systematically analyzed the videotape transcripts to derive a model ofhow the programmers performed encapsulation. Each team opportunisticallyexploited the features of the tools (e.g., cursors) and the programrepresentation (e.g., ordering of lines in a file) to help them track thecurrent state of the activity. Each method of exploiting structure tracksstate in a way that decreases the likelihood of some types of oversights(e.g., missing a required change), but may not address others (e.g., makinga change incorrectly), hence requiring a separate check. We also observedthat programmers often preferred to design and restructure in an exploratoryfashion.The major challenge of restructuring, then, appears to arise from thefact that it is costly or haphazard to maintain some completeness andconsistency properties with the state-maintaining tactics that programmersemploy with current tools. The inherent invisibility of some informationmakes completeness even more costly. These insights have led us to redesignour restructuring tools to better support exploratory design and counterinvisibility.