Skip to main content
Log in

Software design pattern mining using classification-based techniques

  • Research Article
  • Published:
Frontiers of Computer Science Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995

    MATH  Google Scholar 

  2. Fowler M. Patterns of Enterprise Application Architecture. Boston: Addison-Wesley, 2002

    Google Scholar 

  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–6

    Article  Google Scholar 

  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–116

    Article  Google Scholar 

  5. Zhu H, Bayley I. On the composability of design patterns. IEEE Transactions on Software Engineering, 2015, 41(11): 1138–1152

    Article  Google Scholar 

  6. Dwivedi A K, Rath S K. Formalization of web security patterns. INFOCOMP Journal of Computer Science, 2015, 14(1): 14–25

    Article  Google Scholar 

  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–348

    Google Scholar 

  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–117

    Article  Google Scholar 

  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–855

    Article  Google Scholar 

  10. Hagan M T, Demuth H B, Beale M H, De Jesús O. Neural Network Design. Vol 20. Boston: PWS publishing Company, 1996

    Google Scholar 

  11. Cortes C, Vapnik V. Support-vector networks. Machine learning, 1995, 20(3): 273–297

    MATH  Google Scholar 

  12. Breiman L. Random forests. Machine Learning, 2001, 45(1): 5–32

    Article  MATH  Google Scholar 

  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–124

    Article  Google Scholar 

  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–909

    Article  Google Scholar 

  15. Dong J, Sun Y, Zhao Y. Design pattern detection by template matching. In: Proceedings of ACM symposium on Applied Computing. 2008, 765–769

    Google Scholar 

  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–232

    Chapter  Google Scholar 

  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, 1998

    Google Scholar 

  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–34

    Google Scholar 

  19. Gueheneuc Y G, Sahraoui H, Zaidi F. Fingerprinting design patterns. In: Proceedings of the 11th Working Conference on Reverse Engineering. 2004, 172–181

    Google Scholar 

  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–168

    Article  Google Scholar 

  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–304

    Google Scholar 

  22. Balanyi Z, Ferenc R. Mining design patterns from c++ source code. In: Proceedings of International Conference on Software Maintenance. 2003, 305–314

    Google Scholar 

  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–47

    Google Scholar 

  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–251

    Google Scholar 

  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–367

    Article  Google Scholar 

  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–16

    Article  Google Scholar 

  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–213

    Google Scholar 

  28. Di Martino B, Esposito A. A rule-based procedure for automatic recognition of design patterns in uml diagrams. Software: Practice and Experience, 2015

    Google Scholar 

  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–1282

    Article  Google Scholar 

  30. Guéhéneuc Y G. P-MARt: Pattern-like micro architecture repository. In: Proceedings of the 1st EuroPLoP Focus Group on Pattern Repositories. 2007

    Google Scholar 

  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–18

    Article  Google Scholar 

  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–134

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ashish Kumar Dwivedi.

Additional information

Ashish Kumar Dwivedi received his Bachelor of Technology degree in computer science and engineering from Uttar Pradesh Technical University, Lucknow, India and his Master of Technology by Research in computer science and engineering from NIT Rourkela, India. Presently, he is pursuing his PhD in computer science and engineering from NIT Rourkela. His areas of interest are design patterns, formal methods and machine learning techniques. He is an IEEE member.

Anand Tirkey received his Bachelor of Engineering degree in computer science and engineering from Birla Institute of Technology Mesra, Ranchi, India. Presently, he is pursuing his Master of Technology degree in computer science and engineering from NIT Rourkela, India. His areas of interest are data mining, machine learning, Internet of Things and robotics.

Santanu Kumar Rath is a professor in the Department of Computer Science and Engineering, NIT Rourkela, India since 1988. His research interests are in software engineering, bioinformatics and management. He has published a large number of papers in international journals and conferences in these areas. He is a senior member of the IEEE, USA and ACM, USA and Petri Net Society, Germany.

Electronic supplementary material

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dwivedi, A.K., Tirkey, A. & Rath, S.K. Software design pattern mining using classification-based techniques. Front. Comput. Sci. 12, 908–922 (2018). https://doi.org/10.1007/s11704-017-6424-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11704-017-6424-y

Keywords

Navigation