You are on page 1of 12

Software Reuse

Csc532
Instructor: Dr. Box
Student: Guangyu Chen

Outline

What is software reuse


Advantages of reuse
What is reusable
Types of software reuse
Stages for reuse development
Reusability measurement
The problem in software reuse
Impediments in software reuse
Conclusion

What is software reuse?

Software reuse is the process of implementing or


updating software systems using existing software
assets.
The systematic development of reusable components
The systematic reuse of these components as
building blocks to create new system

The advantages of reuse

Increase software productivity


Shorten software development time
Improve software system interoperability
Develop software with fewer people
Move personnel more easily from project to project
Reduce software development and maintenance
costs
Produce more standardized software
Produce better quality software and provide a
powerful competitive advantage

What is reusable?

Application system

Subsystem

Component

Module

Object

Function or Procedure

Types of software reuse

Horizontal reuse

Vertical reuse

Stages of reuse development

Identify domain
Identify and classify reusable abstractions
Identify design/programming language constructs
that support reuse
Study and formulate language reuse guidelines
Study and formulate domain reuse guidelines
Reuse assessmentassess components based on the
guidelines
Reuse improvementmodify and improve these
components.

Reusability measurement

Generality enhances reusability by


making the asset more widely
applicable
Generosity enhances reusability by
reducing the cost of adapting the asset
to its host system.

The problem in software reuse

The principles, methods, and skills required to


develop reusable software cannot be learned
effectively by generalities and platitudes.
To succeed in-the-large, reuse efforts must address
both technical and non-technical issues.
It's easier and more cost effective to develop and
evolve networked applications by basing them on
reusable distributed object computing middleware,
which is software that resides between applications
and the underlying operating systems, network
protocol stacks, and hardware.

Impediments in software reuse

Economic
Retrieval
Expensive
Legal
Managerial

Conclusion
Software reuse is proved to be an
efficient way to help improving software
development quality, productivity
during all these years practices.
Although it is not perfect, but is still
worthy more research effort.

References

[1] N. Nada, L.Luqi, M. Shing, Software Reuse Technology Practices and Assessment Tool-Kit, Naval
Postgraduate School Computer Science Department.
[2] Sadahiro I, An experience of software reuse activities, software laboratories Nippon telegraph and
telephone corporation.
[3] Rubin P, The disappearance of software reuse, reuse Inc.
[4] James J, Characteristics of a flexible software factory: Organization design applied to software reuse,
Hewlett-Packard laboratories.
[5] J.M. Perry, Perspective on software reuse, GTE government systems Corporation.
[6] Will T, Software reuse myths revisited, Loral federal Systems Company.
[7] Jim W, The solution to the reuse problem, SUM micro system Inc.
[8] Ali Mili, Toward an engineering discipline of software reuse, Institute for software research.
[9] Douglas C, Why software reuse has failed and how to make it work for you, Department of electrical
and computer engineering of university of California.
[10] M. Ramachandran, Software reuse guidelines, School of Computing and Mathematical Sciences
Liverpool John Moores University.
[11] Kimberly Jordan, Software reuse term paper, George Mason University.
[12] http://www.cs.wustl.edu/~schmidt/reuse-lessons.html
[13] http://www.baz.com/kjordan/swse625/htm/tp-kj.htm
[14] http://gta.georgia.gov/00/channel_modifieddate/0,2096,1070969_1209920,00.html
[15] http://www.selectbs.com/products/solutions/software_reuse.htm

You might also like