Component Based Development

In the coming years about 70 % of all important IT developments will be realised by using pre-defined building blocks. "

Predictions of the Gartner Group

The component concept is often used very imprecisely in the software development domain. In order to benefit from all that a Component Based Development scheme can yield, it is necessary to follow a series of rules that will be described shortly hereafter.

We start with a definition : A software component is an independently deliverable piece of functionality which provides access to its services through interfaces. (Alan W. BROWN, Large-scale Component Based Development)

More particularly a component owns

  • a specification
  • one or more implementations
  • one or more deployments

Without going into the intricacies of the system let us just mention that an application accesses the functionality of a component only through the component specifications ; the implementation is completely encapsulated, which allows for a secure and consistent structuring of the systems.

This definition may look simple, but a CBD type approach nevertheless requires the use of many skills and a long learning curve. At CompoSys we have spent 10 years in research and innovation in this particular domain; our first operational large-scale developments show us now which concepts really work and those that only look as though they might work. This is the prerequisite for guiding our customers towards an efficient implementation of the complete methodology, while realising one or several of the following activities :

  • Show how the UML approach allows for analysing the IT requirements of the customer and thus defines the components that are necessary for the application
  • Establish an organisation that is compatible with the development methodology
  • Clearly describe the conditions for defining precise component specifications
  • Create a consistent component architecture framework
  • Define the rules that must be applied during the implementation phase
  • On request develop components that are compliant with previously defined specifications or look for such components in existing component catalogues, keeping in mind that these components must be compatible with the selected component development meth-odology
  • Install a Component Execution Environment (CEE)
  • Completely develop a "turnkey project", using a component approach
  • Educate our customers on all aspects that are vitally important during the specification, implementation and deployment phases of a CBD project

To conclude it is important to note that, in case of a new development, the component based approach is obviously the most efficient way for integrating the resulting application into a Service Oriented Architecture (SOA).