W.G. Griswold, D. Notkin,
"Computer-Aided vs. Manual Program Restructuring", ACM SIGSOFT
Software Engineering Notes, Vol. 17, No. 1, pp. 33-41, January 1992.
Abstract
Restructuring a software system as it evolves promises to reduce
associated maintenance costs. To simplify restructuring, the authors 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, they ran an experiment to compare how people
using standard editing tools restructure a program against the
computer-aided style that their tool supports. They drew three conclusions
from the experiment. First, the subjects generally used a mix of
copy/paste and cut/paste editing paradigms. 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); the
tool avoids errors by the engineer using compensation 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,
the approach can make the maintenance process more orderly.