component-based-software-engineeringSoftware components are often deployed using a third-party composition independently. This requires standards for connection in a component model and is considered the backbone of it. It also includes standards for communication and data exchange among components from different component. Moreover, the other components comprise of the following elements.

  • Interfaces
  • Naming
  • Meta data
  • Customization
  • Composition
  • Evolution
  • Deployment

However, there could be some specific standards for some domain-specific features. A Proper threading model and certain mechanisms for synchronization are required with concurrent activities. In a distributed system some standards related to security and remote triggering are also required. Similarly, for business related application, standards related to transaction services and database management are required.

Interfaces

Software reuse is the main goal of using software component. There are two types of software reuse. In addition, the Interfaces should be unique in its identity.

White-box reuse – In White-box re-use, software components can be implemented, reused, and modified. In addition, they form the basis for object-oriented framework as they are completely available.

Black-box reuse – In Black-Box reuse, the re-use is done through composition.

Naming

Naming is very important and any sort of clash should be avoided. A clash could happen if you assign the same name for two or more different components. In order to make sure the name does not clash, you should use a standardized naming schema for the same. Naming schema constitutes an important part of the component model and uses unique identifiers and hierarchical namespaces.

Meta Data

Meta data means information about the data. Here, Meta data means the information about the interfaces, components, and their relationships. The information provided is very important for various programs and composition tools as they form the backbone for method invocations remotely and scripting. Meta data are well used within a component model as it describes the implementation of the Meta data for certain dedicated services. However, there are different ways of providing the Meta data, including the interface and various repositories like of CORBA.

Interoperability

Interoperability allows exchange of data between the components from different vendors connected together. This connection should be highly secured through a well-defined communication channel. Thus, it forms a central zone of any component model.

Customization

All the above-mentioned points, including Interoperability, Interfaces, etc. form the basis for the Customization. Customization is adapting to the component prior to its implementation or installation. Implementation is not exposed, as it uses the Black-Box technique for components. However, components can be designed only if the interface is clear. The customization allows modifications of the properties through a deployment tool. In addition, you can also modify complex behaviour by comparing with the parameters of other components.

Composition

The previously discussed points form the basis of composition as well. It includes combining of two or more software components to produce a new component characteristic. The standards for component composition includes substituting and inserting components within an existing structure, thus have a provision for large structures.

Evolution Support

This helps in evaluating the system performance. The server components have to be updated for newer functionalities. In addition, a newer version might have a newer or modified interface rather than having a different implementation. Such versions need to be replaced with the new one, whenever they are available. However, the clients relying on the older versions should be least affected with this. A system might also have new version of certain component and might have an old version of another. Thus, standards for Evolution support are equally important and required.

Packaging and Deployment

With the availability of various standards for component model and the higher bandwidth for the Internet, the deployment technique is changing. With this, constructing an application will require only small components. With fast Internet, one can easily download the components package.

You may also like: Software Component Model Classification Framework and Process