Heuristic program reorganization guided by object-oriented metrics.
|Title:||Heuristic program reorganization guided by object-oriented metrics.|
|Authors:||Israel, Mark Abraham.|
|Abstract:||The benefits of increased reusability and maintainability afforded by object-oriented programming are now widely recognised, but there is a vast legacy of procedural code that it may be more desirable to attempt to transform into object-oriented form than to redesign from scratch. A system is here presented that will assist a human programmer in performing such a transformation, by identifying potential objects in C code: the system produces a clustering of the procedures and global variables in the C code, which are to be considered as the methods and the data members respectively of a C++ object. Three different clustering techniques are compared: AGGLOM by Fisher, a bottom-up clustering technique by Basili, and a novel matrix diagonalization technique for simultaneously clustering entities and their attributes. A suite of object-oriented metrics proposed by Kemerer and experimentally found to correlate to maintainability is used to guide the clustering; metrics scores for a particular clustering are compared with scores for randomly constructed objects of the same size. The resulting objects, which are customizable according to which metric the user favours, are also compared against the objects produced when humans transform the C code to C++. The tool constructed is deemed to find useful candidate objects in several C test programs, and some novel refinements of the object-oriented metrics are demonstrated by the experimental results to be improvements.|
|Collection||Thèses, 1910 - 2010 // Theses, 1910 - 2010|