Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Experimental software engineering: a report on the state of the art
Proceedings of the 17th international conference on Software engineering
Software metrics (2nd ed.): a rigorous and practical approach
Software metrics (2nd ed.): a rigorous and practical approach
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Investigating quality factors in object-oriented designs: an industrial case study
Proceedings of the 21st international conference on Software engineering
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
IEEE Transactions on Software Engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
A Comprehensive Empirical Validation of Design Measures for Object-Oriented Systems
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Using Metrics to Identify Design Patterns in Object-Oriented Software
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Multi-View Software Evolution: A UML-based Framework for Evolving Object-Oriented Software
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Editorial: The Role of Prognostication in Software Design
Software Quality Control
Defect Frequency and Design Patterns: An Empirical Study of Industrial Code
IEEE Transactions on Software Engineering
Toward effective deployment of design patterns for software extension: a case study
Proceedings of the 2006 international workshop on Software quality
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Evaluation of object-oriented design patterns in game development
Information and Software Technology
Do rules and patterns affect design maintainability?
Journal of Computer Science and Technology
Enhancing class commutability in the deployment of design patterns
Information and Software Technology
An empirical study on the influence of pattern roles on change-proneness
Empirical Software Engineering
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
Fault links: exploring the relationship between module and fault types
EDCC'05 Proceedings of the 5th European conference on Dependable Computing
The ability of object-oriented metrics to predict change-proneness: a meta-analysis
Empirical Software Engineering
International Journal of Information System Modeling and Design
Hi-index | 0.00 |
A primary expected benefit of object-oriented (OO) methods is the creation of software systems that are easier to adapt and maintain. OO design patterns are especially geared to improve adaptability, since patterns generally increase the complexity of an initial design in order to ease future enhancements. For design patterns to really provide benefit, they must reduce the cost of future adaptation. The evidence of improvements in adaptability through the use of design patterns and other design structures consists primarily of intuitive arguments and examples. There is little empirical evidence to support claims of improved flexibility of these preferred structures.In this case study, we analyze 39 versions of an evolving industrial OO software system to see if there is a relationship between patterns, other design attributes, and the number of changes. We found a strong relationship between class size and the number of changes --- larger classes were changed more frequently. We also found two relationships that we did not expect: (1) classes that participate in design patterns are NOT less change prone --- these pattern classes are among the most change prone in the system, and (2) classes that are reused the most through inheritance tend to be more change prone. These unexpected results hold up after accounting for class size, which had the strongest relationship with changes.