Using metric-based filtering to improve design pattern detection approaches

Design patterns represent high-level recurring abstractions that reflect the know-how of experts. Their detection is a key task in the context of software engineering; it is very useful in program comprehension, design recovery and also for re-documenting object-oriented systems. Despite their usefulness, current design pattern detection approaches have a high time complexity that hinders their application. This complexity is further aggravated with the absence of guiding principles in determining which pattern to look for first among the various patterns. To overcome this practical limit, we propose to optimize any pattern detection approach by foregoing it by a filtering phase that detects possible existence of patterns and that orders the candidate patterns in terms of their degree of resemblance to the analyzed design fragments. The herein proposed filtering approach exploits semantic and structural design metrics to look for the semantic and structural symptoms of design pattern instances. Its performance is experimentally demonstrated through our design pattern detection method MAPeD (Multi-phase Approach for Pattern Discovery) applied on the open source system JUnit.

[1]  Michele Risi,et al.  Improving Behavioral Design Pattern Detection through Model Checking , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[2]  Nadia Bouassida,et al.  A Design Pattern Detection Approach Based on Semantics , 2012, SERA.

[3]  Nadia Bouassida,et al.  Evaluation of an Automated Multi-phase Approach for Patterns Discovery , 2013, Int. J. Softw. Eng. Knowl. Eng..

[4]  Hironori Washizaki,et al.  Selection of metrics for predicting the appropriate application of design patterns , 2011, AsianPLoP '11.

[5]  F Arcelli Fontana,et al.  Metrics-based Detection of Micro Patterns to improve the Assesment of Software Quality , 2009 .

[6]  Yann-Gaël Guéhéneuc,et al.  Sub-graph Mining: Identifying Micro-architectures in Evolving Object-Oriented Software , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[7]  James M. Bieman,et al.  Design patterns and change proneness: an examination of five evolving systems , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[8]  William C. Chu,et al.  A quantitative approach for evaluating the quality of design patterns , 2008, J. Syst. Softw..

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

[10]  Ioannis Stamelos,et al.  A methodology to assess the impact of design patterns on software quality , 2012, Inf. Softw. Technol..

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

[12]  Ioannis Stamelos,et al.  Research state of the art on GoF design patterns: A mapping study , 2013, J. Syst. Softw..

[13]  Mesut Ayata,et al.  EFFECT OF SOME SOFTWARE DESIGN PATTERNS ON REAL TIME SOFTWARE PERFORMANCE , 2010 .

[14]  Nadia Bouassida,et al.  Structural and Behavioral Detection of Design Patterns , 2009, FGIT-ASEA.

[15]  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).

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

[17]  Ralf Reissing The Impact of Pattern Use on Design Quality , 2001 .

[18]  Francesca Arcelli Fontana,et al.  Metrics-based detection of micro patterns , 2010, WETSoM '10.

[19]  정인기,et al.  [서평]「Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design」 , 1998 .

[20]  Paul Van Dooren,et al.  A measure of similarity between graph vertices , 2004 .

[21]  Claudia Raibulet,et al.  JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection , 2009, ENASE.

[22]  Brian Huston,et al.  The effects of design pattern application on metric scores , 2001, J. Syst. Softw..

[23]  K. Ushijima,et al.  Redesigning of an existing software using design patterns , 2000, Proceedings International Symposium on Principles of Software Evolution.

[24]  Norihiro Sakamoto,et al.  Evaluation and Analysis of Applying Design Patterns , 1999 .

[25]  Eunseok Lee,et al.  A Design Pattern Detection Technique that Aids Reverse Engineering , 2008 .

[26]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[27]  T. Vernazza,et al.  Defining metrics for software components , 2002 .

[28]  M.M.A. Hashem,et al.  On use of design patterns in empirical assessment of software design quality , 2008, 2008 International Conference on Computer and Communication Engineering.

[29]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

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