Computer-aided vs. manual program restructuring

  • Authors:
  • William G. Griswold;David Notkin

  • Affiliations:
  • Univ. of California, San Diego;Univ. of Washington, Seattle

  • Venue:
  • ACM SIGSOFT Software Engineering Notes
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

Restructuring a software system as it evolves promises to reduce associated maintenance costs. To simplify restructuring, we have developed a tool that preserves the meaning of a program as the engineer applies structural transformations. To help evaluate the prototype tool and its underlying approach, we ran an experiment to compare how people using standard editing tools restructure a program against the computer-aided style that our tool supports.We drew three conclusions from the experiment. First, the subjects generally used a mix of copy/paste and cut/paste editing paradigms; our tool gives the engineer the safety of copy/paste and the speed of cut/paste. Second, most of the subjects made mistakes, including simple syntactic errors and semantic errors (such as not updating the call site after modifying a function definition); our tool avoids errors by the engineer using compensation (for instance, it automatically updates call sites when a procedure definition is changed) or by signalling an error. Third, manual restructuring tends to be haphazard, with engineers handling the order of changes, testing, etc. in inconsistent and potentially error-prone ways; by separating restructuring from functional maintenance and by ensuring preservation of meaning during restructuring, our approach can make the maintenance process more orderly.