A new hierarchical clustering technique for restructuring software at the function level

  • Authors:
  • Aftab Hussain;Md. Saidur Rahman

  • Affiliations:
  • Bangladesh University of Engineering and Technology Dhaka, Bangladesh;Bangladesh University of Engineering and Technology Dhaka, Bangladesh

  • Venue:
  • Proceedings of the 6th India Software Engineering Conference
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Ill-structured code is difficult to understand and thereby is costly to maintain and reuse. Software restructuring techniques based on hierarchical agglomerative clustering (HAC) algorithms have been widely used to restructure large modules with low cohesion into smaller modules with high cohesion, without changing the overall behaviour of the software. These techniques generate clustering trees, of modules, that are sliced at different cut-points to obtain desired restructurings. Choosing appropriate cut-points has always been a difficult problem in clustering. Previous HAC techniques generate clustering trees that have large number of cut-points. Moreover, many of those cut-points return clusters of which only a few lead to a meaningful restructuring of the software. In this paper, we give a new hierarchical clustering technique, the (k, w)-Core Clustering ((k, w)-CC) technique, for restructuring software at the function level that generates clustering trees with lower number of cut-points, which yield a lower number of redundant clusters. (k, w)-CC gives good restructurings. To establish this, we provide an experimental comparison of (k, w)-CC with four previous HAC techniques: single linkage algorithm (SLINK), complete linkage algorithm (CLINK), weighted pair group method of arithmetic averages (WPGMA), and adaptive k-nearest neighbour algorithm (A-KNN). In the experiments, the techniques were implemented on Java functions extracted from real-life industrial programs.