A question-based design pattern advisement approach

Design patterns are a proven way to build flexible software architectures. But the selection of an appropriate design pattern is a difficult task in practice, particularly for less experienced developers. In this paper, a question based design pattern advisement approach will be proposed. This approach primarily assists developers in identifying and selecting the most suitable design pattern for a given problem. We will also propose certain extensions to the existing Object-Oriented Design Ontology (ODOL). In addition to the advisement procedure, a new design pattern advisement ontology will be defined. We have also developed a tool that supports the proposed ontology and question-based advisement (OQBA) approach. The conducted controlled experiment and two surveys have shown that the proposed approach is beneficial to all software developers, especially to those who have less experience with design patterns.

[1]  Jean-Marc Jézéquel,et al.  Design Patterns Application in UML , 2000, ECOOP.

[2]  Dragos Manolescu,et al.  The Growing Divide in the Patterns World , 2007, IEEE Software.

[3]  John M. Vlissides,et al.  Automatic Code Generation from Design Patterns , 1996, IBM Syst. J..

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

[5]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[6]  Mira Mezini,et al.  Pi: a Pattern Language , 2009, OOPSLA.

[7]  Linda Rising,et al.  The Pattern Almanac 2000 , 2000 .

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

[9]  Carlos José Pereira de Lucena,et al.  Extending UML to Improve the Representation of Design Patterns , 2000 .

[10]  Linda Rising Understanding the Power of Abstraction in Patterns , 2007, IEEE Software.

[11]  Linda Rising,et al.  The Pattern Almanac , 2000 .

[12]  Marian Florin Ursu,et al.  Ontological Representations of Software Patterns , 2004, KES.

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

[14]  Douglas C. Schmidt,et al.  Using design patterns to develop reusable object-oriented communication software , 1995, CACM.

[15]  Ralph E. Johnson,et al.  Organizing Security Patterns , 2007, IEEE Software.

[16]  Nuno Seco,et al.  Selection and Reuse of Software Design Patterns Using CBR and WordNet , 2003, SEKE.

[17]  David Chenho Kung,et al.  An Expert System for Suggesting Design Patterns — A Methodology and a Prototype , 2003 .

[18]  Huajun Chen,et al.  The Semantic Web , 2011, Lecture Notes in Computer Science.