Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Empirical studies of software engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics
IEEE Transactions on Software Engineering
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Meta Patterns - A Means For Capturing the Essentials of Reusable Object-Oriented Design
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Some Misconceptions About Lines of Code
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
OO Design Patterns, Design Structure, and Program Changes: An Industrial Case Study
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Automated Support for Framework-Based Software Evolution
ICSM '03 Proceedings of the International Conference on Software Maintenance
Design Patterns and Change Proneness: An Examination of Five Evolving Systems
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
Empirically driven SE research: state of the art and required maturity
Proceedings of the 28th international conference on Software engineering
CSCW '06 Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Identifying and characterizing change-prone classes in two large-scale open-source products
Journal of Systems and Software
Do Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
An empirical study on the evolution of design patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
An Empirical Study of Class Sizes for Large Java Systems
APSEC '07 Proceedings of the 14th Asia-Pacific Software Engineering Conference
DeMIMA: A Multilayered Approach for Design Pattern Identification
IEEE Transactions on Software Engineering
Design Pattern Detection by Using Meta Patterns
IEICE - Transactions on Information and Systems
Does distributed development affect software quality? An empirical case study of Windows Vista
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Studying volatility predictors in open source software
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Hi-index | 0.00 |
Identifying change-prone sections of code can help managers plan and allocate maintenance effort. Design patterns have been used to study change-proneness and are widely believed to support certain kinds of changes, while inhibiting others. Recently, several studies have analyzed recorded changes to classes playing design pattern roles and find that the patterns "folklore" offers a reasonable explanation for the reality: certain pattern roles do seem to be less change-prone than others. We push this analysis on two fronts: first, we deploy W. Pree's metapatterns, which group patterns purely by structure (rather than intent), and argue that metapatterns are a simpler model to explain recent findings by Di Penta et al. (2008). Second, we study the effect of the size of the classes playing the design pattern and metapattern roles. We find that size explains more of the variance in change-proneness than either design pattern or metapattern roles. We also find that both design pattern and metapattern roles were strong determinants of size. We conclude, therefore, that size appears to be a stronger determinant of change-proneness than either design pattern or metapattern roles, and observed differences in change-proneness between roles might be due to differences in the sizes of the classes playing those roles. The size of a class can be found much more quickly, easily and accurately than its pattern-roles. Thus, while identifying design pattern roles may be important for other reasons, as far as identifying change-prone classes, sheer size might be a better indicator.