Software Reuse: Nitin Jain I SEM, M.Tech. Software Engineering (QIP)
Software Reuse: Nitin Jain I SEM, M.Tech. Software Engineering (QIP)
NITIN JAIN
I SEM, M.Tech. Software Engineering (QIP)
slide1
What is software reuse?
• Software reuse is the process of
creating software systems from
existing software systems
• Reuse is like a savings account.
Before we collect any interest, we
have to make a deposit, and the more
we put in, the greater the dividend.
Software Reuse
Roadblocks to reuse
Hardware Analogy
slide6
Roadblock to REUSE
A Hardware Analogy
Artifact MEANS
Relic
Object work of art
Piece
REUSE ARTIFACTS
• Plan
• Cost Estimation
• Architecture
• Requirements Model and Specification
• Designs
• Source Code
• User and Technical Documentation
• Data
• Test cases
A Process Model
DOMAIN Analysis ENGINEERING
“Domain Engineering is about
finding commonalities among
system to identify components
that can be applied to many
systems, to identify program
families that are positioned to
take fullest advantage of those
components.”
Guide for identifying reusable S/W
Components
• Is component functionality required on
future implementations ?
• How common is the component's
function within the Domain?
• Is there duplication of the component’s
function within the domain?
• Is the component hardware-dependent?
Guide for identifying reusable S/W
Components
• Does the hardware remain unchanged between
implementations?
• Can the hardware specifics be removed to another
component?
• Can a non reusable component be parameterized to get
a reusable component?
• Is the designed optimized for the next implementation?
• Is reuse through modification feasible?
• How valid is the component decomposition for reuse?
Characterization Functions
• Component Database
• Library management
• A S/W Component
Retrieval System
• CASE tools
Thank You
Software Reuse Activities
• 1.Requirement identification
• 2.Asset library search
• 3.Asset retrieval
• 4.Asset customization
• 5.Asset integration
External & Internal Reuse
External reuse:
• The use of software obtained from another
organization or application.
Internal reuse:
• Software developed and used repreatedly by
the same group of people on the same
application
Reusability = usability + usefulness
Usability = degree to which an asset is
‘easy’to use(independent of
functionality)Usability is largely technical
Usefulness = ‘frequency’ of suitability for
use (independent of packaging)Usefulness
includes economic considerations
What makes SW reuse difficult?