Optimize the architecture from the perspective of software reuse and componentization

Source: Internet
Author: User

In fact, after reviewing the architecture from the above three aspects, we have established a complete and relatively good architecture.
Structure. However, we still need to examine our architecture at a higher level from the fourth aspect. Another question to consider is
Software reuse. Reuse can greatly reduce later costs and improve the software system's scalability and maintainability. We
You can consider which structures can use existing reusable structures and products, and some structures can use the gof design model.
Reusable components are designed for later use. You also need to carefully design the product structure based on the variable points that need to be analyzed,
Make sure that subsequent changes do not significantly affect the product. An important means of reuse is component-oriented
Method.
1. Software Reuse
Software reuse refers to the process of reusing "software designed for reuse purposes. In past development practices,
We may also reuse the process of "software not designed for reuse purposes", or
The process of reusing code between different versions is not strictly software reuse.
Through software reuse, the existing development results can be fully utilized in application system development to eliminate,
Design, coding, testing, and so on, which improves the efficiency of software development.
Quality of existing development results, avoiding the possibility of re-development errors, thus improving the quality of software. In
In software development, the software architecture developed for reuse can be used as a type of large-granularity and high abstraction level.
Software components are reused, and the software architecture also provides the foundation and context for component assembly.
It is of great significance.
Software architecture research how to quickly and reliably construct a system using reusable components, focusing on
The interconnection between the overall structure and components. It mainly includes: Software Architecture Principles and styles, software architecture descriptions and specifications,
Software Architecture in specific fields, how to integrate components into software architecture, etc.
2. component-oriented methods
Components are also called components. component-oriented methods contain many key theories, which solve the problems of many
Critical Software problems:
Component infrastructure
Software Model
Software Architecture
Component-based software development
The component can be understood as a variant of the object-oriented software technology. It has four principles, different from other ideas, encapsulation,
Polymorphism, post-binding, and security. From this perspective, it is similar to object-oriented. However, it cancels
.
In the concept of component-oriented, it is considered that inheritance is a tightly coupled, white box relationship, which is used for most packaging and reuse.
This is not suitable. The component calls other objects or components directly to reuse functions, rather than using inheritance.
In fact, in our subsequent discussions, we will also mention that the combination of object-oriented methods should be preferred.
It is not inheritance, but in the component method, it completely abandons inheritance but calls. In the component term, these calls are called "Generation
(Delegation ).
The key to implementing the component technology is a specification, which should define the encapsulation standard or the Component Design
Public structure. The ideal state specification should be a standard in the industry and the world, so that the construction can be done in the system,
Enterprises and even the entire software industry are widely used. Components use Assembly to create a system. During assembly
Multiple components are combined to create a large entity. If the components match the user's request and service rules
They can interact without additional code.
3. component-Oriented Software Model
The component-oriented technology has the following features: fast, flexible, and concise. The significance of component-oriented technology to the software industry is
Production pipelines are an inevitable trend in the development of the software industry. Today, the software industry has not
Small software that people can complete in a short time. Software becomes more and more complex, and the time is getting shorter and shorter, and the software code also starts from hundreds of lines
Millions of rows to the present. The code is divided into components to reduce the variation factor in the software system.
1) component-oriented method mode
The idea of component-oriented technology is based on software reuse, and the technology base is a number of components designed based on the software reuse idea.
For components, the focus of software system development is to how to break down the application system into stable, flexible, reusable components and
How to use existing component libraries to assemble on-demand application software.
The component-oriented architecture can be described as: system = framework + component + construction. A framework is a supporting framework for all components;
Each component implements each specific function of the system. The formation can be regarded as the insertion sequence of components, but the composition sequence of different components is not
The overall functions are different.
Component-oriented technology divides software development into several types: framework development and design, component development and design, and assembly.
Compared with industrial production, the framework design is the development and research of basic production machines, and component development is the production of parts,
Assembling is to assemble parts into various products such as automobiles and airplanes.
2) component-oriented development
(1) system resource consumption
From the perspective of software performance, the software developed with component-oriented technology is not the best. Besides large code redundancy
Besides, its flexibility is largely achieved at the cost of space and time.
(2) Risks of component-oriented development
From the details, the component fully encapsulates the implementation details of the component. Without good documentation support, it may cause the structure
The use result of the component is not as expected by the user. For example, component users do not have sufficient knowledge about the error mechanism of a component.
3) Open System Technology
Specialized software is a product that does not meet the unified standards produced by a single supplier. These individual suppliers have changed through version
To control the form and functions of the software. But who is the system more and more complex? When a system is built up, it tends to be more complicated.
For commercial software dependent on general purpose, such dependency is often a very effective form of internal software reuse. This is exactly the case.
Status, we need to discuss the open system technology.
Commercial software has become an effective form of reuse, mainly because of the role of economies of scale, the quality of general commercial software,
It often exceeds the self-developed capability of end users.
Commercial software can also implement proprietary applications in a certain field, that is, providing application interfaces (APIS) for application software.
Provide services. When the software is constantly upgraded, the complexity of these interfaces may exceed the needs of users.
Complexity control.
One solution is to implement open system technology, which is fundamentally different from proprietary technology. In
In open system technology, supplier organizations are responsible for developing specifications independent of proprietary implementations and interfaces implemented by all vendors.
Strict consistency and unified terms are defined, which can extend the life cycle of software.
System technology is particularly suitable for object-oriented methods.
In order to enable commercial technologies to adapt to various application requirements, there are certain requirements for software development and installation.
As profiling, the embedded configuration software is also known as open is a feature of the software.
From the perspective of architecture, many system structures have a large number of one-to-one interfaces and complex interconnection relationships.
The model is called the "chimney" model. When the scale of the system increases, the relationship increases at the speed of the square law and is complex.
The increase in scalability will bring a lot of problems, especially upgrades and modifications are becoming increasingly difficult, and the scalability of the system is precisely
Is an important part of development costs.
Therefore, we can create a layer called object manager to coordinate communication between objects in a unified manner.
This is a good structure for maintainability, but it can be avoided when efficiency is particularly emphasized. System Architecture
An important principle is to define a planned definition for the software interface to provide a more unified system integration solution.
Software subsystems are defined by application interfaces. In this way, the dependencies between modules are weakened.
And supports large-scale integration.
After reviewing our architecture from four aspects, we can get
A solid architecture. After review, this architecture can be used as an infrastructure for later development.

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.