Actions

Difference between revisions of "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.)
 
(3 intermediate revisions by the same user not shown)
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 architectural 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>[https://msdn.microsoft.com/en-us/library/ee658117.aspx What is Architectural Style]</ref>
  
  
App Arch Guide 2.0 (Microsoft patterns&practices) list a number of architectural styles:
+
App Arch Guide 2.0 (Microsoft patterns&practices) lists a number of architectural styles:
  
 
[[File:Architectural style.png|400px|Architectural Style]]<br />
 
[[File:Architectural style.png|400px|Architectural Style]]<br />
source: [https://www.infoq.com/news/2009/02/Architectural-Styles-Patterns InfoQ]
+
source: InfoQ
  
  
Each of those architectural styles are applied to specific areas of interest:
+
Each of those architectural styles is applied to specific areas of interest:
  
 
[[File:Architectural_style1.png|400px|Architectural Style 1]]<br />
 
[[File:Architectural_style1.png|400px|Architectural Style 1]]<br />
source: [https://www.infoq.com/news/2009/02/Architectural-Styles-Patterns InfoQ]
+
source: InfoQ
  
  
'''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>[https://www.infoq.com/news/2009/02/Architectural-Styles-Patterns A Quick Look at Architectural Styles and Patterns]</ref> ==
 
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:
Line 22: Line 22:
 
*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 the engineer’s mental models.
  
  
===See Also===
+
== See Also ==
[[Architectural_Risk|Architectural Risk]]<br />
+
[[Client Server Architecture]]<br />
[[Architectural_Pattern|Architectural Pattern]]<br />
+
[[Architectural Risk]]<br />
[[Architectural_Principles|Architectural Principles]]<br />
+
[[Architectural Pattern]]<br />
[[Architecture|Architecture]]<br />
+
[[Architectural Principles]]<br />
[[Architecture_Description_Language_(ADL)|Architecture Description Language (ADL)]]<br />
+
[[Architecture]]<br />
[[Architecture_Development_Method_(ADM)|Architecture Development Method (ADM)]]<br />
+
[[Architecture Description Language (ADL)]]<br />
[[Service_Oriented_Architecture_(SOA)|Service Oriented Architecture (SOA)]]<br />
+
[[Architecture Development Method (ADM)]]<br />
[[Software_Architecture|Software Architecture]]<br />
+
[[Service Oriented Architecture (SOA)]]<br />
[[The_Open_Group_Architecture_Framework_(TOGAF)|The Open Group Architecture Framework (TOGAF)]]<br />
+
[[Software Architecture]]<br />
[[Architecture_Driven_Modernization|Architecture-Driven Modernization]]<br />
+
[[The Open Group Architecture Framework (TOGAF)]]<br />
[[Design_Pattern|Design Pattern]]<br />
+
[[Architecture Driven Modernization]]<br />
[[Enterprise_Architecture|Enterprise Architecture]]
+
[[Design Pattern]]<br />
 +
[[Enterprise Architecture]]
  
  
 
+
== References ==
===References===
 
 
<references />
 
<references />
  
  
 
===Further Reading===
 
===Further Reading===
*Software Architecture Styles [https://de.slideshare.net/henry.muccini/software-architecture-styles Henry Muccini]
+
*[https://de.slideshare.net/henry.muccini/software-architecture-styles Software Architecture Styles]
*Software Architecture - Architectural Styles [https://www.win.tue.nl/~aserebre/2IW80/2013-2014/A3%20-%20Arch%20Styles.pdf Alexander Serebrenik, Technische Universiteit Eindhoven]
+
*[https://www.win.tue.nl/~aserebre/2IW80/2013-2014/A3%20-%20Arch%20Styles.pdf Software Architecture - Architectural Styles]
*Architectural Styles. Software Architecture: Foundations, Theory, and Practice [www.ics.uci.edu/~andre/informatics221f2013/lecture5.ppt]
+
 
 +
 
 +
__NOTOC__

Latest revision as of 22:37, 2 December 2022

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 architectural 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) lists a number of architectural styles:

Architectural Style
source: InfoQ


Each of those architectural styles is 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 the engineer’s mental models.


See Also

Client Server Architecture
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


Further Reading