CARE: An environment for understanding and re-engineering C programs

Abstract
The authors' focus is on facilitating incremental understanding and re-engineering of existing C programs. A software environment called CARE (computer-aided re-engineering) is used as a vehicle toward that goal. CARE maintains a repository of control-flow and data-flow dependencies (i.e., entities and their relations) of C programs. These dependencies can be visualized using a novel presentation model. Moreover, CARE entails transformation tools that support various ways of displaying program dependencies and facilitate incremental program modifications. An empirical evaluation of the CARE environment using small size C programs is performed. In addition, CARE is used in order to modify the source code of a medium-to-large size program. The results from this empirical evaluation of CARE indicate that its presentation model and transformation tools are a promising step towards improving the effectiveness of understanding and re-engineering existing C programs. Finally, the authors discuss some issues raised during the modification exercise with CARE when using a medium-to-large size program.

This publication has 8 references indexed in Scilit: