Software Module Clustering Algorithm Using Probability Selection

  • Jiaze SunEmail author
  • Beilei Ling
Computer Science


Software module clustering problem is an important and challenging problem in software reverse engineering whose main goal is to obtain a good modular structure of the software system. The large complex software system can be divided into some subsystems that are easy to understand and maintain through the software module clustering. Aiming at solving the problem of slow convergence speed, the poor clustering result, and the complex algorithm, a software module clustering algorithm using probability selection is proposed. Firstly, we convert the software system into complex network diagram, and then we use the operation of merger, adjustment and optimization to get the software module clustering scheme. To evaluate the effectiveness of the algorithm, a set of experiments was performed on 5 real-world module clustering problems. The comparison of the experimental results proves the simplicity of the algorithm as well as the low time complexity and fast convergence speed. This algorithm provides a simple and effective engineering method for software module clustering problem.

Key words

software module clustering complex network merger adjustment optimization probability selection 

CLC number

TP 311.5 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Wang Y, Chen X, Cao C. Study on cost of application software system maintenance[J]. Computer Engineering, 2001, 27(7): 65–66.Google Scholar
  2. [2]
    Bishnoi M, Singh P. Modularizing software systems using PSO optimized hierarchical clustering [C] //International Conference on Computational Techniques in Information and Communication Technologies. Washington D C: IEEE, 2016: 659–664.Google Scholar
  3. [3]
    Hussain I, Khanum A. A novel approach for software architecture recovery using particle swarm optimization[J]. The International Arab Journal of Information Technology, 2015, 12(1): 32–41.Google Scholar
  4. [4]
    Praditwong K, Harman M, Yao X. Software module clustering as a multi-objective search problem[J]. IEEE Transactions on Software Engineering, 2010, 37(2): 264–282.CrossRefGoogle Scholar
  5. [5]
    Praditwong K, Yao X. A new multi-objective evolutionary optimisation algorithm: The two-archive algorithm [C] //Proceedings of the 2006 International Conference on Computational Intelligence and Security. Washington D C: IEEE, 2006: 286–291.CrossRefGoogle Scholar
  6. [6]
    Praditwong K. Solving software module clustering problem by evolutionary algorithms[C] //Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE 2011). Washington D C: IEEE, 2011: 154–159.CrossRefGoogle Scholar
  7. [7]
    Huang J, Liu J. A similarity-based modularization quality measure for software module clustering problems[J]. Information Sciences, 2016, 342: 96–110.CrossRefGoogle Scholar
  8. [8]
    Sun S, Xia C, Wang L. Survey of the measurement of software structures based on complex networks[J]. CAAI Transactions on Intelligent Systems, 2011, 6(3): 208–212.Google Scholar
  9. [9]
    Watts D J, Strogatz S H. Collective dynamics of small world networks[J]. Nature, 1998, 393(6684): 440–442.CrossRefPubMedGoogle Scholar
  10. [10]
    Barabasi A L, Albert R. Emergence of scaling in random networks[J]. Science, 1999, 286(5439): 509–512.CrossRefPubMedGoogle Scholar
  11. [11]
    Wang B, Lu J. Software networks nodes impact analysis of complex software systems[J]. Journal of Software, 2013, 24(12): 2814–2829(Ch).CrossRefGoogle Scholar
  12. [12]
    Potanin A, Noble J, Frean M, et al. Scale-free geometry in object-oriented programs[J]. Communications of the ACM, 2005, 48(5): 99–103.CrossRefGoogle Scholar
  13. [13]
    Kumari A C, Srinivas K. Software module clustering using a hyper-heuristic based multi-objective genetic algorit-hm[C] //Proceedings of the 2013 3rd IEEE International Advance Computing Conference. Ghaziabad: Advance Computing Conference, 2013: 813–818.CrossRefGoogle Scholar
  14. [14]
    Ma Y, He K, Li B, et al. Empirical study on the characteristics of complex networks in networked software[J]. Journal of Software, 2011, 22(3): 381–407(Ch).CrossRefGoogle Scholar
  15. [15]
    Myers C R. Software systems as complex networks: structure, function, and evolvability of software collaboration graphs[J]. Physical Review E, 2003, 68(2): 352–375.Google Scholar
  16. [16]
    Mitchell B S. A heuristic search approach to solving the software clustering problem[C]//Proceedings of the International Conference on Software. Washington D C: IEEE, 2003: 285–288.Google Scholar
  17. [17]
    Mancoridis S, Mitchell B S, Chen Y F, et al. Bunch: a clustering tool for the recovery and maintenance of software system structures[C]//Proc of Int Conf of Software Maintenance. Washington D C: IEEE, 1999: 50–59.Google Scholar
  18. [18]
    Doval D, Mancoridis S, Mitchell B S. Automatic clustering of software systems using a genetic algorithm[C] //Proceesings of IEEE Conference on Software Technology and Engineering Practice(STEP’99). Washington D C: IEEE, 1999: 73–81.Google Scholar
  19. [19]
    Bavota G, Gethers M, Oliveto R, et al. Improving software modularization via automated analysis of latent topics and dependencies[J]. ACM Trans Softw Eng Method, 2014, 23(1): 1–33.CrossRefGoogle Scholar
  20. [20]
    Kumara A C, Srinivas K. Software module clustering using a fast multi-objective hyper-heuristic evolutionary algorithm[J]. International Journal of Applied Information Systems, 2013, 5(6): 12–13.CrossRefGoogle Scholar
  21. [21]
    Liu C, Liu J, Jiang Z. A multi objective evolutionary algorithm based on similarity for community detection from signed social networks[J]. IEEE Trans Cybern, 2014, 44(12): 2274–2287.CrossRefPubMedGoogle Scholar
  22. [22]
    Praditwong K. Solving software module clustering problem by evolutionary algorithms[C] //Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE 2011). Washington D C: IEEE, 2011: 154–159.CrossRefGoogle Scholar
  23. [23]
    Wang G, Zhang Q, Ma X, et al. Granular computing models for knowledge uncertainty[J]. Journal of Software, 2011, 22(4): 676–694(Ch).CrossRefGoogle Scholar
  24. [24]
    Qian G, Zhang L, Zhang L, et al. Modeling method and characteristics analysis of software dependency networks[J]. Computer Science, 2008, 35(11): 239–243(Ch).Google Scholar
  25. [25]
    Pan W, Li B, Ma Y, et al. Multi-granularity evolution analysis of software using complex network theory[J]. Journal of Systems Science and Complexity, 2011, 24(6): 1068–1082(Ch).CrossRefGoogle Scholar
  26. [26]
    Pan W, Li B, Ma Y, et al. Measuring structural quality of object-oriented software via bug propagation analysis on weighted software networks[J]. Journal of Computer Science and Technology, 2010, 25(6): 1202–1213.CrossRefGoogle Scholar
  27. [27]
    Britoe A F, Goulao M. Coupling and cohesion as modularization drivers: Are we being over-persuaded[C]//Proceedings of the 15th European Conference on Software Maintenance and Reengineering. Washington D C: IEEE Computer Society, 2001: 47–57.CrossRefGoogle Scholar
  28. [28]
    Mahdavi K, Harman M, Hierons R M. A multiple hill climbing approach to software module clustering [C] //Proceedings of the International Conference on Software Maintenance. Washington D C: IEEE, 2003: 315–324.Google Scholar
  29. [29]
    Huang J, Liu J, Yao X. A multi-agent evolutionary algorithm for software module clustering problems[J]. Soft Computing, 2016, 21(12): 3415–3428.CrossRefGoogle Scholar

Copyright information

© Wuhan University and Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  1. 1.School of Computer Science and TechnologyXi’an University of Posts and TelecommunicationsXi’anChina
  2. 2.Shaanxi Key Laboratory of Network Data Intelligent ProcessingXi’an University of Posts and TelecommunicationsXi’anChina

Personalised recommendations