A taxonomy of modular grime in design patterns
Schanz, Travis Steven
MetadataShow full item record
Software designs decay over time. While most studies focus on decay at the system level, this research studies design decay on well understood micro architectures, design patterns. Formal definitions of design patterns provide a homogeneous foundation that can be used to measure deviations as pattern realizations evolve. Empirical studies have shown modular grime to be a significant contributor to design pattern decay. Modular grime is observed when increases in the coupling of design pattern classes develop in ways unintended by the original designer. Further research is necessary to formally categorize distinct forms of modular grime. We identify three properties of coupling relationships that are used to classify subsets of modular grime. A taxonomy is presented which uses these properties to group modular grime into six disjoint categories. We gather data from three open source software systems to test hypotheses about the significance of grime buildup for each of the six taxonomy categories. The results reveal that one form of modular grime is more apt to develop than others. This was observed in all the systems in the study. We also found that some types of modular grime show insignificant growth while others vary between systems. We conclude that certain types of modular grime are more likely to contribute to design pattern decay.