A CLUSTERING GENETIC ALGORITHM FOR SOFTWARE MODULARISATION WITH A MULTIPLE HILL CLIMBING APPROACH
Kiarash Mahdavi · OpenGrey (Institut de l'Information Scientifique et Technique) · 2005
Software clustering is a useful technique for software comprehension and re-engineering. In this thesis we examine Software Module Clustering by Hill Climbing (HC) and Genetic Algorithms (GA). Our work primarily addresses graph partitioning using HC and GA. The software modules are represented as directed graphs and clustered using novel HC and GA search techniques. We use a fitness criterion to direct the search. The search consists of using multiple preliminary search to gather information about the search landscape, which is then converted to Building Blocks and used for subsequent search. This thesis includes the results of a series of empirical studies to use these novel HC and GA techniques. These results show this technique to be an effective way to improve Software Module Clustering. They also show that our GA reduces the need for user defined solution structure, which requires in depth understanding of the solutions landscape and it can also help improve efficiency. We also present work for automation of useful Building Block recognition and the results of an experiment which shows Building Blocks created in this way also help our GA search, making this an ideal opportunity for further investigation.