Evaluation of an Automated Multi-phase Approach for Patterns Discovery

Design patterns capitalize the knowledge of expert designers and offer reuse that provides for higher design quality and overall faster development. To attain these advantages, a designer must, however, overcome the difficulties in understanding design patterns and determining those appropriate for his/her particular application. On the other hand, one way to benefit from design patterns is to assist inexperienced designers in pattern detection during the design elaboration. Such detection should tolerate variations between the design and the pattern since the exact instantiation of a pattern is infrequent in a design. However, not all variations of a pattern are tolerated. In particular, some structural variations may result in non-optimal instantiations where the requirements are respected but the structure is different; such variations are called spoiled patterns and should also be detected and transformed into acceptable pattern instantiations. This paper first presents an improvement of our design/spoiled pattern detection approach, named MAPeD (Multi-phase Approach for Pattern Discovery). The latter uses an XML information retrieval technique to identify design/spoiled pattern occurrences in a design using, first, static and semantic information and, secondly, dynamic information. This multi-phase detection approach tolerates structural differences between the examined design and the identified design pattern. Furthermore, thanks to the matching information it collects, our identification technique can offer assistance for the improvement of a design. In its second contribution, this paper evaluates MAPeD by comparing its recall and precision rates for five open source systems: JHotDraw, JUnit, JRefactory, MapperXML, QuickUML. The latter were used by other approaches in experimental evaluations. Our evaluation shows that our design pattern identification approach has an average improvement of 9.98% in terms of precision over the best known approach.

[1]  Michele Risi,et al.  Design pattern recovery through visual language parsing and source code analysis , 2009, J. Syst. Softw..

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

[3]  Nadia Bouassida,et al.  Pattern and spoiled pattern detection through an information retrieval approach , 2010 .

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

[5]  Alan Bundy,et al.  Automatic verification of Java design patterns , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[6]  Nadia Bouassida,et al.  A New Approach for Pattern Problem Detection , 2010, CAiSE.

[7]  Yann-Gaël Guéhéneuc,et al.  A Domain Analysis to Specify Design Defects and Generate Detection Algorithms , 2008, FASE.

[8]  Francesca Arcelli Fontana,et al.  A tool for design pattern detection and software architecture reconstruction , 2011, Inf. Sci..

[9]  Welf Löwe,et al.  Generating design pattern detectors from pattern specifications , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[10]  Giuliano Antoniol,et al.  Design pattern recovery in object-oriented software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[11]  Kyle G. Brown,et al.  Design reverse-engineering and automated design-pattern detection in Smalltalk , 1996 .

[12]  Oliver Ciupke,et al.  Automatic detection of design problems in object-oriented reengineering , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

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

[14]  Jing Dong,et al.  A Review of Design Pattern Mining Techniques , 2009, Int. J. Softw. Eng. Knowl. Eng..

[15]  Christian Percebois,et al.  Bad smells in design and design patterns , 2009 .

[16]  Günter Kniesel,et al.  Standing on the shoulders of giants - A data fusion approach to design pattern detection , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[17]  Francesca Arcelli Fontana,et al.  A Benchmark Platform for Design Pattern Detection , 2010 .

[18]  Michael Weiss,et al.  Facilitating Pattern Repository Access with the Implicit Culture Framework , 2007 .

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

[20]  Houari A. Sahraoui,et al.  Détection d'anomalies utilisant un langage de règle de qualité , 2006, LMO.

[21]  Yongtao Sun,et al.  Design pattern detection by template matching , 2008, SAC '08.

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

[23]  Hafedh Mili,et al.  Detecting Patterns of Poor Design Solutions Using Constraint Propagation , 2008, MoDELS.

[24]  LuciaAndrea De,et al.  Design pattern recovery through visual language parsing and source code analysis , 2009 .

[25]  Marco Meijers,et al.  Tool Support for Object-Oriented Patterns , 1997, ECOOP.

[26]  Ronald A. Olsson,et al.  Reverse Engineering of Design Patterns from Java Source Code , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[27]  Yongtao Sun,et al.  A Matrix-Based Approach to Recovering Design Patterns , 2009, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[28]  Federico Bergenti IMPROVING UML DESIGNS USING AUTOMATIC DESIGN PATTERN DETECTION , 2001 .

[29]  Yann-Gaël Guéhéneuc,et al.  Un métamodèle pour coupler application et détection des design patterns , 2002, Obj. Logiciel Base données Réseaux.

[30]  Ricardo Baeza-Yates,et al.  Information Retrieval: Data Structures and Algorithms , 1992 .

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

[32]  Paul Van Dooren,et al.  A MEASURE OF SIMILARITY BETWEEN GRAPH VERTICES . WITH APPLICATIONS TO SYNONYM EXTRACTION AND WEB SEARCHING , 2002 .