Uploaded by ngoc tb

Software Reuse

advertisement
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 assessment—assess components based on the
guidelines
Reuse improvement—modify 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
Download