The state of the art on design patterns: A systematic mapping of the literature

A comprehensive SMS on the design patterns to identify the related topics and detect trends and gaps.There are six main topics in the field of design patterns.Developing and Mining are the most active topics.Describe the demographics of design patterns research.Quantify the research load on the design patterns topics. Design patterns are widely used by software developers to build complex systems. Hence, they have been investigated by many researchers in recent decades. This leads to the emergence of various topics in the design patterns field. The objective of this paper is to present an overview of the research efforts on design patterns for those researchers who seek to enter this area. The main contributions are as follows: (a) identifying research topics in design patterns, (b) quantifying the research emphasis on each topic, and (c) describing the demographics of design patterns research. The last secondary study with similar goals in the design patterns field considers the Gang of Four design patterns only. However, the scope of the current study is all of the design patterns. Moreover, our review covers about six additional years and a larger number of publications and venues. In this systematic mapping study, a total of 2775 papers were identified as relevant, and 637 of them were included. According to the results, design patterns can be classified into six different research topics. As a consequence, it is concluded that Pattern Development, Pattern Mining, and Pattern Usage are the most active topics in the field of design patterns.

[1]  Muhammad Ali Babar,et al.  Identifying relevant studies in software engineering , 2011, Inf. Softw. Technol..

[2]  Paula Gomes Mian,et al.  Systematic Review in Software Engineering , 2005 .

[3]  Pearl Brereton,et al.  Using Mapping Studies in Software Engineering , 2008, PPIG.

[4]  Kevin Lano,et al.  Model-Transformation Design Patterns , 2014, IEEE Transactions on Software Engineering.

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

[6]  Rudolf Ferenc,et al.  Performance comparison of query-based techniques for anti-pattern detection , 2015, Inf. Softw. Technol..

[7]  G NilssonErik Design patterns for user interface for mobile applications , 2009 .

[8]  Uwe Zdun Systematic pattern selection using pattern language grammars and design space analysis , 2007 .

[9]  Linda A. Macaulay,et al.  A pattern language for designing e-business architecture , 2008, J. Syst. Softw..

[10]  Paris Avgeriou,et al.  Past and future of software architectural decisions - A systematic mapping study , 2014, Inf. Softw. Technol..

[11]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[12]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[13]  Eduardo B. Fernández,et al.  A Multi-Dimensional Classification for Users of Security Patterns , 2008, J. Res. Pract. Inf. Technol..

[14]  Erik G. Nilsson Design patterns for user interface for mobile applications , 2009, Adv. Eng. Softw..

[15]  Eduardo B. Fernandez,et al.  A Comprehensive Pattern-Driven Security Methodology for Distributed Systems , 2014, 2014 23rd Australian Software Engineering Conference.

[16]  Wei-Tek Tsai,et al.  Ontology patterns for service‐oriented software development , 2013, Softw. Pract. Exp..

[17]  Ioannis Stamelos,et al.  Building and mining a repository of design pattern instances: Practical and research benefits , 2013, Entertain. Comput..

[18]  Douglas A. Lyon,et al.  The Parametric Singleton Design Pattern , 2007, J. Object Technol..

[19]  Ioannis Stamelos,et al.  Research state of the art on GoF design patterns: A mapping study , 2013, J. Syst. Softw..

[20]  Paulo S. C. Alencar,et al.  Composing pattern-based components and verifying correctness , 2007, J. Syst. Softw..

[21]  Emilia Mendes,et al.  Using Forward Snowballing to update Systematic Reviews in Software Engineering , 2016, ESEM.

[22]  Munawar Hafiz,et al.  A pattern language for developing privacy enhancing technologies , 2013, Softw. Pract. Exp..

[23]  Anthony F. J. van Raan,et al.  The Role of Europe in World-Wide Science and Technology: Monitoring and Evaluation in a Context of Global Competition , 2000 .

[24]  Mahmoud O. Elish,et al.  Quantitative analysis of fault density in design patterns: An empirical study , 2015, Inf. Softw. Technol..

[25]  Klaus Opwis,et al.  Building an interaction design pattern language: A case study , 2010, Comput. Hum. Behav..

[26]  Giuseppe Scanniello,et al.  Documenting Design-Pattern Instances: A Family of Experiments on Source-Code Comprehensibility , 2015, TSEM.

[27]  Jörg Kienzle,et al.  Framework based on design patterns for providing persistence in object-oriented programming languages , 2002, IEE Proc. Softw..

[28]  Alexander Chatzigeorgiou,et al.  A qualitative analysis of software security patterns , 2006, Comput. Secur..

[29]  Zhang Kang,et al.  Visualizing Design Patterns in Their Applications and Compositions , 2007 .

[30]  Jing Bai,et al.  Design pattern modeling and extraction for CAD models , 2016, Adv. Eng. Softw..

[31]  Pearl Brereton,et al.  Protocol for a Tertiary study of Systematic Literature Reviews and Evidence-based Guidelines in IT and Software Engineering , 2009 .

[32]  Nadia Bouassida,et al.  Evaluation of an Automated Multi-phase Approach for Patterns Discovery , 2013, Int. J. Softw. Eng. Knowl. Eng..

