Skip to Main Content
Various techniques have been proposed for the automatic modularisation and architecture recovery of software systems. These techniques usually employ an algorithm to form clusters of similar entities. Similarity between entities is based on their characteristics, and is often determined by the relationships that exist between them. When using automatic techniques, selecting a suitable algorithm and appropriate relationships are challenging issues, and have a significant influence on the quality of results. Although researchers have employed different algorithms for modularising object-oriented software systems, there has been relatively little work to determine which relationships produce better modularisation results. The authors evaluate in this study a large number of relationships that may exist between entities in an object-oriented system, by dividing the relationships into different categories. For modularisation, experiments are conducted using multiple hierarchical clustering algorithms. The experimental results indicate the relationships that improve the quality of results for the algorithms, and thus may be considered more important for software clustering.