Software Module Clustering Algorithm Using Probability Selection
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 wordssoftware module clustering complex network merger adjustment optimization probability selection
CLC numberTP 311.5
Unable to display preview. Download preview PDF.
- Wang Y, Chen X, Cao C. Study on cost of application software system maintenance[J]. Computer Engineering, 2001, 27(7): 65–66.Google Scholar
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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