Component based development, software
components

Componentization

About SOA and CBD

Advantages

Platforms

Our Approach

White Paper and Specifications

CBD Resources

About us

Contact us


About Component-Based Development

The "Componentization" of Software

The essence of a "component", is the encapsulation of business logic or technical functionality which admits a standard interface. Any platform which supports components offers the possibility of building software applications by bolting together software components in an analogous fashion to how electronic devices are built up from electronic components. This approach applied to software development is referred to as component based development. Moreover, Component based development (CBD) consisting of developing software applications from loosely coupled components has the following distinct advantages:

  1. Software Reuse - Encourages higher level of software reuse
  2. Simplifies Testing - Allows testing to be carried out by first testing each of the components before testing the assembly of components
  3. Simplifies system maintenance and modification - Since each of the components are loosely coupled you are free to upgrade and/or add components as needed without effecting other parts of the system.
  4. Higher Quality - Since a component can be built and then continuously improved upon by an expert or organization the quality of a component based application will improve over time.

Buy vs Build

By adopting a component based development approach you will have the option of buying off-the-shelf components from third parties rather than developing the same functionality inhouse. By using this option appropriately to purchase generic functionality you will also gain from:

  1. Shorten Development Cycles - The addition of a given piece of functionality will take days rather than months or even years.
  2. Greater ROI - Significant savings can be gained through purchasing software components rather than developing the same functionality inhouse.
  3. Enhanced Functionality - In order to use a component containing a given piece of functionality you only need to understand its nature, not its internal details or how it can be implemented as a piece of software. Therefore, functionality which would be impractical to implement inhouse now becomes a distinct possibility.

Industry Views


". . . the Industrial Revolution of software is finally upon us. Specialization of resources, standards for interchangeable parts, and streamlined assembly tools have been used in other industries for hundreds of years to speed the development of highly complex products. Despite their ubiquity, application of these concepts to the modern software industry is just beginning."

Bill Gates, Chairman and Chief Software Architect, Microsoft, 1997.

© 1999-2005 WebCab Components. All rights reserved.