Design Pattern Coupling, Change Proneness, and Change Coupling: A Pilot Study
James M. Bieman, HUIXIA JUDY WANG · 2006
A design pattern realization consists of a cluster of classes that work together to solve a particular problem using a well known, named solution. Developers may build systems out of several pattern realizations, and these pattern realizations may be interconnected, or, in other words, coupled. Coupled pattern realizations may represent a reasonable solution to software design problems, however the coupling can introduce dependencies that increase faultproneness and lower adaptability. We identify mechanisms that can couple pattern realizations, and evaluate the relative tightness of the connections. An examination of pattern coupling in five systems provides initial evidence that pattern coupling is common. In addition, we find initial evidence that classes in pattern realizations that are coupled via associations are (1) more change prone and (2) exhibit higher change coupling — classes that are modified together in response to one required change — than those in pattern realizations that are coupled by other mechanisms