Communications of the ACM
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Relationships between design patterns
Pattern languages of program design
Automatic code generation from design patterns
IBM Systems Journal
Analysis patterns: reusable objects models
Analysis patterns: reusable objects models
On the conversion between non-binary constraint satisfaction problems
AAAI '98/IAAI '98 Proceedings of the fifteenth national/tenth conference on Artificial intelligence/Innovative applications of artificial intelligence
Building application frameworks: object-oriented foundations of framework design
Building application frameworks: object-oriented foundations of framework design
Program Transformation Systems
ACM Computing Surveys (CSUR)
Design pattern modelling and instantiation using DPML
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Using Patterns to Model Variability in Product Families
IEEE Software
Graph Pattern Matching in PROGRES
Selected papers from the 5th International Workshop on Graph Gramars and Their Application to Computer Science
Utilizing Constraint Satisfaction Techniques for Efficient Graph Pattern Matching
TAGT'98 Selected papers from the 6th International Workshop on Theory and Application of Graph Transformations
Design Patterns Application in UML
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Software Architecture in Practice
Software Architecture in Practice
Predicting class libraries interface evolution: an investigation into machine learning approaches
APSEC '00 Proceedings of the Seventh Asia-Pacific Software Engineering Conference
Automatic Detection of Design Problems in Object-Oriented Reengineering
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
On the Notion of Variability in Software Product Lines
WICSA '01 Proceedings of the Working IEEE/IFIP Conference on Software Architecture
Algebraic Approaches to Graph Transformation, Part I: Basic Concepts and Double Pushout Approach
Algebraic Approaches to Graph Transformation, Part I: Basic Concepts and Double Pushout Approach
A UML-Based Pattern Specification Technique
IEEE Transactions on Software Engineering
A New Architecture for Transformation-Based Generators
IEEE Transactions on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice - Seventh European Conference on Software Maintenance and Reengineering (CSMR 2003)
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Precise identification of composition relationships for UML class diagrams
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Advanced model transformation language constructs in the VIATRA2 framework
Proceedings of the 2006 ACM symposium on Applied computing
Elemental Design Patterns Recognition In Java
STEP '05 Proceedings of the 13th IEEE International Workshop on Software Technology and Engineering Practice
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
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
Defining Patterns Using UML Profiles
AICCSA '06 Proceedings of the IEEE International Conference on Computer Systems and Applications
Detecting Patterns of Poor Design Solutions Using Constraint Propagation
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Identification of design motifs with pattern matching algorithms
Information and Software Technology
Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans
Electronic Notes in Theoretical Computer Science (ENTCS)
Information and Software Technology
A tool for design pattern detection and software architecture reconstruction
Information Sciences: an International Journal
A metamodeling approach to pattern specification
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Representing and applying design patterns: what is the problem?
MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
Precise specification of design pattern structure and behaviour
ECMFA'10 Proceedings of the 6th European conference on Modelling Foundations and Applications
Finding the pattern you need: the design pattern intent ontology
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
Design patterns codify proven solutions to recurring design problems. Their proper use within a development context requires that: (i) we understand them; (ii) we ascertain their applicability or relevance to the design problem at hand; and (iii) we apply them faithfully to the problem at hand. We argue that an explicit representation of the design problem solved by a design pattern is key to supporting the three tasks in an integrated fashion. We propose a model-driven representation of design patterns consisting of triples MP, MS, T where MP is a model of the problem solved by the pattern, MS is a model of the solution proposed by the pattern, and T is a model transformation of an instance of the problem into an instance of the solution. Given an object-oriented design model, we look for model fragments that match MP (call them instances of MP), and when one is found, we apply the transformation T yielding an instance of MS. Easier said than done. Experimentation with an Eclipse Modeling Framework-based implementation of our approach applied to a number of open-source software application's raised fundamental questions about: (i) the nature of design patterns in general, and the ones that lend themselves to our approach, and (ii) our understanding and codification of seemingly simple design patterns. In this paper, we present the principles behind our approach, report on the results of applying the approach to the Gang of Four (GoF) design patterns, and discuss the representability of design problems solved by these patterns. Copyright © 2011 John Wiley & Sons, Ltd.