Architecture Design of Software

Source: Internet
Author: User
Tags web hosting
A good start is half the success

The initial architecture design determines the survival of software products. "A good start is half the success ".

The initial architecture design is also the most difficult. We need to investigate the situation and technical characteristics of similar products and learn about the theoretical support and technical platform support provided by such products in the world. Combined with the characteristics of your project (a thorough system analysis is required), you can gradually form the Architecture Blueprint of your project.

For example, to develop a website engine system, you can go from the Yahoo personal homepage generation tool to the website automatic generation system provided by the web hosting service provider, as well as the features and limitations of the IBM webbench Portal, you can determine the location of your product from the perspective of architecture design.

A good design must be modified repeatedly. from simple to complex cyclic testing is a good way to ensure correct design.

Since the right direction was selected at the beginning, the implementation process of the project also verified this option. However, the solution needs to be modified in some architectural design details, it belongs to the method of spiraling up. Obviously this is achieved through the idea of testing first and the XP engineering method.

If our initial architecture design has a certain level of world-class positioning on the technical platform, half of the project development practices are equivalent to doing experiments, R & D, and there are considerable technical risks.

Therefore, it is impossible for us to implement every requirement at the beginning, but to adopt a simple method to complete the architecture process, the simplest requirement is to simply complete the entire architecture (with manual intervention ), in order to check whether the technical links can coordinate and cooperate with each other (two excellent and advanced technologies sometimes cannot work together), you can also find out the depth of the technology and grasp the technical difficulties of the project. After this process is completed, we made the above major changes to the design scheme, enriched and improved the design scheme.

The design pattern is an important component supporting the architecture.

Architecture Design is similar to a kind of workflow, which is dynamic. Unlike architectural design, the architecture design can be completely determined from the very beginning. The architecture design is accompanied by the entire project process, there are two specific operations to ensure the correct completion of the architecture design, that is, the design mode (static) and the engineering project method (RUP or XP dynamic ).

The design mode is an important component supporting the architecture, which is similar to the building. To build a building, the design of the building architecture is required. During the specific construction, there are many architectural rules and patterns.

We use the J2EE blueprint pattern classification feature.

The architecture design is the skeleton, and the design mode is the meat

In this way, a rich design scheme can be further completed by the programmer, carrying assistance with appropriate engineering methods, so that the project architecture design can be completed correctly and quickly.

Keep in mind the architectural design goals

Because the architecture design is completed dynamically, it is very important to grasp the objectives of the architecture design. Therefore, during the entire project process, even the overall goal of our architecture design must be kept in mind in each step. The following points can be summarized:

1. maximize reuse: This reuse includes multiple aspects, such as Component Reuse and design mode usage.

For example, we have user registration and user permission system verification in our project, which is actually a general topic. Each project only has its content and some minor differences, if we have successful R & D experience in this area, we can directly reuse it. If not, we need to develop this subitem. During the R & D process, we cannot only see the needs of this project, it is also necessary to complete this sub-project, which can be called a component, with the concept of architecture.

2. Try to be as simple as possible: the General Direction for solving the problem is to simplify the complicated problem. In fact, this is also the fundamental goal of middleware or multi-layer system technology. However, in the specific implementation of the design process, we may complicate the simple problem, especially in the use of the design model, it is easy to fan this error, therefore, it is not easy to make the design as simple and clear as possible.

I think that the implementation of each class must truly reflect the essential features of system things, because there is only one essential feature of things, and the closer your code is to it, it indicates that your design is simple and clear, and the simpler the system is, the more reliable your system is. In more cases, a class does not reflect the nature of things and requires the combination and coordination of multiple classes. Therefore, correct use of proper design patterns is a top priority.

When we look at a system code with a good architecture design, we basically see the design pattern. This is an example of pet store. You can also say that a good architecture design is basically completed by a simple and clear multiple design patterns.

3. Most flexible Scalability: the architecture design must be flexible and scalable, so that users can perform secondary development or more specific development on your architecture.

To be flexible and scalable, we need to design the architecture at the theoretical level. For example, the concept of workflow is gradually becoming popular, because the shadows of workflows exist in many practical projects, the workflow has a tree structure permission setting concept, which is more common in many fields.

The tree structure is the basic form of organizational information. The website or ERP front-end is organized by the tree menu, so when we design the architecture, the tree structure and functions can be designed separately. The links between them can be linked together through nodes in the tree structure, just as we can mount various small gifts on the branches of the Christmas tree, these small gifts are all the functions we need to implement.

With this concept, it is usually difficult to implement user-level permission control. The idea is also to link specific users or groups with nodes in the tree structure, in this way, the user's permission control on the corresponding functions is indirectly realized, and the architecture with such basic design scheme is undoubtedly flexible and scalable.
Supplement the points in the document:
1. maximize reuse:
To improve reuse, components in the architecture must have a high degree of independence. Changes to the implementation of components do not lead to design changes for other components. The other is the stability and scalability of interfaces between components, if you need to change the interface to meet the new requirement, you can keep the interface unchanged if the related component does not support the new requirement.
Another way to improve reuse is to use components similar to existing ones. The ideal reuse is to take components from different places and combine them to meet new product requirements.

2. Be as simple and clear as possible
The simple design method can be to layer the system, and the hierarchy can be based on functional requirements. For example, Protocol layering: codec, reliable transmission, and application-layer adaptation.
To make the hierarchy based on functional requirements, you need to analyze the functional requirements of the original requirements and summarize the original requirements into several or dozens of similar or similar functional requirements, build a system functional framework based on these functional requirements, and perform Operation Analysis on the original functional architecture. If necessary, adjust the architecture. This process depends on experience and capabilities.

3. the most flexible scalability
Flexible scalability depends on Interface Definition and loose coupling between modules.

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.