How do architecture patterns and tactics interact? A model and annotation

Software architecture designers inevitably work with both architecture patterns and tactics. Architecture patterns describe the high-level structure and behavior of software systems as the solution to multiple system requirements, whereas tactics are design decisions that improve individual quality attribute concerns. Tactics that are implemented in existing architectures can have significant impact on the architecture patterns in the system. Similarly, tactics that are selected during initial architecture design significantly impact the architecture of the system to be designed: which patterns to use, and how they must be changed to accommodate the tactics. However, little is understood about how patterns and tactics interact. In this paper, we develop a model for the interaction of patterns and tactics that enables software architects to annotate architecture diagrams with information about the tactics used and their impact on the overall structure. This model is based on our in-depth analysis of the types of interactions involved, and we show several examples of how the model can be used to annotate different kinds of architecture diagrams. We illustrate the model and annotation by showing examples taken from real systems, and describe how the annotation was used in architecture reviews. Tactics and patterns are known architectural concepts; this work provides more specific and in-depth understanding of how they interact. Its other key contribution is that it explores the larger problem of understanding the relation between strategic decisions and how they need to be tailored in light of more tactical decisions.

[1]  Paul Clements,et al.  Capturing and Using Rationale for a Software Architecture , 2006 .

[2]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

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

[4]  Eduardo B. Fernández,et al.  The Secure Pipes and Filters Pattern , 2009, 2009 20th International Workshop on Database and Expert Systems Application.

[5]  Uwe Zdun Systematic pattern selection using pattern language grammars and design space analysis , 2007 .

[6]  Neil B. Harrison,et al.  Leveraging Architecture Patterns to Satisfy Quality Attributes , 2007, ECSA.

[7]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[8]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.

[9]  Jan Bosch,et al.  Evaluation of tool support for architectural evolution , 2004 .

[10]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[11]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[12]  Paul Clements,et al.  Recommended Best Industrial Practice for Software Architecture Evaluation. , 1997 .

[13]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[14]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[15]  Uwe Zdun,et al.  Systematic pattern selection using pattern language grammars and design space analysis , 2007, Softw. Pract. Exp..

[16]  Neil B. Harrison,et al.  Pattern-Driven Architectural Partitioning: Balancing Functional and Non-functional Requirements , 2007, 2007 Second International Conference on Digital Telecommunications (ICDT'07).

[17]  Mary Shaw Toward Higher-Level Abstractions for Software Systems , 1990, Data Knowl. Eng..

[18]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern , 2005 .

[19]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[20]  Robert Cloutier,et al.  Applicability of Patterns to Architecting Complex Systems , 2008 .

[21]  Robert L. Nord,et al.  Generalizing a Model of Software Architecture Design from Five Industrial Approaches , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[22]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[23]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[24]  Leonard J. Bass,et al.  Making Practical Use of Quality Attribute Information , 2008, IEEE Software.

[25]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[26]  Phil Bianco Evaluating a Service-Oriented Architecture , 2007 .

[27]  William G. Wood,et al.  A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0 , 2007 .

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

[29]  Neil B. Harrison,et al.  Incorporating fault tolerance tactics in software architecture patterns , 2008, SERENE '08.

[30]  Leonard J. Bass,et al.  Risk Themes Discovered through Architecture Evaluations , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[31]  Neil B. Harrison,et al.  Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[32]  Muhammad Ali Babar,et al.  An industrial case study of architecture conformance , 2008, ESEM '08.

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

[34]  Liam O'Brien,et al.  Quality Attributes and Service-Oriented Architectures , 2005 .

[35]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[36]  Robert J. Allen A formal approach to software architecture , 1997 .

[37]  Leonard J. Bass,et al.  Designing software architectures to achieve quality attribute requirements , 2005, IEE Proc. Softw..

[38]  Jan Bosch,et al.  Evaluation of tool support for architectural evolution , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[39]  Mary Shaw Heterogeneous design idioms for software architecture , 1991, Proceedings of the Sixth International Workshop on Software Specification and Design.

[40]  David M. Weiss,et al.  Architecture reviews: practice and experience , 2005, IEEE Software.

[41]  Uwe Zdun,et al.  Focus Group Report: Capturing Architectural Knowledge with Architectural Patterns , 2006, EuroPLoP.

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