International Journal of Information Engineering and Electronic Business(IJIEEB)

ISSN: 2074-9023 (Print), ISSN: 2074-9031 (Online)

Published By: MECS Press

IJIEEB Vol.8, No.4, Jul. 2016

Software Module Clustering Using Hybrid Socio-Evolutionary Algorithms

Full Text (PDF, 1096KB), PP.43-53

Views:124   Downloads:3


Kawal Jeet, Renu Dhir

Index Terms

Genetic algorithm;Imperialist competitive algorithm;Module dependency graph;Reverse engineering Software clustering;Software maintenance


Design of the software system plays a crucial role in the effective and efficient maintenance of the software system. In the absence of original design structure it might be required to re-identify the design by using the source code of the concerned software. Software clustering is one of the powerful techniques which could be used to cluster large software systems into smaller manageable subsystems containing modules of similar features. This paper examines the use of novel evolutionary imperialist competitive algorithms, genetic algorithms and their combinations for software clustering. Apparently, recursive application of these algorithms result in the best performance in terms of quality of clusters, number of epochs required for convergence and standard deviation obtained by repeated application of these algorithms.

Cite This Paper

Kawal Jeet, Renu Dhir,"Software Module Clustering Using Hybrid Socio-Evolutionary Algorithms", International Journal of Information Engineering and Electronic Business(IJIEEB), Vol.8, No.4, pp.43-53, 2016. DOI: 10.5815/ijieeb.2016.04.06


[1]S. E. S. Committee, "IEEE Standard for Software Maintenance," IEEE Std, pp. 1219-1998, 1998.

[2]P. Tonella, "Reverse engineering of object oriented code," in Proceedings of the 27th international conference on Software engineering, 2005, pp. 724-725.

[3]M. V. Zelkowitz, A. C. Shaw, and J. D. Gannon, Principles of software engineering and design: Prentice-Hall Englewood Cliffs, 1979.

[4]P. Dugerdil and J. Repond, "Automatic generation of abstract views for legacy software comprehension," in Proceedings of the 3rd India software engineering conference, 2010, pp. 23-32.

[5]A. Lakhotia, "A unified framework for expressing software subsystem classification techniques," Journal of Systems and Software, vol. 36, pp. 211-231, 1997.

[6]R. Koschke, "Atomic architectural component recovery for program understanding and evolution," 2000.

[7]P. Andritsos and V. Tzerpos, "Information-theoretic software clustering," Software Engineering, IEEE Transactions on, vol. 31, pp. 150-165, 2005.

[8]E. Atashpaz-Gargari and C. Lucas, "Imperialist competitive algorithm: an algorithm for optimization inspired by imperialistic competition," in Evolutionary computation, 2007. CEC 2007. IEEE Congress on, 2007, pp. 4661-4667.

[9]I. Rasekh, "Dynamic Search Optimization for Semantic Webs Using Imperialistic Competitive Algorithm," in Information Science and Applications (ICISA), 2012 International Conference on, 2012, pp. 1-5.

[10]B. S. Mitchell and S. Mancoridis, "Using Heuristic Search Techniques To Extract Design Abstractions From Source Code," in GECCO, 2002, pp. 1375-1382.

[11]B. S. Mitchell and S. Mancoridis, "On the automatic modularization of software systems using the bunch tool," Software Engineering, IEEE Transactions on, vol. 32, pp. 193-208, 2006.

[12]B. S. Mitchell and S. Mancoridis, "On the evaluation of the Bunch search-based software modularization algorithm," Soft Computing, vol. 12, pp. 77-93, 2008.

[13]S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron, and A. Mockus, "Does code decay? assessing the evidence from change management data," Software Engineering, IEEE Transactions on, vol. 27, pp. 1-12, 2001.

[14]M. F. Khan, K. Yousaf, A. Mustaqeem, and M. Maqsood, "Improvement in Quality of Software Architecture via Enhanced-Pattern Driven Architecture (EPDA)," International Journal of Information Technology and Computer Science (IJITCS), vol. 4, p. 31, 2012.

[15]M. Harman, "The current state and future of search based software engineering," in 2007 Future of Software Engineering, 2007, pp. 342-357.

[16]M. Harman, R. M. Hierons, and M. Proctor, "A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization," in GECCO, 2002, pp. 1351-1358.

[17]O. Maqbool and H. Babri, "Hierarchical clustering for software architecture recovery," Software Engineering, IEEE Transactions on, vol. 33, pp. 759-780, 2007.

[18]V. Tzerpos and R. C. Holt, "ACDC: An algorithm for comprehension-driven clustering," in wcre, 2000, p. 258.

[19]S. Mancoridis. 03 January 2014). Bunch tool. 

[20]A. Ibrahim, D. Rayside, and R. Kashef, "Cooperative based software clustering on dependency graphs," in Electrical and Computer Engineering (CCECE), 2014 IEEE 27th Canadian Conference on, 2014, pp. 1-6.

[21]I. Hussain, A. Khanum, A. Q. Abbasi, and M. Y. Javed, "A Novel Approach for Software Architecture Recovery using Particle Swarm Optimization," International Arab Journal of Information Technology (IAJIT), vol. 12, 2015.

[22]M. T. Ziabari, A. R. Sahab, and S. N. S. Fakhari, "Synchronization New 3D Chaotic System Using Brain Emotional Learning Based Intelligent Controller," International Journal of Information Technology and Computer Science (IJITCS), vol. 7, p. 80, 2015.

[23]V. Khorani, F. Razavi, and A. Ghoncheh, "A New Hybrid Evolutionary Algorithm Based on ICA and GA: Recursive-ICA-GA," in IC-AI, 2010, pp. 131-140.

[24]S. Mancoridis, B. S. Mitchell, C. Rorres, Y. Chen, and E. R. Gansner, "Using automatic clustering to produce high-level system organizations of source code," in International Conference on Program Comprehension, 1998, pp. 45-45.

[25]K. Mahdavi, M. Harman, and R. M. Hierons, "A multiple hill climbing approach to software module clustering," in Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on, 2003, pp. 315-324.

[26]S. Mancoridis. (2002, 10 September 2013). Sample MDGs. Available:

[27]D. E. Goldberg, Genetic algorithms: Pearson Education India, 2006.

[28]B. S. Mitchell and S. Mancoridis, "Comparing the decompositions produced by software clustering algorithms using similarity measurements," in Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01), 2001, p. 744.