A rule‐based procedure for automatic recognition of design patterns in UML diagrams

In the present work, 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 XML Metadata Interchange (XMI) coded representation of UML class diagrams. The procedure exploits a semantic representation of the patterns to be recognized, based on an existing Web Ontology Language (OWL), known as object design ontology layer (ODOL), defined by the University of Massey (New Zealand), which has been 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, has 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. Copyright © 2015 John Wiley & Sons, Ltd.

[1]  Gang Xue,et al.  Using OWL-S for Formalizing Workflow Patterns , .

[2]  Christoph Weidenbach,et al.  SPASS version 2.0 , 2002 .

[3]  Rajkumar Buyya,et al.  Towards autonomic detection of SLA violations in Cloud infrastructures , 2012, Future Gener. Comput. Syst..

[4]  Yann-Gaël Guéhéneuc,et al.  Efficient identification of design patterns with bit-vector algorithm , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

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

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

[7]  V. S. Costa,et al.  Theory and Practice of Logic Programming , 2010 .

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

[9]  Toufik Taibi Design Pattern Formalization Techniques , 2007 .

[10]  Ellen Agerbo,et al.  How to preserve the benefits of design patterns , 1998, OOPSLA '98.

[11]  Georgios C. Anagnostopoulos,et al.  Knowledge-Based Intelligent Information and Engineering Systems , 2003, Lecture Notes in Computer Science.

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

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

[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]  Dae-Kyoo Kim,et al.  Design pattern based model transformation with tool support , 2015, Softw. Pract. Exp..

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

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

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

[19]  Giuseppina Cretella,et al.  Methodologies for Cloud Portability and Interoperability , 2015 .

[20]  O. Rana,et al.  SLA‐Based Resource Management and Allocation , 2009 .

[21]  Mohsen Kahani,et al.  A Semantic Web based approach for design pattern detection from source code , 2012, 2012 2nd International eConference on Computer and Knowledge Engineering (ICCKE).

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

[23]  Njeru Mwendi Edwin Software Frameworks, Architectural and Design Patterns , 2014 .

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

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

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

[27]  Danko Basch,et al.  Ontology-Based Design Pattern Recognition , 2008, KES.

[28]  Rajkumar Buyya,et al.  A dependency‐aware ontology‐based approach for deploying service level agreement monitoring services in Cloud , 2012, Softw. Pract. Exp..

[29]  Salvatore Venticinque,et al.  Agents Based Monitoring of Heterogeneous Cloud Infrastructures , 2013, 2013 IEEE 10th International Conference on Ubiquitous Intelligence and Computing and 2013 IEEE 10th International Conference on Autonomic and Trusted Computing.

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

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

[32]  Giuseppina Cretella,et al.  A semantic engine for porting applications to the cloud and among clouds , 2015, Softw. Pract. Exp..

[33]  Leo Obrst,et al.  Translating OWL and semantic web rules into prolog: Moving toward description logic programs , 2007, Theory and Practice of Logic Programming.

[34]  Mohammad Alshayeb,et al.  Towards design pattern definition language , 2013, Softw. Pract. Exp..

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

[36]  Wil M.P. van der Aalst,et al.  YAWL: yet another workflow language , 2005, Inf. Syst..

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

[38]  W. M. P. V. D. Aalsta,et al.  YAWL : yet another workflow language , 2015 .

[39]  Hong Zhu,et al.  Tool Support for Design Pattern Recognition at Model Level , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

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

[41]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .