0% found this document useful (0 votes)
79 views22 pages

Software Reuse: Status and Future

The document discusses software reuse, including definitions of software and types of software. It describes software life cycle models and the classical waterfall model. Software reuse is defined as using existing software or knowledge. There are different types of reuse including application system reuse, component reuse, and function reuse. The document outlines benefits, problems, and requirements of software reuse, as well as prerequisites and basic issues of reuse programs.

Uploaded by

dust_sd
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views22 pages

Software Reuse: Status and Future

The document discusses software reuse, including definitions of software and types of software. It describes software life cycle models and the classical waterfall model. Software reuse is defined as using existing software or knowledge. There are different types of reuse including application system reuse, component reuse, and function reuse. The document outlines benefits, problems, and requirements of software reuse, as well as prerequisites and basic issues of reuse programs.

Uploaded by

dust_sd
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

SOFTWARE REUSE: STATUS

AND FUTURE
What is software?

Software, by definition, is the collection of


computer programs, procedures and
documentation that performs different tasks on
a computer system.
The term 'software' was first used by John Tukey in
1958. At the very basic level, computer software
consists of a machine language that consists of
groups of binary values, which specify processor
instructions. The processor instructions change
the state of computer hardware in a predefined
sequence. Briefly, computer software is the
language in which a computer speaks
Types of software

 Programming Software
 System Software
 Application Software
 Inventory Management Software
 Utility Software
 Data Backup and Recovery Software
Software life cycle model

Diagrammatical and descriptive representation


of life cycle of a software .
In other words, A life cycle model prescribes
different activities that need to be carried out
to develop a software product and
sequencing of these activities.
Types of software life cycle
model
 Classical waterfall model.
 Iterative waterfall model.
 Prototyping model.
 Evolutionary life cycle model.
 Spiral model.
Classical waterfall model
Software Reuse

 Software reuse is the use of existing software


or software knowledge.
 Reusable assets can be either reusable
software or software knowledge.
 Reusability is a property of software asset
that indicates its portability of reuse.
Reuse-based software
engineering
 Application system reuse
The whole of an application system may be reused either by
incorporating it without change into other systems (COTS
reuse) or by developing application families.
 Component reuse
Components of an application from sub-systems to single
objects may be reused.
 Function reuse
Software components that implement a single well-defined
function may be reused.
By By scope By mode By By By
substance technique intention products
ideas vertical Planned, compositio Black Source
systemati nal box, as-is code
c
concepts design
artifacts horizontal Adhoc , generative White box, specificatio
opportuni modified ns
stic
componen objects
t
Procedure Text
s, skills architectur
es
Facets of reuse
Active areas of reuse
research
 Domain engineering methods and tools.
 Reuse design.
 Design patterns.
 Reuse libraries.
 Domain specific software architecture.
 Componentry.
 Generators.
 Measurement and experimentation.
 Business and finance.
Why reuse software?

 Increase of productivity.
 Good quality.
 More reliability of software product.
 Decrease of costs.
 Decrease of implementation time.
 Reduction of risks in new projects.
Software development
with reuse process model
Software development for
reuse process model
Benefits of reuse
 Increased reliability
Components exercised in working systems
 Reduced process risk
Less uncertainty in development costs
 Effective use of specialists
Reuse components instead of people
 Standards compliance
Embed standards in reusable components
 Accelerated development
Avoid original development and hence speed-up
production
Reuse problems

 Increased maintenance costs


 Lack of tool support
 “Not invented here” syndrome
 Maintaining a component library
 Finding and adapting reusable components
Requirements for design with
reuse
 It must be possible to find appropriate
reusable components.
 The reuser of the component must be
confident that the components will be
reliable and will behave as specified.
 The components must be documented so
that they can be understood and, where
appropriate, modified.
Prerequisites to create
reusable software
 Organization and process
 Technical expertise
Reuse metrics and models

 Cost benefit analysis models


 Maturity assessments models
 Amount of reuse metrics
 Failure modes model
 Reusability assessment
 Reuse library metrics
Reusable components

 Requirement specifications
 Design
 Code
 Test cases
 Knowledge
Basic issues in reuse program

 Component creation
 Component indexing and storing
 Component search
 Component understanding
 Component adaptation
 Repository maintenance
Domain analysis

 Reuse domain

 Evolution of reuse domain

You might also like