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

Software Is Becoming Very Expensive:: A Possible Way To Reduce Cost

Software reuse can reduce costs by reusing parts from previously developed software or using off-the-shelf components. However, software reuse faces challenges including identifying reusable components, classifying them in repositories, understanding foreign components, and adapting components to new needs. A promising approach is domain analysis, which identifies reusable objects, operations, and their relationships within a problem domain. For successful software reuse at an organization level, reusability must be integrated into processes and a steady flow of reusable components maintained in repositories.

Uploaded by

Vinamra Mittal
Copyright
© © All Rights Reserved
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)
38 views22 pages

Software Is Becoming Very Expensive:: A Possible Way To Reduce Cost

Software reuse can reduce costs by reusing parts from previously developed software or using off-the-shelf components. However, software reuse faces challenges including identifying reusable components, classifying them in repositories, understanding foreign components, and adapting components to new needs. A promising approach is domain analysis, which identifies reusable objects, operations, and their relationships within a problem domain. For successful software reuse at an organization level, reusability must be integrated into processes and a steady flow of reusable components maintained in repositories.

Uploaded by

Vinamra Mittal
Copyright
© © All Rights Reserved
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

Introduction

Software is becoming very


expensive:
a possible way to reduce cost:
reuse parts from previously made
software.
assemble software from off-the-shelf
components.
1
Introduction
Advantages of reuse also
include:
reduced number of defects:
standard and well-tested
components are reused.
reduced development time:
provide early market access for
products.
2
Software reuse
Software development with
reuse:
similar to an electronic
engineer building an electronic
circuit:
uses standard types of
electronic ICs and other
components. 3
What can be reused?

Specification
Design
Code
Test cases
At the most abstract level:
knowledge

4
Reuse of Knowledge
More difficult compared to day-
to-day reuse of knowledge:
developers vary over time and
over projects
difficult to remember details of
potentially reusable development
knowledge.
5
Why almost no software reuse
so far?
Engineers working in industry often
have a frustrated feeling:
current system is similar to last few
systems they have already built
everything is being built from scratch
current system is behind schedule:
no one has time to figure out what this
similarity really means.

6
Another complaint
In spite of having software
components available for reuse:
programmers have preferred to
create their own, because:
available components are difficult
to understand
difficult to adapt to new application

7
Basic Issues in
Software Reuse

Component creation
Component indexing
Search
Understanding
Adaptation
Repository maintenance
8
Basic Issues
Component creation:
Identify reusable components
Component indexing:
classification of reusable
components
so that they can be easily
searched when we look for a
component to reuse.
9
Basic Issues
Search:
search for right components
in a database of components
requires a proper method to
describe components

10
Basic Issues
Understanding:
to decide whether we can use
some component
we need a precise and
sufficiently complete
understanding of what the
component does.
11
Basic Issues
Adaptation:
A selected component may not
exactly fit the problem at hand
Tinkering with the code is not
satisfactory:
in any case justified only if
thoroughly understood

12
Basic Issues
Repository maintenance:
component entering
tracking faulty components
new applications emerge
older applications become obsolete
components might need changes
obsolete components might have
to be removed
13
Domain analysis

Aim:
identify reusable
components for a problem
domain.
identification of right kind of
reusable information is a
difficult problem. 14
Domain analysis
Domain analysis identifies:
objects, operations and
relationship among them.
Consider airline reservation:
objects are
seats, flights, airports, crew, meal
orders
Operations are
scheduling a flight, reserving a
seat, assigning a crew to a flight,
etc. 15
Domain analysis

Analysis of an application
domain:
to identify the reusable
components
Actual construction of reusable
components for a domain
is called domain engineering.
16
Reuse at organization level

Reusability should be a standard


part in:
specification, design, implementation,
test, etc.
Ideally there is a steady flow of
reusable components:
in practice, things are not so simple.

17
Reuse at organization level

Extracting reusable knowledge


from past projects:
presents difficulties not
encountered in working with a
current project
typically original developers are
no longer available for consultation.

18
Summary
Basic issues in reuse:
Component creation
Component indexing
Search
Understanding
Adaptation
Repository maintenance

19
Summary
Creation of highly reusable
components is a very difficult
problem
a promising approach is domain
analysis
Domain analysis:
aims to identify reusable
components for a problem domain

20
Summary
Application generators:
translate specifications into
application programs.
facilitate reuse
not very flexible, if new concepts
need to be supported.

21
Summary
Reuse at organization level
assess product’s potential for
reuse
refine product for greater
reusability
integrate product with reuse
repository

22

You might also like