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
Assessing the Changeability of two Object-Oriented Design Alternatives—a Controlled Experiment
Empirical Software Engineering
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Preliminary guidelines for empirical research in software engineering
IEEE Transactions on Software Engineering
A web-based support environment for software engineering experiments
Nordic Journal of Computing
Conducting Realistic Experiments in Software Engineering
ISESE '02 Proceedings of the 2002 International Symposium on Empirical Software Engineering
Death March
Defect Frequency and Design Patterns: An Empirical Study of Industrial Code
IEEE Transactions on Software Engineering
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 Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Building measure-based prediction models for UML class diagram maintainability
Empirical Software Engineering
Agent-oriented software patterns for rapid and affordable robot programming
Journal of Systems and Software
Applying empirical software engineering to software architecture: challenges and lessons learned
Empirical Software Engineering
Exploring alternatives for representing and accessing design knowledge about enterprise integration
ER'07 Proceedings of the 26th international conference on Conceptual modeling
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
ACM SIGSOFT Software Engineering Notes
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
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
Evaluation of the Pattern-based method for Secure Development (PbSD): A controlled experiment
Information and Software Technology
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
On the appropriate rationale for using design patterns and pattern documentation
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
Research state of the art on GoF design patterns: A mapping study
Journal of Systems and Software
Design pattern alternatives: what to do when a GoF pattern fails
Proceedings of the 17th Panhellenic Conference on Informatics
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. To support the industrial use of design patterns, this research investigates when, and how, using patterns is beneficial, and whether some patterns are more difficult to use than others. This paper describes a replication of an earlier controlled experiment on design patterns in maintenance, with major extensions. Experimental realism was increased by using a real programming environment instead of pen and paper, and paid professionals from multiple major consultancy companies as subjects. Measurements of elapsed time and correctness were analyzed using regression models and an estimation method that took into account the correlations present in the raw data. Together with on-line logging of the subjects’ work, this made possible a better qualitative understanding of the results. The results indicate quite strongly that some patterns are much easier to understand and use than others. In particular, the Visitor pattern caused much confusion. Conversely, the patterns Observer and, to a certain extent, Decorator were grasped and used intuitively, even by subjects with little or no knowledge of patterns. The implication is that design patterns are not universally good or bad, but must be used in a way that matches the problem and the people. When approaching a program with documented design patterns, even basic training can improve both the speed and quality of maintenance activities.