This Article 
 Bibliographic References 
 Add to: 
Software Module Clustering as a Multi-Objective Search Problem
March/April 2011 (vol. 37 no. 2)
pp. 264-282
Kata Praditwong, The University of Birmingham, Birmingham
Mark Harman, University College London, London
Xin Yao, The University of Birmingham, Birmingham
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.

[1] J.M. Bieman and L.M. Ott, “Measuring Functional Cohesion,” IEEE Trans. Software Eng., vol. 20, no. 8, pp. 644-657, Aug. 1994.
[2] M. Bowman, L. Briand, and Y. Labiche, “Multi-Objective Genetic Algorithms to Support Class Responsibility Assignment,” Proc. 23rd IEEE Int'l Conf. Software Maintenance, Oct. 2007.
[3] L.C. Briand, J. Feng, and Y. Labiche, “Using Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders,” Proc. 14th Int'l Conf. Software Eng. and Knowledge Eng., pp. 43-50, 2002.
[4] L.C. Briand, S. Morasca, and V.R. Basili, “Defining and Validating Measures for Object-Based High-Level Design,” IEEE Trans. Software Eng., vol. 25, no. 5, pp. 722-743, Sept./Oct. 1999.
[5] D. Brockhoff, T. Friedrich, N. Hebbinghaus, C. Klein, F. Neumann, and E. Zitzler, “Do Additional Objectives Make a Problem Harder?” Proc. Genetic and Evolutionary Computation Conf., D. Thierens, ed., vol. 1, pp. 765-772, July 2007.
[6] J. Clark, J.J. Dolado, M. Harman, R.M. Hierons, B. Jones, M. Lumkin, B. Mitchell, S. Mancoridis, K. Rees, M. Roper, and M. Shepperd, “Reformulating Software Engineering as a Search Problem,” IEE Proc.—Software, vol. 150, no. 3, pp. 161-175, June 2003.
[7] M. Cohen, S.B. Kooi, and W. Srisa-an, “Clustering the Heap in Multi-Threaded Applications for Improved Garbage Collection,” Proc. Eighth Ann. Conf. Genetic and Evolutionary Computation, M. Keijzer, M. Cattolico, D. Arnold, V. Babovic, C. Blum, P. Bosman, M.V. Butz, C.C. Coello, D. Dasgupta, S.G. Ficici, J. Foster, A.H.-Aguirre, G. Hornby, H. Lipson, P. McMinn, J. Moore, G. Raidl, F. Rothlauf, C. Ryan, and D. Thierens, eds., vol. 2, pp. 1901-1908, July 2006.
[8] L.L. Constantine and E. Yourdon, Structured Design. Prentice Hall, 1979.
[9] L. Devroye, Non-Uniform Random Variate Generation. Springer-Verlag, 1986.
[10] D. Doval, S. Mancoridis, and B.S. Mitchell, “Automatic Clustering of Software Systems Using a Genetic Algorithm,” Proc. Int'l Conf. Software Tools and Eng. Practice, Aug.-Sept. 1999.
[11] M.R. Garey and D.S. Johnson, Computers and Intractability. A Guide to the Theory of NP-Completeness. W.H. Freeman, 1979.
[12] M. Harman, “The Current State and Future of Search Based Software Engineering,” Future of Software Eng. 2007, L. Briand and A. Wolf, eds., IEEE CS Press, 2007.
[13] M. Harman, R. Hierons, and M. Proctor, “A New Representation and Crossover Operator for Search-Based Optimization of Software Modularization,” Proc. Genetic and Evolutionary Computation Conf., pp. 1351-1358, July 2002.
[14] M. Harman, M. Okunlawon, B. Sivagurunathan, and S. Danicic, “Slice-Based Measurement of Coupling,” Proc. 19th Int'l Conf. Software Eng., Workshop Process Modelling and Empirical Studies of Software Evolution, R. Harrison, ed., May 1997.
[15] M. Harman, S. Swift, and K. Mahdavi, “An Empirical Study of the Robustness of Two Module Clustering Fitness Functions,” Proc. Genetic and Evolutionary Computation Conf., pp. 1029-1036, June 2005.
[16] J.H. Holland, Adaption in Natural and Artificial Systems. MIT Press, 1975.
[17] M.M. Lehman, “On Understanding Laws, Evolution and Conservation in the Large Program Life Cycle,” J. Systems and Software, vol. 1, no. 3, pp. 213-221, 1980.
[18] K. Mahdavi, M. Harman, and R.M. Hierons, “A Multiple Hill Climbing Approach to Software Module Clustering,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 315-324, Sept. 2003.
[19] S. Mancoridis, B.S. Mitchell, Y.-F. Chen, and E.R. Gansner, “Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 50-59, 1999.
[20] S. Mancoridis, B.S. Mitchell, C. Rorres, Y.-F. Chen, and E.R. Gansner, “Using Automatic Clustering to Produce High-Level System Organizations of Source Code,” Proc. Int'l Workshop Program Comprehension, pp. 45-53, 1998.
[21] B.S. Mitchell, “A Heuristic Search Approach to Solving the Software Clustering Problem,” PhD thesis, Drexel Univ., Jan. 2002.
[22] B.S. Mitchell and S. Mancoridis, “Using Heuristic Search Techniques to Extract Design Abstractions from Source Code,” Proc. Genetic and Evolutionary Computation Conf., pp. 1375-1382, July 2002.
[23] B.S. Mitchell and S. Mancoridis, “On the Automatic Modularization of Software Systems Using the Bunch Tool,” IEEE Trans. Software Eng., vol. 32, no. 3, pp. 193-208, Mar. 2006.
[24] L.E. Moses, Think and Explain with Statistics. Addison-Wesley, 1986.
[25] K. Phalp and S. Counsell, “Coupling Trends in Industrial Prototyping Roles: An Empirical Investigation,” Software Quality J., vol. 9, no. 4, pp. 223-240, 2001.
[26] K. Praditwong and X. Yao, “A New Multi-Objective Evolutionary Optimisation Algorithm: The Two-Archive Algorithm,” Proc. Int'l Conf. Computational Intelligence and Security, Y.-M. Cheung, Y. Wang, and H. Liu, eds., vol. 1, pp. 286-291, 2006.
[27] R. Pressman, Software Engineering: A Practitioner's Approach, third ed. (European adaptation (1994), adapted by Darrel Ince). McGraw-Hill, 1992.
[28] M.J. Shepperd, Foundations of Software Measurement. Prentice Hall, 1995.
[29] I. Sommerville, Software Engineering, sixth ed. Addison-Wesley, 2001.
[30] S. Yoo and M. Harman, “Pareto Efficient Multi-Objective Test Case Selection,” Proc. Int'l Symp. Software Testing and Analysis, pp. 140-150, July 2007.
[31] L. Yu, S.R. Schach, K. Chen, and A.J. Offutt, “Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel,” IEEE Trans. Software Eng., vol. 30, no. 10, pp. 694-706, Oct. 2004.
[32] Y. Zhang, M. Harman, and A. Mansouri, “The Multi-Objective Next Release Problem,” Proc. Ninth Ann. Conf. Genetic and Evolutionary Computation, pp. 1129-1137, July 2007.

Index Terms:
SBSE, module clustering, multi-objective optimization, evolutionary computation.
Kata Praditwong, Mark Harman, Xin Yao, "Software Module Clustering as a Multi-Objective Search Problem," IEEE Transactions on Software Engineering, vol. 37, no. 2, pp. 264-282, March-April 2011, doi:10.1109/TSE.2010.26
Usage of this product signifies your acceptance of the Terms of Use.