[33]  Aljasser Khalid Abdullah Implementing design patterns as parametric aspects using ParaAJ , 2016 .

[34]  Clemente Izurieta,et al.  Design pattern decay: the case for class grime , 2014, ESEM '14.

[35]  Wen-Jin Li,et al.  Research on Detecting Design Pattern Variants from Source Code Based on Constraints , 2015 .

[36]  Clemente Izurieta,et al.  Object oriented design pattern decay: a taxonomy , 2010, ESEM '10.

[37]  Harold Fortuin A Modern, Compact Implementation of the Parameterized Factory Design Pattern , 2010, J. Object Technol..

[38]  Bruno Rossi,et al.  Evolution of design patterns: a replication study , 2014, ESEM '14.

[39]  David Grover,et al.  Information and software technology : a project-based approach , 2004 .

[40]  Apostolos Ampatzoglou,et al.  The Effect of GoF Design Patterns on Stability: A Case Study , 2015, IEEE Transactions on Software Engineering.

[41]  Timothy G. Mattson,et al.  Parallel programming with a pattern language * , 2001, International Journal on Software Tools for Technology Transfer.

[42]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[43]  Claes Wohlin,et al.  Systematic literature studies: Database searches vs. backward snowballing , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[44]  Benjamin W. Franklin “ An investment in knowledge pays the best interest “ , 2015 .

[45]  David Budgen,et al.  Empirical Software Engineering , 2014, Computing Handbook, 3rd ed..

[46]  Yann-Gaël Guéhéneuc,et al.  An empirical study on the efficiency of different design pattern representations in UML class diagrams , 2010, Empirical Software Engineering.

[47]  Aliaksandr Birukou,et al.  A survey of existing approaches for pattern search and selection , 2010, EuroPLoP.

[48]  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..

[49]  Marc Barth,et al.  From Altshuller to Alexander: Towards a Bridge between Architects and Engineers☆ , 2016 .

[50]  Ioannis Stamelos,et al.  An empirical investigation on the reusability of design patterns and software packages , 2011, J. Syst. Softw..

[51]  H. Arksey,et al.  Scoping studies: towards a methodological framework , 2005 .

[52]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[53]  Alan Bundy,et al.  Automatic verification of Java design patterns , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[54]  Ralph E. Johnson,et al.  Organizing Security Patterns , 2007, IEEE Software.

[55]  Laurie A. Williams,et al.  How have we evaluated software pattern application? A systematic mapping study of research design practices , 2015, Inf. Softw. Technol..

[56]  Hong Zhu,et al.  An algebra of design patterns , 2013, TSEM.

[57]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

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

[59]  Sarun Intakosum,et al.  Retrieving Model for Design Patterns , 1970 .

[60]  Dae-Kyoo Kim,et al.  Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies , 2008, Software Quality Journal.

[61]  Claes Wohlin,et al.  Systematic literature reviews in software engineering , 2013, Inf. Softw. Technol..

[62]  Damien Hardy,et al.  TOOLS FOR TECHNOLOGY TRANSFER IN THE FRENCH CAPRINE SECTOR , 2009 .

[63]  Saeed Jalili,et al.  Design patterns selection: An automatic two-phase method , 2012, J. Syst. Softw..

[64]  James H. Hill,et al.  A survey report of enhancements to the visitor software design pattern , 2014, Softw. Pract. Exp..

[65]  N. A. Diamantidis,et al.  Automated refactoring to the Null Object design pattern , 2015, Inf. Softw. Technol..

[66]  Coral Calero,et al.  A Systematic Mapping Study of Software Reliability Modeling , 2014, Inf. Softw. Technol..

[67]  David A. Carrington,et al.  A formalism to describe design patterns based on role concepts , 2009, Formal Aspects of Computing.

[68]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A tertiary study , 2010, Inf. Softw. Technol..

[69]  Marco Torchiano,et al.  Assessing the Effect of Screen Mockups on the Comprehension of Functional Requirements , 2014, TSEM.

[70]  Paulo S. C. Alencar,et al.  A behavioral analysis and verification approach to pattern-based design composition , 2003, Software and Systems Modeling.

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

[72]  Cheng Zhang,et al.  A survey of experienced user perceptions about software design patterns , 2013, Inf. Softw. Technol..

[73]  Pearl Brereton,et al.  Using mapping studies as the basis for further research - A participant-observer case study , 2011, Inf. Softw. Technol..

[74]  Cheng Zhang,et al.  What Do We Know about the Effectiveness of Software Design Patterns? , 2012, IEEE Transactions on Software Engineering.

[75]  Arend Rensink,et al.  Software and systems modeling with graph transformations theme issue of the Journal on Software and Systems Modeling , 2012, Software & Systems Modeling.

[76]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[77]  Foutse Khomh,et al.  Evaluating the impact of design pattern and anti-pattern dependencies on changes and faults , 2015, Empirical Software Engineering.

[78]  Francisco Dantas,et al.  Blending design patterns with aspects: A quantitative study , 2014, J. Syst. Softw..

[79]  David Notkin,et al.  Editorial—looking back , 2013, TSEM.

[80]  Eduardo B. Fernández,et al.  A conceptual approach to secure electronic elections based on patterns , 2013, Gov. Inf. Q..