2. INTRODUCTION
• Software reuse is the process of implementing
or updating software systems using existing
software components.
• To achieve better software quality more
quickly at lower costs, software engineers are
beginning to adopt systematic reuse as a
design process.
3. WHAT IS SOFTWARE ?
• Anything that can be stored electronically is
software.
• Example : Microsoft word etc.
• It is generally developed by software firms for their
clients under formal business contracts.
• It generally requires some modification from time to
time to accommodate changes taking place in the
organization and the environment.
• Ethical issues (like protecting privacy) are also taken
into consideration in designing software.
4. SOFTWARE REUSE
• Software reuse is the use of existing software or
software knowledge to build new software for an
individual or an organization.
• Software reuse is also called as “Code Reuse”.
• Systematic software reuse is still the most
promising strategy for increasing productivity and
improving quality in the software industry.
• Example of software reuse is software library .
5. PURPOSE OF REUSE
• CHEAPER PRODUCTS : It includes shorter
development time ,easier maintenance .
• BETTER QUALITY PRODUCTS : Code that was
written for reuse should has better
specifications and should be thoroughly
tested.
6. BENEFITS OF REUSE
• It is cheaper.
• It produces less buggy code.
• It saves your time since you don’t have to
continuously reinvent the wheel.
• It also helps the developers.
• Higher quality products .
• Less development time.
7. TYPES OF REUSE
• Concerning motivation and driving factors ,
reuse can be :
• Opportunistic - While getting ready to begin a
project, the team realizes that there are
existing components that they can reused.
• Planned - A team strategically designs
components so that they'll be reusable in
future projects.
8. TYPES OF SOFTWARE REUSE
• Application System Reuse : It is concerned
with reusing an entire application inside another.
• For example : MS-Office
• Component Reuse : It is concerned with
components of one application reused in another
application.
9. REUSE PLANNING FACTORS
• The development schedule for the software.
• The expected software lifetime.
• The background , skills and experience of
development team.
• The execution platform of the software.
10. BARRIERS TO MAKING SOFTWARE
AVAILABLE FOR REUSE
• Increased maintenance cost.
• Lack of tool support.
• Lack of knowledge.
12. APPROACHES THAT SUPPORTS REUSE
• Architectural patterns
• Design patterns
• Component-based development
• Application frameworks
• Legacy system wrapping
• Service-oriented systems
• ERP Systems.
13. ARCHITECTURAL PATTERNS
• An architectural pattern is a widely recognized
and reused solution to a
recurring design problem in the field
of software architecture .
• The architectural patterns addresses various
issues in software engineering such
as computer hardware performance
limitations, high availability and minimization
of a business risks.
14. DESIGN PATTERNS
• In software engineering ,a design pattern is a general
reusable solution to a commonly occurring problem
within a given context in software design .
• A design pattern is a way of reusing abstract
knowledge about a problem and its solution .
• There are many types of design patterns such as :
• Algorithm strategy patterns
• Computational design patterns
• Execution patterns
15. TOOLS USED IN REUSE
• Component management tools such as
repositories for architectures, designs,
documentation and code must be developed
and maintained .
• Domain analysis tools and procedures for the
development and maintenance of a domain
architecture .
16. ISSUES WITH REUSABLE COMPONENTS
• Higher cost of developing reusable
components.
• Performance issues : Generic components
may be less space-efficient and may have
longer execution times than their specific
equivalents.
17. CONCLUSION
• A good software reuse process facilitates the increase
of productivity, quality and reliability and decreases
the costs and implementation time.
• By far the most important part of the reuse process is
the people.
• If the people in the organization do not understand the
concepts behind reuse and do not see the benefits,
reuse won't happen.
• Reuse processes and procedures must be incorporated
into the existing software development process.