Concept, objectives and significance of component development methods
Author: Yu Jia
Email: jia_yu@263.net
[All rights reserved of any form of copying and reference must be licensed]
Component-based development, Component-based Software Engineering, component-based software engineering is a new model of software development, which is supported by a certain component model. One or more software components in the component library, the process of constructing the application software system is constructed by combined means of high efficiency, high quality, [brown00]. Since the technology-based components based on distributed objects are increasingly mature, CBD has become a research hotspot in today's software reuse practices, and is considered to be one of the most potential software engineering development directions.
First, basic concept
Some concepts related to this article are briefly described below, including components, interfaces, contracts, interface description languages, component frameworks, etc., and also introduce the development model of CBD, and the relationship between component technology and object technology.
In the literature [szyperski97], SZYPERSKI defines the component as "software component is a structural unit with only specific contract interfaces and explicit context", and he also wrote: "Software components can be deployed independently, easy to integrate third-party integration "
According to this view, it can be considered that the component is defined by one to define its specifications, and is implemented by the other party and then supplies third-party use. Interface is a connection channel that is interactively interacts with components. The third party can only understand and multiplex components through the specifications of the component interface, and the interface specifications are also a "contract", which is enough to accurately describe the component implementation The function is not limited to the unique implementation method, which is unsure to bring a multi-solution flexibility. On the other hand, although the component can be deployed independently, a component may be used in other components or platforms, or a component-based software system is usually a plurality of components collaboration to complete certain functions, so the component is dependent on the assembly environment. Or context.
Component infrastructure is the standard and communication platform of interoperability interoperability, and the component framework is a support structure of the component instance "plug". By certain environmental conditions and interaction rules, the component frame allows a set of components to form an "island", independently interact with external components or other frameworks, so that the member frame and its internal components can also be considered as a member, thus The components constitute a structural complex application system through constant iterations and synthesis. At present, many organizations and companies have developed the standards of component infrastructure or have developed related products, which also established models and technical specifications for components, component frameworks and interfaces, where OMG CORBA [OMG01], Microsoft COM / DCOM (or. NET) [Microsoft01, Box99] and Sun JavaBean / EJB [Perrone01] dominate, this sixth chapter will focus on the CORBA CCM (CORBA Component Model) component model and introduce the evolutionary component model based on CCM technology.
In particular, by purchasing a third-party member, a COTS (COMMERCIAL OFF-The-shelf, referred to as a COTS) member is used as a corresponding concept of an internal (in-house) member. Using COTS is a complete black box for passive code, there is a low cost, i.e., the advantage of buying, and does not necessarily meet the risk of demand or miscate. CBD follows the development philosophy of "Buy, Don't Build" [Clements95], allowing people to prepare steering software assemblies from the "Build from Scratch). Component-based development tasks include creation, retrieval, assembly, assembly, testing, and verification, configuration, and deployment, maintenance, and evolution, and the main activities of the Heritage System (Legacy), The method in the traditional life cycle is not the same. First, the CBD uses a component library-centric development model, component retrieval and evaluation of a key task of CBD. Here we understand the component library is not just a separate database, but a wide range of components resources available. In particular, software components released through the Internet. Second, component formation is a assembly process in software architecture, that is, in the application domain, DSSA needs to assemble independent components into a complete application system, and the matching and consistency verification of the visible components also becomes CBD. Key tasks. Again, in the CBD process requires the same technical standardization, the same components may be produced by multiple software vendors, used by multiple users, so component interface, component infrastructure must be standardized. Finally, the CBD needs to be configured, that is, the relevant matters of the integration, configuration, and distribution of the component, so that the configuration, adaptation, and deployment of the component are critical tasks for the CBD.
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) [Petre00], followed by multiplexing strategies, 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 in accordance with appropriate interface packaging ( After Wrap), becomes a component, and a component is usually a collection of multiple objects.
Today, component technology has become one of the basic components of the computing environment. Many middleware products and development tools provide the implementation of different component models, especially in distributed, enterprise application software systems, no software component components Single way to resolve maintenance, expansion, and upgrades. However, although the industry has existed a large number of CBD concepts, methods and tools, the software industry is not fully migrated to the CBD software development model, one is the lack of ripe CBD development methodology, so far solved the key problems yet [ Bergner99]:
l You must establish a perfect CBD concept framework, define the formal model of component-related concepts with mathematical methods, both as simple as possible, and it is sufficient to describe the basic concepts and development technologies of existing components.
l Must have a practical component description method and technology. Based on the component concept framework, a special language of the component developer, such as the text description technique of UML [Booch01] and the text description technology of CORBA IDL [OMG01], and ideal description technology can provide system consistent constraints. And correctness verification. l To establish a reasonable process model for CBD development processes, especially to study how to allocate corresponding tasks for developers of different roles, such as software architect responsibility and results acceptance standards for software architects.
l To support the auxiliary development tools for describing techniques and process models, at least there is at least a tool for developing components, implementing an application system and generating documents. The ideal development tool also includes a validation tool for critical system features.
Extending, the above problems and the software multiplexing purposes and tasks described above are closely related to the understanding of the software multiplexing, and the problems existing in the CBD method are highly analyzed. The focus is to use knowledge representation methods and evolution calculation methods to solve the semantic model of components and Automated process issues, including components, component architectures, and description languages, and components based on components.
Second, CBSE / CBD engineering objectives
The engineering (management) target of CBSE / CBD is as follows:
(1) Reduce the cost: This is a common goal of all software development methods, and CBSE / CBD improves cost efficiency to the highest realm of software multiplexing methods.
(2) Convenient assembly: The maximum feature of CBSE / CBD is the assembly process of a series of components.
(3) Improvement of reuse: Comprehensively consider the multiplex potential of components in multiple applications.
(4) Improve customability and adaptability: Developers can configure components on demand;
(5) Improve maintainability: Easy to add, delete and modify components in the system.
Third, CBSE / CBD technology objectives
The technical objectives of the CBSE / CBD are as follows:
(1) Reduce coupling: the correlation between coupling components;
(2) Improve the correlation between elements in the internal polyfin component;
(3) Control granularity: the scale of components in the granular system, including the number of components and two aspects of the size;
Fourth, CBSE / CBD research direction
Research direction of CBSE / CBD:
(1) Conceptual model process model based on component software engineering method;
(2) Component model: The relationship between the essential characteristics and components of the study components;
(3) Components acquisition: Animal component production and excavation of extracting components from existing systems;
(4) Components Description Language: Based on the component model, solve the precise description, understanding and assembly of components;
(5) component library (component classification and retrieval): Research component classification strategy, organizational model and retrieval strategy, establish component library system, support component effective management;
(6) Component Integrated Assembly: Based on the component model, the component assembly mechanism is studied, including the source code level assembly and the operating level assembly of component object interoperability;
(7) Standardization: The standardization of component models and the standardization of component library systems; (8) security issues and time-Time of component systems;
(9) The impact of non-technical factors on CBD: challenges and strategies in laws, regulations, business practices, organizational structures.
references:
[Brown00]
A. Brown. Large-scale Component-Based Development. New Jersey: Prentice Hall, Inc., 2000.
[Szyperski97]
C. Szyperski. Component Software-Beyond Oo Programming. Addison-Wesley, 1997
[Omg01]
OMG CORBA, http://www.corba.org, 2001
[Microsoft01]
Microsoft Corporation, http://www.microsoft.com/com, 2001
[Box99]
Don Box, Essential COM, Addison-Wesley, ISBN 0-201-63446-5, 1999
[Perrone01]
Paul J. Perrone, ET Al. J2EE Build Enterprise System - Expert Solution. Beijing: Tsinghua University Press, 2001
[Clements95]
P.c. Clements, from Subroutines To Subsystems: Component Based Software Development. American Programmer, Vol. 8, No. 11, November 1995.
[Petre00]
Luigia Petre. Components vs. Objects. Turku Center For Computer Science, Tucs Technical Reports, NO 370, October 2000
[Bergner99]
Klaus Bergner, Marc Sihling, Alexander Vilbig. Componentware - Methodology and Process, 19th March 1999
[Booch01]
Grady Booch, James Rumbaugh, Ivar Jacobson. Shao Weizhong, Ma Zhiyi, Zhang Wenjuan, Meng Xiangwen Translation, UML User Guide, Machinery Industry Press, 2001.6