Skip to main content
Log in

Software Module Clustering Algorithm Using Probability Selection

  • Computer Science
  • Published:
Wuhan University Journal of Natural Sciences

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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. 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. 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. 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.

    Article  Google Scholar 

  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.

    Chapter  Google Scholar 

  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.

    Chapter  Google Scholar 

  7. Huang J, Liu J. A similarity-based modularization quality measure for software module clustering problems[J]. Information Sciences, 2016, 342: 96–110.

    Article  Google Scholar 

  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. Watts D J, Strogatz S H. Collective dynamics of small world networks[J]. Nature, 1998, 393(6684): 440–442.

    Article  CAS  PubMed  Google Scholar 

  10. Barabasi A L, Albert R. Emergence of scaling in random networks[J]. Science, 1999, 286(5439): 509–512.

    Article  CAS  PubMed  Google Scholar 

  11. Wang B, Lu J. Software networks nodes impact analysis of complex software systems[J]. Journal of Software, 2013, 24(12): 2814–2829(Ch).

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Chapter  Google Scholar 

  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).

    Article  Google Scholar 

  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. 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. 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. 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. 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.

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Article  PubMed  Google Scholar 

  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.

    Chapter  Google Scholar 

  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).

    Article  Google Scholar 

  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. 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).

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Chapter  Google Scholar 

  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. Huang J, Liu J, Yao X. A multi-agent evolutionary algorithm for software module clustering problems[J]. Soft Computing, 2016, 21(12): 3415–3428.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jiaze Sun.

Additional information

Foundation item: Supported by the Science Foundation of Education Ministry of Shaanxi Province (15JK1672), the Industrial Research Project of Shaanxi Province (2016GY-089) and the Innovation Fund of Xi’an University of Posts and Telecommunications(103-602080012)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Sun, J., Ling, B. Software Module Clustering Algorithm Using Probability Selection. Wuhan Univ. J. Nat. Sci. 23, 93–102 (2018). https://doi.org/10.1007/s11859-018-1299-9

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11859-018-1299-9

Key words

CLC number

Navigation