Architectural Style

An architectural style, sometimes called an architectural pattern, is a set of principles — a coarse grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. You can think of architecture styles and patterns as sets of principles that shape an application. Garlan and Shaw define an architectural style as: "a family of systems in terms of a pattern of structural organization. More specifically, an architectural style determines the vocabulary of components and connectors that can be used in instances of that style, together with a set of constraints on how they can be combined. These can include topological constraints on architectural descriptions (e.g., no cycles). Other constraints — say, having to do with execution semantics—might also be part of the style definition.” (David Garlan and Mary Shaw, January 1994, CMU-CS-94-166, see "An Introduction to Software Architecture")1

App Arch Guide 2.0 (Microsoft patterns&practices) list a number of architectural styles:

Image
source: InfoQ

Each of those architectural styles are applied to specific areas of interest:

Image
source: InfoQ

Benefits of Architectural Styles2
Architectural styles provide several benefits. The most important of these benefits is that they provide a common language. Another benefit is that they provide a way to have a conversation that is technology-agnostic. This allows you to facilitate a higher level of conversation that is inclusive of patterns and principles, without getting into the specifics. For example, by using architecture styles, you can talk about client-server versus N-Tier.
According to Architectural Styles CS 377 Introduction to Software Engineering:
  • Design Reuse. Well-understood solutions applied to new problems.
  • Code reuse. Shared implementations of invariant aspects of a style.
  • Understandability of system organization. A phrase such as ‘client-server” conveys a lot of information.
  • Interoperability. Supported by style standardization.
  • Style-specific analysis. Enabled by the constrained design space.
  • Visualizations. Style-specific descriptions matching engineer’s mental models.


See Also»

Architectural Pattern
Architectural Principles
Architectural Risk
Architecture
Architecture Description Language (ADL)
Architecture Development Method (ADM)
Architecture-Driven Modernization
Service Oriented Architecture (SOA)
Software Architecture
The Open Group Architecture Framework (TOGAF)
Design Pattern
Enterprise Architecture


References»

1What is Architectural Style MSDN
2A Quick Look at Architectural Styles and Patterns InfoQ


External References»

Software Architecture Styles Henry Muccini
Software Architecture - Architectural Styles Alexander Serebrenik, Technische Universiteit Eindhoven
Architectural Styles. Software Architecture: Foundations, Theory, and Practice Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy, UCI School of Information and Computer Sciences

Modified on 2018/07/24 10:06 by SuperUser Account  
Tags: Not Tagged

CIO Wiki is a Management Glossary and Encyclopedia for Senior IT Leaders. 

We are building a glossary of IT management terms, and topics. We invite you to participate. Learn. Share. Network. CIO Portal