Design Pattern Detection Approach Based on Stacked Generalization
Author:
Affiliation:

Clc Number:

TP311

Fund Project:

National Natural Science Foundation of China (61471181); CERNET Innovation Project (NGII20180701)

  • Article
  • | |
  • Metrics
  • |
  • Reference [36]
  • |
  • Related [20]
  • | | |
  • Comments
    Abstract:

    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.

    Reference
    [1] Gamma E. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1995.
    [2] Firesmith DG, Eykholt EM, Siegel J. Dictionary of Object Technology: The Definitive Desk Reference. Cambridge University Press, 1995.
    [3] Mohri M, Rostamizadeh A, Talwalkar A. Foundations of Machine Learning. MIT Press, 2012.
    [4] Heuzeroth D, Holl T, Hogstrom G, et al. Automatic design pattern detection. In: Proc. of the 11th IEEE Int'l Workshop on Program Comprehension. IEEE, 2003. 94-103.
    [5] Wendehals L. Improving design pattern instance recognition by dynamic analysis. In: Proc. of the ICSE 2003 Workshop on Dynamic Analysis (WODA). 2003. 29-32.
    [6] De Lucia A, Deufemia V, Gravino C, et al. Towards automating dynamic analysis for behavioral design pattern detection. In: Proc. of the 2015 IEEE Int'l Conf. on Software Maintenance and Evolution (ICSME). IEEE, 2015. 161-170.
    [7] Tsantalis N, Chatzigeorgiou A, Stephanides G, et al. Design pattern detection using similarity scoring. IEEE Trans. on Software Engineering, 2006,32(11):896-909.
    [8] Dong J, Sun Y, Zhao Y. Design pattern detection by template matching. In: Proc. of the 2008 ACM Symp. on Applied Computing. ACM, 2008. 765-769.
    [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, 2015,103:1-16.
    [10] Oruc M, Akal F, Sever H. Detecting design patterns in object-oriented design models by using a graph mining approach. In: Proc. of the 2016 4th Int'l Conf. on Software Engineering Research and Innovation (CONISOFT). IEEE, 2016. 115-121.
    [11] Mayvan BB, Rasoolzadegan A. Design pattern detection based on the graph theory. Knowledge-Based Systems, 2017,120:211-225.
    [12] 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.
    [13] Kirasić D, Basch D. Ontology-Based design pattern recognition. In: Proc. of the Int'l Conf. on Knowledge-Based and Intelligent Information and Engineering Systems. Berlin, Heidelberg: Springer-Verlag, 2008. 384-393.
    [14] Panich A, Vatanawood W. Detection of design patterns from class diagram and sequence diagrams using ontology. In: Proc. of the 2016 IEEE/ACIS 15th Int'l Conf. on Computer and Information Science (ICIS). IEEE, 2016. 1-6.
    [15] Alhusain S, Coupland S, John R, et al. Towards machine learning based design pattern recognition. In: Proc. of the 2013 13th UK Workshop on Computational Intelligence (UKCI). IEEE, 2013. 244-251.
    [16] Zanoni M, Fontana FA, Stella F. On applying machine learning techniques for design pattern detection. Journal of Systems and Software, 2015,103:102-117.
    [17] Chihada A, Jalili S, Hasheminejad SMH, et al. Source code and design conformance, design pattern detection from source code by classification approach. Applied Soft Computing, 2015,26:357-367.
    [18] Zanoni M. Data mining techniques for design pattern detection. Università degli Studi di Milano-Bicocca, 2012.
    [19] Finder [design pattern detection]. https://wiki.cse.yorku.ca/project/dpd/finder
    [20] Antoniol G, Fiutem R, Cristoforetti L. Using metrics to identify design patterns in object-oriented software. In: Proc. of the 5th Int'l Software Metrics Symp. IEEE, 1998. 23-34.
    [21] Guéhéneuc YG, Sahraoui H, Zaidi F. Fingerprinting design patterns. In: Proc. of the 11th Working Conf. on Reverse Engineering. IEEE, 2004. 172-181.
    [22] Issaoui I, Bouassida N, Ben-Abdallah H. Predicting the existence of design patterns based on semantics and metrics. The Int'l Arab Journal of Information Technology, 2016,13(2):310-319.
    [23] Chidamber SR, Kemerer CF. A metrics suite for object oriented design. IEEE Trans. on Software Engineering, 1994,20(6): 476-493.
    [24] Lorenz M, Kidd J. Object-Oriented Software Metrics: A Practical Guide. Prentice-Hall, Inc., 1994.
    [25] Tegarden DP, Sheetz SD, Monarchi DE. A software complexity model of object-oriented systems. Decision Support Systems, 1995, 13(3-4):241-262.
    [26] Hitz M. Measuring coupling and cohesion in object-oriented systems. In: Proc. of the Int'l Symp. on Applied Corporate Computing. Monterrey, 1995. 25-27.
    [27] Briand LC, Daly JW, Wuest J. A unified framework for cohesion measurement. In: Proc. of the 4th Int'l Software Metrics Symp. IEEE, 1997. 43-53.
    [28] Nickel U, Niere J, Zündorf A. The FUJABA environment. In: Proc. of the 22nd Int'l Conf. on Software Engineering. ACM, 2000. 742-745.
    [29] Smith JM, Stotts D. An elemental design pattern catalog. Technical Report, 02-040, University of North Carolina at Chapel Hill, 2002.
    [30] Gil J Y, Maman I. Micro patterns in Java code. ACM SIGPLAN Notices, 2005,40(10):97-116..
    [31] Fontana FA, Maggioni S, Raibulet C. Design patterns: A survey on their micro-structures. Journal of Software: Evolution and Process, 2013,25(1):27-52.
    [32] Fontana FA, Maggioni S, Raibulet C. Understanding the relevance of micro-structures for design patterns detection. Journal of Systems and Software, 2011,84(12):2334-2347.
    [33] Guéhéneuc YG. P-Mart: Pattern-like micro architecture repository. In: Proc. of the 1st EuroPLoP Focus Group on Pattern Repositories. 2007. 1-3.
    [34] Fontana FA, Caracciolo A, Zanoni M. DPB: A benchmark for design pattern detection tools. In: Proc. of the 16th European Conf. on Software Maintenance and Reengineering (CSMR). IEEE, 2012. 235-244.
    [35] Ampatzoglou A, Michou O, Stamelos I. Building and mining a repository of design pattern instances: Practical and research benefits. Entertainment Computing, 2013,4(2):131-142.
    [36] Pettersson N, Lowe W, Nivre J. Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. on Software Engineering, 2010,36(4):575-590.
    Cited by
    Comments
    Comments
    分享到微博
    Submit
Get Citation

冯铁,靳乐,张家晨,王洪媛.基于堆叠泛化的设计模式检测方法.软件学报,2020,31(6):1703-1722

Copy
Share
Article Metrics
  • Abstract:1637
  • PDF: 4551
  • HTML: 1750
  • Cited by: 0
History
  • Received:April 27,2018
  • Revised:December 06,2018
  • Online: June 04,2020
  • Published: June 06,2020
You are the first2033315Visitors
Copyright: Institute of Software, Chinese Academy of Sciences Beijing ICP No. 05046678-4
Address:4# South Fourth Street, Zhong Guan Cun, Beijing 100190,Postal Code:100190
Phone:010-62562563 Fax:010-62562533 Email:jos@iscas.ac.cn
Technical Support:Beijing Qinyun Technology Development Co., Ltd.

Beijing Public Network Security No. 11040202500063