Moving to Smaller Libraries via Clustering and Genetic Algorithms

  • Authors:
  • G. Antoniol;M. Di Penta;M. Neteler

  • Affiliations:
  • -;-;-

  • Venue:
  • CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

There may be several reasons to reduce a software system to its bare bone removing the extra fat introduced during development or evolution. Porting the software system on embedded devices or palmtops are just two examples.This paper presents an approach to re-factoring libraries with the aim of reducing the memory requirements of executables. The approach is organized in two steps. The first step defines an initial solution based on clustering methods, while the subsequent phase refines the initial solution via genetic algorithms.In particular, a novel genetic algorithm approach, considering the initial clusters as the starting population, adopting a knowledge-based mutation function and a multi-objective fitness function, is proposed.The approach has been applied to several medium and large-size open source software systems such as GRASS, KDE-QT, Samba and MySQL, allowing to effectively produce smaller, loosely coupled libraries, and to reduce the memory requirement for each application.