Arabian Journal for Science and Engineering

, Volume 43, Issue 12, pp 7083–7094 | Cite as

A Particle Swarm Optimization-Based Heuristic for Software Module Clustering Problem

  • Amarjeet Prajapati
  • Jitender Kumar Chhabra
Research Article - Computer Engineering and Computer Science


The large-scale software module clustering problems (SMCPs) are very difficult to solve by using traditional analytical/deterministic-based optimization methods due to their high complexity and computation cost. Recently, particle swarm optimization (PSO) algorithm, a non-deterministic meta-heuristic search algorithm, gained wide attention and has been adapted to address the various large-scale science and engineering optimization problems. However, the applicability and usefulness of PSO algorithm have not been studied by any researcher till date to solve the SMCPs. In this paper, we introduce PSO-based module clustering (PSOMC), which partitions software system by optimizing: (1) intracluster dependency, (2) intercluster dependency, (3) a number of clusters, and (4) a number of module per cluster. To this contribution, we redefine the terms “position” and “velocity” of original PSO under the discrete scenario that best suited to SMCPs. To demonstrate the performance of the proposed approach, extensive experiments on six real-world SMCPs are carried out. We also compare our approach with existing state-of-the-art software module clustering meta-heuristic approaches (group genetic algorithm, hill climbing, and simulated annealing algorithm). The experimental results show that the proposed approach is effective and promising for solving SMCPs.


