Software Maintenance: Concepts And Practice, Second Edition

In an era of competitive software marketing, if a program is good enough to be of interest to many people, it is good enough to be marketed commercially for a profit. Does this mean that the only kind of software being donated to public repositories is software of limited use to others, and therefore not worth reusing?
Aharonian [2]
This chapter aims to
Discuss the concepts of software reuse and reusability.
Explain the goals and benefits of employing reusable software components during software maintenance.
Discuss the technical and non technical issues underpinning software reuse and reusability.
Explore ways of maximising the potential of software reuse.
Discuss the use of appropriate techniques to design and construct solutions given a change request and a set of reusable components.
Explain weaknesses of current reuse techniques and possible ways of addressing these weaknesses.
The problems of low productivity and poor software quality are still commonplace within the software industry [134]. This is true of software maintenance projects in particular despite an increase in expenditure on software maintenance activities and the availability of more sophisticated methodologies, techniques and tools. One way to minimise the effects of these problems is to use previously developed software, rather than reinventing the wheel by writing all the code from scratch. This is the concept of software reuse [31, 43, 133, 150].
Productivity can be increased by software reuse because less time and effort is required to specify, design, implement and test the new system. The...