Actions

Difference between revisions of "Architectural Style"

m (The LinkTitles extension automatically added links to existing pages (https://github.com/bovender/LinkTitles).)
Line 1: Line 1:
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")<ref>What is Architectural Style [https://msdn.microsoft.com/en-us/library/ee658117.aspx MSDN]</ref>
+
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")<ref>What is Architectural Style [https://msdn.microsoft.com/en-us/library/ee658117.aspx MSDN]</ref>
  
  
Line 15: Line 15:
  
 
'''Benefits of Architectural Styles'''<ref>A Quick Look at Architectural Styles and Patterns [https://www.infoq.com/news/2009/02/Architectural-Styles-Patterns InfoQ]</ref><br />
 
'''Benefits of Architectural Styles'''<ref>A Quick Look at Architectural Styles and Patterns [https://www.infoq.com/news/2009/02/Architectural-Styles-Patterns InfoQ]</ref><br />
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.
+
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:
 
According to Architectural Styles CS 377 Introduction to Software Engineering:
 
*Design Reuse.  Well-understood solutions applied to new problems.
 
*Design Reuse.  Well-understood solutions applied to new problems.
 
*Code reuse.  Shared implementations of invariant aspects of a style.
 
*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.
+
*Understandability of [[system]] organization.  A phrase such as ‘client-server” conveys a lot of information.
*Interoperability.  Supported by style standardization.
+
*[[Interoperability]].  Supported by style standardization.
 
*Style-specific analysis.  Enabled by the constrained design space.
 
*Style-specific analysis.  Enabled by the constrained design space.
 
*Visualizations.  Style-specific descriptions matching engineer’s mental models.
 
*Visualizations.  Style-specific descriptions matching engineer’s mental models.
Line 46: Line 46:
  
 
===Further Reading===
 
===Further Reading===
*Software Architecture Styles [https://de.slideshare.net/henry.muccini/software-architecture-styles Henry Muccini]
+
*[[Software Architecture]] Styles [https://de.slideshare.net/henry.muccini/software-architecture-styles Henry Muccini]
 
*Software Architecture - Architectural Styles [https://www.win.tue.nl/~aserebre/2IW80/2013-2014/A3%20-%20Arch%20Styles.pdf Alexander Serebrenik, Technische Universiteit Eindhoven]
 
*Software Architecture - Architectural Styles [https://www.win.tue.nl/~aserebre/2IW80/2013-2014/A3%20-%20Arch%20Styles.pdf Alexander Serebrenik, Technische Universiteit Eindhoven]
 
*Architectural Styles. Software Architecture: Foundations, Theory, and Practice [www.ics.uci.edu/~andre/informatics221f2013/lecture5.ppt]
 
*Architectural Styles. Software Architecture: Foundations, Theory, and Practice [www.ics.uci.edu/~andre/informatics221f2013/lecture5.ppt]

Revision as of 13:50, 6 February 2021

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:

Architectural Style
source: InfoQ


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

Architectural Style 1
source: InfoQ


Benefits of Architectural Styles[2]
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 Risk
Architectural Pattern
Architectural Principles
Architecture
Architecture Description Language (ADL)
Architecture Development Method (ADM)
Service Oriented Architecture (SOA)
Software Architecture
The Open Group Architecture Framework (TOGAF)
Architecture-Driven Modernization
Design Pattern
Enterprise Architecture


References

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


Further Reading