The last time I had the honor to introduce the software architecture design "Seven kinds of weapons", for this "Seven kinds of weapons" is a long process of cultivation, in addition to the need for continuous learning theory, principles, but also constantly in the software architecture design work to practice, and such a limited opportunity to practice, because after all, the company's project so much, Lost one such opportunity is only waiting for the next project, so I would like to be here on how to carry out the design of software architecture to provide some ideas and methods for everyone, I hope to be in the software architecture design work to help.
The purpose of software architecture design
For projects that outsource a business type, the purpose of the software architecture design differs from that of the product type, where the software architecture design for the outsourced type of project is mainly discussed.
1, for large-scale development to provide the basis and norms, and provide reusable assets, software system large-scale development, must have a certain foundation and follow certain norms, this is not only the requirements of software engineering itself, but also the requirements of customers. In the process of architecture design, some common parts can be abstracted out to form common class and tool class to achieve the purpose of reuse.
2, to a certain extent shorten the project cycle, the use of software architecture provided by the framework or reuse components to shorten the project development cycle.
3, reduce the cost of development and maintenance, a large number of reuse and abstraction, you can extract some developers do not care about the public parts, so that developers can only focus on the implementation of business logic, thereby reducing a lot of work and improve development efficiency.
4, improve the quality of products, good software architecture design is the guarantee of product quality, especially for customers often put forward the non-functional requirements of satisfaction.
Principles of software Architecture design
Software architecture design must follow the following principles:
1, to meet functional requirements and non-functional requirements. This is a software system most basic requirements, but also the architecture design should follow the most basic principles.
2, the practical principle, just like each software system delivers to the user to use must be practical, can solve the user the problem, the architecture design must also be practical, otherwise will be "high to go high" or "excessive design".
3, to meet the requirements of reuse, the greatest extent to improve the efficiency of developers.
Several views of software architecture design
Often, when we talk about what the architecture design should do, or at the meeting of the Architectural Design review, we ask a variety of questions, such as how the developer logs the log and how the transaction is controlled. How can we improve the efficiency of our developers, that is, more quality in the unit time to complete more functions? How to meet the non-functional needs of customers? How to make the platform management of production environment better maintenance system?
These issues, in fact, are the different stakeholders in the software system from different points of view to ask questions, to answer these questions, we have to look at the software architecture from a different perspective of the work.
1, the logical architecture perspective, from the point of view of the system users, designed software architecture to meet the needs of business logic, can handle the increasingly complex business logic needs.
2, the development of architecture perspective, from the perspective of the system developers to consider the problem, the design of the architecture to be easy to understand, easy to develop, easy unit testing, it is best to allow developers to use the least number of lines of code to complete the development of functions.
3, the operation of the architecture perspective, from the system running quality needs to consider the problem, pay special attention to the system's non-functional requirements, customers will often require the function of our system screen the longest response time of not more than 4 seconds, to meet 2000 users at the same time online use, role-based system resources security control.
4, the physical architecture perspective, focus on the system installation and deployment of what kind of environment, such as the most popular enterprise application services solutions IBM Http Server + WebSphere application Server + db2,weblogic + Oracle and so on.
5, data Architecture perspective, now we develop a variety of systems, such as MIS,ERP,SAP, are basically the operation of various types of data, a bunch of not too understood data to show the user easy to understand the data, automatic processing of various types of data operations, so data persistence is very important thing.