What is a Component?
Written by Administrator   
Wednesday, 12 May 2004
Giving a relevant definition of the component concept is an issue which has often been dealt with in the CBSE (Component Based Software Engineering) research field. Heineman defines software component as a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard. This definition of components introduces concerns relating to composition and deployment. It will therefore not fit to some approaches within the RT (real-time) domain, in which much more basic constructs are sometime considered as components. Lee gives several examples: subroutine libraries, processes and threads, programming language primitives and their aggregates, etc. Components are considered here as distinct, reusable modules, from which the software is built. Although Heineman's definition is preferred, we do not want to exclude approaches that do not properly support deployment.

Rather than trying to define what is exactly a component, a better way may be to agree on what it does. A component will be thus defined as the basic entity on which the application is based: an application is carried out by one or more components which collaborate (i.e. interact in a “well-defined” way) in order to realize the intended overall behavior. Com-ponents often rely on a framework to perform their actions (see section 2.1.2). Although being based on a framework is not a strict requirement, a component can only be reused within the context of the framework. Therefore we consider only framework based compo-nent approaches.

Last Updated ( Monday, 18 July 2005 )