W. G. Griswold, ``Program Restructuring as an
Aid to Software Maintenance'', Ph.D. Thesis, Technical Report
91-08-04, Department of Computer Science and Engineering, University of
Washington, July 1991.
Abstract
Maintenance tends to degrade the structure of software, ultimately making
maintenance more costly. At times, then, it is worthwhile to manipulate the
structure of a system to make changes easier. However, it is shown that
manual restructuring is an error-prone and expensive activity. By
separating structural manipulations from other maintenance activities, the
semantics of a system can be held constant by a tool, assuring that no
errors are introduced by restructuring. To allow the maintenance team to
focus on the aspects of restructuring and maintenance requiring human
judgment, a transformation-based tool can be provided--based on a model
that exploits preserving data flow-dependence and control
flow-dependence--to automate the repetitive, error-prone, and
computationally demanding aspects of restructuring. A set of automatable
transformations is introduced; their impact on structure is described, and
their usefulness is demonstrated in examples. A model to aid building
meaning-preserving restructuring transformations is described, and its
realization in a functioning prototype tool for restructuring Scheme
programs is discussed.