Tool Support for Design Pattern Recognition at Model Level

Given the rapid rise of model-driven software development methodologies, it is highly desirable that tools be developed to support the use of design patterns in this context. This paper presents such a tool, called LAMBDES-DP, with UML diagrams as the software design models. Its theoretical foundation is a descriptive semantics of UML in first order logic, and the design patterns are formally specified in the same language. The tool uses the LAMBDES system to translate the UML diagrams into their descriptive semantics and invokes the theorem prover SPASS to decide whether the design conforms to a pattern. Our experiments show that our tool has significantly lower rates of false positive and false negative errors compared with existing tools.

[1]  Stuart Kent,et al.  Precise Visual Specification of Design Patterns , 1998, ECOOP.

[2]  Amnon H. Eden,et al.  A Theory of Object-Oriented Design , 2002, Inf. Syst. Frontiers.

[3]  Jean-Marc Jézéquel,et al.  Precise Modeling of Design Patterns , 2000, UML.

[4]  S. J. Goldsack,et al.  Formalising design patterns , 1996, FME 1996.

[5]  Toufik Taibi,et al.  Formalising design patterns composition , 2006, IEE Proc. Softw..

[6]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[7]  Dae-Kyoo Kim,et al.  Inference of design pattern instances in UML models via logic programming , 2006, 11th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'06).

[8]  John Grundy,et al.  Design pattern modelling and instantiation using DPML , 2002 .

[9]  Dae-Kyoo Kim,et al.  Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies , 2008, Software Quality Journal.

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

[11]  Jing Dong,et al.  Architecture and Design Pattern Discovery Techniques - A Review , 2007, Software Engineering Research and Practice.

[12]  Dirk Beyer,et al.  Efficient relational calculation for software analysis , 2005, IEEE Transactions on Software Engineering.

[13]  Hong Zhu,et al.  A Formal Descriptive Semantics of UML , 2008, ICFEM.

[14]  Hong Zhu,et al.  Specifying Behavioural Features of Design Patterns in First Order Logic , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

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

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

[17]  Uwe Zdun,et al.  Modeling architectural patterns using architectural primitives , 2005, OOPSLA '05.

[18]  Ian Bayley,et al.  Formalising Design Patterns in Predicate Logic , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[19]  Hong Zhu,et al.  On the Composition of Design Patterns , 2008, 2008 The Eighth International Conference on Quality Software.

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

[21]  S. R. Kodituwakku,et al.  Pattern categories: a mathematical approach for organizing design patterns , 2001 .

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

[23]  Shensheng Zhang,et al.  A practical pattern recovery approach based on both structural and behavioral analysis , 2005, J. Syst. Softw..

[24]  Robert B. France,et al.  A role-based metamodeling approach to specifying design patterns , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[25]  Dae-Kyoo Kim,et al.  An approach to evaluating structural pattern conformance of UML models , 2007, SAC '07.

[26]  Amnon H. Eden,et al.  Objectives , 1975 .

[27]  Daniel Pak-Kong Lun,et al.  Precise modeling of design patterns in UML , 2004, Proceedings. 26th International Conference on Software Engineering.

[28]  Alan Bundy,et al.  Automatic verification of design patterns in Java , 2005, ASE.

[29]  Dae-Kyoo Kim,et al.  Inference of design pattern instances in UML models via logic programming , 2006 .

[30]  Jim Welsh,et al.  Towards pattern-based design recovery , 2002, ICSE '02.

[31]  Marek Vokác Defect frequency and design patterns: an empirical study of industrial code , 2004, IEEE Transactions on Software Engineering.