Abstract One of the undesired effects of software evolution is the proliferation of unused components, which are not used by any appli-11 cation. As a consequence, the size of binaries and libraries tends to grow and system maintainability tends to decrease. At the same 12 time, a major trend of todayÕs software market is the porting of applications on hand-held devices or, in general, on devices which 13 have a limited amount of available resources. Refactoring and, in particular, the miniaturization of libraries and applications are 14 therefore necessary. 15 We propose a Software Renovation Framework (SRF) and a toolkit covering several aspects of software renovation, such as 16 removing unused objects and code clones, and refactoring existing libraries into smaller more cohesive ones. Refactoring has been 17 implemented in the SRF using a hybrid approach based on hierarchical clustering, on genetic algorithms and hill climbing, also tak-18 ing into account the developersÕ feedback. The SRF aims to monitor software system quality in terms of the identified affecting fac-19 tors, and to perform renovation activities when necessary. Most of the framework activities are language-independent, do not 20 require any kind of source code parsing, and rely on object module analysis. 21 The SRF has been applied to GRASS, which is a large open source Geographical Information System of about one million LOCs 22 in size. It has significantly improved the software organization, has reduced by about 50% the average number of objects linked by 23 each application, and has consequently also reduced the applicationsÕ memory requirements. 24
In our work we have Di REF build on these results and present a software renovation framework (SRF) which covers several aspects of software renovation, such as removing unused objects and code clones, and refactoring existing libraries into smaller ones.
A language-independent software renovation framework
Computer Science