Software Architecture Style

Source: Internet
Author: User

The software architecture proposed in Marshaw and Davidgarlan is defined as an architecture that can be used to describe the control structure and the overall organization of a software system, which can represent the framework structure of a system. Used to describe the relationships and interfaces between the parts from a higher level.

Software architecture is a high-level abstract description of the system. Mainly reflects the topological attributes, intentionally ignoring the details;

Software architecture is composed of components and components, and the component has its own system structure.

The description of the component has 3 Aspects: computational function, structural characteristics and other characteristics.


It can be seen from the definition of software architecture that the software architecture mainly involves the connection and constraint between components and components, and the three aspects of the system architecture formed by the interaction between the components.

By using the software architecture, we can effectively analyze user requirements, facilitate system modification and reduce the risk of program construction.

The core question of software framework design is: Can we reuse the already formed architecture scheme. Thus, the concept of software architecture style is produced. Software architecture styles include artifacts, connectors, and a set of constraint constraints that combine them, such as topological constraints and semantic constraints.

Architecture Style Classification:

Data flow style: Batch processing sequence, pipeline / filter;

Warehouse Style: Database system, super-text system, blackboard system;

Independent component style: Process communication, event system;

Call / return style: Main program / subroutine, object oriented style, hierarchical structure;

Virtual organization: Interpreter, rule-based system.

Pipe / filter Style

The pipeline / filter Architecture is a typical data flow software architecture style. Mainly includes filter and pipeline two kinds of elements. In this architecture, each module has a set of inputs and a set of outputs. Each part reads data from the input interface, which is processed to place the resulting data in the output interface, which is called a filter.


The connector of this model transmits the output of one filter to the input of another filter, which is called a pipe.

in the pipeline / in the filter style, the filters must be independent entities that are not shared with each other. Each filter does not recognize its data flow upstream and downstream of the filter's identity, then it needs to be in the filter input and output port of the pipeline must be to ensure that the input data and output data type of convergence of correctness.


The traditional compiler is another notable example of the plumbing / filter Architecture style.

Object Oriented Architecture style

Objects are interactive through calls to functions and procedures, object-oriented architecture

An object hides its representation from other objects, so it can change the representation of an object without affecting other objects;

The object encapsulates the data and operations together, improves the cohesion of the system, reduces the coupling between the modules, and makes the system more easily decomposed into a set of objects which are both interacting and independent;

Inheritance and encapsulation methods provide technical support for object reuse.

Layered architecture Style

Layered architecture style is A representation of the call/return style. Hierarchical style organized into a hierarchical structure, through decomposition, can be divided into a number of independent complex systems, each layer has a high degree of cohesion, and requires each layer for the upper service, and as the lower level of the customer, the higher levels to specific application problems, the lower layer is more general.

In a hierarchical structure, the connectors between the layers are defined by the Protocol of the layer interaction, and the upper and lower layers are one-way call relationships, that is, the upper layer uses the lower-level functions through the interfaces provided by the downlevel, while the lower levels cannot use the upper-level functions.

Cond

Software Architecture Style

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.