By Daryl Posnett, Christian Bird, and Premkumar Devanbu

Identifying change-prone sections of code can help managers plan and allocatemaintenance effort. Design patterns have been used to studychange-proneness and are widely believed to support certain kinds ofchanges, while inhibiting others. Recently, several studies have analyzedrecorded changes to classes playing design pattern roles and find that thepatterns “folklore” offers a reasonable explanation for the reality:certain pattern roles do seem to be less change-prone than others. We pushthis analysis on two fronts: first, we deploy W. Pree’s metapatterns, whichgroup patterns purely by structure (rather than intent), and argue thatmetapatterns are a simpler model to explain recent findings by Di Penta etal. (2008). Second, we study the effect of the size of the classes playingthe design pattern and metapattern roles. We find that size explains moreof the variance in change-proneness than either design pattern ormetapattern roles. We also find that both design pattern and metapatternroles were strong determinants of size. We conclude, therefore, that sizeappears to be a stronger determinant of change-proneness than either designpattern or metapattern roles, and observed differences in change-pronenessbetween roles might be due to differences in the sizes of the classesplaying those roles. The size of a class can be found much more quickly,easily and accurately than its pattern-roles. Thus, while identifying designpattern roles may be important for other reasons, as far as identifyingchange-prone classes, sheer size might be a better indicator.


  author = {Daryl Posnett and Christian Bird and Premkumar Devanbu},
  title = {{An Empirical Study on the Influence of Pattern Roles on Change-Proneness}},
  journal = {Empirical Software Engineering, An International Journal},
  year = {2010},
  publisher = {Springer-Verlag}

An Empirical Study on the Influence of Pattern Roles on Change-Proneness (ESE)