Characteristics of Components in Conponent-based Computing or Component-based Software Engineering




 Characteristics of components

·         Standardized: Component standardization means that a component that is used in a CBSE process has to conform to some standardized component model. This model may define component interfaces, component meta-data, documentation, composition and deployment.

·         Independent: A component should be independent – it should be possible to compose and deploy it without having to use other specific components. In situations where the component needs externally provided services, these should be explicitly set out in a ‘requires’ interface specification.

·         Composable: For a component to be composable, all external interactions must take place through publicly defined interfaces. In addition, it must provide external access to information about itself such as its methods and attributes.

·         Deployable: To be deployable, a component has to be self-contained and must be able to operate as a stand-alone entity on some component platform that implements the component model. This usually means that the component is a binary component that does not have to be compiled before it is deployed.

·         Communicate: With regard to system-wide co-ordination, components communicate with each other via interfaces. When a component offers services to the rest of the system, it adopts a provided interface that specifies the services that other components can utilize, and how they can do so. This interface can be seen as a signature of the component - the client does not need to know about the inner workings of the component (implementation) in order to make use of it. This principle results in components referred to as encapsulated.

·         Substitutable: Another important attribute of components is that they are substitutable, so that a component can replace another (at design time or run-time), if the successor component meets the requirements of the initial component (expressed via the interfaces). Consequently, components can be replaced with either an updated version or an alternative without breaking the system in which the component operates.

·         Reusable: Reusability is an important characteristic of a high-quality software component. Programmers should design and implement software components in such a way that many different programs can reuse them. Furthermore, component-based usability testing should be considered when software components directly interact with users. It takes significant effort and awareness to write a software component that is effectively reusable. The component needs to be:
i.                    fully documented
ii.                  thoroughly tested
a.       robust - with comprehensive input-validity checking
iii.                designed with an awareness that it will be put to unforeseen uses
·         Documented: Components have to be fully documented so that potential users of the component can decide whether or not they meet their needs. The syntax and, ideally, the semantics of all component interfaces have to be specified.

Comments

Popular posts from this blog

How to fill your IT SIWES Logbook for Industrial Training (A guide for Nigerian Undergraduates)

How to fill your IT documents - SCARF form or SP1 form

A Seminar on Component Based Computing; Component based Software Engineering