Professional Documents
Culture Documents
Software Is Becoming Very Expensive:: A Possible Way To Reduce Cost
Software Is Becoming Very Expensive:: A Possible Way To Reduce Cost
Specification
Design
Code
Test cases
At the most abstract level:
knowledge
4
Reuse of Knowledge
More difficult compared to day-
to-day reuse of knowledge:
developers vary over time and
over projects
difficult to remember details of
potentially reusable development
knowledge.
5
Why almost no software reuse
so far?
Engineers working in industry often
have a frustrated feeling:
current system is similar to last few
systems they have already built
everything is being built from scratch
current system is behind schedule:
no one has time to figure out what this
similarity really means.
6
Another complaint
In spite of having software
components available for reuse:
programmers have preferred to
create their own, because:
available components are difficult
to understand
difficult to adapt to new application
7
Basic Issues in
Software Reuse
Component creation
Component indexing
Search
Understanding
Adaptation
Repository maintenance
8
Basic Issues
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.
9
Basic Issues
Search:
search for right components
in a database of components
requires a proper method to
describe components
10
Basic Issues
Understanding:
to decide whether we can use
some component
we need a precise and
sufficiently complete
understanding of what the
component does.
11
Basic Issues
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
12
Basic Issues
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
13
Domain analysis
Aim:
identify reusable
components for a problem
domain.
identification of right kind of
reusable information is a
difficult problem. 14
Domain analysis
Domain analysis identifies:
objects, operations and
relationship among them.
Consider airline reservation:
objects are
seats, flights, airports, crew, meal
orders
Operations are
scheduling a flight, reserving a
seat, assigning a crew to a flight,
etc. 15
Domain analysis
Analysis of an application
domain:
to identify the reusable
components
Actual construction of reusable
components for a domain
is called domain engineering.
16
Reuse at organization level
17
Reuse at organization level
18
Summary
Basic issues in reuse:
Component creation
Component indexing
Search
Understanding
Adaptation
Repository maintenance
19
Summary
Creation of highly reusable
components is a very difficult
problem
a promising approach is domain
analysis
Domain analysis:
aims to identify reusable
components for a problem domain
20
Summary
Application generators:
translate specifications into
application programs.
facilitate reuse
not very flexible, if new concepts
need to be supported.
21
Summary
Reuse at organization level
assess product’s potential for
reuse
refine product for greater
reusability
integrate product with reuse
repository
22