Software architecture is also called software architecture. It is a group of important elements related to the following elements:
Decision-making: the organization of the software system, which forms the structural elements of the system, the choice and structure of interfaces and their collaborative behavior
Combine elements and behavior elements into a more granular sub-system, and guide this Organization (elements and their links
Interface, collaboration, and combination.
The software architecture describes the overall structure design of the system. For a long time, there have been two basic concepts of the architecture,
One is called composition, and the other is called decision.
Composition: The concept of architecture emphasizes "interaction between computers and components ". For example, in the preliminary design
The display layer and the business layer are two coarse-grained black boxes. When the internal layer also expresses some fine-grained Components
The two black boxes are changed to "gray boxes ". The concept table of interaction now describes the relationship between them.
System, such as how data is read and how functions are called.
Decision-making: Architecture decision-making not only represents the organizational style decisions of system organizations, elements, and subsystems, but also includes
Decision-making of functional requirements, such as the decision on scalability, that represents the gap between logical and business logic changes
And the isolation of third-party toolkit changes, which makes the architecture elastic.
Architecture composition and decision-making are two basic concepts of architecture design. They are not in conflict. In architecture design,
These two concepts are often embodied at the same time to ensure that the architecture meets product requirements. Starting from these two concepts, we naturally propose:
What is the core thinking of software architecture?
First of all, any software system is designed to meet the requirements. Therefore, a good architecture design must be fully and deeply integrated.
Requirement analysis serves as the basis to organize a reasonable product architecture based on requirements. In fact, there is no unified architecture design model,
Any mode makes sense only for the problem. As an architecture design, you must have a sufficient understanding of the demand analysis.
In order to solve the problem in a targeted manner, we can design truly outstanding products.
Secondly, the quality of a software system is largely determined by the quality of architecture design.
Light generally focuses on quality attributes and should make reasonable architecture decisions based on the requirements of product quality attributes. But long
Most people have been focusing on processes, methods, structural principles, and even coding, rather than architecture.
The essence of design is that the depth of thinking is not deep. As a result, even if many products are designed
Hundreds of problems occur, especially when changes occur. This raises a question for us.
What is the thinking?
On the other hand, the implementation of any architecture idea must be matched with a specific project organization to play a role. Therefore,
System Architects should carefully study the ideas and methods of modern project management, thoroughly understand the essence of these ideas, and follow their own design ideas.
Propose appropriate software engineering strategies. On the contrary, a software engineering strategy will inevitably affect the architecture design.
. Therefore, software architecture design is a system engineering. It requires a wide range of knowledge from the system architects.
Analysis, architecture design, class design, code implementation, and project management must be thoroughly understood.
It is impossible for you to completely separate me from you. It must be noted that the software system design method is not rigid
In practice, the key is to find out the rules that meet the actual requirements.