Component library
Author: Yu Jia
Email: jia_yu@263.net
[All rights reserved of any form of copying and reference must be licensed]
Software reuse is a huge potential for improving the development efficiency and software quality. One of the current hotspots is to provide a qualified component, and it is also possible to say that software reuse can be implemented by appropriate use component libraries. With the support of component library, software engineers should be able to "take advantage of the family" to avoid developing existing software.
I. Role of component library
If the software multiplex is "the commitness of ideas and outcomes between software" "(software engineer exchange ideas and results), the component library except for storage and management components (the role of ordinary database), the key is in components The creator and the user raised a bridge of "understanding component meanings".
Figure 1 "Bridge" role in component library
In FIG. 1, Design Model is a designer's description of the component, for the same components, different designers may adopt different design models; use model is obtained by the user through component library Understanding the components, the same component intellectual model may produce different usage models for different users; the component intelligence model is a method of designing model and use model exchange and transformation of the component library, which is unified. Understanding and representation of components, reduce component design models and use models.
Therefore, the nature of the component library is how to establish a component's intellectual model, thereby expressing the semantics of the component with an accurate method, so that the components in the CBD can obtain correct understanding and multiplexing.
CBSE / CBD is a bridge-centric development model-centric development model, and component libraries are bridges in the field engineering and application engineering. The component library system is of course a type of database management system. It has the basic features and functions of the database. In order to develop components that are provided to components, component library management systems must be able to store components and components:
Semantic Description of Components: Describe component functionality and use, precisely defining components of components;
Classification of components: clustering of the same features as components;
The form of the component: the type of component, the generalized member including classes, class trees, frames, modules, etc.; the technical environment of the component, including the development tool, configuration method, and deployment environment, etc .; components form: including source code, Secondary code, etc.
The status of the component: version, the properties of the related components, etc.
In order to manage and maintain component information, the component library management system must provide the following operations:
INSERTION: Mainly the test and authentication method of components, only qualified components can be added to the component;
Retrieval: Also on the need for components, unlike the general database, component matching usually does not receive a fully satisfactory component, which needs to satisfy the demand by adaptation or similar components; Different particle size, demand decomposition and component synthesis is two methods of cooperation.
Other component library management means: Remove, backup, user registration, and access control, use tracking and statistical analysis, connection of the heterogeneous member library, etc.
[Example 1] There is the following attributes in the registration form of the blue bird component:
(1) Name: Each component must have a determined name, which must completely identify the nature of the component. Such as stack, resource manager and so on; (2) Author: namely produced or provided the component unit or person's name, contact address and other related information;
(3) Date of production: the completion date of component production;
(4) The date of the warehouse: that is, the component enters the component library;
(5) Version number: The component is the corresponding version number in a set of component evolution series;
(6) Use the environment: The hardware and software platform must be provided when using (including understanding / assembly / modification). Such as required for specific hardware environments, operating systems, database platforms, and network environments;
(7) Application field: The name of the application area (and its subsequent field) that is originally or may be used. Such as MIS, CAI, etc .;
(8) Use: The role of this component is played in the field being applied;
(9) Function: The software function set provided in the original or possible software system;
(10) Representation: i.e., the language form or media used to describe the contents of the component. The programming language used by the source code component, and the like.
(11) Form: The composition of the component and its relationship thereof. Such as classes, class trees, frames, modules, etc.
(12) Hierarchy: The component is an abstract level relative to the stage of the software development process. Such as analysis, design, encoding, etc.
(13) Context Environment: The program-level context environment that the component must provide when the system is assembled.
(14) Size: The size of the member.
(15) Creative tool: that is, the software tool used by the component is produced when the component is produced.
It can be seen that the focus of component library theory research is that component classification and retrieval, that is, research component classification strategy, organizational mode, retrieval means, and component similarity analysis.
II. Classification method of component library
Research on the classification and retrieval mechanism of components has always been hot spots in component library research. There are many ways, from components, it can be divided into three categories of artificial intelligence methods, hypertext methods and information scientific methods; and based on complexity and retrieval Different, it can be divided into text-based, lexical-based descriptors and protocol-based coding and retrieval. Information scientific methods are a class of successful applications in the actual multiplexing project, and several methods for enumeration, perspective, attribute value, keyword, keyword, and text, the most famous enumeration mode is the most famous enumeration mode. 1876 Melvil Deways DEWAY DECIMAL CLASASSIFICATION (DDC), Hierarchical Classification Schemes is another common classification method, which divides each topic into multiple partitions with "natural" or "logical" approach Together, you can cluster similar topics entry items.
Usually a component library must include a set of catalogs, a collection of items (entry), the basic requirements for component libraries, as follows:
Flexible: The catalog should be able to change, maintain the timeliness of the content;
Completeness: The catalog must be complete, that is, the entry can not be omission; Accessible: All items must be found quickly and easily;
Economic rationality: Create and maintenance catalogs require small investment than generating components;
Details: Details of the components as described above.
The classification of the component is the organization of the catalog, that is, divided into different categories. In general, the purpose of classification is to "put relevant entries from generally arranged into a reasonable queue, and the ultimate goal of the classification system is to guide the information required."
The decision classification mode has the following three factors:
Logical Arrangement: The division of any classification system, potential topic has always been a difficult problem;
Dimension: Linear classification (eg, library) dimension is a simple one-dimensional, it cannot meet the requirements of complex systems, and the current mainstream technology is a multi-dimensional classification system covering multiple mains;
Evolution: For most classification modes, the cost of the reorganization classification theme is very large.
III. Technical principle of component library
Component libraries typically involve one or more specific applications (DOMAIN), and the component library on the domain problem must have the following three conditions:
Domain completion: For component libraries in a certain field, the concept of expression must cover the entire field, that is, the components that are not belonging to this field cannot be processed;
Domain Abstract: Components must be organized according to a set of key abstract concepts;
Domain Standard: Components must be designed in accordance with the domain standards.
Common components library description languages include MODULA-2, ADA, and Eiffel, analyzing them to find the following commonality:
Statute and implementation: the functional interface for the implementation of components;
Unified component interface: naming of operation and components follows the standard of unified;
Features: Each component is as fully as possible to use the possible functions.
Faceted classification method The keyword (term) is placed in a certain context, and the components are classified from different perspectives (faces) reflecting the nature of the components. There is a set of terms (keywords) in each surface, and the terms are structuralized in terms of the general specific relationship and synonym relationship. The description of the component is only selected among a given perspective, and the multi-entries can help multiplexers in the terms space, and the term space can be evolved.
[Example 2] There are currently five facets of the blue bird component library:
l Use the environment (Application Enviroment);
l Application domain;
l functionality;
L level (Level of abstraction);
l Representation.
IV. Retrieval of component library
Component retrieval includes a Publication and dissemination, which allows users to know and understand the promotional activities of components through a certain approach, and the object published is the internal, Beta user or the entire market. The propagation of components allows users to get components via Internet or other business means. Current search techniques include retrieved, compared to the ENUMERATED CLASSIFICATION, Search (FACE-based), free-text indexing, and related database retrieval technologies, etc., However, there is currently no recognized efficient and flexible search method. V. Practice of component library
The reusable component library is used as the management software component and the core mechanism to facilitate software multiplexing, which will be integrated based on multiplexed development and multiplexing development processes and tools in a unified framework. The US military and the government have established a plurality of large component library systems such as CARDS, Asset and DSRS.