Open Access   Article Go Back

Present Approaches for Detection of Design Pattern: A Survey

A. Chaturvedi1

Section:Survey Paper, Product Type: Journal Paper
Volume-6 , Issue-8 , Page no. 948-958, Aug-2018

CrossRef-DOI:   https://doi.org/10.26438/ijcse/v6i8.948958

Online published on Aug 31, 2018

Copyright © A. Chaturvedi . This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

View this paper at   Google Scholar | DPI Digital Library

How to Cite this Paper

  • IEEE Citation
  • MLA Citation
  • APA Citation
  • BibTex Citation
  • RIS Citation

IEEE Style Citation: A. Chaturvedi, “Present Approaches for Detection of Design Pattern: A Survey,” International Journal of Computer Sciences and Engineering, Vol.6, Issue.8, pp.948-958, 2018.

MLA Style Citation: A. Chaturvedi "Present Approaches for Detection of Design Pattern: A Survey." International Journal of Computer Sciences and Engineering 6.8 (2018): 948-958.

APA Style Citation: A. Chaturvedi, (2018). Present Approaches for Detection of Design Pattern: A Survey. International Journal of Computer Sciences and Engineering, 6(8), 948-958.

BibTex Style Citation:
@article{Chaturvedi_2018,
author = {A. Chaturvedi},
title = {Present Approaches for Detection of Design Pattern: A Survey},
journal = {International Journal of Computer Sciences and Engineering},
issue_date = {8 2018},
volume = {6},
Issue = {8},
month = {8},
year = {2018},
issn = {2347-2693},
pages = {948-958},
url = {https://www.ijcseonline.org/full_paper_view.php?paper_id=2800},
doi = {https://doi.org/10.26438/ijcse/v6i8.948958}
publisher = {IJCSE, Indore, INDIA},
}

RIS Style Citation:
TY - JOUR
DO = {https://doi.org/10.26438/ijcse/v6i8.948958}
UR - https://www.ijcseonline.org/full_paper_view.php?paper_id=2800
TI - Present Approaches for Detection of Design Pattern: A Survey
T2 - International Journal of Computer Sciences and Engineering
AU - A. Chaturvedi
PY - 2018
DA - 2018/08/31
PB - IJCSE, Indore, INDIA
SP - 948-958
IS - 8
VL - 6
SN - 2347-2693
ER -

VIEWS PDF XML
573 278 downloads 296 downloads
  
  
           

Abstract

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.

Key-Words / Index Term

Design Pattern, UML, Ontology, Sub-Graph Isomorphism, Structural Analysis

References

[1] 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.
[2] 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.
[3] 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.
[4] 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.
[5] S. Wenzel and U. Kelter, “Model-driven design pattern detection using difference calculation”, In Workshop on Pattern Detection for Reverse Engineering, 2006.
[6] 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.
[7] G.Rasool and H. akhtar, “Discovering Variants of Design Patterns”, In Journalof Basic and Applied Scientific Research, 3.1, pp. 139-147, 2013.
[8] 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.
[9] 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.
[10] 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.
[11] 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.
[12] 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.
[13] 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.544-547, 2012.
[14] 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.
[15] 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.
[16] F. Arcelli and L. Christina, “Enhancing software evolution through design pattern detection”, In Third International IEEE Workshop on Software Evolvability, pp. 7-14, 2007.
[17] 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.
[18] 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.
[19] 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.
[20] 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.
[21] 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.
[22] 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.
[23] 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.
[24] 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.
[25] 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.
[26] Stefan Burger, Oliver Hummel. “Towards Automated Design Smell detection”, The Ninth International Conference on Software Engineering Advances (ICSEA2014), pp. 428, October 12 - 16, 2014
[27] 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
[28] 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
[29] A. K. Gautam and T. Gayen, “Recovery of Design Pattern from source code”, 2010.
[30] 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.
[31] 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.
[32] 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.
[33] 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.
[34] 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.
[35] 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
[36] 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.
[37] M.Gupta and A. Pande, “Design Pattern Mining Using Sub-Graph Isomorphism: Relational View”, In International Journal of Software Engineering and its Application, 5.2, 2011
[38] 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.
[39] 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.
[40] 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.
[41] 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.
[42] 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.
[43] 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.
[44] 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.
[45] T. Diamantopoulos, A. Noutsos and A. Symeonidis, “DP-CORE: A Design Pattern Detection Tool for Code Reuse”.
[46] 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.
[47] 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,
[48] E. Gamma, R. Helm, R.Johnson, and J. Vlissides, Design Patterns Elements of Reusable Object-Oriented Software, Addison- Wesley, 1995.
[49] M. Smolarova and P. Navrat, “Software reuse: Principles, patterns, prospects”, In Journal of Computing and Information Technology, 5.1, pp. 33-49, 1997.
[50] 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.
[51] 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.
[52] R.K. Priya, “A survey: Design pattern detection approaches with metrics”, In IEEE National Conference on Emerging Trends In New & Renewable Energy Sources And Energy Management (NCET NRES EM), pp.22-26, December 2014.
[53] H. Alshira and H. Mohammad, “Integrating user knowledge into design pattern detection”, (Doctoral dissertation, Department of Computer Science), 2015.
[54] U. Tekin, U. Erdemir and F. Buzluca, “Mining object-oriented design models for detecting identical design structures”, In Proceedings of the 6th International Workshop on Software Clones, IEEE Press, pp. 43-49, 2012.
[55] A. Nagy and B. Kovari, “Programming language neutral design pattern detection”, In 16th IEEE International Symposium on Computational Intelligence and Informatics (CINTI), pp.215-219, 2015.
[56] D. Beyer and C. Lewerentz, “CrocoPat: Efficient pattern analysis in object-oriented programs”, In 11th IEEE International Workshop on Program Comprehension, pp. 294-295, 2003.
[57] M. Vokac, “An efficient tool for recovering Design Patterns from C++ Code”, In Journal of Object Technology, Vol.5.1, pp. 139-157, 2006.
[58] A.K. Gautam and S.Diwakar, “Automatic Detection of Software Design Patterns from Reverse Engineering”, In Issues and Challenges in Networking, Intelligence and Computing Technologies-ICNICT 2012, Special Issue of International Journal of Computer Application, November 2012.
[59] G. Costagliola, A. De Lucia, V. Deufemia, C. Gravino and M. Risi, “Design pattern recovery by visual language parsing”, In Ninth European Conference on Software Maintenance and Reengineering, CSMR, IEEE, pp.102-111, 2005.
[60] A. Blewitt, A. Bundy and I. Stark, “Automatic verification of design patterns in Java”, In Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, ACM, pp. 224-232, 2005.