Design Pattern Detection Approach Based on Stacked Generalization

被引:0
|
作者
Feng T. [1 ,3 ]
Jin L. [2 ]
Zhang J.-C. [1 ]
Wang H.-Y. [1 ]
机构
[1] College of Computer Science and Technology, Jilin University, Changchun
[2] College of Software, Jilin University, Changchun
[3] Key Laboratory of Symbolic Computation and Knowledge Engineering, Jilin University, Ministry of Education, Changchun
来源
Ruan Jian Xue Bao/Journal of Software | 2020年 / 31卷 / 06期
基金
中国国家自然科学基金;
关键词
Design pattern detection; Machine learning; Object-oriented software metric; Pattern micro-structure; Stacked generalization;
D O I
10.13328/j.cnki.jos.005847
中图分类号
学科分类号
摘要
Design pattern detection plays an important role in understanding and maintaining software system. With the purpose of identifying variants of design pattern efficiently and improving the accuracy of design pattern detection, an approach of design pattern detection based on stacked generalization in combination with object-oriented software metrics and pattern micro-structures is proposed in this study. Applying some typical machine learning algorithms, the approach trains a metric classifier and a micro-structure classifier for each design pattern, after which a stacked classifier is further trained and constructed on the predictive values of the two classifiers and some related object modeling features. To evaluate the proposed approach, a prototype tool, namely OOSdpd, is developed to detect design pattern instances from Java bytecode files of a system. The experiments on several classic open source projects are carried out, such as JUnit etc., and the proposed approach is compared with two existing tools. Experiments prove the effectiveness of the proposed approach in terms of improving the accuracy and recall rate of design pattern detection. © Copyright 2020, Institute of Software, the Chinese Academy of Sciences. All rights reserved.
引用
收藏
页码:1703 / 1722
页数:19
相关论文
共 36 条
  • [1] Gamma E., Design Patterns: Elements of Reusable Object-Oriented Software, (1995)
  • [2] Firesmith DG, Eykholt EM, Siegel J., Dictionary of Object Technology: The Definitive Desk Reference, (1995)
  • [3] Mohri M, Rostamizadeh A, Talwalkar A., Foundations of Machine Learning, (2012)
  • [4] Heuzeroth D, Holl T, Hogstrom G, Et al., Automatic design pattern detection, Proc. of the 11th IEEE Int'l Workshop on Program Comprehension, pp. 94-103, (2003)
  • [5] Wendehals L., Improving design pattern instance recognition by dynamic analysis, Proc. of the ICSE 2003 Workshop on Dynamic Analysis (WODA), pp. 29-32, (2003)
  • [6] De Lucia A, Deufemia V, Gravino C, Et al., Towards automating dynamic analysis for behavioral design pattern detection, Proc. of the 2015 IEEE Int'l Conf. on Software Maintenance and Evolution (ICSME), pp. 161-170, (2015)
  • [7] Tsantalis N, Chatzigeorgiou A, Stephanides G, Et al., Design pattern detection using similarity scoring, IEEE Trans. on Software Engineering, 32, 11, pp. 896-909, (2006)
  • [8] Dong J, Sun Y, Zhao Y., Design pattern detection by template matching, Proc. of the 2008 ACM Symp. on Applied Computing, pp. 765-769, (2008)
  • [9] 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, 103, pp. 1-16, (2015)
  • [10] Oruc M, Akal F, Sever H., Detecting design patterns in object-oriented design models by using a graph mining approach, Proc. of the 20164th Int'l Conf. on Software Engineering Research and Innovation (CONISOFT), pp. 115-121, (2016)