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

Software Reuse

Introduction
Background
Aim of software reuse
Software Reuse Features
What is Software Reuse
1 Why Software Reuse
Importance of software reuse
Types software reuse
Design Techniques
Development for reuse
Reuse in Software Life-Cycle
Application system reuse
Advantage of computer reuse
Disadvantages Of Software Reuse
 Problems of application system reuse
Conclusion
Introduction
 Software Reuse is defined as the process of building or assembling software
applications and systems from previously developed software.
 Reuse has gained additional popularity recently due to the popularity of global
software development.

Background
 Establishing a Basis for Software Reuse 1990 Systematic software reuse is a strategy
that can bring products to market or field more quickly, improve quality, and lower
costs.
 It has been associated with software engineering since its early days as the NATO
Software Engineering Conference in 1968 marked the birth of the idea of systematic
software reuse.

Aim of software reuse


 The Aim of software reuse is to reduce the cost of software production by replacing
creation with recycling

Software Reuse Features


 In the future, however, reuse is likely to elicit a very different reaction. The next form
of reuse will be the key enabler of the world trade of software via the World Wide
Web. Reuse via the Web has already captured the imagination of the software industry
and business community at large
What is Software Reuse.
 Software reuse is the process of implementing or updating software
systems using existing software assets. In most engineering disciplines,
systems are designed by composing existing components that have been
used in other systems.
 Software reuse is a term used for developing software by using the
existing software components. Some of the components that can be
reused are as follows;
 Source code
 Design and interfaces
 User manuals
 Software Documentation
Why Software Reuse
 A good software reuse process facilitates the increase of productivity, quality, and reliability, perfo
rmance and the decrease of costs, effort, risk and implementation time. 
Importance of software reuse
 Savings in costs and time
 Increase in productivity
 Increase in reliability
 Increase in ease of maintenance
 Improvement in documentation and testing

Types software reuse


Opportunistic
reuse :While getting ready to begin a project, the team realizes that there are existing components that they can r
euse. Opportunistic reuse can be categorized as
 Internal reuse :Ateam reuses its own components. 
 External reuse: ­A team may choose to license a third­party component. 
Planned reuse: ­ A team strategically designs components so that they'll be  reusable in future projects. 
Design Techniques
Some characteristics that make software more easily reusable are

 Loose coupling
 High cohesion Information hiding
 Separation of concerns
 Modular programming 
Development for reuse
  Development for reuse is a process of producing potentially reusable components
Reuse in Software Life-Cycle
 Design.
 Requirements Specification.
 Domain Analysis.
Reuse Process.
 In this work, we will view the process of software reuse as comprising three stages of artefact processing i.e.
their analysis, organazation and synthesis.

Application system reuse


 An application system product is a software system that can be adapted for different customers without changing the source
code of the system.
Advantage of computer reuse
 Economics: Reusing software reduces costs (requirements, design, specification, coding, testing, maintenance,
and support tools)
 Reliability: Reusing software products or components which are known to be reliable reduces the potential of
unforeseen errors
 Maintainability: Reusing software products or components which are well-designed and developed for
reusability can improve future maintenance efforts
 Quality: Reusing software products or components can contribute to improved software quality and system
performance
 Development time: Reusing software products can reduce the total time needed to develop and implement a
software system.
 Resources: Reusing available software products allows concentration of resources on improvement of the
software products and other analysis work
Disadvantages Of Software Reuse
 Reusing code, as compared with development of entirely new systems, is boring;
 It is easier to rewrite complex programs from scratch rather than to maintain it;
 There are no tools to assist programmers in finding reusable artefacts;
 In majority of cases, developed programs are too specialized for reuse;
 Adopted software development methodology does not support software reuse;
 The reuse process is too slow;
 Interfaces of reusable artefacts are too awkward to use;
 Code with reusable components is often too big or too inefficient;
 Programs built of reusable components are not readily transportable;
 Reusable components do not conform to adopted standards;
Problems of application system reuse:
 Lack of control over functionality and performance: application
systems may be less effective than they appear.
 Problems with application system inter-operability: different
application systems may make different assumptions that means
integration is difficult
Conclusion
Software development through reuse can substantially reduce software
costs and risks, while improving software quality and productivity.
The reuse of existing software is becoming more and more practical
due to the increasing amount of available, quality software.
The reusability challenge must be viewed as one which spans the entire
software lifecycle.

You might also like