Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Pattern-based software reengineering: a case study
Journal of Software Maintenance: Research and Practice
A framework for preprocessor-aware C source code analyses
Software—Practice & Experience
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process
Object-oriented design patterns recovery
Journal of Systems and Software
The effects of design pattern application on metric scores
Journal of Systems and Software
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Experience Using Design Patterns to Evolve Communication Software Across Diverse OS Platforms
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Pattern-Based Design and Implementation of an XML and RDF Parser and Interpreter: A Case Study
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
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)
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)
Pattern Visualization for Software Comprehension
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Instantiating and Detecting Design Patterns: Putting Bits and Pieces Together
Proceedings of the 16th IEEE international conference on Automated software engineering
TOOLS '01 Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)
Mining Design Patterns from C++ Source Code
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
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
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
Is it a bug or an enhancement?: a text-based approach to classify change requests
CASCON '08 Proceedings of the 2008 conference of the center for advanced studies on collaborative research: meeting of minds
Assessing conformance of pattern-based design in UML
Proceedings of the 46th Annual Southeast Regional Conference on XX
Do rules and patterns affect design maintainability?
Journal of Computer Science and Technology
Overview of the 3rd international workshop on software patterns and quality ((SPAQu'09)
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Impact of the visitor pattern on program comprehension and maintenance
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
On the ability of complexity metrics to predict fault-prone classes in object-oriented systems
Journal of Systems and Software
Towards pattern-oriented design of agent-based simulation models
MATES'09 Proceedings of the 7th German conference on Multiagent system technologies
Nothing else matters: what predictive model should I use?
Proceedings of the 7th International Conference on Predictive Models in Software Engineering
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
An exploratory study of the impact of antipatterns on class change- and fault-proneness
Empirical Software Engineering
An empirical investigation on the impact of design pattern application on computer game defects
Proceedings of the 15th International Academic MindTrek Conference: Envisioning Future Media Environments
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
International Journal of Information System Modeling and Design
A fuzzy matching approach for design pattern mining
Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology - Hybrid approaches for approximate reasoning
Hi-index | 0.00 |
Software "design patterns驴 seek to package proven solutions to design problems in a form that makes it possible to find, adapt, and reuse them. A common claim is that a design based on properly applied patterns will have fewer defects than more ad hoc solutions. This case study analyzes the weekly evolution and maintenance of a large commercial product (C++, 500,000 LOC) over three years, comparing defect rates for classes that participated in selected design patterns to the code at large. We found that there are significant differences in defect rates among the patterns, ranging from 63 percent to 154 percent of the average rate. We developed a new set of tools able to extract design pattern information at a rate of 3\times 10^6 lines of code per hour, with relatively high precision. Based on a qualitative analysis of the code and the nature of the patterns, we conclude that the Observer and Singleton patterns are correlated with larger code structures and, so, can serve as indicators of code that requires special attention. Conversely, code designed with the Factory pattern is more compact and possibly less closely coupled and, consequently, has lower defect numbers. The Template Method pattern was used in both simple and complex situations, leading to no clear tendency.