What is a component?
Author: Yu Jia
Email: jia_yu@263.net
[All rights reserved of any form of copying and reference must be licensed]
To understand the principle of CBD (component-based development, component-based software development), you must first figure out what is component (Component, also translated into components). This problem seems to be simple, but one of the most difficult answers in the CBD, because the contents of the components are very rich, and the CBD is in a development stage, so there are many unscrupulous components, and there are many easily confused. Concepts, such as objects, middleware, framework, Subsystem, COTS, product line, the following is some of the aperators and practitioners from different angles, different levels to components view.
First, the descriptive definition of components
(1) The famous Brown and Wallnau Description Components are "an unmineral, almost independent, replaceable system components, which realize a clear function in defining a perfect architecture environment" (a NontriVial, Nearly Independent And Replaceable Part of a System That Fulfils a Clear Function In The Context of A Well Defined Architecture. At the same time, they further believe that software components can only be "a Unit of Composition With Contractual Specified and Explicit Context Dependencies Only").
(2) CLEMENS believes that the component is a separately deployed unit, a third-party synthetic unit, a state in which the component does not consistency (A Component is a unit of independent deployment .a component is a unit of third-part composition. A Component Has No Persistent State). [See "What is the component, isn't it?
(3) Omg definition is more popular, detailed, written in Modeling Language Specification (Revision 1.3): The component is a physical, replaceable system component, which is packaged, and provides a set of interfaces. Implementation. The component represents a physical segment of the system implementation, including software code (source code, binary code, or executable code), or equivalent, such as a script or command file. From it, the component itself must be compatible with the interface and implements the interface, and the interface represents the services implemented by the components within the component. These services define a integrated behavior that supplies from some component instances to other client components instances. In UML, the component is a classifier, which is a gathering of modeling components, which may implement an interface, have executable behavior and state, reside on one node during execution.
(4) Gartner Group Definition: The runtime software component is a dynamically bound, including a package that contains one or more programs, which is managed and accessed by the independent unit, managed and accessed by running. A Runtime Software Component Is A Dynamical Bindable Package Of One or More Programs Managed As a Unit and Accessed Through Documented At Runtime.). (5) Bertrandmeyer defines seven conditions of the component.
a. Perhaps it is used by other software components (customers).
b. Perhaps the customer's use does not interfere with the developer of the component.
c. All descriptions (hard software platforms, versions, other components) have been included.
d. Includes it to provide a precise description of the function.
e. Description is the only basis for it.
f. It can be synthesized with other components.
g. Can be integrated to the system quickly and smoothly.
Second, the theoretical model of components
In theory, there has been no argumentation of component models, and representative theoretical models include:
(1) 3C model
The 3C model is a component model that has a guided action in academic community. This model describes the components from three different aspects of concept (Content), Contents, and Contexts.
* Concepts Abstract Description of "What is made", can understand the functionality of the component by concept. The concept includes interface statutes and semantics descriptions;
* The specific implementation of the content concept, describes how the components complete the function of the concept;
* Contextual components and peripheral environments are in conceptual level and content level. The application environment of the contextual scratching member provides guidance for the selection and adaptive modification of the components.
(2) Reboot model (surface model)
The Reboot model is based on an expanded classification and retrieval model of existing soft components, and selects the soft component properties from each angle, the Facet.
(3) Bluebird model
Beijing University Bluebird Project defines the component model in three perspectives (form, hierarchy and representation) and nine aspects.
(1) Concept: Abstract description of the component function.
(2) Operational Statute: It is used to refer to the service provided by the components and can be requested.
(3) Interface: The external behavior description of the component is given.
(4) Type: Used to define "What value can be used as operational parameters".
(5) Implementation: This is the specific implementation part of the component, and is the system actually completed the requested service.
(6) Composition of components: Component Composition System.
(7) Component properties: Indicate the morphology, hierarchy and representation of the components.
(8) Components Note: Other properties associated with the component library.
(9) Components Sight: Describe the soft, hardware usage environment and implementation dependence of the component.
The broccoli component model is more concerned about the easy-comprehensibility, encapsulation and relationship between the components. By providing a clear external interface to the external interface to achieve the separation of the service provider and its service requestors, more care components and their users Interaction, especially the meaningful part of the components.