Design Patterns: Current Challenges, Trends, and Research Directions

Design patterns solve recurring design problems. We can classify the literature on design patterns into two main categories: 1) Pattern Application, i.e., applying design patterns on a design model which is a forward engineering approach, and 2) Pattern Detection and Identification, i.e, extracting applied design patterns from a given source code which is a reverse engineering approach. With the above classification in mind, this report intends to explore the current challenges behind the design patterns and related tools. Design Patterns: Current Challenges, Trends and Research Directions Alireza Rouhi and Bahman Zamani Department of Software Engineering University of Isfahan Isfahan, Iran. {rouhi, zamani}@eng.ui.ac.ir Abstract: Design patterns solve recurring design problems. We can classify the literature on design patterns into two main categories: 1) Pattern Application, i.e., applying design patterns on a design model which is a forward engineering approach, and 2) Pattern Detection and Identification, i.e, extracting applied design patterns from a given source code which is a reverse engineering approach. With the above classification in mind, this report intends to explore the current challenges behind the design patterns and related tools. Design patterns solve recurring design problems. We can classify the literature on design patterns into two main categories: 1) Pattern Application, i.e., applying design patterns on a design model which is a forward engineering approach, and 2) Pattern Detection and Identification, i.e, extracting applied design patterns from a given source code which is a reverse engineering approach. With the above classification in mind, this report intends to explore the current challenges behind the design patterns and related tools.

[1]  Lionel C. Briand,et al.  VPML: an approach to detect design patterns of MOF-based modeling languages , 2015, Software & Systems Modeling.

[2]  Federico Bergenti IMPROVING UML DESIGNS USING AUTOMATIC DESIGN PATTERN DETECTION , 2001 .

[3]  Yann-Gaël Guéhéneuc,et al.  Instantiating and detecting design patterns: putting bits and pieces together , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[4]  Yann-Gaël Guéhéneuc,et al.  P-MARt : Pattern-like Micro Architecture Repository , 2007 .

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Gongjun Yan,et al.  Rule-based detection of design patterns in program code , 2013, International Journal on Software Tools for Technology Transfer.

[7]  Matthias Meyer,et al.  Reverse engineering with the reclipse tool suite , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[8]  Fabio Stella,et al.  On applying machine learning techniques for design pattern detection , 2015, J. Syst. Softw..

[9]  Yann-Gaël Guéhéneuc,et al.  Ptidej: A Flexible Reverse Engineering Tool Suite , 2007, ICSM.

[10]  Günter Kniesel,et al.  DPJF - Design Pattern Detection with High Accuracy , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[11]  Michele Risi,et al.  Design pattern recovery by visual language parsing , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[12]  Yann-Gaël Guéhéneuc Using explanations for design patterns identification , 2001 .

[13]  Bahman Zamani,et al.  On verifying the use of a pattern language in model driven design , 2009 .

[14]  Gregory Butler,et al.  Pattern Language Verification in Model Driven Design , 2013, Inf. Sci..

[15]  Francesca Arcelli Fontana,et al.  A tool for design pattern detection and software architecture reconstruction , 2011, Inf. Sci..

[16]  Alexander Chatzigeorgiou,et al.  Design Pattern Detection Using Similarity Scoring , 2006, IEEE Transactions on Software Engineering.

[17]  Francesca Arcelli Fontana,et al.  Using Design Pattern Clues to Improve the Precision of Design Pattern Detection Tools , 2011, J. Object Technol..

[18]  Robert B. France,et al.  A Metamodeling Approach to Pattern-Based Model Refactoring , 2003, IEEE Softw..

[19]  Muhammad Ali Babar,et al.  Towards a pattern language for self-adaptation of cloud-based architectures , 2014, WICSA '14 Companion.

[20]  Dae-Kyoo Kim,et al.  Software Quality Improvement via Pattern-Based Model Refactoring , 2008, 2008 11th IEEE High Assurance Systems Engineering Symposium.

[21]  Krzysztof Stencel,et al.  Detection of Diverse Design Pattern Variants , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[22]  Yanyan Zhang,et al.  A comprehensive approach to the recovery of design pattern instances based on sub-patterns and method signatures , 2015, J. Syst. Softw..

[23]  Alexander Binun High Accuracy Design Pattern Detection , 2012 .

[24]  O. Coplien,et al.  Software Patterns , 2001 .

[25]  Welf Löwe,et al.  Automatic design pattern detection , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[26]  Yann-Gaël Guéhéneuc,et al.  DeMIMA: A Multilayered Approach for Design Pattern Identification , 2008, IEEE Transactions on Software Engineering.

[27]  Claudia Raibulet,et al.  Understanding the relevance of micro-structures for design patterns detection , 2011, J. Syst. Softw..

[28]  Claudia Raibulet,et al.  Design patterns: a survey on their micro‐structures , 2013, J. Softw. Evol. Process..

[29]  Uwe Zdun,et al.  Systematic pattern selection using pattern language grammars and design space analysis , 2007, Softw. Pract. Exp..

[30]  Jing Dong,et al.  UML Extensions for Design Pattern Compositions , 2002, J. Object Technol..

[31]  Frank Leymann,et al.  From Pattern Languages to Solution Implementations , 2014 .

[32]  Kevin Lano,et al.  Design Patterns: Applications and Open Issues , 2014, Cyberpatterns.

[33]  Hongji Yang,et al.  A Framework of Patterns Applicability in Software Development , 2014, 2014 IEEE 38th International Computer Software and Applications Conference Workshops.

[34]  Giuliano Antoniol,et al.  Design pattern recovery in object-oriented software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[35]  Yann-Gaël Guéhéneuc,et al.  Meta-modeling Design Patterns: application to pattern detection and code synthesis , 2001 .

[36]  ZdunUwe Systematic pattern selection using pattern language grammars and design space analysis , 2007 .