For a long time, I have been vague about the concepts of the architecture and framework, and I have never learned much before. I have finally made some effort to understand them. When I checked the relevant information, I saw an article Article And I just explained some of these confusing concepts and used them for reference. They are not necessarily correct. If you have better opinions, please give us some guidance.
Below from http://www.5ivb.net/Info/55/Info15080/
Moving towards the software industryComponent assembly industry(Software component industry) during the process, component designers constantly discover that the unexpected environment of their component application scenarios cannot be perfectly integrated with the software structure of the application software engineer, which makes it difficult for the application software engineer to flexiblyReuse(Reuse) components designed by others, leading to bottlenecks in the growth of the software component industry. OO software experts gradually realized that the problem was caused by mismatch of the software master architecture ).
The importance of the software master architecture is not presented today ﹐More than 20 years ago, software Master Fred. p. brooks mentioned: the design concepts must be consistent between the participants of software design (conceptual integrety) in order to jointly create simple and friendly software, he also stressed that the software master architecture plays a core role in achieving conceptual consistency. This old problem that has been around for more than 20 years is still something that OO software engineers must overcome today.
To catch up with it, you must know what it is. So I will first introduce some concepts of relevant knowledge:
1.Architecture (Architecture)
The architecture can also be referred to as the architecture, the so-called software architecture, accordingPerry and Wolfe:Software Architecture = {elements, forms,Rationale/Constraint}, That isSoftware Architecture= {Component elements, element mutual cooperation mode, basic requirements and restrictions}.Philippe kruchten adopts the above definition and describes that the design of the main architecture is:Organize component elements in certain ideal cooperation modes to achieve basic functions and restrictions of the system.. The architecture is divided into multiple styles, such as pipes and filters.
2.Framework(Framework)
The framework is also called the application architecture. The general definition of the framework is:Architecture-based reusable design in specific fields. It can also be considered that the framework is an application of the architecture in a specific field. A well-known example of the Framework isMVC.
3.Library(Library)
Library should beA set of reusable and collaborative resourcesFor repeated calls by developers. The main difference between it and the framework lies inProgram. The library is called by the program, while the framework calls the program. Better databases includeJDK.
4.Design Mode (Design Pattern)
Everyone should be familiar with the design model, especially the books written by the masses."Gang of Four"Describe the mode as"Solutions to a problem in a certain environment". These three things-problems, solutions, and environments-are the basic elements of the model. Give a schema name. Consider the results produced by the usage of the schema and provide one or more examples, which is also useful for illustration of the schema.
5.Platform (Platform)
It consists of multiple systems, including hardware.
After a clear understanding of the above concepts, we can apply them in the software development process. Theories and Practices are indispensable and complement each other. Without theoretical guidance, there is no foundation for practice. Without proof of practice, there is no basis for theory. Therefore, I have always believed that for contemporary programmers, after a certain degree of practical basis, you must learn more theoretical knowledge. Whether you start learning from that aspect.
In the process of software development, five steps can be roughly extracted from many process practices and methods: requirements, analysis, design, coding, and testing. Architecture is the skeleton of software and the most important foundation. The architecture involves every step. Generally, the architecture of the software should be analyzed as needed. The architecture is usually composed of various functional modules, and then describes the relationship between each part.
I generally think that the framework is a smaller structure in each module in the architecture. If needed Web Technology will be used MVC Framework, and Web Function is only a functional module in the entire software system. Each framework can have multiple instances. Java Implemented MVC Framework Structs .
Under the framework, it is the design mode. The design mode is generally used in the framework of the application. It can be said that it is a supplement to the framework. Because the framework only provides an environment, we need to enter more information in it. Whether or not you have applied the design model, you can implement the functions of the software. correct application of the design model is an inheritance of the design or implementation methods of the previous software, to make your software more soft.
The architecture can be analyzed from different perspectives, so the design of the software architecture can be conducted from different perspectives. Press4 + 1 viewsThere are four typesViews: Logic, development, process, physics, and scenario. Therefore, the architecture is gradually refined. You cannot begin to come up with a perfect architecture, but you can only Gradually refine the architecture according to the development process.
for example, if we are going to build a house, if the house is divided by function: walls, floors, lighting, etc, it is made up of that style, the house is square or circular, so as to form the architecture of the house. Under the architecture, we can apply the framework in each module, such as the wall, And what framework we are going to apply. Walls can include windows and doors. Windows and doors constitute a framework. What is the shape of the window, whether it is large or small, is to achieve the brightness of the house, so the selection of what kind of window is the design mode.