CBSE

Component Based Software Engineering

Nootan Ghimire / @nootanghimire
Raju Dawadi / @dwdraju
Shreeram Chaulagain / @shramrahul

Visualising Components

What are components?

Question!

Hav yuh luk inside komputer?

GIF of RAM Burning, CPU Burning.
Aaaaarrrrgh!!
OpenCPU

Check for the damaged component

Components! ForTheWin

Be happy

What IS CBSE?

Software Development based on the idea of:
  • re-usability
  • Using standalone entities
  • rapid maintainance

Components?

Confused!
“A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to composition standard.” - Council and Heinmann

Components are:

  1. Implemented as program units
  2. Self-contained System
  3. Independently Deployable and Composable
  4. Loosely Coupled

Design Principles

  • Independent
  • Hidden Implementation Complexity
  • Well Defined Interfaces

Standards

Needs to be Defined for

  • Inter-operability


Examples:

  • Java Beans
  • COM and .NET
  • CORBA's CCM

too much!

But Too Much Standards has hindered to uptake of CBSE

Component Characteristics

  • Standarized
  • Independent
  • Composable
  • Deployable
  • Documented

Two Perspectives

Perspectives

Two Perspectives

  1. Implementation
  2. Architectural Abstraction

Component Model

Defines standards for component implementation, documentation and deployment

Component Model: Elements

  • Interfaces
  • Usage Information
  • Deployment and Use

Interfaces

  • Interface Definition
  • Composition
  • Specific Interface

Usage Information

  • Naming Convention
  • Meta-Data Function
  • Customization

Deployment

  • Packaging

Component Interfaces

  • Provides Interface
  • Requires Interface

Component Composition

Wiring components to create system.

  • Sequential Composition
  • Hierarchial Composition
  • Additive Composition

Technologies and Framework

  • Enforce a Component Model
  • Support Limited Range of Component Types and Interaction among them
Componenet!
EJB .NET WaterBeans

CBSE Process

  • Requirement Analysis
  • Development
  • Certification
  • Customization
  • System Architecture Design and Integration
  • System Testing

Pros and Cons

Pros!

  • Remove Complexity
  • Rapid Assembly
  • Well Defined Software Architecture

Cons!

  • Costly Development and Maintenance
  • Difficulty in QA

Thank You!