CBSE – Component Based Software Engineering – Visualising Components



CBSE – Component Based Software Engineering – Visualising Components

0 0


cbse-presentation

Class Presentation for Component Based Software Engineering.

On Github nootanghimire / cbse-presentation

CBSE

Component Based Software Engineering

Nootan Ghimire / @nootanghimireRaju Dawadi / @dwdrajuShreeram Chaulagain / @shramrahul

Visualising Components

Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).

Question!

Hav yuh luk inside komputer?

Ask students if they have ever seen inside a computer's CPU. Ask them about different "components" that are present inside CPU, (ex. Power Supply, Processors, Bus, RAM) which are detachable. Next slide will present about examples to show why this approach is better.

Check for the damaged component

Components! ForTheWin

What IS CBSE?

Software Development based on the idea of:
  • re-usability
  • Using standalone entities
  • rapid maintainance
Intro: Components are independnet and do not interfere each other . Need not to be compiled before using with other componens. Select appropriate off-the-shelf components & assemble with a well-defined software architecture. Different from traditional approach of implementation from scratch.

Components?

“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:

Implemented as program units Self-contained System Independently Deployable and Composable Loosely Coupled Component: Self-contained partial function of system interacting with other components Independently deploy-able & compose-able units : All external interaction must take place through publicly defined interface. Loosely coupled module that denotes a single abstraction

Design Principles

  • Independent
  • Hidden Implementation Complexity
  • Well Defined Interfaces
  • Independent: Cannot Interfere with each other
  • Interfaces: Provides Communication

Standards

Needs to be Defined for

  • Inter-operability

Examples:

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

But Too Much Standards has hindered to uptake of CBSE

Impossible for components developed using different approaches to work together

Component Characteristics

  • Standarized
  • Independent
  • Composable
  • Deployable
  • Documented

Two Perspectives

Two Perspectives

Implementation Architectural Abstraction Viewed as implementations, components can be deployed, and assembled into larger (sub)systems. Viewed as architectural abstractions, components express design rules that impose a standard coordination model on all components. These design rules take the form of a component model, or a set of standards and conventions to which components must conform.

Component Model

Defines standards for component implementation, documentation and deployment

A Component Model is a deinition of standards for component implementation, documentation, and deployment.
  • Specify Design Rules in Component
  • Define standards for implementation, documentation and deployment
  • Provides services: Platform and Support

Component Model: Elements

  • Interfaces
  • Usage Information
  • Deployment and Use

Interfaces

  • Interface Definition
  • Composition
  • Specific Interface
components are Defined by specifying their interfaces. Defn should specify operation names, params and exceptions. Also should specify the Language Used in Computer Interface. Some require "Specific Interface" such as security and transaction mgmt.

Usage Information

  • Naming Convention
  • Meta-Data Function
  • Customization
Components should be uniquely identified. They must follow some naming convention.

Deployment

  • Packaging

Component Interfaces

  • Provides Interface
  • Requires Interface

Component Composition

Wiring components to create system.

  • Sequential Composition
  • Hierarchial Composition
  • Additive Composition

Sequential:compose new from existing Hierarchial:one call servies by second Add:more components form new

Technologies and Framework

  • Enforce a Component Model
  • Support Limited Range of Component Types and Interaction among them

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
QA: Quality Assurance

Thank You!

*Slides contain images from 9gag.