Software module clustering Particle swarm optimization Software restructuring 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Fowler, M.; Beck, K.; Brant, J.; Opdyke, W.; Roberts, D.: Refactoring—Improving the Design of Existing Code, 1st edn. Addison-Wesley, Boston, MA (1999)Google Scholar
  2. 2.
    Mancoridis, S.; Mitchell, B.S.; Rorres, C.; Chen, Y.F.; Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: Proceedings of the International Workshop Program Comprehension, pp. 45–53 (1998)Google Scholar
  3. 3.
    Bavota, G.; Gethers, M.; Oliveto, R.; Poshyvanyk, D.; Lucia, A.D.: Improving software modularization via automated analysis of latent topics and dependencies. ACM Trans. Softw. Eng. Methodol. 4(1), 1–33 (2014)CrossRefGoogle Scholar
  4. 4.
    Mancoridis, S.; Mitchell, B.S., Chen, Y.F.; Gansner, E.R.: Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings of the IEEE International Conference Software Maintenance, pp. 50–59 (1999)Google Scholar
  5. 5.
    Doval, D.; Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: Proceedings of the IEEE Conference on Software Technology and Engineering Practice (STEP’99), pp. 73–81 (1999)Google Scholar
  6. 6.
    Mahdavi, K.; Harman, M.; Hierons, R.M.: A multiple hill climbing approach to software module clustering. In: Proceedings of the International Conference on Software Maintenance, pp. 315–324 (2003)Google Scholar
  7. 7.
    Praditwong, K.; Harman, M.; Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2011)CrossRefGoogle Scholar
  8. 8.
    Maqbool, O.; Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)CrossRefGoogle Scholar
  9. 9.
    Amarjeet, P.; Chhabra, J.K.: An empirical study of the sensitivity of quality indicator for software module clustering. In: 2014 Seventh International Conference on Contemporary Computing (IC3), Noida, pp. 206–211 (2014)Google Scholar
  10. 10.
    Amarjeet, P.; Chhabra, J.K.: Improving package structure of object-oriented software using multi-objective optimization and weighted class connections. J. King Saud Univ. Comput. Inf. Sci. 29(3), 349–364 (2017)Google Scholar
  11. 11.
    Amarjeet, P.; Chhabra, J.K.: Harmony search based remodularization for object-oriented software systems. Comput. Lang. Syst. Struct. 47, 153–169 (2017)Google Scholar
  12. 12.
    Amarjeet, P.; Chhabra, J.K.: Improving modular structure of software system using structural and lexical dependency. Inf. Softw. Technol. 82, 96–120 (2017)CrossRefGoogle Scholar
  13. 13.
    Kennedy, J.; Eberhart, R.: Particle swarms optimization. In: Proceedings of 1995 IEEE International Conference on Neural Networks, vol. 4, pp. 1942–1948 (1995)Google Scholar
  14. 14.
    Karaboga, D.: An idea based on honey bee swarm for numerical optimization, Technical Report-TR06. Erciyes University, Engineering Faculty, Computer Engineering Department (2005)Google Scholar
  15. 15.
    Sha, D.Y.; Hsu, C.Y.: A hybrid particle swarm optimization for job shop scheduling problem. Comput. Ind. Eng. 51(4), 791–808 (2006)CrossRefGoogle Scholar
  16. 16.
    Liao, C.J.; Tseng, C.T.; Luarn, P.: A discrete version of particle swarm optimization for flow shop scheduling problems. Comput. Oper. Res. 34(10), 3099–3111 (2007)CrossRefGoogle Scholar
  17. 17.
    Cai, Q.; Gong, M.; Lijia, M.; Ruan, S.; Yuan, F.; Jiao, L.: Greedy discrete particle swarm optimization for large-scale social network clustering. Inf. Sci. 316, 503–516 (2015)CrossRefGoogle Scholar
  18. 18.
    Falkenauer, E.: A new representation and operators for genetic algorithms applied to grouping problems. Evol. Comput. 2, 123–144 (1994)CrossRefGoogle Scholar
  19. 19.
    Kirkpatrick, S.G.; Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Jinhuang, H.; Jing, L.: A similarity-based modularization quality measure for software module clustering problems. Inf. Sci. 342(10), 96–110 (2016)Google Scholar
  21. 21.
    Amarjeet P.; Chhabra, J.K.: TA-ABC: two-archive artificial bee colony for multi-objective software module clustering problem. J. Intell. Syst. (2017)CrossRefGoogle Scholar
  22. 22.
    Amarjeet, P.; Chhabra, J.K.: Many-objective artificial bee colony algorithm for large-scale software module clustering problem, soft computing (2017)CrossRefGoogle Scholar
  23. 23.
    Amarjeet, P.; Chhabra, J.K.: FP-ABC: fuzzy-pareto dominance driven artificial bee colony algorithm for many-objective software module clustering. In: Computer Languages, Systems & Structures. 2017, SSN 1477-8424. CrossRefGoogle Scholar
  24. 24.
    Praditwong, K.: Solving software module clustering problem by evolutionary algorithms. In: 2011 Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE), Nakhon Pathom, pp. 154–159 (2011)Google Scholar
  25. 25.
    Abdeen, H.; Ducasse, S.; Sahraoui, H.; Alloui, I.: Automatic package coupling and cycle minimization. In: 2009 16th Working Conference on Reverse Engineering, Lille, pp. 103–112 (2009)Google Scholar
  26. 26.
    Liu, J.; Zhong, W.; Jiao, L.: A multiagent evolutionary algorithm for constraint satisfaction problems. IEEE Trans. Syst. Man Cybern. Part B 36(1), 54–73 (2006)CrossRefGoogle Scholar
  27. 27.
    Geem, Z.W.; Kim, J.H.; Loganathan, G.: A new heuristic optimization algorithm: harmony search. Simulation 76(2), 60–68 (2001)CrossRefGoogle Scholar
  28. 28.
    Dai, J.; Chen, W.; Gu, H.; Pan, Y.: Particle swarm algorithm for minimal attribute reduction of decision data tables. In: Proceedings of the First International Multi-symposiums on Computer and Computational Sciences, IEEE Computer Society, pp. 572–575 (2006)Google Scholar
  29. 29.
    Chih, M.: Self-adaptive check and repair operator-based particle swarm optimization for the multidimensional knapsack problem. Appl. Appl. Soft Comput. 26, 378–389 (2015)CrossRefGoogle Scholar
  30. 30.
    Innocente, M.S.; Afonso, S.M.B.; Sienz, J.; Davies, H.M.: Particle swarm algorithm with adaptive constraint handling and integrated surrogate model for the management of petroleum fields. Appl. Soft Comput. 34, 463–484 (2015)CrossRefGoogle Scholar
  31. 31.
    Netjinda, N.; Achalakul, T.; Sirinaovakul, B.: Particle swarm optimization inspired by starling flock behavior. Appl. Soft Comput. 35, 411–422 (2015)CrossRefGoogle Scholar
  32. 32.
    Harris, J.; Hirst, J.; Mossinghoff, M.: Combinatorics and Graph Theory, pp. 212–237. Springer, New York (2000)CrossRefGoogle Scholar
  33. 33.
    Kennedy, J.: Particle swarm optimization. Encycl. Mach. Learn. 760–766 (2010)Google Scholar
  34. 34.
    Xie, T.; Gong, M.; Tang, Z.; Lei,Y.; Liu, J.; Wang, Z.: Enhancing evolutionary multifactorial optimization based on particle swarm optimization. In: 2016 IEEE Congress on Evolutionary Computation (CEC), Vancouver, pp. 1658–1665 (2016)Google Scholar
  35. 35.
    Gong, M.; Yan, J.; Shen, B.; Ma, L.; Cai, Q.: Influence maximization in social networks based on discrete particle swarm optimization. Inf. Sci. 367, 600–614 (2016)CrossRefGoogle Scholar
  36. 36.
    Das, P.K.; Behera, H.S.; Das, S.; Tripathy, H.K.; Panigrahi, B.K.; Pradhan, S.K.: A hybrid improved PSO-DV algorithm for multi-robot path planning in a clutter environment. Neurocomputing 207, 735–753 (2016)CrossRefGoogle Scholar
  37. 37.
    Burman, R.; Chakrabarti, S.; Das, S.: Democracy-inspired particle swarm optimizer with the concept of peer groups. Soft Comput. 5, 126–146 (2014)Google Scholar
  38. 38.
    Kundu, R.; Das, S.; Mukherjee, R.; Debchoudhury, S.: An improved particle swarm optimizer with difference mean based perturbation. Neurocomputing 129, 315–333 (2014)CrossRefGoogle Scholar
  39. 39.
    Arcuri, A., Briand, L.: A practical guide for using statistical tests to assess randomized algorithms in software engineering. In: 2011 33rd International Conference on Software Engineering (ICSE), pp. 1–10 (2011)Google Scholar
  40. 40.
    Mkaouer, M.; Kessentini, M.; Shaout, A.; Koligheu, P.; Bechikh, S.; Deb, K.; Ouni, A.: Many objective software remodularization using NSGA-III. ACM Trans. Softw. Eng. Methodol. 24(3), 1–17 (2015)CrossRefGoogle Scholar
  41. 41.
    Amarjeet, P.; Chhabra, J.K.: An Efficient Scheme for Candidate Solutions of Search-Based Multi-objective Software Remodularization, Human Interface and the Management of Information: Information, Design and Interaction, Volume 9734 of the Series LNCS, pp. 296–307. Springer, Berlin (2016)Google Scholar
  42. 42.
    Kumari, A.C.; Srinivas, K.: Hyper-heuristic approach for multi-objective software module clustering. J. Syst. Softw. 117, 384–401 (2016)CrossRefGoogle Scholar
  43. 43.
    Wu, J.; Hassan, A.E.; Holt, R.C.: Comparison of clustering algorithms in the context of software evolution. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, pp. 525–535 (2015)Google Scholar
  44. 44.
    Praditwong, K.: Solving software module clustering problem by evolutionary algorithms. In: Eighth International Joint Conference on Computer Science and Software Engineering, pp. 154–159 (2011)Google Scholar

Copyright information

© King Fahd University of Petroleum & Minerals 2017

Authors and Affiliations

  1. 1.Department of Computer Science & IT, JIITNoidaIndia
  2. 2.Department of Computer EngineeringNIT KurukshetraKurukshetraIndia

Personalised recommendations