Refactoring Functional Programs ( GR / R 75052 / 01 ) Final Report

Refactorings are source-to-source program transformations that change program structure and organisation, but not program functionality. Documented in catalogues and supported by tools, refactoring provides the means to adapt and improve the design of existing code, and has thus helped to address long-standing problems in software maintenance while also enabling the trend towards modern agile software development processes. Two typical refactoring scenarios are: adapting the structure of an existing code base to prepare for adding functionality or fixing a bug; cleaning up a code base after extensive functional changes.