W.G. Griswold, D. Notkin, "Automated assistance for program restructuring", Transactions on Software Engineering and Methodology, ACM, vol.2, (no.3):228-69, July 1993.


Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. 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.