Supporting Flexible Reification of Design Patterns

Design patterns have been widely accepted as a solution for solving recurring design problems in object-oriented development. Reifications of design patterns can vary from one development environment to another, and use of inappropriate reifications may impose a serious threat to quality of a software system. In this paper, we propose an approach to applying the profile mechanism in reifying a design pattern. Central to this approach are stereotypes that are defined in a profile and used to represent different roles in a design pattern. Developers can apply these stereotypes in their application model when design patterns are used. The advantage of the profile mechanism is that developers can 1) define their own reification of a pattern in a profile based on a specific software system, and 2) find errors in an application model via the conformance checking of the model against the profile. More importantly, we apply our existing tool called ICER, which is based on the profile mechanism, to provide automatic checking for the application of design patterns. To illustrate the advantage of the profile mechanism supported by ICER, we show the different reifications for the Observer pattern. Last, experimental results show that ICER does not suffer from the scalability problem as the size of an application model increases.

[1]  Long Quan,et al.  Formal Use of Design Patterns and Refactoring , 2008, ISoLA.

[2]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[3]  Kun Wang,et al.  An Efficient and Scalable Approach to Correct Class Model Refinement , 2009, IEEE Transactions on Software Engineering.

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

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

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

[7]  Liang Zhao,et al.  Graph Transformations for Object-Oriented Refinement , 2007 .

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

[9]  Zhenbang Chen,et al.  Refinement and verification in component-based model-driven design , 2009, Sci. Comput. Program..

[10]  Bernhard Rumpe,et al.  The UML profile for framework architectures , 2002, Addison Wesley object technology series.

[11]  Jing Dong,et al.  Extending UML to Visualize Design Patterns In Class Diagrams , 2003, SEKE.

[12]  Rolf Adams,et al.  Representing Design Patterns and Frameworks in UML - Towards a Comprehensive Approach , 2002, J. Object Technol..

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

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

[15]  LiuZhiming,et al.  Refinement and verification in component-based model-driven design , 2009 .