Automatic Recognition of Design Patterns from UML-based Software Documentation

Here we describe a procedure and a prototype implementation for the automatic recognition of Design Patterns from documentation of Software Artefacts' design and implementation, provided in a machine readable form, namely the XMI coded representation of UML diagrams. The procedure exploits a semantic representation of the patterns to be recognized, based on the ODOL ontology defined by the University of Massey (New Zealand) [12], which we have augmented with an OWL-S based representation of the patterns' dynamic behaviour. Both the UML set of diagrams related to the analysed Software Artefacts and the ODOL+OWL-S patterns' representation are automatically scanned and translated into a first order logic representation (namely Prolog). A set of first order logic rules, independent from the specific pattern to be recognized, have been defined to describe the heuristics and features which trigger the recognition, exploiting the Prolog description of the patterns to be recognized and the base of Prolog facts which represents the UML documentation.

[1]  Tommi Mikkonen,et al.  Formalizing design patterns , 1998, Proceedings of the 20th International Conference on Software Engineering.

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

[3]  Stephen D. Huston,et al.  The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming , 2003 .

[4]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[5]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[6]  Ronald A. Olsson,et al.  Reverse Engineering of Design Patterns for High Performance Computing , 2005 .

[7]  Jerry R. Hobbs,et al.  DAML-S: Semantic Markup for Web Services , 2001, SWWS.

[8]  Douglas C. Schmidt,et al.  Active object: an object behavioral pattern for concurrent programming , 1996 .

[9]  Giuseppina Cretella,et al.  Towards a Semantic Engine for Cloud Applications Development , 2012, 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems.

[10]  Dirk Beyer,et al.  CrocoPat: efficient pattern analysis in object-oriented programs , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[11]  Beniamino Di Martino,et al.  Towards a Common Semantic Representation of Design and Cloud Patterns , 2013, IIWAS '13.

[12]  Jens Dietrich,et al.  An Ontology Based Representation of Software Design Patterns , 2007 .

[13]  Giuseppina Cretella,et al.  Semantic and Algorithmic Recognition Support to Porting Software Applications to Cloud , 2012, EternalS@ECAI.

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

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

[16]  Jens Dietrich,et al.  Towards a web of patterns , 2007, J. Web Semant..

[17]  Ian Horrocks,et al.  OWL Web Ontology Language Reference-W3C Recommen-dation , 2004 .

[18]  David Chek Ling Ngo,et al.  Formal Specification of Design Patterns - A Balanced Approach , 2003, J. Object Technol..

[19]  Demis Ballis,et al.  A Rule-based Method to Match Software Patterns Against UML Models , 2008, RULE@RDP.