Please wait a minute...
Frontiers of Computer Science

ISSN 2095-2228

ISSN 2095-2236(Online)

CN 10-1014/TP

Postal Subscription Code 80-970

2018 Impact Factor: 1.129

Front. Comput. Sci.    2018, Vol. 12 Issue (5) : 908-922    https://doi.org/10.1007/s11704-017-6424-y
RESEARCH ARTICLE
Software design pattern mining using classification-based techniques
Ashish Kumar DWIVEDI(), Anand TIRKEY(), Santanu Kumar RATH()
Department of Computer Science and Engineering, National Institute of Technology, Rourkela 769008, India
 Download: PDF(668 KB)  
 Export: BibTeX | EndNote | Reference Manager | ProCite | RefWorks
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.

Keywords design patterns      design pattern mining      machine learning techniques      object-oriented metrics     
Corresponding Author(s): Ashish Kumar DWIVEDI,Anand TIRKEY,Santanu Kumar RATH   
Just Accepted Date: 28 March 2017   Online First Date: 25 May 2018    Issue Date: 21 September 2018
 Cite this article:   
Ashish Kumar DWIVEDI,Anand TIRKEY,Santanu Kumar RATH. Software design pattern mining using classification-based techniques[J]. Front. Comput. Sci., 2018, 12(5): 908-922.
 URL:  
https://academic.hep.com.cn/fcs/EN/10.1007/s11704-017-6424-y
https://academic.hep.com.cn/fcs/EN/Y2018/V12/I5/908
1 Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison- Wesley, 1995
2 Fowler M. Patterns of Enterprise Application Architecture. Boston: Addison-Wesley, 2002
3 Dwivedi A K, Rath S K. Incorporating security features in serviceoriented architecture using security patterns. ACM SIGSOFT Software Engineering Notes, 2015, 40(1): 1–6
https://doi.org/10.1145/2693208.2693229
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
https://doi.org/10.1016/j.websem.2006.11.007
5 Zhu H, Bayley I. On the composability of design patterns. IEEE Transactions on Software Engineering, 2015, 41(11): 1138–1152
https://doi.org/10.1109/TSE.2015.2445341
6 Dwivedi A K, Rath S K. Formalization of web security patterns. INFOCOMP Journal of Computer Science, 2015, 14(1): 14–25
https://doi.org/10.18760/IC.14120152
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
https://doi.org/10.1145/581380.581382
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
https://doi.org/10.1016/j.jss.2015.01.037
9 Dong J, Zhao Y, Peng T. A review of design pattern mining techniques. International Journal of Software Engineering and Knowledge Engineering, 2009, 19(6): 823–855
https://doi.org/10.1142/S021819400900443X
10 Hagan M T, Demuth H B, Beale M H, De Jesús O. Neural Network Design. Vol 20. Boston: PWS publishing Company, 1996
11 Cortes C, Vapnik V. Support-vector networks. Machine Learning, 1995, 20(3): 273–297
https://doi.org/10.1007/BF00994018
12 Breiman L. Random forests. Machine Learning, 2001, 45(1): 5–32
https://doi.org/10.1023/A:1010933404324
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
https://doi.org/10.1016/j.infsof.2015.12.010
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
https://doi.org/10.1109/TSE.2006.112
15 Dong J, Sun Y, Zhao Y. Design pattern detection by template matching. In: Proceedings of ACM symposium on Applied Computing. 2008, 765–769
https://doi.org/10.1145/1363686.1363864
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
https://doi.org/10.1145/1101908.1101943
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
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
https://doi.org/10.1109/METRIC.1998.731224
19 Gueheneuc Y G, Sahraoui H, Zaidi F. Fingerprinting design patterns. In: Proceedings of the 11th Working Conference on Reverse Engineering. 2004, 172–181
https://doi.org/10.1109/WCRE.2004.21
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
https://doi.org/10.1016/j.infsof.2009.08.006
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
https://doi.org/10.1109/ICSM.2005.40
22 Balanyi Z, Ferenc R. Mining design patterns from c++ source code. In: Proceedings of International Conference on Software Maintenance. 2003, 305–314
https://doi.org/10.1109/ICSM.2003.1235436
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
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
https://doi.org/10.1109/UKCI.2013.6651312
25 Chihada A, Jalili S, Hasheminejad S M H, Zangooei M H. Source code and design conformance, design pattern detection from source code by classification approach. Applied Soft Computing, 2015, 26: 357–367
https://doi.org/10.1016/j.asoc.2014.10.027
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
https://doi.org/10.1016/j.jss.2015.01.019
27 Pradhan P, Dwivedi A K, Rath S K. Detection of design pattern using graph isomorphism and normalized cross correlation. In: Proceedings of the 8th International Conference on Contemporary Computing. 2015, 208–213
https://doi.org/10.1109/IC3.2015.7346680
28 Di Martino B, Esposito A. A rule-based procedure for automatic recognition of design patterns in UML diagrams. Software: Practice and Experience, 2016, 46(7): 983–1007
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
https://doi.org/10.1109/TSMCA.2009.2028012
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, 1–3
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
https://doi.org/10.1145/1656274.1656278
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
https://doi.org/10.1109/ASE.2006.57
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed