Essay (1): My idea of my architecture
Since the software industry is moving to the component assembly industry (Software Component Industry), it is constantly discovered that the component designer's expected environment of its component is often integrated with the software structure of the application. It is difficult to flexibly reuse (Reuse) of the components of others, causing bottlenecks in software components to grow. OO software experts have gradually recognized that their problems are from the fact that the software main architecture is inconsistent (Mismatch).
The importance of the software main architecture is not today, and the software master Fred. P. Brooks mentioned 20 years ago: Participants in software design must be consistent with the concept of "Conceptual Integret" to create simple kindness Software, while he also emphasized that the software main architecture is in the core role in the process of reaching the concept. The old problems in this more than 20 years are still today's OO software staff must strive to overcome.
To catch up with it, you must know what it is. So I will introduce some concepts of related knowledge:
Architecture
Architecture can also be called architecture, so-called software architecture, definition according to Perry and Wolfe: Software Architecture = {Elements, Forms, Rational / Constraint}, the software main architecture = {component element, element mutual assistance, the basic requirements And restrictions}. Philippe Kruchten uses the above definition and indicates that the main architecture is: organize each component element to organize the basic functions and limitations of the system. The architecture is divided into a variety of styles, such as Pipes and filters, etc.
2. Framework (Framework)
The framework can also be referred to as an application architecture, the general definition of the framework is: the reusable design based on the architecture in a particular field. It can also be considered that the framework is the application of the architecture in a particular field. The framework is famous is MVC.
3. Library
The library should be reusable, collaborative resources, for developers for repeated calls. It is the main difference between the framework in the runtime and program call relationship. The library is called by programs, while the framework calls the program. The better library has JDK.
4. Design mode (Design Pattern)
Design patterns should be familiar, especially the books written by the four helps are more important. The "Four Help" describes the mode as "solutions to solve a problem in a certain environment." These three things - problems, solutions, and environments - are the basic elements of the pattern. A name given to the mode, consider the results of the usage pattern and provide one or more examples, which are also useful for the description mode.
5. Platform (Platform)
It consists of a variety of systems, and may also include a hardware portion.
After a relatively clear understanding of the concept, it can be applied during the development of software. Theoretical and practice are unable, complementary. There is no theoretical guidance, practice is lacking the foundation; there is no practice, the theory lacks the basis, so I have always believed that for contemporary programmers, after a certain practice, you must learn deeper theoretical knowledge. Whether you start learning from that way.
During the development of software, from many process practice and methods, it can be roughly extracted from five steps: demand, analysis, design, coding, testing. The architecture is the skeleton of the software is the most important basis. The architecture is involved in each step. Generally, the architecture of the software should be started while obtaining the need. Architecture is now generally a large functional module combination, and then describes the relationships of each portion.
I generally believe that the framework is a more small structure in each module in the architecture. If you need to represent a web technology, you will use the MVC framework, and the web function is just a functional module in the entire software system. Each frame can have many instances, such as the MVC framework Structs implemented with Java. Under the framework is design mode, design mode is generally in the framework in the application, or it is also a supplement to the framework. Because the framework just provides an environment, we need us to fill in more things. No matter whether it is applied, you can implement the function of the software, and correctly apply design mode, which is a kind of inheritance of our design or implementation of the former software, so that your software is soft.
The architecture can be analyzed from different perspectives, so the design of the software architecture can be carried out in different perspectives. According to 4 1 views, it is four views: logic, development, procedures, physics and scenes. Therefore, the architecture is gradually refined. You can't start with a perfect architecture, but can only be refinered according to the development process.
For a few more: If we are ready to build a house, if we press the function: wall, floor, lighting, etc., it is composed of that style, the house is four or round, etc., this is formed. The architecture of the house. Under the architecture, we can apply the framework in each module, such as a wall, what framework we are ready to apply. Walls can include: windows, doors, etc. The consisting of windows and doors is a framework. What is the shape of the window or a small or small, is to achieve brightness in the house, so what kind of windows are selected.