Systematic pattern selection using pattern language grammars and design space analysis

Software patterns provide reusable solutions to recurring design problems in a particular context. The software architect or designer must find the relevant patterns and pattern languages that need to be considered, and select the appropriate patterns, as well as the best order to apply them. If the patterns and pattern languages are written by multiple pattern authors, it might be necessary to identify interdependencies and overlaps between these patterns and pattern languages first. Out of the possible multitude of patterns and pattern combinations that might provide a solution to a particular design problem, one fitting solution must be selected. This can only be mastered with a sufficient expertise for both the relevant patterns and the domain in which they are applied. To remedy these issues we provide an approach to support the selection of patterns based on desired quality attributes and systematic design decisions based on patterns. We propose to formalize the pattern relationships in a pattern language grammar and to annotate the grammar with effects on quality goals. In a second step, complex design decisions are analyzed further using the design spaces covered by a set of related software patterns. This approach helps to systematically find and categorize the appropriate software patterns—possibly even from different sources. As a case study of our approach, we analyze patterns from a pattern language for distributed object middleware. Copyright © 2006 John Wiley & Sons, Ltd.

[1]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[2]  Bobby Woolf,et al.  Enterprise Integration Patterns , 2003 .

[3]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

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

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

[6]  Axel van Lamsweerde,et al.  Goal-Oriented Requirements Engineering: A Guided Tour , 2001, RE.

[7]  Gustaf Neumann,et al.  Pattern-Based Design and Implementation of an XML and RDF Parser and Interpreter: A Case Study , 2002, ECOOP.

[8]  Uwe Zdun Tailorable language for behavioral composition and configuration of software components , 2006, Comput. Lang. Syst. Struct..

[9]  Jintae Lee,et al.  What's in design rationale? , 1991 .

[10]  Markus Völter,et al.  Server Component Patterns - component infrastructures illustrated with EJB , 2002, Wiley series in software design patterns.

[11]  Douglas C. Schmidt,et al.  Software patterns , 1996, CACM.

[12]  Uwe Zdun,et al.  Using split objects for maintenance and reengineering tasks , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

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

[14]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[15]  Gregory D. Abowd,et al.  Human-Computer Interaction. Second Edition. , 1998 .

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

[17]  Richard M. Young,et al.  Options and Criteria: Elements of design space analysis , 1991 .

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

[19]  Prashant Jain,et al.  Pattern Oriented Software Architecture: Patterns for Resource Management , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[20]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[21]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

[22]  M. Fowler Analysis patterns: reusable objects models , 1996 .

[23]  Barbara A. Kitchenham,et al.  The use and usefulness of the ISO/IEC 9126 quality standard , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[24]  Paul Dyson,et al.  State patterns , 1997 .

[25]  James Coplien,et al.  Sequences as a basis for pattern language composition , 2005, Sci. Comput. Program..

[26]  Klaus Pohl,et al.  Domain-Specific Runtime Variability in Product Line Architectures , 2002, OOIS.

[27]  Uwe Zdun,et al.  Pattern-Based Design of an Asynchronous Invocation Framework for Web Services , 2004, Int. J. Web Serv. Res..

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

[29]  Uwe Zdun,et al.  Patterns of Tracing Software Structures and Dependencies , 2003, EuroPLoP.

[30]  Gustaf Neumann,et al.  High-level design and architecture of an HTTP-based infrastructure for web applications , 2000, World Wide Web.

[31]  Jan Bosch,et al.  Design Patterns as Language Constructs , 1998, J. Object Oriented Program..

[32]  Douglas C. Schmidt,et al.  Patterns, frameworks, and middleware: their synergistic relationships , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[33]  Michael Kirchner,et al.  面向模式的软件体系结构. 卷3, 设计系列 = Pattern-oriented software architecture. Volume 3, Patterns for resource management , 2004 .

[34]  Martin Becker,et al.  Mapping requirements to reusable components using Design Spaces , 2000, Proceedings Fourth International Conference on Requirements Engineering. ICRE 2000. (Cat. No.98TB100219).

[35]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[36]  Christopher Alexander The Nature of Order , 2005 .

[37]  Paulo César Masiero,et al.  Finding Frameworks Hot Spots in Pattern Languages , 2004, J. Object Technol..

[38]  Gustaf Neumann,et al.  Filters as a Language Support for Design Patterns in Object-Oriented Scripting Languages , 1999, COOTS.

[39]  Uwe Zdun Loosely Coupled Web Services in Remote Object Federations , 2004, ICWE.

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

[41]  Hans de Bruin,et al.  Documenting and Analyzing a Context-Sensitive Design Space , 2002, WICSA.

[42]  Uwe Zdun,et al.  Piecemeal legacy migrating with an architectural pattern language: a case study , 2002, J. Softw. Maintenance Res. Pract..

[43]  Uwe Zdun,et al.  Design and Implementation of an Asynchronous Invocation Framework for Web Services , 2003, ICWS-Europe.

[44]  Kevlin Henney Context Encapsulation - Three Stories, a Language, and Some Sequences , 2005, EuroPLoP.

[45]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[46]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[47]  Nenad Medvidovic,et al.  Composing architectural styles from architectural primitives , 2003, ESEC/FSE-11.

[48]  Uwe Zdun,et al.  Remoting Patterns , 2004, IEEE Internet Comput..

[49]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[50]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[51]  James Coplien,et al.  Symmetry Breaking in Software Patterns , 2000, GCSE.

[52]  Allan MacLean,et al.  Design space analysis and use representations , 1995 .

[53]  Uwe Zdun,et al.  Pattern language for the design of aspect languages and aspect composition frameworks , 2004, IEE Proc. Softw..

[54]  Neelam Soundarajan,et al.  Responsibilities and rewards: specifying design patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[55]  Uwe Zdun,et al.  Some Patterns of Component and Language Integration , 2004, EuroPLoP.

[56]  Uwe Zdun,et al.  Designing runtime variation points in product line architectures: three cases , 2004, Sci. Comput. Program..