Genre defined by Software Architecture

Source: Internet
Author: User

What is architecture? If you ask five different people, you may get five different answers ". Dr. Ivar Jacob, the father of modern software development and one of the creators of the Unified Modeling Language UML, once said. In the article enterprise application architecture model, agile expert Martin Folwler also expressed a similar view: "Many people try to define the architecture, but these definitions are hard to be unified ." The actual situation is true. We can find many different statements about the definition of the software architecture, this chaotic state has brought some trouble to our development activities and technical exchanges. The most typical is that many developers often confuse the Chu architecture, framework, and class library.
If there is anything controversial and no one is dissatisfied with it, there will be factions. For example, Shaolin, Wudang, Emei, and zookeeper factions in martial arts in China. They are similar to the wild animal School in the western painting art, the post-school School, and the abstract School. For software architecture definition, there are also a lot of versions that can be passed through, we can roughly summarize these versions into two major schools: composition School and decision School.
According to the composition School, the software system architecture is used to describe the system as a computer component and the interaction between components. Mary Shaw and David Garlan provide a clearer definition: Software Architecture = {component, connector, constraint )}. Components can be independent programs, such as database servers, but also software units of different granularities such as subsystems, frameworks, modules, and classes. They share the same characteristics and assume certain computing responsibilities. A connector can be a process call, pipe, RPC, or Web Service to indicate the interaction between components. Constraints are generally rules for object connection, or specify the form and conditions for component connection. For example, upper-layer components can require services of lower-layer components, and vice versa; two objects cannot send messages in a standardized manner; Consistency constraints of code replication and migration; and under what conditions such connections are invalid.
Len Bass is a representative of the consortium. According to our past experience, all high-ranking people have their own advantages, and Len Bass is no exception. He not only inherits the consortium viewpoint, but also carries forward it on this basis, added the latest element. According to him, the architecture is equal to multiple structures, and each structure is equal to adding components to interaction and adding external visible attributes. This definition has the highest degree of recognition in our industry. It is also called "structural school ".
The second largest decision-making school holds that the software architecture is a collection of important decision-making aspects of software. A typical example of this statement is the definition of the software architecture in RUP:
The software architecture includes important decisions on the following:
1. software system organization;
2. Select the structural elements of the system and the interfaces between them, as well as the actions embodied when these elements work together;
3. How to combine these elements to gradually form a larger subsystem;
4. the architectural style used to guide the system organization: these elements and their interfaces, collaboration, and combinations.
The software architecture not only focuses on the structure and behavior of the software, but also other features: functionality, performance, scalability, reusability, comprehensibility, aesthetics, and so on.

In fact, these two schools are not in conflict. They only describe the problem from different perspectives: the architecture is used to describe the components of a software system from the perspective of the software itself (also called the software object, how to interact with these components. The decision-making school sets out what the architect needs to make decisions from the perspective of the Architect (also known as the software subject, these decision results constitute the architecture of the software system.

========================================================== ========================
I would like to give you a 4-year-old math question with a correct answer:
A monkey picked 300 bananas and needs to move them home. A maximum of 100 bananas can be moved at a time. The monkey is 100 metres away from home. It needs to eat one banana every 1 meter walk to supplement energy. How many bananas can it move home at most?

Related Article

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.