Design pattern detection approaches: a systematic review of the literature
- Published: 20 April 2020
- Volume 53 , pages 5789–5846, ( 2020 )
Cite this article
- Hadis Yarahmadi 1 &
- Seyed Mohammad Hossein Hasheminejad 1
1540 Accesses
6 Citations
1 Altmetric
Explore all metrics
Nowadays, software engineers have a great tendency to use design patterns (DPs) because they are considered to have an important role in software engineering in the sense that they can make the understanding of nonentities easier. However, most of the systems have no document helping engineers recognize DPs from the codes. As a result, different approaches for design pattern detection have been suggested. The current paper reviews different available literature on design pattern detection and reports a number of different aspects of them such as data representation, type of design pattern, advantages and disadvantages for different approaches, quantitative results, etc. The current paper reviews research studies published between 2008 until 2019 and represents a list of datasets used for evaluations. The present investigation paper is not only to lay the ground for the selection of the optimal design patterns, but also hopes to guide the future studies through raising awareness about the potential defects in the previous researches.
This is a preview of subscription content, log in via an institution to check access.
Access this article
Price includes VAT (Russian Federation)
Instant access to the full article PDF.
Rent this article via DeepDyve
Institutional subscriptions
Similar content being viewed by others
Using metric-based filtering to improve design pattern detection approaches.
Imène Issaoui, Nadia Bouassida & Hanêne Ben-Abdallah
A Study: Design Patterns Detection Approaches and Impact on Software Quality
Integrating Model Driven and Model Checking to Mine Design Patterns
Aladib L, Lee S (2018) Pattern detection and design rationale traceability: an integrated approach to software design quality. IET Softw 13:249–259
Google Scholar
Alhusain S, Coupland S, John R, Kavanagh M (2013a) Towards machine learning based design pattern recognition. In: 2013 13th UK workshop on computational intelligence (UKCI). IEEE, pp 244–251
Alhusain S, Coupland S, John R, Kavanagh M (2013b) Design pattern recognition by using adaptive neuro fuzzy inference system. In: 2013 IEEE 25th international conference on tools with artificial intelligence (ICTAI). IEEE, pp 581–587
Alnusair A, Zhao T (2009) Towards a model-driven approach for reverse engineering design patterns. In Proceedings of the 2nd international workshop on transforming and weaving ontologies in MDE (TWOMDE 2009), Denver, Colorado, USA, vol. 531, p 130
Alnusair A, Zhao T (2010) Using semantic inference for software understanding and design recovery. In: 2010 seventh international conference on information technology: new generations (ITNG). IEEE, pp 980–985
Alnusair A, Zhao T, Yan G (2013) Automatic recognition of design motifs using semantic conditions. In: Proceedings of the 28th annual acm symposium on applied computing. ACM, pp 1062–1067
Alnusair A, Zhao T, Yan G (2014) Rule-based detection of design patterns in program code. Int J Softw Tools Technol Transf 16(3):315–334
Al-Obeidallah M, Petridis M, Kapetanakis S (2016) A survey on design pattern detection. Int J Softw Eng (IJSE) 7(3):41–59
Al-Obeidallah MG, Petridis M, Kapetanakis S (2017a) A structural rule-based approach for design patterns recovery. In international conference on software engineering research, management and applications. Springer, Cham, pp 107–124
Al-Obeidallah M, Petridis M, Kapetanakis S (2017b) MLDA: a multiple levels detection approach for design patterns recovery. In: Proceedings of the international conference on compute and data analysis. ACM, pp 33–40
Alshira’h M (2017) Detection a design pattern through merge static and dynamic analysis using altova and lambdes tools. Int J Appl Eng Res 12(19):8518–8522
Arcelli F, Tosi C, Zanoni M, Maggioni S (2008) The MARPLE project: a tool for design pattern detection and software architecture reconstruction. In: 1st international workshop on academic software development tools and techniques (WASDeTT-1), pp 325–334
Ba-Brahem AS, Qureshi M (2014) The proposal of improved inexact isomorphic graph algorithm to detect design patterns. arXiv preprint arXiv:1408.6147
Bashir A, Rasool G, Bashir K, Ali AH (2013) Design patterns and documentation recovery based on attributes. Int J Soft Comput Softw Eng 3(3):149–155
Bayley I, Zhu H (2010) Formal specification of the variants and behavioural features of design patterns. J Syst Softw 83(2):209–221
Bernardi, ML, Di Lucca GA (2010) Model-driven detection of design patterns. In: 2010 IEEE international conference on software maintenance (ICSM). IEEE, pp 1–5
Bernardi ML, Cimitile M, Di Lucca GA (2013) A model-driven graph-matching approach for design pattern detection. In: 2013 20th working conference on reverse engineering (WCRE). IEEE, pp 172–181
Bernardi ML, Cimitile M, Di Lucca G (2014) Design pattern detection using a DSL-driven graph matching approach. J Softw Evol Process 26(12):1233–1266
Bernardi ML, Cimitile M, De Ruvo G, Di Lucca GA, Santone A (2015) Improving design patterns finder precision using a model checking approach. In: CAiSE forum, pp 113–120
Binun A, Kniesel G (2012a) DPJF-design pattern detection with high accuracy. In: 2012 16th European conference on software maintenance and reengineering (CSMR). IEEE, pp 245–254
Binun A, Kniesel G (2012b) Joining forces for higher precision and recall of design pattern detection. CS Department III, University of Bonn, Germany, Technical report IAI-TR-2012-01
Bouassida N, Ben-Abdallah H (2009) Design improvement through dynamic and Structural pattern identification. In: Proceedings of the third international conference on innovation and information and communication technology. BCS Learning & Development Ltd., pp 4–4
Bouassida N, Ben-Abdallah H (2010a) A new approach for pattern problem detection. In: International conference on advanced information systems engineering. Springer, Berlin, pp 150–164
Bouassida N, Ben-Abdallah H (2010b) Pattern and spoiled pattern detection through an information retrieval approach. J Emerg Technol Web Intell 2(3):167
Chaturvedi A, Gupta M, Gupta SK (2016) Design pattern detection using genetic algorithm for sub-graph isomorphism to enhance software reusability. Int J Comput Appl 135(4):33–36
Chaturvedi A, Gupta M, Gupta SK (2018) DPVO: design pattern detection using vertex ordering a case study in JHotDraw with documentation to improve reusability. In: International conference on communication, networks and computing. Springer, Singapore, pp 452–465
Chen L, Qiu M (2010) An algorithm for automatic mining design pattern. In: 2010 5th international conference on computer science and education (ICCSE). IEEE, pp 1860–1864
Chihada A, Jalili S, Hasheminejad SMH, Zangooei MH (2015) Source code and design conformance, design pattern detection from source code by classification approach. Appl Soft Comput 26:357–367
Czibula IG, Czibula G (2008) Identifying design patterns in object-oriented software systems using unsupervised learning. In: IEEE International conference on automation, quality and testing, robotics, 2008, AQTR 2008, vol. 3. IEEE, pp 347–352
Dabain H, Manzer A, Tzerpos V (2015) Design pattern detection using FINDER. In: Proceedings of the 30th annual acm symposium on applied computing. ACM, pp 1586–1593
De Lucia A, Deufemia V, Gravino C, Risi M (2009a) Design pattern recovery through visual language parsing and source code analysis. J Syst Softw 82(7):1177–1193
De Lucia A, Deufemia V, Gravino C, Risi M (2009b) Behavioral pattern identification through visual language parsing and code instrumentation. In: 13th European conference on software maintenance and reengineering 2009 CSMR’09. IEEE, pp 99–108
De Lucia A, Deufemia V, Gravino C, Risi M (2010a) Improving behavioral design pattern detection through model checking. In: 2010 14th European conference on software maintenance and reengineering. IEEE, pp 176–185
De Lucia A, Deufemia V, Gravino C, Risi M (2010b) An eclipse plug-in for the detection of design pattern instances through static and dynamic analysis. In: 2010 IEEE international conference on software maintenance (ICSM). IEEE, pp 1–6
De Lucia A, Deufemia V, Gravino C, Risi M, Pirolli C (2015a) ePadEvo: a tool for the detection of behavioral design patterns. In: 2015 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 327–329
De Lucia A, Deufemia V, Gravino C, Risi M (2015b) Towards automating dynamic analysis for behavioral design pattern detection. In: 2015 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 161–170
Di Martino B, Esposito A (2013) Automatic recognition of design patterns from UML-based software documentation. In: Proceedings of international conference on information integration and web-based applications and services. ACM
Di Martino B, Esposito A (2016) A rule-based procedure for automatic recognition of design patterns in UML diagrams. Softw Pract Exp 46(7):983–1007
Dong J, Lad DS, Zhao Y (2007) DP-Miner: design pattern discovery using matrix. In: 14th Annual IEEE international conference and workshops on engineering of computer-based systems, 2007, ECBS’07. IEEE, pp 371–380
Dong J, Sun Y, Zhao Y (2008a) Compound record clustering algorithm for design pattern detection by decision tree learning. In: IEEE international conference on information reuse and integration, IRI 2008. IEEE, pp 226–231
Dong J, Sun Y, Zhao Y (2008b) Design pattern detection by template matching. In: Proceedings of the 2008 ACM symposium on applied computing. ACM, pp 765–769
Dong J, Zhao Y, Peng T (2009a) A review of design pattern mining techniques. Int J Softw Eng Knowl Eng 19(06):823–855
Dong J, Zhao Y, Sun Y (2009b) A matrix-based approach to recovering design patterns. IEEE Trans Syst Man Cybern Part A Syst Hum 39(6):1271–1282
Dwivedi AK, Tirkey A, Rath SK (2016) Applying software metrics for the mining of design pattern. In: 2016 IEEE Uttar Pradesh section international conference on electrical, computer and electronics engineering (UPCON). IEEE, pp 426–431
Dwivedi AK, Tirkey A, Ray RB, Rath SK (2016) Software design pattern recognition using machine learning techniques. In Region 10 conference (TENCON), 2016 IEEE. IEEE, pp 222–227
Dwivedi AK, Tirkey A, Rath SK (2018) Software design pattern mining using classification-based techniques. Front Comput Sci 12(5):908–922
Elaasar M, Briand LC, Labiche Y (2015) VPML: an approach to detect design patterns of MOF-based modeling languages. Softw Syst Model 14(2):735–764
Fontana FA, Zanoni M (2011) A tool for design pattern detection and software architecture reconstruction. Inf Sci 181(7):1306–1324
Fontana FA, Maggioni S, Raibulet C (2011) Understanding the relevance of micro-structures for design patterns detection. J Syst Softw 84(12):2334–2347
Freeman E, Robson E, Bates B, Sierra K (2004) head first design patterns: a brain-friendly guide. O’Reilly Media Inc., Sebastopol
Gamma E (1995) Design patterns: elements of reusable object-oriented software. Pearson Education India, New York
García A, Velasco-Elizondo P, Zamarrón JM (2013) Applying social network analysis metrics to software design patterns detection. In: ASNA 2013 applications of social network analysis, University of Zurich
Gautam AK, Diwaker S (2012) Automatic detection of software design patterns from reverse engineering. Springer, Berlin
Guéhéneuc YG (2007) P-mart: pattern-like micro architecture repository. In: Proceedings of the 1st EuroPLoP focus group on pattern repositories, pp 1–3
Guéhéneuc YG, Antoniol G (2008) Demima: a multilayered approach for design pattern identification. IEEE Trans Softw Eng 34(5):667–684
Guéhéneuc YG, Guyomarćh JY, Sahraoui H (2010) Improving design-pattern identification: a new approach and an exploratory study. Softw Qual J 18(1):145–174
Gupta M (2011) Design pattern mining using greedy algorithm for multi-labelled graphs. Int J Inf Commun Technol 3(4):314–323
Gupta M (2017) A technique for design patterns detection. Indian J Comput Sci Eng (IJCSE) 8(3)
Gupta M, Rao RS (2014) Design pattern mining by product of sum (POS) expression for graphs. Int J Comput Appl. https://doi.org/10.5120/14856-3223
Article Google Scholar
Gupta M, Pande A, Rao RS, Tripathi AK (2010a) Design pattern detection by normalized cross correlation. In: 2010 international conference on methods and models in computer science (ICM2CS). IEEE, pp 81–84
Gupta M, Rao RS, Tripathi AK (2010b) Design pattern detection using inexact graph matching. In: 2010 international conference on communication and computational intelligence (INCOCCI). IEEE, pp 211–217
Gupta M, Pande A, Tripathi AK (2011b) Design patterns detection using SOP expressions for graphs. ACM SIGSOFT Softw Eng Notes 36(1):1–5
Han Z, Wang L, Yu L, Chen X, Zhao J, Li X (2009) Design pattern directed clustering for understanding open source code. In: IEEE 17th international conference on program comprehension, 2009, ICPC’09. IEEE, pp 295–296
Hayashi S, Katada J, Sakamoto R, Kobayashi T, Saeki M (2008) Design pattern detection by using meta patterns. IEICE Trans Inf Syst 91(4):933–944
Hussain S, Keung J, Khan AA (2017) Software design patterns classification and selection using text categorization approach. Appl Soft Comput 58:225–244
Hussain S, Keung J, Sohail MK, Khan AA, Ilahi M (2019) Automated framework for classification and selection of software design patterns. Appl Soft Comput 75:1–20
Issaoui I, Bouassida N, Ben-Abdallah H (2015) Using metric-based filtering to improve design pattern detection approaches. Innov Syst Softw Eng 11(1):39–53
Issaoui I, Bouassida N, Ben-Abdallah H (2016) Predicting the existence of design patterns based on semantics and metrics. Int Arab J Inf Technol 13(2):310–319
Kaczor O, Guéhéneuc YG, Hamel S (2010) Identification of design motifs with pattern matching algorithms. Inf Softw Technol 52(2):152–168
Karam M, Aljahdali S, Mcheick H, Abdallah R, Ollaic H (2014) Graph transformation rules with weight and fuzzy logic for better design pattern recognition. Int J Comput Inf Technol 3
Kirasić D, Basch D (2008) Ontology-based design pattern recognition. In: International conference on knowledge-based and intelligent information and engineering systems. Springer, Berlin, pp 384–393
Kitchenham B, Charters S (2007) Guidelines for performing systematic literature reviews in software engineering
Kniesel G, Binun A (2009a) Witnessing patterns: a data fusion approach to design pattern detection. CS Department III, University of Bonn, Germany, Technical report IAI-TR-2009-02, ISSN, 0944-8535
Kniesel G, Binun A (2009b) Standing on the shoulders of giants---a data fusion approach to design pattern detection. In: IEEE 17th international conference on program comprehension, 2009, ICPC’09. IEEE, pp 208–217
Lavender RG, Schmidt DC (1995) Active object—an object behavioral pattern for concurrent programming
Lebon M, Tzerpos V (2012) Fine-grained design pattern detection. In: 2012 IEEE 36th annual computer software and applications conference (COMPSAC). IEEE, pp 267–272
Lee H, Youn H, Lee E (2008) A design pattern detection technique that aids reverse engineering. Int J Secur Appl 2(1):1–12
MathSciNet Google Scholar
Liamwiset C, Wiwat V (2013) Detection of design patterns in software design model using graph. In: Applied mechanics and materials, vol. 411. Trans Tech Publications, pp 559–562
Liu C, van Dongen BF, Assy N, van der Aalst WM (2018a) A framework to support behavioral design pattern detection from software execution data. In: ENASE, pp 65–76
Liu C, van Dongen BF, Assy N, van der Aalst WM (2018b) A framework to support behavioral design pattern detection from software execution data. In: ENASE, pp 65–76
Luitel G, Stephan M, Inclezan D (2016) Model level design pattern instance detection using answer set programming. In: Proceedings of the 8th international workshop on modeling in software engineering. ACM, pp 13–19
Majtás LU (2011) Contribution to the creation and recognition of the design patterns instances. Inf Sci Technol Bull ACM Slovak 3(1):84–92
Mattson TG, Sanders B, Massingill B (2004) Patterns for parallel programming. Pearson Education, New York
MATH Google Scholar
Mayvan BB, Rasoolzadegan A (2017) Design pattern detection based on the graph theory. Knowl Based Syst 120:211–225
Nagy A, Kovari B (2015) Programming language neutral design pattern detection. In: 2015 16th IEEE international symposium on computational intelligence and informatics (CINTI). IEEE, pp 215–219
Ng JKY, Guéhéneuc YG, Antoniol G (2010) Identification of behavioural and creational design motifs through dynamic analysis. J Softw Evol Process 22(8):597–627
Oruc M, Akal F, Sever H (2016) Detecting design patterns in object-oriented design models by using a graph mining approach. In: 2016 4th international conference on software engineering research and innovation (CONISOFT). IEEE, pp 115–121
Pande A, Gupta M, Tripathi AK (2010a) A new approach for detecting design patterns by graph decomposition and graph isomorphism. Contemporary computing, pp 108–119
Pande A, Gupta M, Tripathi AK (2010b) DNIT—a new approach for design pattern detection. In: 2010 international conference on computer and communication technology (ICCCT). IEEE, pp 545–550
Pande A, Gupta M, Tripathi AK (2010c) A decision tree approach for design patterns detection by subgraph isomorphism. In: International conference on advances in information and communication technologies. Springer, Berlin, pp 561–564
Panich A, Vatanawood W (2016) Detection of design patterns from class diagram and sequence diagrams using ontology. In: 2016 IEEE/ACIS 15th international conference on computer and information science (ICIS). IEEE, pp 1–6
Paydar S, Kahani M (2012) A semantic web based approach for design pattern detection from source code. In: 2012 2nd international econference on computer and knowledge engineering (ICCKE). IEEE, pp 289–294
Pradhan P, Dwivedi AK, Rath SK (2015) Detection of design pattern using graph isomorphism and normalized cross correlation. In: 2015 Eighth international conference on contemporary computing (IC3). IEEE, pp 208–213
Priya RK (2014) A survey: design pattern detection approaches with metrics. In: 2014 IEEE national conference on emerging trends in new and renewable energy sources and energy management (NCET NRES EM). IEEE, pp 22–26
Qiu M, Jiang Q, Gao A, Chen E, Qiu D, Chai S (2010) Detecting design pattern using subgraph discovery. In: Asian conference on intelligent information and database systems. Springer, Berlin, pp 350–359
Rasool G, Mäder P (2011) Flexible design pattern detection based on feature types. In: 2011 26th IEEE/ACM international conference on automated software engineering (ASE). IEEE, pp 243–252
Rasool G, Mäder P (2014) A customizable approach to design patterns recognition based on feature types. Arab J Sci Eng 39(12):8851–8873
Rasool G, Philippow I, Mäder P (2010) Design pattern recovery based on annotations. Adv Eng Softw 41(4):519–526
Ren W, Zhao W (2012) An observer design-pattern detection technique. In: 2012 IEEE international conference on computer science and automation engineering (CSAE), vol. 3. IEEE
Riaz M, Breaux T, Williams L (2015) How have we evaluated software pattern application? A systematic mapping study of research design practices. Inf Softw Technol 65:14–38
Robinson A, Bates C (2016) Recovering design patterns from large codebases. In: Proceedings of international conference on computer science education innovation & technology (CSEIT). Global Science and Technology Forum, p 136
Romano S, Scanniello G, Risi M, Gravino C (2011) Clustering and lexical information support for the recovery of design pattern in source code. In: 2011 27th IEEE international conference on software maintenance (ICSM). IEEE, pp 500–503
Sebastian F (2002) Machine learning in automated text categorization. J ACM Comput Surv (CSUR) 34:1–47
Stencel K, Wegrzynowicz P (2008) Detection of diverse design pattern variants. In: Software engineering conference, 2008, APSEC’08, 15th Asia-Pacific. IEEE, pp 25–32
Stephan M, Cordy JR (2015) Identifying instances of model design patterns and antipatterns using model clone detection. In: 2015 IEEE/ACM 7th international workshop on modeling in software engineering (MiSE). IEEE, pp 48–53
Stoianov A, Şora I (2010) Detecting patterns and antipatterns in software using prolog rules. In: 2010 International joint conference on computational cybernetics and technical informatics (ICCC-CONTI). IEEE, pp 253–258
Thaller H, Linsbauer L, Egyed A (2019) Feature maps: a comprehensible software representation for design pattern detection. In: 2019 IEEE 26th international conference on software analysis, evolution and reengineering (SANER), pp 207–21
Thankappan J, Patil V (2015) Detection of web design patterns using reverse engineering. In: 2015 Second international conference on advances in computing and communication engineering (ICACCE). IEEE, pp 697–701
Thongrak M, Vatanawood W (2014) Detection of design pattern in class diagram using ontology. In: Computer science and engineering conference (ICSEC). IEEE, pp 97–102
Tramontana E (2014) Detecting extra relationships for design patterns roles. In: Proceedings of AsianPlop, Tokyo, Japan
Tripathi V, Mahesh TSG, Srivastava A (2009) Performance and language compatibility in software pattern detection. In 2009 IEEE international conference on advance computing, IACC 2009. IEEE, pp 1639–1643
Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis ST (2006) Design pattern detection using similarity scoring. IEEE Trans Softw Eng 32(11):896–909
Uchiyama S, Washizaki H, Fukazawa Y, Kubo A (2011) Design pattern detection using software metrics and machine learning. In: First international workshop on model-driven software migration (MDSM 2011), p 38
Uchiyama S, Kubo A, Washizaki H, Fukazawa Y (2014) Detecting design patterns in object-oriented program source code by using metrics and machine learning. J Softw Eng Appl 7(12):983
von Detten M (2011) Towards systematic, comprehensive trace generation for behavioral pattern detection through symbolic execution. In: Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on program analysis for software tools. ACM, pp 17–20
von Detten M, Becker S (2011) Combining clustering and pattern detection for the reengineering of component-based software systems. In: Proceedings of the joint ACM SIGSOFT conference–QoSA and ACM SIGSOFT symposium–ISARCS on quality of software architectures–QoSA and architecting critical systems–ISARCS. ACM, pp 23–32
von Detten M, Platenius MC (2009) Improving dynamic design pattern detection in reclipse with set objects. In: Proceedings of the 7th international Fujaba days, pp 15–19
Wang L, Han Z, He J, Wang H, Li X (2012a) Recovering design patterns to support program comprehension. In: Proceedings of the 2nd international workshop on evidential assessment of software technologies. ACM, pp 49–54
Wang Y, Guo H, Liu H, Abraham A (2012b) A fuzzy matching approach for design pattern mining. J Intell Fuzzy Syst 23(2–3):53–60
Wegrzynowicz P, Stencel K (2013) Relaxing queries to detect variants of design patterns. In: 2013 federated conference on computer science and information systems (FedCSIS). IEEE, pp 1571–1578
Wierda A, Dortmans E, Somers L (2008) Pattern detection in object-oriented source code. In: Software and data technologies. Springer, Berlin, pp 141–158
Yu D, Zhang Y, Ge J, Wu W (2013a) From sub-patterns to patterns: an approach to the detection of structural design pattern instances by subgraph mining and merging. In: 2013 IEEE 37th annual computer software and applications conference (COMPSAC). IEEE, pp 579–588
Yu D, Ge J, Wu W (2013b) Detection of design pattern instances based on graph isomorphism. In: 2013 4th IEEE international conference on software engineering and service science (ICSESS). IEEE, pp 874–877
Yu D, Zhang Y, Chen Z (2015) A comprehensive approach to the recovery of design pattern instances based on sub-patterns and method signatures. J Syst Softw 103:1–16
Yu D, Zhang P, Yang J, Chen Z, Liu C, Chen J (2018) Efficiently detecting structural design pattern instances based on ordered sequences. J Syst Softw 142:35–56
Zanoni M, Fontana FA, Stella F (2015) On applying machine learning techniques for design pattern detection. J Syst Softw 103:102–117
Zhang P, Yu D, Wang J (2017) A degree-driven approach to design pattern mining based on graph matching. In: 2017 24th Asia-Pacific software engineering conference (APSEC). IEEE, pp 179–188
Zhu H, Bayley I, Shan L, Amphlett R (2009) Tool support for design pattern recognition at model level. In: 2009 33rd Annual IEEE International Computer Software and Applications Conference, 2009, COMPSAC’09, vol. 1. IEEE, pp. 228–233
Download references
Author information
Authors and affiliations.
Department of Computer Engineering, Alzahra University, Tehran, Iran
Hadis Yarahmadi & Seyed Mohammad Hossein Hasheminejad
You can also search for this author in PubMed Google Scholar
Corresponding author
Correspondence to Seyed Mohammad Hossein Hasheminejad .
Additional information
Publisher's note.
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
See Table 16 .
Rights and permissions
Reprints and permissions
About this article
Yarahmadi, H., Hasheminejad, S.M.H. Design pattern detection approaches: a systematic review of the literature. Artif Intell Rev 53 , 5789–5846 (2020). https://doi.org/10.1007/s10462-020-09834-5
Download citation
Published : 20 April 2020
Issue Date : December 2020
DOI : https://doi.org/10.1007/s10462-020-09834-5
Share this article
Anyone you share the following link with will be able to read this content:
Sorry, a shareable link is not currently available for this article.
Provided by the Springer Nature SharedIt content-sharing initiative
- Design pattern detection
- Object-oriented source codes
- Systematic review
- Find a journal
- Publish with us
- Track your research
Software Design and Architecture The once and future focus of software engineering
Ieee account.
- Change Username/Password
- Update Address
Purchase Details
- Payment Options
- Order History
- View Purchased Documents
Profile Information
- Communications Preferences
- Profession and Education
- Technical Interests
- US & Canada: +1 800 678 4333
- Worldwide: +1 732 981 0060
- Contact & Support
- About IEEE Xplore
- Accessibility
- Terms of Use
- Nondiscrimination Policy
- Privacy & Opting Out of Cookies
A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity. © Copyright 2024 IEEE - All rights reserved. Use of this web site signifies your agreement to the terms and conditions.
Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser .
- We're Hiring!
- Help Center
Software Design Patterns
- Most Cited Papers
- Most Downloaded Papers
- Newest Papers
- Save to Library
- Software design, patterns, conceptual modelling Follow Following
- Ingeniería de Software Follow Following
- Software Architecture Follow Following
- Design Patterns Follow Following
- Conceptual Model Follow Following
- Software Maintenance Follow Following
- Model-Driven Testing Follow Following
- Social Web Follow Following
- PERL Follow Following
- Design Pattern Follow Following
Enter the email address you signed up with and we'll email you a reset link.
- Academia.edu Publishing
- We're Hiring!
- Help Center
- Find new research papers in:
- Health Sciences
- Earth Sciences
- Cognitive Science
- Mathematics
- Computer Science
- Academia ©2024
IMAGES
VIDEO
COMMENTS
Department of Software Engineering, Hashemite University, P.O. Box 330127, Zarqa 13133, Jordan. * E-mail: [email protected]. Abstract: The impact of design patterns on quality ...
1 Introduction. Design patterns represent solutions to frequently occurring software problems for designing good quality software. They were proposed for the first time by Alexander et al. [] in 1977 in the field of building architecture.In the mid-1990s, Gamma et al. [] proposed approaches for applying architectural patterns on object-oriented (OO) software.
In this paper, we briefly introduce the concept of software design pattern and give a research on some design patterns, including Observer Pattern, Decorator Pattern, Factory Method Pattern and Abstract Factory Pattern. Published in: 2011 IEEE 2nd International Conference on Software Engineering and Service Science.
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 ...
Our objective is to obtain a broad overview of the current state-of-the-art of software design patterns used in Computational Creative (CC) systems. We conducted a systematic mapping study using manual and snowballing search techniques. Only 7 primary studies are identied in the CC community that explicitly mention the use of design patterns.
Object-oriented design decisions were presented in the1990 s as a systematic list of typical solutions to ordinary design problems, and are examined as a level of "good" projects [].Alexander[] first presented the concept of patterns in the architecture area.Later Gamma et al. [] also known as the gang of four (GoF), modified design patterns idea to match with product design in the field ...
impact of any particular design pattern on software quality. Studies were performed in order to collect evidence from available research in order to reach an agreement on the effect of using design patterns on certain quality attributes. These studies were performed as a mapping study (e.g. [12, 13]), or a literature
The study covers the period between years 2000 and 2018. They identified 804 candidate papers. After applying inclusion and exclusion criteria, they were left with 50 primary studies. Their results show that documentation of patterns, size of pattern classes, and the scattering degree of patterns have clear impact on quality.
Furthermore, there is a lack of research that connects design patterns evaluations to patterns development studies. Accordingly, they also aim at providing an initiate on how patterns structure and implementation can be improved, to promote software quality.
Software design patterns have a considerable impact on the software development life cycle. Design pattern (DP) is a reliable and reusable solution provided by software experts to obtain quality software design. ... and so on. The present investigation paper will help future research to employ the existing approaches taking into account the ...
individual design patterns on software quality is sometimes controversial, a recent systematic literature review by Wedyan and Abufakher [8] reports an overall positive impact of design patterns on software quality. While new design patterns are slowly emerging for AI-based systems, it is currently difficult to get a recent overview of
This retrospective paper reports and reflects on the and others' studies on the impact of design patterns, discussing some key findings reported about design patterns and outlines some avenues for future research work on design patterns. Software engineers are creators of habits. During software development, they follow again and again the same patterns when architecting, designing and ...
The current paper reviews research studies published between 2008 until 2019 and represents a list of datasets used for evaluations. ... Software design pattern mining using classification-based techniques. Front Comput Sci 12(5):908-922. Google Scholar Elaasar M, Briand LC, Labiche Y (2015) VPML: an approach to detect design patterns of MOF ...
Findings show that both the random forest model and PatternScout, which is based on SPARQL queries, can effectively discover all patterns with higher precision and recall values. Larger Object Oriented(OO) software systems can benefit greatly from the use of software design patterns. Because design pattern offers a well-structured and proven solution to recurrent issues that developers deal with.
Overall research findings concluded that anti-pattern detection and selection and fuzzy technique are most widely used but still there is a research gap that exists from the recent 2-years. Design patterns are essential for development. It provides reusability, modularization, quality and consistency between design and implementation. Expert knowledge required for the selection of correct ...
Possible applications of well-known design patterns in AI systems to improve traceability of the system design are described. : Well-established design patterns offer the possibility of standardized construction of software systems and can be used in various ways. The systematic use of design patterns in the field of Artificial Intelligence (AI) Systems however, has received little attention ...
The design of software has been a focus of software engineering research since the field's beginning. This paper explores key aspects of this research focus and shows why design will remain a principal focus. The intrinsic elements of software design, both process and product, are discussed: concept formation, use of experience, and means for representation, reasoning, and directing the design ...
Ontology design patterns have been pointed out as a promising ap- proach for ontology engineering. The goal of this paper is twofold. Firstly, based on well-established works in Software Engineering, we revisit the notion of ontology patterns in Ontology Engineering to introduce the notion of ontolo- gy pattern language as a way to organize related ontology patterns.