Software module clustering is the problem of automatically organizing software units into modules to improve program structure. There has been a great deal of recent interest in search-based formulations of this problem in which module boundaries are identified by automated search, guided by a fitness function that captures the twin objectives of high cohesion and low coupling in a single-objective fitness function. This paper introduces two novel multi-objective formulations of the software module clustering problem, in which several different objectives (including cohesion and coupling) are represented separately. In order to evaluate the effectiveness of the multi-objective approach, a set of experiments was performed on 17 real-world module clustering problems. The results of this empirical study provide strong evidence to support the claim that the multi-objective approach produces significantly better solutions than the existing single-objective approach. © 2006 IEEE.
Bibliographical noteThe authors are grateful to Spiros Mancoridis and Brian Mitchell for providing detailed feedback on an earlier version of this paper and also for many valuable conversations about software module clustering over the past six years. Spiros and Brian also kindly made available both the Bunch tool and the MDGs used in this paper. The authors also are grateful to Kiarash Mahdavi for providing references, discussions, and comments. The anonymous referees also provided detailed, thoughtful, and constructive advice which helped to improve the presentation of the paper. This work is partially supported by EPSRC (Grant Nos. EP/D050863 and EP/0052785) and the National Science Foundation of China (Grant No. 60428202).
- evolutionary computation
- module clustering
- multi-objective optimization