Component Based Software Engineering

Why Component based Software Engineering?

Why CBSE?

  • CBSE increases quality, especially evolvability and maintainability
  • CBSE increases productivity
  • CBSE shortens development time

Component-based development

  • Component-based software engineering (CBSE) is an approach to software development that relies on software reuse.
  • CBSE emerged from the failure of object-oriented development. Single object classes are too detailed and specific.
  • Components are more abstract than objects and classes. Thus, they can be considered to be stand-alone service providers.
  • CBSE requires knowledge, careful planning, and methodological support.

CBSE and design principles

  • Components are independent
  • Component implementations are hidden
  • Communication is through well-defined interfaces
  • Component platforms are shared and reduce development costs.

CBSE problems

  • Component trustworthiness – how can a component with no available source code be trusted?
  • Component certification – who will certify the quality of components?
  • Property prediction – how can the emergent properties of component compositions be predicted?
  • Component Dependability – how do we handle components which depend on other components or systems to work properly

The CBSE process

  • When reusing components, it is essential to make trade-offs between ideal requirements and the services actually provided by available components
  • This involves:

–Developing outline requirements

Searching for components then modifying requirements according to available functionality.

Searching again to find if there are better components that meet the revised requirements.

Domain Engineering

  1. Define the domain to be investigated.
  2. Categorize the items extracted from the domain.
  3. Collect a representative sample of applications in the domain
  4. Analyze each application in the sample.
  5. Develop an analysis model for the objects.

CBSE Activities

  • Component qualification
  • Component adaptation
  • Component composition

Qualification

  • application programming interface (API)
  • development and integration tools required by the component
  • run-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocol
  • service requirements including operating system interfaces and support from other components
  • security features including access controls and authentication protocol
  • exception handling

Adaptation

The implication of easy integration is:

  • resource management have been implemented for all components in the library
  • data management exist for all components
  • interfaces within the architecture and with the external environment have been implemented in a consistent manner.

Composition

  • An infrastructure must be established to bind components together
  • Architectural ingredients for composition include:

–Data exchange model

–Structured storage

–Underlying object model

Managing quality in CBSE

  • Approach A: left to the designers
  • Approach B: model provides standardized facilities for managing qualities
  • Approach C: component only addresses functionality, quality in surrounding container
  • Approach D: similar to C, but container interacts with platform on quality issues

Common features of component models

  • Infrastructure mechanisms, for binding, execution, etc
  • Instantiation
  • Binding (design time, compile time, …)
  • Mechanisms for communication between components
  • Discovery of components
  • Announcement of component capabilities (interfaces)
  • Development support
  • Language independence
  • Platform independence
  • Analysis support
  • Support for upgrading and extension
  • Support for quality properties

 

Scroll to Top