Introduction
Software is becoming very expensive:
a possible way to reduce cost:
reuse parts from previously made software.
assemble software from off-the-shelf components.
1
Advantages of reuse also include:
reduced number of defects:
standard and well-tested components are reused.
reduced development time:
provide early market access for products.
2
What can be reused?
Specification
Design
Code
Test cases
At the most abstract level:
knowledge
3
Basic Issues in Software Reuse
Component creation
Component indexing
Search
Understanding
Adaptation
Repository maintenance
4
Component creation:
Identify reusable components
Component indexing:
classification of reusable components
so that they can be easily searched when we look
for a component to reuse.
5
Search:
search for right components in a database of
components
requires a proper method to describe components
6
Understanding:
to decide whether we can use some component
we need a precise and sufficiently complete
understanding of what the component does.
7
Adaptation:
A selected component may not exactly fit the
problem at hand
Tinkering with the code is not satisfactory:
in any case justified only if thoroughly understood
8
Repository maintenance:
component entering
tracking faulty components
new applications emerge
older applications become obsolete
components might need changes
obsolete components might have to be removed
9
Domain analysis
Aim:
identify reusable components for a problem domain.
identification of right kind of reusable information is
a difficult problem.
10
Domain analysis
Analysis of an application domain:
to identify the reusable components
Actual construction of reusable components for a
domain
is called domain engineering.
11