Present Approaches for Detection of Design Pattern: A Survey
DOI:
https://doi.org/10.26438/ijcse/v6i8.948958Keywords:
Design Pattern, UML, Ontology, Sub-Graph Isomorphism, Structural AnalysisAbstract
Existing software’s are implemented by a third party and open source software may take a lot of time to understand, and patterns are applied without explicit class name, comments, or attached documents. If better reusability is required for an existing application where design patterns were used, then an approach that can detect the used design pattern in the existing application will be useful. Therefore, a reliable design pattern detection approach is required to promote software reusability. Design pattern detection is expected to improve the understandability and reusability of existing software. This paper represents the background work of design pattern detection. I review different approaches that have been documented so far in the literature and present the tools that have been developed. Pattern detection approaches are classified into structural analysis, behavioral analysis, and semantic analysis to mining the design pattern from the source code of different legacy application. Structural analysis approaches based on recovering the structural relationship from different artifacts available in the source code. Behavioral analysis approaches take in account the execution behavior of the program and this analysis is dynamic which execute run time behavior of the software. Semantic analysis approaches are combination of both, structure and behavioral analysis for verifying the accuracy of found result. In this paper I propose a survey of structural analysis approaches for design pattern detection
References
S. Khwaja and M. Alshayeb, “A framework for evaluating software design pattern specification languages”, In 12th International Conference on Computer and Information Science (ICIS), IEEE/ACIS, pp. 41-45, 2013.
N.Nahar and K.Sakib, “ACDPR: A Recommendation System for the Creational Design Patterns Using Anti-patterns”, In 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), IEEE, Vol. 4, pp. 4-7, 2016.
A.K.Dwivedi, A.Tirkey, R. B. Ray and S.K.Rath, “Software design pattern recognition using machine learning techniques”, In Region 10 Conference (TENCON), IEEE, pp. 222-227, 2016.
I.Issaoui, N.Bouassida and H. Ben-Abdallah, “A new approach for interactive design pattern recommendation”, Lecture Notes on Software Engineering, Vol.3.3, pp.173, 2015.
S. Wenzel and U. Kelter, “Model-driven design pattern detection using difference calculation”, In Workshop on Pattern Detection for Reverse Engineering, 2006.
G.Rasool and P.Mader, “Flexible Design Pattern Detection Based on Feature Types”, In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, pp. 243-252, 2011.
G.Rasool and H. akhtar, “Discovering Variants of Design Patterns”, In Journalof Basic and Applied Scientific Research, 3.1, pp. 139-147, 2013.
A.Waheed, G.Rasool and S. Ubaid, “Discovery of Design Patterns Variants for Quality Software Development”, In International Conference on Intelligent Systems Engineering (ICISE), IEEE, pp. 185-191, 2016.
R. Ferenc, A. Beszedes, L. Fulop, and J. Lele, “Design pattern mining enhanced by machine learning”, In Proceedings of the 21st IEEE International Conference on Software Maintenance, (ICSM'05), pp.295-304, 2005.
J.Dong, Y. Sun and Y. Zhao, “Design pattern detection by template matching”, In Proceedings of the 2008 ACM Symposium on Applied Computing, pp. 765-769, 2008.
Y.G. Guéhéneuc, H. Sahraoui and F. Zaidi, “Fingerprinting design patterns”, In 11th Working Conference on Reverse Engineering, Proceedings of IEEE, pp.172-181, 2004.
S. Uchiyama, H. Washizaki, Y. Fukazawa, and A. Kubo. “Design pattern detection using software metrics and machine learning”, In First International Workshop on Model-Driven Software Migration (MDSM ), pp. 38 ,2011.
W. Ren and W. Zaho, “An observer design-pattern detection technique”, In IEEE International Conference on Computer Science and Automation Engineering (CSAE), Vol.3, pp.544547, 2012.
D. Kirasić and D.Basch, “Ontology-based design pattern recognition”, In International Conference on Knowledge-Based and Intelligent Information and Engineering Systems, pp. 384-39, Springer, Berlin, Heidelberg, 2008.
M. Thongrak and W. Vatanawood, “Detection of design pattern in class diagram using ontology”, In International Conference on Computer Science and Engineering , IEEE, pp.97-102, 2014.
F. Arcelli and L. Christina, “Enhancing software evolution through design pattern detection”, In Third International IEEE Workshop on Software Evolvability, pp. 7-14, 2007.
J. Dong, S. Dushyant Lad and Z. Yajing, “DP-Miner: Design pattern discovery using matrix”, In 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07), pp. 371-380, 2007.
F.A. Fontana, M. Zanoni, and S. Maggioni, “Using Design Pattern Clues to Improve the Precision of Design Pattern Detection Tools”, In Journal of Object Technology, Vol.10.4, pp. 1-31, 2011.
G. Antoniol, R. Fiutem and L. Cristoforetti, “Design pattern recovery in object-oriented software”, 6th International Workshop on Program Comprehension, (IWPC'98), Proceedings In IEEE, pp. 153-160,1998.
Y. G. Gueheneuc, “Ptidej: Promoting patterns with patterns”, In Proceedings of the 1st ECOOP workshop on Building a System using Patterns. Springer-Verlag, July 2005.
Fontana, A. Francesca and M. Zanoni, “A tool for design pattern detection and software architecture reconstruction”, In Information sciences, Vol. 181.7, pp.1306-1324, 2011.
N. Shi, and R.A. Olsson, “Reverse engineering of design patterns from java source code”, In 21st IEEE/ACM International Conference on Automated Software Engineering, (ASE'06), pp. 123-134, 2006.
J. M. Smith, and D. Stotts, “SPQR: Flexible automated design pattern extraction from source code”, In 18th IEEE International Conference on Automated Software Engineering, Proceedings.of IEEE, pp.215-224, 2003.
R.K. Keller, R. Schauer, S. Robitaille and P. Page, “Pattern-based reverse-engineering of design components”, In Proceedings of the 21st international conference on Software engineering, ACM, pp. 226-235, 1999.
A De Lucia, V. Deufemia, C. Gravino and M. Risi, “Behavioral pattern identification through visual language parsing and code instrumentation”, In 13th European Conference on Software Maintenance and Reengineering, (CSMR'09), IEEE, pp.99-108, 2009.
Stefan Burger, Oliver Hummel. “Towards Automated Design Smell detection”, The Ninth International Conference on Software Engineering Advances (ICSEA2014), pp. 428, October 12 - 16, 2014
P. S. Sandhu, P.P. Singh and A. K. Verma. “Evaluating quality of software systems by design patterns detection”, International
Conference on Advanced Computer Theory and Engineering, (ICACTE'08) , IEEE, pp. 3-7, 2008
A. Ampatzoglou, A. Kritikos, G. Kakarontzas and I. Stamelos. “An empirical investigation on the reusability of design patterns and software packages”, In Journal of Systems and Software, Vol. 84.12, pp. 2265-2283, 2011
A. K. Gautam and T. Gayen, “Recovery of Design Pattern from source code”, 2010.
H. Lee, H. Youn and E. Lee, “A design pattern detection technique that aids reverse engineering”, In International Journal of Security and its Applications, 2.1, pp. 1-12, 2008.
D,Yu, Y. Zhang and Z. Chen, “A comprehensive approach to the recovery of design pattern instances based on sub-patterns and method signatures”, In Journal of Systems and Software, 103, pp.1-16, 2015.
M. Oruc, F. Akal and H. sever, “Detecting Design Patterns in Object-Oriented Design Models by Using a Graph Mining
Approach”, In 4th International Conference in Software Engineering Research and Innovation (CONISOFT), IEEE, pp.115-12, 2016.
N. Tsantalis, A. Chatzigeorgiou, G. Stephanides and S. T. Halkidis, “Design pattern detection using similarity scoring”, In IEEE transactions on software engineering, Vol. 32.11, 2006.
A.Pande, M. Gupta and A. K. Tripathi, “A decision tree approach for design patterns detection by subgraph isomorphism”, In International Conference on Advances in Information and Communication Technologies. Springer Berlin Heidelberg, 2010.
A.Pande, M.Gupta and A.K.Tripathi, “DNIT--A new approach for design pattern detection”, In International Conference on Computer and Communication Technology (ICCCT), IEEE, pp. 545-550, 2010
A. Pande, M. Gupta and A.K. Tripathi, “Design pattern mining for GIS application using graph matching techniques”, In 3rd IEEE International Conference on Computer Science and Information Technology (ICCSIT), Vol. 3, pp. 477-482, 2010.
M.Gupta and A. Pande, “Design Pattern Mining Using SubGraph Isomorphism: Relational View”, In International Journal of Software Engineering and its Application, 5.2, 2011
M.Gupta, A. Pande, R.S. Rao and A.K. Tripathi, “Design pattern detection by normalized cross correlation”, In International Conference on Methods and Models in Computer Science (ICM2CS), pp. 81-84. IEEE, 2010.
A.Pande, M. Gupta and A.K. Tripathi, “A new approach for detecting design patterns by graph decomposition and graph isomorphism”, In International Conference on Contemporary Computing, pp. 108-119, Springer, Berlin, Heidelberg, 2010.
M.Gupta, A.Pande and A.K. Tripathi, “Design patterns detection using SOP expressions for graphs”, In ACM SIGSOFT Software Engineering Notes, 36.1, pp.1-5, 2011.
M. Gupta, R. S. Rao and A. K. Tripathi, “Design pattern detection using inexact graph matching”, In International Conference on Communication and Computational Intelligence (INCOCCI), IEEE, 2010.
R.S. Rao, M, Gupta, “Design Pattern Detection By Multilayer Neural Genetic Algorithm”, In International Journal of Computer Science and Network (IJCSN), Vol. 3, Issue 1, pp. 9-14, 2014.
M. Gupta, R.S. Rao, A. Pande and A.K. Tripathi, “Design pattern mining using state space representation of graph matching”, In Advances in Computer Science and Information Technology, pp.318-328, 2011.
M. Gupta, “Design pattern mining using greedy algorithm for multi-labelled graphs”, International Journal of Information and Communication Technology, Vol. 3.4, pp. 314-323, 2011.
T. Diamantopoulos, A. Noutsos and A. Symeonidis, “DP-CORE: A Design Pattern Detection Tool for Code Reuse”.
M.L.Bernardi, M. Cimitile, and G.A. Di Lucca, “A model-driven graph-matching approach for design pattern detection”, In 20th Working Conference on Reverse Engineering (WCRE), IEEE, pp.172-181, 2013.
L. wen-Jin, P.Ju-long and W.Kang-Jian, “Research on detecting design pattern variants from source code based on constraints”, International Journal of Hybrid Information Technology, Vol. 8.5, pp.63-72,
E. Gamma, R. Helm, R.Johnson, and J. Vlissides, Design Patterns Elements of Reusable Object-Oriented Software, Addison- Wesley, 1995.
M. Smolarova and P. Navrat, “Software reuse: Principles, patterns, prospects”, In Journal of Computing and Information Technology, 5.1, pp. 33-49, 1997.
K.M. Hasan and M. S. Hasan, “A Parsing Scheme for Finding the Design Pattern and Reducing the Development Cost of Reusable
Object Oriented Software”, In International Journal of Computer Science and Information Technology, Vol. 2.3, June 2010.
G. Rasool and D. Streitfdert, “A survey on design pattern recovery techniques”, In International Journal of Computer Science Issues (IJCSI), Vol. 8.2, pp.251-260, 2011.
Downloads
Published
How to Cite
Issue
Section
License

This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors contributing to this journal agree to publish their articles under the Creative Commons Attribution 4.0 International License, allowing third parties to share their work (copy, distribute, transmit) and to adapt it, under the condition that the authors are given credit and that in the event of reuse or distribution, the terms of this license are made clear.
