Computer 10: Lesson 10 - Online Crimes and Hazards
Presentation on component based software engineering(cbse)
1. PRESENTATION ON
COMPONENT BASED SOFTWARE ENGINEERING
Presented by:
Chaitanya Pratap Singh
MCA (4th semester)
South Asian University, New Delhi, India
2. OVERVIEW
Introduction
What is Component
Component characteristics
Fundamental Principals
Terms & Attributes used in Software Component Model
Component Based Software Development
Life Cycle in CBSD
Metric used in CBSD
Benefits in CBSD
Difficulties in CBSD
CBSE vs. Traditional SE
Current Component Technologies
Applications
Conclusion
3. INTRODUCTION
CBSE embodies the “the ‘buy, don’t build’
philosophy".
Because of the extensive uses of components, the
Component- Based Software Engineering (CBSE)
process is quite different from that of the traditional
waterfall approach.
It emphasizes on developing new software from
pre-built components.
4. WHAT IS COMPONENT
A component is an independent software unit that
can be composed with other components to create
a software system.
Council and Heineman define a component as:
“ A software element that conforms to a component
model and can be independently deployed and
composed without modification accordingly to a
composition standard”
5. COMPONENT CHARACTERISTICS
Independent: A component should be independent
Composable: It means that all external interactions
must take place through publicly defined interfaces.
Deployable: A component has to be self-contained
and must be able to operate as a stand-alone entity
6. FUNDAMENTAL PRINCIPALS
Independent Software Development:
Large software systems are necessarily assembled
from components developed by different people.
To facilitate independent development, it is essential to
decouple developers and users of components.
Reusability:
Some parts of a large system will necessarily be
special-purpose software, it is essential to design and
assemble pre-existing components in developing new
components.
Software quality:
A component or system needs to be shown to have
desired behavior, either through logical reasoning,
tracing or testing.
7. TERMS & ATTRIBUTES USED IN SOFTWARE
COMPONENT MODEL
Syntax: It refers to the „grammar‟ or the rules
followed in the code as per the specific
programming language.
Semantics: It refers to the actual meaning and
view of the components. A component is associated
with a name, an interface and the body that
includes the code.
Composition: This relates to the construction and
working together of components.
8. COMPONENT BASED SOFTWARE DEVELOPMENT
Component-based software development(CBSD)
approach is based on the idea to develop software
systems by selecting appropriate off-the-shelf
components and then to assemble them with a
well-defined software architecture.
The term component-based software development
(CBD) can be referred to as the process for building
a system using components.
9. LIFE CYCLE IN COMPONENT-BASED DEVELOPMENT
Requirements analysis
Software architecture selection,
construction, analysis, and evaluation
Component identification and customization
System integration
System testing
Software maintenance
10. PHASES OF COMPONENT DEVELOPMENT
System requirements
Design the component
Develop the component
Testing
Functional or Black Box Testing,
Structural or White Box Testing
11. METRIC USED IN CBSD
Software metrics are intended to measure
software quality and performance
characteristics quantitatively encountered during the
planning and execution of software development
resource
and effort allocation, scheduling and product evaluation.
These can serve as measures of software products
for the purpose of
comparison,
cost estimation,
fault prediction and
forecasting.
12. METRIC USED IN CBSD CONT…
Poulin presented a set of metrics used by IBM to
estimate the efforts saved by reuse.
Reuse Percentage measures how much of the product
can be attributed to reuse and is given as:-
Product Reuse Percentage = (RSI / (RSI + SSI)) * 100%
Where
SSI= Shipped Source Instructions
RSI= Reused Source Instructions
13. METRIC USED IN CBSD CONT…
The second approach is a metric called Component
Reusability level (CRL) to measure particular
component‟s reuse level per application in a CBSD.
This metric is again divided into two sub-metrics.
First is CRLLOC, which is measured by using lines
of code, and is expressed as percentage as given
as:-
CRL LOC ( C ) = (Reuse ( C ) / Size ( C )) *100%
14. BENEFITS IN CBSD
Management of Complexity
Reduce Development Time
Increased Productivity
Improved Quality
Reliability is increased since the components have
previously been tested in various contexts
Maintenance costs are reduced.
Efficiency and flexibility is improved due to the fact
that components can easier be added or replaced
15. DIFFICULTIES IN CBSD
Development of Components
Quality of Components is questionable
Lack of effective software matrix
Component Maintenance Costs
Reliability and Sensitivity to changes
Unsatisfied Requirements
16. CBSE VS. TRADITIONAL SE
CBSE views the system as a set of off-the-shelf
components integrated within an appropriate
architecture.
SE seeks to create a system from scratch(building
something without tools).
CBSE does not have any standard development
models like UML for SE.
CBSE is young, therefore long term maintainability
is largely unknown.
SE can fulfill requirements more easily.
CBSE fulfillment of requirements is based on the
available components.
17. CBSE VS. TRADITIONAL SE-CONT..
CBSE Life Cycle is CBSE Waterfall
shorter. Find Requirements
Select Analysis
CBSE is less
Design
expensive
Adapt Implementation
Test Test
Deploy Release
Replace Maintenance
[3]
19. CORBA: Common Object Request Broker
Architecture
COM: Component Object Model
IDL: Interface Description Language
EJB: Enterprise JavaBeans (Java APIs)
20. APPLICATIONS
This emerging component development approach
is being widely used in various distinct domains .
21. CONCLUSION
CBSD is an inevitable next wave solution that has
potential to improve time-to-market and man
power/cost trends that have been ongoing.
CBSD is best implemented using more modern
software technologies like:
COM
JAVA
EJB
CORBA
ActiveX