Call for Paper - August 2022 Edition
IJCA solicits original research papers for the August 2022 Edition. Last date of manuscript submission is July 20, 2022. Read More

Automatic Detection of Software Design Patterns from Reverse Engineering

IJCA Special Issue on Issues and Challenges in Networking, Intelligence and Computing Technologies
© 2012 by IJCA Journal
ICNICT - Number 1
Year of Publication: 2012
Amit Kumar Gautam
Saurabh Diwaker

Amit Kumar Gautam and Saurabh Diwaker. Article: Automatic Detection of Software Design Patterns from Reverse Engineering. IJCA Special Issue on Issues and Challenges in Networking, Intelligence and Computing Technologies ICNICT(1):17-22, November 2012. Full text available. BibTeX

	author = {Amit Kumar Gautam and Saurabh Diwaker},
	title = {Article: Automatic Detection of Software Design Patterns from Reverse Engineering},
	journal = {IJCA Special Issue on Issues and Challenges in Networking, Intelligence and Computing Technologies},
	year = {2012},
	volume = {ICNICT},
	number = {1},
	pages = {17-22},
	month = {November},
	note = {Full text available}


It is proposed to present a novel approach to recover design patterns which can achieve better performance and greater accuracy by representing the characteristics, basically structural, behavioural etc. of design pattern by using weight and matrix concept so that to reduce the anomalies like false positives rate and false negative rate. Also follow the pattern taxonomy for reverse engineering and applying sparse matrix algorithms for efficient storage and computation. Apply the sub matrix algorithm to design pattern binary matrix and binary matrix generated from source code. Comparison with other standard pattern detection tools for effectiveness and performance.


  • Charles Rich, Linda M. Wills, "Recognizing a Program's Design: A Graph-Parsing Approach," IEEE Software, vol. 7, no. 1, pp. 82-89, Jan. /Feb. 1990, doi:10. 1109/52. 43053.
  • Linda Mary Wills, Using Attributed Flow Graph Parsing to Recognize Clichés in Programs In Proceedings of the International Workshop on Graph Grammars and Their Application to Computer Science, 1996.
  • L. Wills, Automated program recognition by graph parsing, Technical Report 1358, MIT Artificial Intelligence Lab, July 1992, PhD Thesis.
  • Michael Siff and Thomas Reps, Identifying Modules via Concept Analysis, IEEE transaction on software engineering, Vol. 25, No. 6, 1999, pp 749-768
  • R. Ferenc, A. beszedes, l. fulop and j. lele, design pattern, mining enhanced by machine learning, 21st ieee, international conference on software maintenance, 2005.
  • Ozalp Babaoglu, Geoffrey Canright, Andreas Deutsch, Gianni A. Di Caro, Frederick Ducatelle, Luca M. Gambardella, Niloy Ganguly, M Ark Jelasity, Roberto Montemanni, Alberto Montresor and Tore Urnes, design patterns from biology for distributed computing, ACM, pp 1-40, 2006.
  • Shinpei hayashi, junya katada, ryota sakamoto, takashi kobayashi and motoshi saeki, design pattern detection by using meta patterns, special section on knowledge-based software eengineering, IEICE Trans. Inf. & Syst. , Vol. E91–D, No. 4 April 2008
  • Jing Dong, Yongtao Sun and Yajing Zhao, Design pattern detection by template matching, Proceedings of the 2008 ACM symposium on Applied computing, Pages 765-769, 2008
  • N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. Halkidis, Design Pattern Detection Using Similarity Scoring, IEEE transaction on software engineering, 32(11), 2006.
  • V. D. Blondel, A. Gajardo, M. Heymans, P. Senellart, and P. Van Dooren, A Measure of Similarity between Graph Vertices: Applications to Synonym Extraction and Web Searching, SIAM Rev. , vol. 46, no. 4, pp. 647-666, 2004.
  • J. M. Kleinberg, Authoritative Sources in a Hyperlinked Environment, J. ACM, vol. 46, no. 5, pp. 604-632, Sept. 1999.
  • Niklas Pettersson and Welf Lowe, A Non-conservative Approach to Software Pattern Detection, 15th IEEE International Conference on Program Comprehension (ICPC'07), IEEE Computer Society, 2007
  • Christian Kramer and Lutz Prechelt, Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software, Proc. Working Conf. on Reverse Engineering IEEE CS press, Monterey, November 1996.
  • G. Antoniol, R. Fiutem and L. Cristoforetti, Design Pattern Recovery in Object-Oriented Software, Program Comprehension, IWPC '98. Proceedings. , 6th International Workshop on, 153-160, 1998
  • G. Antoniol, R. Fiutem and L. Cristoforetti, Using Metrics to Identify Design Patterns in Object-Oriented Software, IEEE Computer Society, 1998.
  • F. Shull, W. L. Melo, and V. R. Basili. An inductive method for discovering design patterns from objectoriented software systems. Technical report, University of Maryland, Computer Science Department, College Park, MD, 20742 USA, Oct 1996.
  • K. Kontogiannis, R. De Mori, R. Bernstein, M. Galler, and Ettore Merlo. Pattern matching for clone and concept detection. Journal of Automated Software Engineering, March 1996.
  • Federico Bergenti and Agostino Poggi, Improving UML Designs Using Automatic Design Pattern Detection, In Proc. 12th. International Conference on Software Engineering and Knowledge Engineering, 2000.
  • Krzysztof Stencel and Patrycja W egrzynowicz, Detection of Diverse Design Pattern Variants, 15th Asia-Pacific Software Engineering Conference, IEEE Computer Society, 2008.
  • Jing Dong, Dushyant S. Lad, Yajing Zhao, DP-Miner: Design Pattern Discovery Using Matrix, Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems, IEEE Computer Society, 2007.
  • Francesca Arcelli, Luca Cristina, Enhancing Software Evolution through Design Pattern Detection, Third IEEE Workshop on Software Evolvability, IEEE Computer Society, 2007
  • Jing Dong, Yajing Zhao, Experiments on Design Pattern Discovery, Third International Workshop on Predictor Models in Software Engineering (PROMISE'07), IEEE Computer Society, 2007.
  • Damir Kirasic and Danko Basch, Ontology-Based Design Pattern Recognition, Volume 5177/2008, Springer Berlin / Heidelberg, pp 384-393, 2008.
  • Sven Wenzel, Udo Kelter, Model-Driven Design Pattern Detection Using Difference Calculation.
  • http://pi. informatik. uni-siegen. de/Mitarbeiter/wenzel/publications/dpd4re06. pdf
  • Lothar Wendehals and Alessandro Orso, Recognizing Behavioral Patterns at Runtime using Finite Automata, ACM, 2006.