Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis
IEEE Transactions on Software Engineering
Proceedings of the 20th international conference on Software engineering
A Hierarchical Model for Object-Oriented Design Quality Assessment
IEEE Transactions on Software Engineering
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
The Pattern Almanac
The effects of design pattern application on metric scores
Journal of Systems and Software
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
Static and dynamic structure in design patterns
Proceedings of the 24th International Conference on Software Engineering
Metrics for applying GOF design patterns in refactoring processes
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
An Empirical Investigation of an Object-Oriented Software System
IEEE Transactions on Software Engineering
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
A Pattern-Based Approach to Structural Design Composition
COMPSAC '99 23rd International Computer Software and Applications Conference
Coupling of Design Patterns: Common Practices and Their Benefits
COMPSAC '01 Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development
Using CBR for Automation of Software Design Patterns
ECCBR '02 Proceedings of the 6th European Conference on Advances in Case-Based Reasoning
Design Pattern Rationale Graphs: linking design to source
Proceedings of the 25th International Conference on Software Engineering
Precise specification and automatic application of design patterns
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
A Transformational Viewpoint on Design Patterns
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Using Metrics to Identify Design Patterns in Object-Oriented Software
METRICS '98 Proceedings of the 5th 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)
A Declarative Evolution Framework for Object-Oriented Design Patterns
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Instantiating and Detecting Design Patterns: Putting Bits and Pieces Together
Proceedings of the 16th IEEE international conference on Automated software engineering
A Quantitative Evaluation of Maintainability Enhancement by Refactoring
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Design Patterns and Change Proneness: An Examination of Five Evolving Systems
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
A Role-Based Metamodeling Approach to Specifying Design Patterns
COMPSAC '03 Proceedings of the 27th Annual International Conference on Computer Software and Applications
Predicting Maintainability with Object-Oriented Metrics - An Empirical Comparison
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
A UML-Based Pattern Specification Technique
IEEE Transactions on Software Engineering
Precise Modeling of Design Patterns in UML
Proceedings of the 26th International Conference on Software Engineering
Responsibilities and Rewards: Specifying Design Patterns
Proceedings of the 26th International Conference on Software Engineering
Probabilistic Evaluation of Object-Oriented Systems
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
Open source software development should strive for even greater code maintainability
Communications of the ACM - Voting systems
Fingerprinting Design Patterns
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Managing UI pattern collections
CHINZ '05 Proceedings of the 6th ACM SIGCHI New Zealand chapter's international conference on Computer-human interaction: making CHI natural
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
Measuring precision for static and dynamic design pattern recognition as a function of coverage
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Automatic verification of design patterns in Java
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
The Structural Complexity of Software: An Experimental Test
IEEE Transactions on Software Engineering
Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series)
Evaluation of object-oriented design patterns in game development
Information and Software Technology
Predicting object-oriented software maintainability using multivariate adaptive regression splines
Journal of Systems and Software
Do Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Visualizing Design Patterns in Their Applications and Compositions
IEEE Transactions on Software Engineering
Systematic pattern selection using pattern language grammars and design space analysis
Software—Practice & Experience
A model-driven framework for representing and applying design patterns
COMPSAC '07 Proceedings of the 31st Annual International Computer Software and Applications Conference - Volume 01
IEEE Transactions on Software Engineering
A Requirement Analysis Pattern Selection Method for E-Business Project Situation
ICEBE '07 Proceedings of the IEEE International Conference on e-Business Engineering
WICSA '08 Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
Architecting as decision making with patterns and primitives
Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
A quantitative approach for evaluating the quality of design patterns
Journal of Systems and Software
Facilitating software extension with design patterns and Aspect-Oriented Programming
Journal of Systems and Software
Specifying Behavioural Features of Design Patterns in First Order Logic
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
The visitor pattern as a reusable, generic, type-safe component
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Selecting Security Patterns that Fulfill Security Requirements
RE '08 Proceedings of the 2008 16th IEEE International Requirements Engineering Conference
Do Design Patterns Impact Software Quality Positively?
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
A systematic review of software maintainability prediction and metrics
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Formal specification of the variants and behavioural features of design patterns
Journal of Systems and Software
An application of Bayesian network for predicting object-oriented software maintainability
Information and Software Technology
Improving design-pattern identification: a new approach and an exploratory study
Software Quality Control
Impact of refactoring on quality code evaluation
Proceedings of the 4th Workshop on Refactoring Tools
A survey of existing approaches for pattern search and selection
Proceedings of the 15th European Conference on Pattern Languages of Programs
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 |
Context: Software quality is considered to be one of the most important concerns of software production teams. Additionally, design patterns are documented solutions to common design problems that are expected to enhance software quality. Until now, the results on the effect of design patterns on software quality are controversial. Aims: This study aims to propose a methodology for comparing design patterns to alternative designs with an analytical method. Additionally, the study illustrates the methodology by comparing three design patterns with two alternative solutions, with respect to several quality attributes. Method: The paper introduces a theoretical/analytical methodology to compare sets of ''canonical'' solutions to design problems. The study is theoretical in the sense that the solutions are disconnected from real systems, even though they stem from concrete problems. The study is analytical in the sense that the solutions are compared based on their possible numbers of classes and on equations representing the values of the various structural quality attributes in function of these numbers of classes. The exploratory designs have been produced by studying the literature, by investigating open-source projects and by using design patterns. In addition to that, we have created a tool that helps practitioners in choosing the optimal design solution, according to their special needs. Results: The results of our research suggest that the decision of applying a design pattern is usually a trade-off, because patterns are not universally good or bad. Patterns typically improve certain aspects of software quality, while they might weaken some other. Conclusions: Concluding the proposed methodology is applicable for comparing patterns and alternative designs, and highlights existing threshold that when surpassed the design pattern is getting more or less beneficial than the alternative design. More specifically, the identification of such thresholds can become very useful for decision making during system design and refactoring.