Upload
berenice-shields
View
213
Download
0
Embed Size (px)
Citation preview
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