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
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.
“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
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
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.
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!
- Remove Complexity
- Rapid Assembly
- Well Defined Software Architecture
Cons!
- Costly Development and Maintenance
- Difficulty in QA
QA: Quality Assurance
*Slides contain images from 9gag.