Finding the pattern you need: the design pattern intent ontology

Since the seminal book by the Gang of Four, design patterns have proven an important tool in software development. Over time, more and more patterns have been discovered and developed. The sheer amount of patterns available makes it hard to find patterns useful for solving a specific design problem. Hence, tools supporting searching and finding design patterns appropriate to a certain problem are required. To develop such tooling, design patterns must be described formally such that they can be queryed by the problem to be solved. Current approaches to formalising design patterns focus on the solution structure of the pattern rather than on the problems solved. In this paper, we present a formalisation of the intent of the 23 patterns from the Gang-of-Four book. Based on this formalisation we have developed a Design Pattern Wizard that proposes applicable design patterns based on a description of a design problem.

[1]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[2]  Walter F. Tichy A catalogue of general-purpose software design patterns , 1997, Proceedings of TOOLS USA 97. International Conference on Technology of Object Oriented Systems and Languages.

[3]  Daniel Gross,et al.  From Non-Functional Requirements to Design through Patterns , 2001, Requirements Engineering.

[4]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[5]  Scott Henninger,et al.  An Ontology-Based Metamodel for Software Patterns , 2006, SEKE.

[6]  Robert Stevens,et al.  The Manchester OWL Syntax , 2006, OWLED.

[7]  John Crupi,et al.  Core J2EE Patterns: Best Practices and Design Strategies , 2001 .

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

[9]  N. F. Noy,et al.  Ontology Development 101: A Guide to Creating Your First Ontology , 2001 .

[10]  Thomas R. Gruber,et al.  A translation approach to portable ontology specifications , 1993, Knowl. Acquis..

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

[12]  Paloma Díaz,et al.  Formalization of Web Design Patterns Using Ontologies , 2003, AWIC.

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

[14]  Adriana Pereira de Medeiros,et al.  A Design Rationale Representation for Model-Based Designs in Software Engineering , 2005, CAiSE Short Paper Proceedings.

[15]  L. J. Johnston,et al.  Principles for a usability-oriented pattern language , 1998, Proceedings 1998 Australasian Computer Human Interaction Conference. OzCHI'98 (Cat. No.98EX234).

[16]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[17]  Murray Silverstein,et al.  A Pattern Language , 1977 .

[18]  Jens Dietrich,et al.  A formal description of design patterns using OWL , 2005, 2005 Australian Software Engineering Conference.

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

[20]  Deborah L. McGuinness,et al.  Owl web ontology language guide , 2003 .