I
In the industry, the design framework of software architecture and architecture can be analogous. If we compare the software architecture to an architectural blueprint, the components can be compared to one brick and one tile, or larger concepts such as courtyard and garden. The reason why the software architecture can be independent of the software data structure and software algorithm is that the industry regards the software data structure and algorithm as the method of burning bricks, or the idea of designing the courtyard. But not extended to the entire software system. A software system is complex. However, after sub-governance, the most basic software algorithms and data structure ideas are still used. Some people say that SA is not needed because the expansion of algorithms and data structures can replace the current SA. The perfect component can be reused in black boxes. The less perfect reuse component is white box reuse, and some necessary changes should be made on the basis of the original code. The idea of software engineering is embodied in the reuse of software processes, software modules and software documents. Otherwise, there will be no engineering statement. However, some people have proposed the idea of reusing the software architecture. This should be considered as the maximum granularity of reuse so far. If the architect can make a slight modification to his previous architectural blueprint, he can perform the construction multiple times, why can't software architects make minor modifications to the system design scheme and implement it in a new project? However, it is a pity that the business process of no enterprise is exactly the same as that of another enterprise. Therefore, the reuse of software architecture is much more complex than the reuse of building blueprints. The software architecture directly determines the operating framework of the software system. Its advantages and disadvantages not only determine whether the software system can meet the functional requirements of the software, it also determines whether these functional requirements can be reasonably and efficiently implemented, that is, it also determines the basic non-functional attributes of the software system [1]. the non-functional attributes of each user are more or less different, which determines the complexity of software architecture reuse. The software architecture is the structure of describing the software elements, the properties of software elements, and the relationship between these elements [2]. The software units here should be components. The software architecture is the basis for building computer software practices. It is the same as the design principles and objectives set by architects as the basis for drawing by drafters. A magnificent building cannot be built without a blueprint. A large system cannot be constructed without a good architecture. However, for small systems, the concept of architecture seems redundant. We should have a blueprint for building a building, but it seems redundant to draw a sketch for building a hut. The software architecture represents the high-level structure of a software system. The main features are as follows: 1) The software architecture is a high-level abstraction, it does not involve the specific system structure (such as B/S or C/S), nor does it concern the specific implementation. 2) The software architecture must support the functions required by the system and consider the dynamic behavior of the system when designing the software architecture. 3) when designing the software architecture, you must consider the compatibility, security, and reliability of the existing system. At the same time, we also need to consider the future scalability and scalability of the system. Therefore, sometimes it is necessary to make decisions among multiple targets in different directions. [3] abstract things have guiding significance for us. This is because we can use this abstract to analyze specific problems. There is no way to determine, that is, the truth.
[1] bass l, Clements P, kazman R. Software Architecture in practice. Addison-Wesley, 1998.
[2] sun ca, Jin Mz, Liu C. overviews on Software Architecture Research. Journal of software, 1228 (7): 1237 − (in chinese with english Abstract). http://www.jos.org.cn/1000-9825/13/1228.pdf
[3] http://www.itisedu.com/phrase/200602281725525.html
II
The concept of a component is similar to that of a common module. Like the building blocks we used when we were young, they can be loosely connected and freely combined. However, there is no such standard in the industry to develop components, so that they can be as easy to use as building blocks. In fact, the "component" We use must be modified to meet the requirements of a system. A component should be a replaceable part of the system. It implements specific functions, conforms to a set of interface standards, and implements a set of interfaces. [1]
Software reuse has always been regarded as an important means to improve software engineering. Software reuse is to use existing software and its effective components to construct new software or systems. It is not only the reuse of software programs, but also the reuse of other labor results in the software production process. Therefore, software reuse includes software product reuse and software process reuse. To improve productivity and product quality. Software reuse is generally divided into source code reuse and binary reuse. [2] white box multiplexing and black box multiplexing
Black box multiplexing means to reuse existing products or components directly without any modification. This is an ideal method of reuse. White Box multiplexing means that existing products can be used only after adaptive modification based on user needs. [3]
Whether it is white box multiplexing or black box multiplexing, it takes some time to get familiar with and master the reusable software system. As an economic consideration, the cost of reuse must be much lower than that of redevelopment; otherwise, it should not be considered.
The concept of component is used in the industry to expand the granularity of reuse. The previous functions and processes cannot meet the ever-growing needs of software.
[1] http://www.itisedu.com/phrase/200604161439595.html
[2] http://arch.pconline.com.cn/pcedu/empolder/life/0403/343931.html
[3] http://www.tongtech.com/jsqy/yqxwview.asp? Id = 209