An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Industrial experience with design patterns
Proceedings of the 18th international conference on Software engineering
Automatic code generation from design patterns
IBM Systems Journal
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
IEEE Transactions on Software Engineering
A Review of Experimental Investigations into Object-Oriented Technology
Empirical Software Engineering
CASE tool evaluation: experiences from an empirical study
Journal of Systems and Software
Defect Frequency and Design Patterns: An Empirical Study of Industrial Code
IEEE Transactions on Software Engineering
Empirical 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 Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A Systematic Review of Theory Use in Software Engineering Experiments
IEEE Transactions 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
A study of student strategies for the corrective maintenance of concurrent software
Proceedings of the 30th international conference on Software engineering
An empirical study on students' ability to comprehend design patterns
Computers & Education
Design patterns: the devils in the detail
Proceedings of the 2006 conference on Pattern languages of programs
TOWARD A SYNERGY BETWEEN SIMULATION AND KNOWLEDGE MANAGEMENT FOR BUSINESS INTELLIGENCE
Cybernetics and Systems
Comparison of different documentation styles for frameworks of object-oriented code
Behaviour & Information Technology
Do rules and patterns affect design maintainability?
Journal of Computer Science and Technology
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
Identification of refactoring opportunities introducing polymorphism
Journal of Systems and Software
Agent-oriented software patterns for rapid and affordable robot programming
Journal of Systems and Software
On the use of genetic programming for automated refactoring and the introduction of design patterns
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Adaptability performance trade-off: a controlled experiment
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
An empirical study on the influence of pattern roles on change-proneness
Empirical Software Engineering
A case of visitor versus interpreter pattern
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
From monolithic to component-based performance evaluation of software architectures
Empirical Software Engineering
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
ADVIS'04 Proceedings of the Third international conference on Advances in Information Systems
ACM SIGSOFT Software Engineering Notes
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
Improving object-oriented micro architectural design through knowledge systematization
ER'05 Proceedings of the 24th international conference on Perspectives in Conceptual Modeling
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
Managing data dependencies in service compositions
Journal of Systems and Software
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Do external feedback loops improve the design of self-adaptive systems? a controlled experiment
Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
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 package proven solutions to recurring design problems in a form that simplifies reuse. We are seeking empirical evidence whether using design patterns is beneficial. In particular, one may prefer using a design pattern even if the actual design problem is simpler than that solved by the pattern, i.e., if not all of the functionality offered by the pattern is actually required. Our experiment investigates software maintenance scenarios that employ various design patterns and compares designs with patterns to simpler alternatives. The subjects were professional software engineers. In most of our nine maintenance tasks, we found positive effects from using a design pattern: Either its inherent additional flexibility was achieved without requiring more maintenance time or maintenance time was reduced compared to the simpler alternative. In a few cases, we found negative effects: The alternative solution was less error-prone or required less maintenance time. Although most of these effects were expected, a few were surprising: A negative effect occurs although a certain application of the Observer pattern appears to be well justified and a positive effect occurs despite superfluous flexibility (and, hence, complexity) introduced by a certain application of the Decorator pattern. Overall, we conclude that, unless there is a clear reason to prefer the simpler solution, it is probably wise to choose the flexibility provided by the design pattern because unexpected new requirements often appear. We identify several questions for future empirical research.