An approach to precisely specifying the problem domain of design patterns

The problem domain of a design pattern describes the problem context in which the pattern can be applied. In general, determining the applicability of a pattern to a particular problem heavily relies on the knowledge and experience the developer has with the pattern. This significantly limits the use of patterns. To address this issue, we propose an approach for rigorously specifying the problem domain of patterns. This approach systematically guides one to develop rigorous specifications of a pattern's problem domain using a precise notation. The resulting specifications can be used to develop tool support for automatic evaluation of pattern applicability. We describe the approach using the Visitor pattern, and show how the resulting specification can be used to evaluate pattern applicability for a particular problem model. We also demonstrate tool support for the approach.

[1]  Sudipto Ghosh,et al.  Using Roles to Characterize Model Families , 2003 .

[2]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[3]  Charles Ashbacher,et al.  The Object Constraint Language Second Edition, Getting Your Models Ready for MDA, by Jos Warmer and Anneke Kleppe. , 2003 .

[4]  Dae-Kyoo Kim,et al.  The Role-Based Metamodeling Language for Specifying Design Patterns , 2007 .

[5]  Wuwei Shen,et al.  Using Abstract State Machines to Support UML Model Instantiation Checking , 2005, IASTED Conf. on Software Engineering.

[6]  Bruce Eckel Thinking in Java , 1998 .

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

[8]  Robert B. France,et al.  A Metamodeling Approach to Pattern-Based Model Refactoring , 2003, IEEE Softw..

[9]  Dae-Kyoo Kim Evaluating conformance of UML models to design patterns , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[10]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[11]  Linda Rising,et al.  Patterns for system testing , 1997 .

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

[13]  Mark Grand Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML , 2002 .

[14]  Robert B. France,et al.  Using Role-Based Modeling Language (RBML) to characterize model families , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[15]  Yann-Gaël Guéhéneuc,et al.  Meta-modeling Design Patterns: application to pattern detection and code synthesis , 2001 .

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

[17]  Martin Gogolla,et al.  Digging into the Visitor Pattern , 2004, SEKE.

[18]  Dae-Kyoo Kim,et al.  A Pattern-Based Technique for Developing UML Models of Access Control Systems , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[19]  Jon Whittle,et al.  Generating UML models from domain patterns , 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05).

[20]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[21]  Robert B. France,et al.  A UML-based language for specifying domain-specific patterns , 2004, J. Vis. Lang. Comput..

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

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

[24]  Helen M. Edwards,et al.  Problem frames: analyzing and structuring software development problems , 2002, Softw. Test. Verification Reliab..

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

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

[27]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[28]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[29]  Jonathan Knudsen,et al.  Java 2D Graphics , 1999 .

[30]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

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

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

[33]  Mark Grand,et al.  Patterns in Java, Volume 1, A Catalog of Reusable Design Patterns Illustrated with UML , 1998 .

[34]  Alain Wegmann,et al.  Practical Foundations of Business and System Specifications , 2003 .

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

[36]  Dae-Kyoo Kim,et al.  A meta-modeling approach to specifying patterns , 2004 .