Software system Architecture (Software architecture) is a high-level abstraction of the structure, behavior, attributes, components and interactions between software systems. Any software development project, will experience the requirements acquisition, system analysis, System design, coding research and development, system operation and other conventional stages, software system architecture design is located between system analysis and system design. The software system architecture can provide a stable and reliable system structure support platform for software system, and can also support maximum granularity software reuse and reduce the development operation cost. How to do a good job of software system architecture design. The author makes the following discussion and analysis on this problem.
Software system Architecture Design method steps
The software design model based on architecture divides the software process into 6 sub processes, such as architecture requirement, design, documentation, review, implementation and evolution, which are briefly summarized as follows.
Architecture requirements. The user will be on the software system function, performance, interface, design constraints, such as the expectations (i.e. "demand") for acquisition, analysis, processing, and each requirement project abstract defined as a component (the collection of classes).
Architecture design. That is, the iterative approach is to first choose a suitable software architecture style (such as C/S, b/s, n-layer, pipe filter style, C2 style, etc. as an architectural model, then map the components of the requirements phase to the model, analyze the interaction between the components, and finally form a tailor-made software architecture.
The architecture is documented. That is to generate the architecture specifications and architecture design instructions that users and developers can read.
System Architecture Review. That is, early detection of defects and errors in the architecture design and timely marking and elimination.
Architecture implementation. That is, designers develop system components, according to the architecture design specifications for the association, synthesis, assembly and testing of components.
Architecture Evolution. If the user needs have changed, we need to modify and optimize the software architecture accordingly to adapt to the new changing software requirements.
The above 6 sub processes are the general method steps of software system architecture design. But because the software needs, the reality change is unpredictable, these 6 sub processes are often the spiral forward.
Common pattern of software system architecture design
At present, the software system architecture pattern widely used in the software domain mainly includes hierarchical architecture design, enterprise Integration architecture design, embedded architecture design and service Oriented Architecture design pattern.
Hierarchical schema design patterns. Layered design is one of the most common architecture design schemes, which can effectively make the system structure clear and design simplified. The MVC pattern is the most popular multilayer design pattern today. This pattern puts an application's input, processing, the output process is separated and abstracted into the controller (Controller), models (model), view three modules, to achieve the business logic layer, the database access layer and the user interface layer in the separation between each other while still maintaining a loose coupling relationship, Increased flexibility and scalability. Our common C/s architecture, b/S architecture, N-tier architecture are hierarchical architecture design of the form of expression.
Enterprise Integrated architecture design pattern. This model not only provides a consistent information access and interactive means for business applications in heterogeneous distributed environment (operating system, network, database), but also provides effective communication, information integration, application integration, maintenance and development, operation Management and other services for all kinds of business applications. At present, the most famous enterprise integration architecture design includes: CORBA, COM +, Java EE, WebService and so on.
Embedded architecture design pattern. This model has good configurable, manageability, scalability, timeliness and other performance indicators. At present, the industry's mainstream embedded operating systems are specific areas dedicated, including: WinCE, Linux, ECOS, EPOC, LynxOS, VxWorks and so on.
A service-oriented architecture design pattern. This mode divides business application into uniform standard and uniform format service according to certain granularity and principle, so that enterprises can add new service or update existing service according to Modularization, help to break information island and promote enterprise system integration and resource sharing. The pattern includes service Registry mode and Enterprise service Bus mode.
Software system Architecture Design Practice
The design of software system architecture is a very complicated work task. How to do a good job of software system architecture design. The author thinks that the following tasks need to be done well:
Establish the consciousness of software system architecture. Designers can not be limited to the algorithm and data structure, but to establish and constantly strengthen the overall structure of the software system awareness, learning to use the perspective of Multi-layer architecture and concepts to analyze the design software. In the practice of multi-layer architecture, the software multi-layer structure is realized through MVC pattern, the responsibilities are clear, independent, and the coupling relationship is loose between layers and layers, and the idea of "high cohesion and low coupling" should be embodied in the principle of modular design.
Attach great importance to software design mode. The software design pattern is summed up by the designers in the long-term development practice, other designers can use these models to speed up the software design process and reduce the development risk. Therefore, designers should attach great importance to the design mode of thinking, do not stay in the coding level, we should constantly sum up experience, and actively try to use the idea of software design mode to put forward problems, analyze problems, solve problems, improve the level of their own development software.
form its own software architecture style. The core goal of software system architecture design is to realize the software reuse in architecture level. This requires designers to constantly learn to delve into different applications in the software architecture of idiomatic patterns, thinking, style, on the other hand to absorb advanced ideas, actively explore the practice, and ultimately form their own unique software architecture style.
Fully understand the user needs, do a good job of global architecture design. To do a good job of software system architecture design, can not be anxious, first of all, to fully and accurately collect the user needs, the entire system to form a clear and complete understanding of the function, secondly, for the entire software system to do a good job of global architecture design, so as to avoid ill-conceived or one-sided understanding of the
Ext: http://www.searchsoa.com.cn/showcontent_35964.htm