{'fraction_non_alphanumeric': 0.02637528259231349, 'fraction_numerical': 0.0, 'mean_word_length': 4.876106194690266, '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}}
The Impact of Transitive Class Relations on Measuring the Degree of Class Cohesion

Measuring software quality attributes helps in determining the degree of the quality of the software system. Among the various software attributes, cohesion is considered one of the most important software design concerns. In this study, the focus was on investigating the impact of transitive or indirect relations between classes on measuring cohesion. It was assumed that software metrics which take into account transitive relations would provide cohesion values equal or greater than metrics which consider direct relations. Four metrics are covered in this study, including: TCC (Tight Class Cohesion), LCC (Loose Class Cohesion), LCC-D (Lack of Class Cohesion - Direct), and LCC-I (Lack of Class Cohesion-Indirect). Several programs in C# were selected and a tool was developed for calculating these metrics and their values were compared and correlated. The findings of the study show that the assumptions of this study were not valid for certain cases. The values of TCC and LCC were identical in most cases and so is the case the values of LCC-D and LCC-I. Nevertheless, both LCC-D and LCC-I which take into account relations based on method invocations besides instance variable-sharing show higher values than those of TCC and LCC.