Frontiers of Computer Science

, Volume 12, Issue 5, pp 908–922 | Cite as

Software design pattern mining using classification-based techniques

  • Ashish Kumar Dwivedi
  • Anand Tirkey
  • Santanu Kumar Rath
Research Article


Design patterns are often used in the development of object-oriented software. It offers reusable abstract information that is helpful in solving recurring design problems. Detecting design patterns is beneficial to the comprehension and maintenance of object-oriented software systems. Several pattern detection techniques based on static analysis often encounter problems when detecting design patterns for identical structures of patterns. In this study, we attempt to detect software design patterns by using software metrics and classification-based techniques. Our study is conducted in two phases: creation of metrics-oriented dataset and detection of software design patterns. The datasets are prepared by using software metrics for the learning of classifiers. Then, pattern detection is performed by using classification-based techniques. To evaluate the proposed method, experiments are conducted using three open source software programs, JHotDraw, QuickUML, and JUnit, and the results are analyzed.


design patterns design pattern mining machine learning techniques object-oriented metrics 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Supplementary material

11704_2017_6424_MOESM1_ESM.ppt (443 kb)
Supplementary material, approximately 451 KB.


  1. 1.
    Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995zbMATHGoogle Scholar
  2. 2.
    Fowler M. Patterns of Enterprise Application Architecture. Boston: Addison-Wesley, 2002Google Scholar
  3. 3.
    Dwivedi A K, Rath S K. Incorporating security features in service-oriented architecture using security patterns. ACM SIGSOFT Software Engineering Notes, 2015, 40(1): 1–6CrossRefGoogle Scholar
  4. 4.
    Dietrich J, Elgar C. Towards a Web of patterns. Web Semantics: Science, Services and Agents on the World Wide Web, 2007, 5(2): 108–116CrossRefGoogle Scholar
  5. 5.
    Zhu H, Bayley I. On the composability of design patterns. IEEE Transactions on Software Engineering, 2015, 41(11): 1138–1152CrossRefGoogle Scholar
  6. 6.
    Dwivedi A K, Rath S K. Formalization of web security patterns. INFOCOMP Journal of Computer Science, 2015, 14(1): 14–25CrossRefGoogle Scholar
  7. 7.
    Niere J, Schäfer W, Wadsack J P, Wendehals L, Welsh J. Towards pattern-based design recovery. In: Proceedings of the 24th International Conference on Software Engineering. 2002, 338–348Google Scholar
  8. 8.
    Zanoni M, Fontana F A, Stella F. On applying machine learning techniques for design pattern detection. Journal of Systems and Software, 2015, 103: 102–117CrossRefGoogle Scholar
  9. 9.
    Dong J, Zhao Y, Peng T. A review of design pattern mining techniques. International Journal of Software Engineering and Knowledge Engineering, 2009, 19(06): 823–855CrossRefGoogle Scholar
  10. 10.
    Hagan M T, Demuth H B, Beale M H, De Jesús O. Neural Network Design. Vol 20. Boston: PWS publishing Company, 1996Google Scholar
  11. 11.
    Cortes C, Vapnik V. Support-vector networks. Machine learning, 1995, 20(3): 273–297zbMATHGoogle Scholar
  12. 12.
    Breiman L. Random forests. Machine Learning, 2001, 45(1): 5–32CrossRefzbMATHGoogle Scholar
  13. 13.
    Arvanitou E M, Ampatzoglou A, Chatzigeorgiou A, Avgeriou P. Software metrics fluctuation: a property for assisting the metric selection process. Information and Software Technology, 2016, 72: 110–124CrossRefGoogle Scholar
  14. 14.
    Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis S T. Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering, 2006, 32(11): 896–909CrossRefGoogle Scholar
  15. 15.
    Dong J, Sun Y, Zhao Y. Design pattern detection by template matching. In: Proceedings of ACM symposium on Applied Computing. 2008, 765–769Google Scholar
  16. 16.
    Blewitt A, Bundy A, Stark I. Automatic verification of design patterns in java. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering. 2005, 224–232CrossRefGoogle Scholar
  17. 17.
    Shull F, Melo W L, Basili V R. An inductive method for discovering design patterns from object-oriented software systems. Technical Report UMIACS-TR-96-10, 1998Google Scholar
  18. 18.
    Antoniol G, Fiutem R, Cristoforetti L. Using metrics to identify design patterns in object-oriented software. In: Proceedings of the 5th International Software Metrics Symposium. 1998, 23–34Google Scholar
  19. 19.
    Gueheneuc Y G, Sahraoui H, Zaidi F. Fingerprinting design patterns. In: Proceedings of the 11th Working Conference on Reverse Engineering. 2004, 172–181Google Scholar
  20. 20.
    Kaczor O, Guéhéneuc Y G, Hamel S. Identification of design motifs with pattern matching algorithms. Information and Software Technology, 2010, 52(2): 152–168CrossRefGoogle Scholar
  21. 21.
    Ferenc R, Beszedes A, Fülöp L, Lele J. Design pattern mining enhanced by machine learning. In: Proceedings of the 21st IEEE International Conference on Software Maintenance. 2005, 295–304Google Scholar
  22. 22.
    Balanyi Z, Ferenc R. Mining design patterns from c++ source code. In: Proceedings of International Conference on Software Maintenance. 2003, 305–314Google Scholar
  23. 23.
    Uchiyama S, Washizaki H, Fukazawa Y, Kubo A. Design pattern detection using software metrics and machine learning. In: Proceedings of the 1st International Workshop on Model-Driven Software Migration. 2011, 38–47Google Scholar
  24. 24.
    Alhusain S, Coupland S, John R, Kavanagh M. Towards machine learning based design pattern recognition. In: Proceedings of the 13th UK Workshop on Computational Intelligence. 2013, 244–251Google Scholar
  25. 25.
    Chihada A, Jalili S, Hasheminejad S MH, Zangooei M H. Source code and design conformance, design pattern detection from source code by classification approach. Applied Soft Computing, 2015, 26: 357–367CrossRefGoogle Scholar
  26. 26.
    Yu D, Zhang Y, Chen Z. A comprehensive approach to the recovery of design pattern instances based on sub-patterns and method signatures. Journal of Systems and Software, 2015, 103: 1–16CrossRefGoogle Scholar
  27. 27.
    Pradhan P, Dwivedi A K, Rath S K. Detection of design pattern using graph isomorphism and normalized cross correlation. In: Proceed ings of the 8th International Conference on Contemporary Computing. 2015, 208–213Google Scholar
  28. 28.
    Di Martino B, Esposito A. A rule-based procedure for automatic recognition of design patterns in uml diagrams. Software: Practice and Experience, 2015Google Scholar
  29. 29.
    Dong J, Zhao Y, Sun Y. A matrix-based approach to recovering design patterns. IEEE Transactions on Systems, Man and Cybernetics, Part A: Systems and Humans, 2009, 39(6): 1271–1282CrossRefGoogle Scholar
  30. 30.
    Guéhéneuc Y G. P-MARt: Pattern-like micro architecture repository. In: Proceedings of the 1st EuroPLoP Focus Group on Pattern Repositories. 2007Google Scholar
  31. 31.
    Hall M, Frank E, Holmes G, Pfahringer B, Reutemann P, Witten I H. The weka data mining software: an update. ACM SIGKDD Explorations Newsletter, 2009, 11(1): 10–18CrossRefGoogle Scholar
  32. 32.
    Shi N, Olsson R A. Reverse engineering of design patterns from java source code. In: Proceedings of the 21st IEEE/ACMInternational Conference on Automated Software Engineering. 2006, 123–134Google Scholar

Copyright information

© Higher Education Press and Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  • Ashish Kumar Dwivedi
    • 1
  • Anand Tirkey
    • 1
  • Santanu Kumar Rath
    • 1
  1. 1.Department of Computer Science and EngineeringNational Institute of TechnologyRourkelaIndia

Personalised recommendations