The origin of component development technology
In the information age, the new technology revolution is changing the face of our daily life, and the core of this technology revolution is the computer software system. When the object-oriented technology gives the software crisis, the huge pressure of distributed network computing has put forward many new problems to software development, so that software development is still in high risk. New distributed network computing requires software to achieve cross-space, cross-time, cross-devices, cross-users, leading to software in scale, complexity, and function, forcing software to work to heterogeneous synergy, level Integrated, the industrial roads can be repeatedly reused. In order to adapt to this requirement, new software development mode must support distributed computing, browser / server structure, modular, and component integration, so that software is similar to hardware, can be assembled with different standard components. Specifically, you can achieve the following requirements:
• Provide a means to make the application can be customized by pre-compiled, capable product components, and can be extended and updated with different versions of components.
• Use modular methods to decompose complex ugly-maintained systems into components that are independent, collaborative work, and strive to make these components repeatedly reuse.
Breakthrough time, space and different hardware devices, and use the unified interface between customers and software to achieve cross-platform interoperability.
In order to meet the above requirements, the software component technology has appeared. The goal of component reuse is to reach demand, analysis, design, encoding, and testing. Since then, a new software development method affecting the development of the software industry is born. From an abstraction, object-oriented technology has reached a class reuse (code reuse), which is encapsulated in units. Such reuse granularity is still too small, not sufficient to resolve heterogeneous interoperability and higher efficiency. The component refers to an extent of the abstraction to a higher level, which is a combination of a set of classes and represents a specific service of one or more functions, and provides users with multiple interfaces. The entire component hides the specific implementation and serves only using the interface. Thus, at different levels, both the components can combine a plurality of logical logic of the bottom layer into new components with large particle size, even directly to a system, enable the reuse of the module from the code level, object level, and architecture level to The system level may be implemented, so that the software is like hardware, the dream that can be equipped with a fixed system is achieved.
Characteristics of components development
Software components are consistent components that can be identified in a software system, which meets a standard requirement, similar to components in the traditional industry. In general, components can be demand analysis, design, code, test case, document, or other product in the process of development. Specifically, a set of program modules that meet a set of regulatory interfaces in accordance with a set of standard, replaceable software systems are met. Usually referring to the latter.
1. Reuse
The component should be able to be reused at the binary code level. Using software components is a way to shorten software delivery time and an improvement of software quality.
Software component reuse refers to the achievements, knowledge and experience of the past software development, to develop new software systems, so that people focus on solve new problems in the development of new systems, meet new needs, and avoid or Reduce duplicate labor in software development. Component reuse enables people to "reinvent the wheel" or "everything from zero" in software development, improve software productivity and quality, shorten the development cycle, and reduce development costs. There is no material consumption in the reuse of the software, and the software has become more and more reliability after multiple reuse. According to statistics, if the degree of multiplexing reaches 50% in the development of software systems, the productivity is increased by 40%, and the development cost is reduced by about 40%, and the software error rate is reduced by nearly 50%.
2. System structure hierarchical, business and implementation, logic and data separation
The application logic changes frequently, especially in the currently competitive market, should constantly adapt to user more and more demanding needs. Separate application logic, plug-and-play replacement components, allowing the system to be easily upgraded. The application logic is the core of the application system, separating is conducive to high quality, efficient processing. In multi-layer structural application systems, if the components used on the application server have changed, the application logic separately separated application logic will not be affected.
3. Ease of use
It refers to the software component has a good packaging, which can be used easy to use it. Generally speaking, the packaging of software components should meet certain standards. Software components can be deployed independently, easy to integrate third-party. "4. Language independence
5. The component is language (source program) independent, and the call protocol of the component is a language-independent protocol.
6. Position transparency
The caller of the call is not related to the position of the member, regardless of the position where the member is located, the method of the caller calling member (including the positioning member) is the same.
7. Self-descriptive
The component is described, and the caller should be able to obtain the component information (self-description) required by the calling member before the calling member is called, and the component information is independent of the language.
8. safety
The component is safe and should not allow any form of unauthorized use (call).
9. The software structure in the field is consistent.
10. Software designers should focus on the understanding of the field and make demand analysis more
11. The reuse of large-scale size has reduced the average development cost, the development speed is accelerated, the developer is reduced, the maintenance cost is reduced, and the parameterized framework makes adaptability, flexibility enhancement
Comparison of development technology and traditional development methods
Traditional software development is mostly object-oriented technology, component technology is closely related to object-oriented technology. Both components and objects are an abstract description of the real world. Different from the interface package, the difference is that first on the concept level, the object describes the objective world entity (Identity), and the component provides objective World Service (Service) Secondly, in the multiplexing strategy, the object is reused by inheritance, and the component is achieved by synthesis implementation; Finally, the component is implemented by the object technology, and the object is subjected to appropriate interface packaging (WRAP). Become a component, a component is usually a collector of multiple objects. Component technology is the development of object technology, and component has stronger independence, closure, and reusability.
1. Components and objects are an abstract description of objective world entities, and their common feature is information hidden and certain independence. However, the component requirements are self-description, independence, and the object does not meet this requirement, and it is more "white box".
2. Essential differences of components and objects: The component is provided by the service, the object is provided, and the component interface describes the problem domain, and the object interface describes the Solution Domain.
3. Objects are instances of classes, objects are dynamic; some people say that components are static, they should correspond to classes; in fact, it can be seen, the components defined in the specific field architecture (DSSA) are static And the components integrated into the application system are dynamic, and some people have not seen some of them.
4. Access components and objects must be used through their interfaces and components, it is necessary to fully describe its semantics, the object does not do this, so the object needs another interface to become a component, so some people think that the component = Object interface, in fact, this is only a sufficient condition of the component.
5. The interface of the component is a service provider's commitment to consumers: a contract (Contract); use a contract to ensure a combination of behaviors between groups. There is no such statement. Due to the persistence of the service, the service is a permanent storage object.
6. The particle size of the member is generally thick, which may include one or more objects (or classes), and its interface is generally complicated than the object. Connotation of development technology
Software Factory is a working style, compliance with a certain production quality, bulk, and efficient production standardized "software components" (component), and assembles the institutions of software products or applications. Production work will not be limited by time and place.
Membership software production is the mainstream mode of the software factory, and its core is to organize software components based on the development destination by prefabricating and customizing multiple software components on a development platform. Development and production, industrial assembly and collaboration, large-scale mass production.
The emergence of software factories allows software developers to quickly produce high-efficiency, low cost, quality enterprise software, so that software production is escalated, systematically, and project implement persons (middleware, Module) Free combination, solve the problem of uncertainty of user needs, and can maximize the use of existing resources, is a systematic implementation software multiplexing.
Function of development technology in application software development
Computer technology develops rapidly. From hardware technology, the CPU speed is getting higher and higher, and the processing capacity is getting stronger; from software technology, the scale of application is expanding, especially the emergence of Internet and WWW, making the computer's application range more broad, many applications The program needs to run on the heterogeneous platform of the network environment, and the size of the software is larger. All of this has made new demand for new generation software development.
In the information age, the new technology revolution is changing the face of our daily life, and the core of this technology revolution is the computer software system. When the object-oriented technology gives the software crisis, the huge pressure of distributed network computing has put forward many new problems to software development, so that software development is still in high risk. New distributed network computing requires software to achieve cross-space, cross-time, cross-devices, cross-users, leading to software in scale, complexity, and function, forcing software to work to heterogeneous synergy, level Integrated, the industrial roads can be repeatedly reused. In order to adapt to this requirement, new software development mode must support distributed computing, browser / server structure, modular, and component integration, so that software is similar to hardware, can be assembled with different standard components. Specifically, you can achieve the following requirements:
A means is provided to make the application software can be customized with a pre-compiled, functionally clear product component and can be extended and updated with different versions of components.
Using modular methods, complex difficult-maintained systems are decomposed into components that are independent, synergistic, and strive to make these components repeatedly reuse.
Breakthrough time, space, and different hardware devices, and use the unified interface between customers and software to achieve cross-platform interoperability.
From the beginning of structured, evolved to object-oriented, then to component technology. In order to meet the above needs, component techniques have emerged, and viabing the software industry. The goal of the component reuse is to reach demand, analysis, design, encoding, and testing.
From an abstraction, object-oriented technology has reached a class reuse (code reuse), which is encapsulated in units. Such reuse granularity is still too small, not sufficient to resolve heterogeneous interoperability and higher efficiency. The component refers to an extent of the abstraction to a higher level, which is a combination of a set of classes and represents a specific service of one or more functions, and provides users with multiple interfaces. The entire component hides the specific implementation and serves only using the interface. Thus, at different levels, both the components can combine a plurality of logical logic of the bottom layer into new components with large particle size, even directly to a system, enable the reuse of the module from the code level, object level, and architecture level to The system level may be implemented, so that the software is like hardware, the dream that can be equipped with a fixed system is achieved.
Form development technologies in circulation applications more advantages over traditional software development technology
The component is the "constructive material" of the application. They provide a range of dispersed operations, which are used once again. Any given application can contain a lot of components that provide special business logic functions or user interface features. Take a database application as an example: You may contain many user interface components on the window of the data, and provide buttons, menus, tables, and more. There may also be many commercial logic components to provide data confirmation and computing functions, and some components write data to the database. Finally, in order to view the form in the window or for printing, you can create some components from the data to be reported. Informationization has made great changes in domestic circulation enterprises, which is mainly reflected in procurement costs, sales costs, storage costs and distribution costs. The decrease in these four costs makes circulation enterprises first have cost advantages. The company will give this part of the cost by cutting the price to the customer, and there is fundamentally enhanced their competitive advantage.
The development model of traditional software development technology determines that the software products it developed can only be adapted to the development at the time of management. With the development of informationization, the information demand in the circulation industry is also increasing and changing, so traditional Software is difficult to adapt to management and application requirements under the new situation. However, component development technologies are based on continuous improvement in applications. When they continue to adapt in variations, they can quickly convert demand to software implementation in new needs.