Combining Network Analysis with Structural Matching for Design Pattern Detection

Context: Design pattern detection is a very important research on software reuse, which can greatly help software maintenance and reconstruction. At present, many researchers have invested in this work and proposed a variety of methods for detection. Method: This paper extends the graph matching technology based on the past and proposes a new method that combines network analysis and structural matching for detection. First, we use network level analysis to obtain important nodes, then use the neighborhood path matching algorithm to match the pattern instance. Result: We describe the detection of five patterns on four open source systems, then analyze and compare with the other three methods, for achieving high precision and recall, which demonstrates that our method is effective. Conclusion: Using combining network analysis with structural matching can well detect these pattern instances, and these instances are also especially important for future software refactoring.

[1]  Fabio Stella,et al.  On applying machine learning techniques for design pattern detection , 2015, J. Syst. Softw..

[2]  Cheng Zhang,et al.  What Do We Know about the Effectiveness of Software Design Patterns? , 2012, IEEE Transactions on Software Engineering.

[3]  Michele Risi,et al.  An Eclipse plug-in for the detection of design pattern instances through static and dynamic analysis , 2010, 2010 IEEE International Conference on Software Maintenance.

[4]  Venkata Subramaniam,et al.  Information Retrieval: Data Structures & Algorithms , 1992 .

[5]  Nadia Bouassida,et al.  Using metric-based filtering to improve design pattern detection approaches , 2014, Innovations in Systems and Software Engineering.

[6]  Vladimir Batagelj,et al.  Pajek - Analysis and Visualization of Large Networks , 2004, Graph Drawing Software.

[7]  Lutz Prechelt,et al.  Design recovery by automated search for structural design patterns in object-oriented software , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[8]  Ping Zhang,et al.  Efficiently detecting structural design pattern instances based on ordered sequences , 2018, J. Syst. Softw..

[9]  Francesca Arcelli Fontana,et al.  DPB: A Benchmark for Design Pattern Detection Tools , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[10]  Reidar Conradi,et al.  The Empirical Studies on Quality Benefits of Reusing Software Components , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[11]  Ying Wang,et al.  Automatic Software Refactoring via Weighted Clustering in Method-Level Networks , 2018, IEEE Transactions on Software Engineering.

[12]  Ioannis Stamelos,et al.  Building and mining a repository of design pattern instances: Practical and research benefits , 2013, Entertain. Comput..

[13]  Yanhui Huang,et al.  Software power modeling method at architecture level based on complex networks , 2016, Sustain. Comput. Informatics Syst..

[14]  Jing Dong,et al.  DP-Miner: Design Pattern Discovery Using Matrix , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[15]  Robert Ivor John,et al.  Towards machine learning based design pattern recognition , 2013, 2013 13th UK Workshop on Computational Intelligence (UKCI).

[16]  Sai Peck Lee,et al.  Automatic clustering constraints derivation from object-oriented software using weighted complex network with graph theory analysis , 2017, J. Syst. Softw..

[17]  R. Adams Proceedings , 1947 .

[18]  Jim Welsh,et al.  Towards pattern-based design recovery , 2002, ICSE '02.

[19]  Santanu Kumar Rath,et al.  Software design pattern recognition using machine learning techniques , 2016, 2016 IEEE Region 10 Conference (TENCON).

[20]  Ghulam Rasool,et al.  Flexible design pattern detection based on feature types , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[21]  Giuliano Antoniol,et al.  Using metrics to identify design patterns in object-oriented software , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[22]  Anil Kumar Tripathi,et al.  A Decision Tree Approach for Design Patterns Detection by Subgraph Isomorphism , 2010, ICT.

[23]  Alexander Chatzigeorgiou,et al.  Design Pattern Detection Using Similarity Scoring , 2006, IEEE Transactions on Software Engineering.

[24]  Mario Luca Bernardi,et al.  Design pattern detection using a DSL‐driven graph matching approach , 2014, J. Softw. Evol. Process..

[25]  Fazli Can,et al.  Information Retrieval Data Structures & Algorithms, by William B. Frakes and Ricardo Baeza-Yates (Book Review) , 1993, SIGIR Forum.

[26]  Rudolf Ferenc,et al.  Design pattern mining enhanced by machine learning , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[27]  Yann-Gaël Guéhéneuc,et al.  Fingerprinting design patterns , 2004, 11th Working Conference on Reverse Engineering.

[28]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[29]  Yann-Gaël Guéhéneuc,et al.  DeMIMA: A Multilayered Approach for Design Pattern Identification , 2008, IEEE Transactions on Software Engineering.

[30]  Abbas Rasoolzadegan Barforoush,et al.  Design pattern detection based on the graph theory , 2017, Knowl. Based Syst..

[31]  Sergio Gómez,et al.  Centrality in Networks: Finding the Most Important Nodes , 2019, Business and Consumer Analytics: New Ideas.

[32]  Yanyan Zhang,et al.  A comprehensive approach to the recovery of design pattern instances based on sub-patterns and method signatures , 2015, J. Syst. Softw..

[33]  J. McC Smith,et al.  Elemental design patterns: a formal semantics for composition of OO software architecture , 2002, 27th Annual NASA Goddard/IEEE Software Engineering Workshop, 2002. Proceedings..