{'fraction_non_alphanumeric': 0.014522821576763486, 'fraction_numerical': 0.0, 'mean_word_length': 6.043795620437956, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Role of relationships during clustering of object-oriented software systems

Clustering has been applied by researchers for the architecture recovery of software systems. Clustering algorithms form clusters of similar entities, where similarity is determined by the characteristics of an entity or the relationships that exist between entities. Thus selecting appropriate relationships is important for improving cluster quality. As compared to structured systems, for which relationships have been evaluated, relatively little work has been done for object-oriented software systems to determine which relationships produce better clustering results. In this paper, we divide relationships within object-oriented systems into different categories and evaluate them. We conduct experiments on three test systems using well known hierarchical clustering algorithms. Our experimental results indicate the relationships that improve the quality of clustering results.