Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

Basic issues in Software

Reuse

Aniket Kumar (16csu039)


Anmol Arora (16csu047)
Aman Jain (16csu032)
What is software reuse?
Software reuse is the process of implementing or
updating software systems using existing software
assets.
■ The systematic development of reusable components
■ The systematic reuse of these components as building
blocks to create new system
The problem in software reuse

• Creating, maintaining, and using a


component
• Finding, understanding, and adapting
reusable
• Increased maintenance costs
• Lack of tool support
• Not-invented-here syndrome
Creating, maintaining,
and using a component
library

Populating a reusable component library


and ensuring the software developers can
use this library can be expensive.
Development processes have to be
adapted to ensure that the library is used.

4
Finding, understanding,
and adapting reusable
components
Software components have to be discovered in a
library, understood and, sometimes, adapted to
work in a new environment. Engineers must be
reasonably confident of finding a component in
the library before they include a component
search as part of their normal development
process.

5
Increased maintenance
costs
If the source code of a reused software
system or component is not available then
maintenance costs may be higher because
the reused elements of the system may
become increasingly incompatible with
system changes

6
Lack of tool support
Some software tools do not support development
with reuse. It may be difficult or impossible to
integrate these tools with a component library
system. The software process assumed by these
tools may not take reuse into account. This is
particularly true for tools that support embedded
systems engineering, less so for objectoriented
development tools.

7
Not-invented-here
syndrome
Some software engineers prefer to rewrite
components because they believe they
can improve on them. This is partly to do
with trust and partly to do with the fact
that writing original software is seen as
more challenging than reusing other
people’s software.

8
■ Organizational impediments -- e.g.,
developing, deploying, and supporting
systematically reusable software assets
requires a deep understanding of application
developer needs and business requirements.
As the number of developers and projects
employing reusable assets increases, it
becomes hard to structure an organization to
provide effective feedback loops between
these constituencies.

■ Economic impediments -- e.g., supporting
corporate-wide reusable assets requires an
economic investment, particularly if reuse
groups operate as cost-centers. Many
organizations find it hard to institute
appropriate taxation or charge-back schemes
to fund their reuse groups.
■ Administrative impediments -- e.g., it's hard to
catalog, archive, and retrieve reusable assests
across multiple business units within large
organizations. Although it's common to
scavenge small classes or functions
opportunistically from existing programs,
developers often find it hard to locate suitable
reusable assets outside of their immediate
workgroups.
Conclusion
Software reuse is proved to be an
efficient way to help improving software
development quality, productivity during
all these years’ practices. Although it is
not perfect, but is still worthy more
research effort.
Thankyou

13

You might also like