What Is Software Architecture?
Software architecture is a series of related abstract patterns used to guide the design of all aspects of large software systems. Software architecture is a sketch of a system. Software architecture is the basis for building computer software practices.
- Software architecture refers to the corresponding series of abstract patterns, which can provide corresponding guidance for designing various aspects of large software systems. In essence, software architecture is a system sketch. The objects described in the software architecture are directly composed of system abstract components. The connection between the various components of the system is to make the communication between the components clearer and relatively detailed. Being in the corresponding system implementation link, then the refinement of these abstract components will become a realistic component, such as a specific class or an object. Analyzing from the object-oriented domain, the connection implementation previously implemented by each component is often an interface. [1]
- According to the different perspectives of attention in China, the software architecture can be divided into three types.
- 1.Logical architecture
- The relationship between various elements in a software system, such as external system interfaces, user interfaces, business logic elements, databases, and so on.
- 2.Physical architecture
- How exactly do you place software components in hardware. For example, the physical architecture of a distributed system located in Shanghai and Beijing. This means that all components belong to physical equipment. The main ones are hosts, integration servers, application servers, proxy servers, storage servers, report servers, and Web servers , Network shunts, etc.
- 3. System architecture
- Corresponding systems have non-functional features such as performance, robustness, scalability, flexibility, and reliability. Designing the system architecture requires that system architects have strong software and hardware performance and functions. Often, this is the most difficult task in the design system architecture. In addition to the above, analysis based on different perspectives can understand the elements that divide the components and determine the design of the two architectures. The elements of a software system first belong to a logic element. So how to effectively place the above-mentioned logic components in hardware, and what is the role of these components in the performance, robustness, scalability, flexibility, reliability of the entire system. This is also particularly important information. Like in a medium-sized
- 1. Analysis of the role of software architecture in the development of new products
- The so-called software architecture is a bridge between the real world and the computer field. Specifically, its functions are mainly as follows. The first point is to achieve superior business goals. In essence, software architecture often has the responsibility to carry out corresponding overall planning in order to complete business goals; the second point refers to the next step in making technical decisions. With a software architecture design that turns related business-oriented requirements to a technology-oriented direction, this can provide effective restrictions and guidance to subsequent technical development work; the third point is to effectively improve the quality of new products; The fourth point refers to the organization that enters the corresponding new product development process; the fifth point refers to the implementation of the corresponding new product development and incremental delivery by means of the corresponding iteration; the sixth point refers to the control of Complexity is based on the corresponding divide-and-conquer idea, so that it can control the complexity of the Venus show problem.
- 2. Analysis of the role of system architecture in the process of developing software products
- The first is to fix the corresponding core knowledge; the second is to provide corresponding reusable assets; the third is to effectively shorten the product launch cycle; the fourth is to make the total cost of product development and maintenance To the maximum reduction; the fifth is to effectively improve the quality of the product; the sixth is to provide effective support for batch control.
- 3. Analysis of the characteristics of the software product line architecture
- The software product line architecture refers to the corresponding general architecture designed according to a series of products within a company or an organization. Then we can understand that there is a lot of similarities in such a series of products. Then these can be implemented with the same architecture or part of the implementation, so that productivity is maximized. The software product line architecture mainly has the following functions:
- The first role is to consider a series of explicitly permitted changes; the second role refers to the need to be documented; the third role means that there should be a corresponding product creator's guide, and examples The entire process of the architecture is described.
- 4. Analysis of the role of software architecture in maintaining software
- In essence, the main sources of corresponding software maintenance work are bugs and requirements changes. Often, a bug is fixed and a new function is added, then a module cooperation chain of the architecture link is usually involved. For such a situation, the software architecture is more conducive to the maintenance work. On the contrary, if the architecture is not understood, the corresponding Perform blind modification of the program, which will also have the possibility of not necessarily thinking about the architecture design, which will cause the existing architecture of the entire system to gradually appear more chaotic. This will also lead to the possibility of incredible bugs and problems. .
- 5. Analysis of the role of software architecture in the software upgrade process
- The corresponding software architecture is through continuous modification of the software system, and it must also be refactored. Refactoring is often performed in two main situations: the first situation is a particularly chaotic architecture, which leads to the implementation of a Smaller changes will affect the whole body; the second situation refers to the fact that there is greater strength in the upcoming upgrade software, and the previous software architecture and new requirements simply cannot adapt. Re-engineering the corresponding software architecture is a case of re-engineering. The steps that must be implemented are often three steps: reverse engineering, re-planning, and forward engineering. [1]