Des signatures numériques pour améliorer la recherche structurelle de patrons

Design patterns describe good solutions to common and recurring problems in program design. The solutions are design motifs, which software engineers introduce in the architecture of their programs. It is important to identify the design motifs used in a program architecture to understand solved design problems and to make informed changes to the program, during maintenance. The identification of micro-architectures similar to design motifs is difficult because of the large search space, i.e., the many possible combinations of classes. We propose an experimental study of classes playing roles in design motifs using metrics and a machine-learning algorithm to associate numerical signatures with design motifs roles. A numerical signature is a set of metric values characterising classes playing a given role. We devise numerical signatures experimentally using a repository of micro-architectures similar to design motifs. We show that numerical signatures help in reducing the search space of micro-architectures similar to design motifs efficiently using the Composite design motif and the JHOTDRAW framework.

[1]  Wilhelm Schäfer,et al.  Generic fuzzy reasoning nets as a basis for reverse engineering relational database applications , 1997, ESEC '97/FSE-5.

[2]  Narendra Jussien,et al.  The PaLM system: explanation-based constraint programming , 2000 .

[3]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[4]  M. Stone Cross‐Validatory Choice and Assessment of Statistical Predictions , 1976 .

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

[6]  Ian H. Witten,et al.  Data mining: practical machine learning tools and techniques with Java implementations , 2002, SGMD.

[7]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

[9]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[10]  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.

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

[12]  David Eppstein,et al.  The Polyhedral Approach to the Maximum Planar Subgraph Problem: New Chances for Related Problems , 1994, GD.

[13]  Alex Quilici,et al.  Applying Plan Recognition Algorithms To Program Understanding , 2004, Automated Software Engineering.

[14]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Yann-Gaël Guéhéneuc,et al.  Instantiating and detecting design patterns: putting bits and pieces together , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[16]  Yann-Gaël Guéhéneuc Un cadre pour la traçabilité des motifs de conception , 2003 .