skip to main content
article

Software reuse: survey and research directions

Published: 01 March 1998 Publication History

Abstract

Software reuse is the use of software resources from all stages of the software development process in new applications. Given the high cost and difficulty of developing high-quality software, the idea of capitalizing on previous software investments is appealing. However, software reuse has not been as effective as expected and has not been very broadly or systematically used in industry. This paper surveys recent software-reuse research using a framework that helps identify and organize the many factors that must be considered to achieve the benefits of software reuse in practice. We argue that software reuse needs to be viewed in the context of a total systems approach that addresses a broad range of technical, economic, managerial, organizational, and legal issues and conclude with a summary of the major research issues in each of these areas.

References

[1]
1. Apte, U.C.; Sankar, M. T.; and Turner, J. Reusability-based strategy for development of information systems: implementation experience of a bank. MIS Quarterly, 14, 4 (December 1990), 421-433.
[2]
2. Army Reuse Center. http://are_www.belvoir.army.mil/educate.html.
[3]
3. Balda, D., and Gustafson, D. Cost estimation models for the reuse and prototype software development life cycles. ACM SIGSOFT Software Engineering Notes, 15, 3 (July 1990), 42-50.
[4]
4. Banker, R.D.; Kauffman, R.J.; Wright, C.; and Zweig, D. Automating output size and software reuse metrics in an object-based case environment. IEEE Transactions on Software Engineering, 20, 3 (March 1994), 169-187.
[5]
5. Barnes, B., and Bollinger, T. Making reuse cost-effective. IEEE Software, 8, 1 (January 1991), 13-24.
[6]
6. Biffl, S., and Grechenig, T. Degrees of consciousness for reuse of software in practice: maintainability, balance, standardization. Proceedings of the 17th Annual International Computer Software & Applications Conference, 1993, pp. 107-114.
[7]
7. Biggerstaff, T.J. Design recovery for maintenance and reuse. Computer, 22, 7 (July 1989), 36-49.
[8]
8. Biggerstaff, T.J., and Perlis, A.J. Software Reusability. Reading, MA: Addison-Wesley, 1989.
[9]
9. Biggerstaff, T.J., and Richter, C. Reusability framework, assessment, and directions. Software Reusability Vol. 1 Concepts and Models. Reading, MA: Addison-Wesley, 1989.
[10]
10. Blair, D.C., and Maron, M.E. An evaluation of retrieval effectiveness for a full-text document-retrieval system. Communications of the ACM, 28, 3 (March 1985), 289-299.
[11]
11. Boehm, B.W. Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981.
[12]
12. Boldyreff, C. Reuse, software concepts, descriptive methods, and the practitioner project. ACM SIGSOFT Software Engineering Notes, 14, 2 (April 1989), 25-31.
[13]
13. Bollinger, T.B., and Pfleeger, S.L. The economics of reuse: issues and alternatives. Proceedings of the Eighth Annual National Conference on Ada Technology, 1990, pp. 436-447.
[14]
14. Bott, M.F., and Wallis, P.J.L. Ada and software re-use. Software Engineering Journal, 3, 5 (1988), 177-183.
[15]
15. Buck-Emeden, R., and Galimow, J. SAP R/3 System: A Client/Server Technology. Reading, MA: Addison-Wesley, 1996.
[16]
16. Bullard, C.K.; Guindi, D.S.; Ligon, W.B.; McCraken, W.M.; and Rugaber, S. Verification and validation of reusable Ada components. In P.A. Leslie, R.O. Chester, and M.F. Theofanos (eds.) Guidelines Document for Ada Reuse and Metrics. Oak Ridge, TN: Martin Marietta Energy Systems, Inc., 1989.
[17]
17. Caldiera, G., and Basili, V.R. Identifying and qualifying reusable software components. IEEE Computer, 24, 2 (February 1991), 61-70.
[18]
18. Cheng, J. Improving the software reusability in object-oriented programming. ACM SIGSOFT Software Engineering Notes, 18, 4 (October 1993), 70-74.
[19]
19. Chikofsky, E.J., and Cross, J.H. Reverse engineering and design recovery: a taxonomy. IEEE Software, 7, 1 (January 1990) 13-17.
[20]
20. Cobb, R.H., and Mills, H.D. Engineering software under statistical quality control. IEEE Software, 7, 6 (November 1990) 44-53.
[21]
21. Coome, T.N.; Comer, J.R.; and Rodjak, D.J. Developing reusable software for military systems--why it is needed and why it isn't working. ACM SIGSOFT Software Engineering Notes, 15, 3 (July 1990), 33-38.
[22]
22. Creech, M.; Freeze, D.F.; and Griss, M.L. Using hypertext in selecting reusable software components. Proceedings of Hypertext '91, 1991, pp. 25-38.
[23]
23. Curtis, B. Cognitive issues in reusing software artifacts. Software Reusability Vol. II Applications and Experience. Reading, MA: Addison-Wesley, 1989.
[24]
24. Cusumano, M.A. Japan's Software Factories. New York: Oxford University Press, 1991.
[25]
25. Devanbu, P.; Brachman, R.; Selfridge, P; and Ballard, B. LaSSIE: a knowledge-based software information system. Communications of the ACM, 34, 5 (May 1991), 34-49.
[26]
26. Dabin, M. Software reuse and CASE tools. Proceedings of the 15th Annual International Computer Software and Applications Conference, 1991, pp. 2-3.
[27]
27. Fafchamps, D. Organizational factors and reuse, IEEE Software, 11, 5 (September 1994), 31-41.
[28]
28. Fischer, G.; Henninger, S.; and Redmiles, D. Cognitive tools for locating and comprehending software objects for reuse. Proceedings of the 13th International Conference on Software Engineering, 1991, pp. 318-328.
[29]
29. Frakes, W.B.; Biggerstaff, T.J.; Prieto-Diaz, R.; Matsumura, K.; and Schaefer, W. Software reuse: is it delivering? Proceedings of the 13th International Conference on Software Engineering, May 1991, pp. 52-59.
[30]
30. Frakes, W.B., and Fox, C.J. Sixteen questions about software reuse. Communications of the ACM, 38, 6 (June 1995), 75-87.
[31]
31. Frakes, W.B., and Nejmeh, B. Software reuse through information retrieval. Proceedings of the Twentieth Annual Hawaii International Conference on System Sciences, 1987, pp. 530-535.
[32]
32. Freeman, P. Reusable software engineering: concepts and research directions. ITT Proceedings of the Workshop on Reusability in Programming, 1983, pp. 129-137.
[33]
33. Gaffney, J.E., Jr., and Durek, T.A. Software reuse--key to enhanced productivity: some quantitative models. Information Software Technology, 31, 5 (June 1989), 258-267.
[34]
34. Gall, H., and Klosch, R. Reuse engineering: software construction from reusable components. Proceedings of the 16th Annual International Computer Software and Applications Conference, 1992, pp. 79-86.
[35]
35. Griss, M.L. Software reuse: from library to factory. IBM Systems Journal, 32, 4, (1993), 548-566.
[36]
36. Griss, M.L.; Adams, S.; Baetjer, H. Jr.; Cox, B; and Goldberg, A. The economics of software reuse (Panel). Proceedings of Conference on Object-Oriented Programming Systems, Languages, and Applications, 1991, pp. 264-270.
[37]
37. Griss, M.L.; Favaro, J.; and Walton, P. Managerial and organizational issues--starting and running a software reuse program. In W. Schaefer, R. Prieto-Diaz, and M. Matsumoto (eds.), Software Reusability. New York: Ellis Horwood, 1994, pp. 51-78.
[38]
38. Hofman, J.D., and Rockart, J.F. Application templates: faster, better and cheaper systems. Sloan Management Review, 36, 2 (1992) 41-48.
[39]
39. Hooper, J.W., and Chester, R.O. Software Reuse. New York: Plenum, 1991.
[40]
40. IMSL (International Mathematics and Scientific Library). IMSL Inc., 1991.
[41]
41. Isoda, S. Experience report on software reuse project: its structure, activities, and statistical results. Proceedings of the 14th Annual International Conference on Software Engineering, 1992, pp. 320-326.
[42]
42. Jakes, J.M., and Yoches, E.R. Basic principles of patent protection for computer software. Communications of the ACM, 32, 8 (August 1989), 922-924.
[43]
43. Jarvenpaa, S.L., and Ives, B. Executive involvement and participation in the management of information technology. MIS Quarterly, 15, 2 (June 1991), 205-227.
[44]
44. Jones, T.C. Reusability in programming: a survey of the state of the art. IEEE Transaction on Software Engineering, 10, 5 (September 1984), 488-493.
[45]
45. Jones, G., and Prieto-Diaz, R. Building and managing software libraries. Proceedings of IEEE COMPSAC. 1988, pp. 228-236.
[46]
46. Joyce, E.J. Reusable software: passage to productivity? Datamation (September 15, 1988), 97-102.
[47]
47. Karakostas, V. Requirements for CASE tools in early software reuse. ACM SIGSOFT Software Engineering Notes, 14, 2 (April 1989), 39-41.
[48]
48. Karlsson, E., ed. Software Reuse: A Holistic Approach. New York: John Wiley, 1995.
[49]
49. Katz, S.; Richter, C.H.; and The, K. PARIS: a system for reusing partially interpreted schemas. Proceedings of IEEE 9th International Conference on Software Engineering, 1987, pp. 377-385.
[50]
50. Kernighan, B.W. The Unix system and software reusability IEEE Transaction on Software Engineering, 10, 5 (September 1984), 513-518.
[51]
51. Kim, Y. RSS: an approach to widespread software reusability. Ph.D. dissertation, New York University, 1992.
[52]
52. Krueger, C.W. Software reuse. ACM Computing Surveys, 24, 2 (June 1992), 131-183.
[53]
53. Lanergan, R.G., and Grasso, C.A. Software engineering with reusable designs and code in software reusability. Software Reusability, vol. 2, Applications and Experience. Reading, MA: Addison-Wesley, 1989.
[54]
54. Lim, W.C. Effects of reuse on quality, productivity, and economics. IEEE Software, 11, 5 (September 1994), 23-30.
[55]
55. Love, T. The economics of reuse. Proceedings of IEEE COMPCON, 1988, pp. 238-241.
[56]
56. Maarek, Y.S.; Berry, D.M.; and Kaiser, G.E. An information retrieval approach for automatically constructing software libraries. IEEE Transactions on Software Engineering, 17, 8 (August 1991), 800-813.
[57]
57. Mackellar, B.K., and Maryanski, F. A knowledge base for code reuse by similarity. Proceedings of IEEE COMPSAC, 1989, pp. 634-641.
[58]
58. Maiden, N., and Sutcliffe, A. Exploiting reusable specification through analogy. Communications of the ACM, 35, 4 (April 1992), 55-64.
[59]
59. Marovac, N. IEEE Working Group: Development of a Standard for Reuse of Code. IEEE Technical Council on Software Engineering, 1992.
[60]
60. Matsumoto, Y. Some experiences in promoting reusable software: presentation in higher abstract levels. In Software Reusability, vol. 2. Reading, MA: Addison-Wesley, ACM Press, 1989.
[61]
61. Micallef, J. Encapsulation, reusability and extensibility in object-oriented programming. Journal of Object Oriented Programming (April-May 1988), 12-34.
[62]
62. Mitchell, T.B. Expectancy models of job satisfaction, occupational preference and effort. Psychological Bulletin, 81, 12 (1974), 1053-1107.
[63]
63. Miyoshi, T., and Azuma, M. An empirical study of evaluating software development environment quality. IEEE Transactions on Software Engineering, 19, 5 (May 1993), 425-532.
[64]
64. Moad, J. Cultural barriers slow reusability. Datamation (November 15, 1989), 87-92.
[65]
65. Mowbray, T.J., and Zahavi, R. The Essential CORBA: Systems Integration Using Distributed Objects. New York: John Wiley, 1996.
[66]
66. Motta, E.; Rajan, T.; and Eisenstadt, M. Knowledge acquisition as a process of model refinement. Knowledge Acquisition, 2 (1990), 21-49.
[67]
67. Myers, W. We want to write less code, asserts symposium keynoter. IEEE Computer, 23, 7 (July 1990), 117-118.
[68]
68. Navarro, J.J. Characteristics of a flexible software factory: organization design applied to software reuse. Proceedings of the 38th IEEE Computer Society International Conference, 1993, pp. 265-267.
[69]
69. Neighbors, J.M. The Draco approach to constructing software from reusable components. IEEE Transaction on Software Engineering, 10, 5 (September 1984), 564-574.
[70]
70. Nierstrasz, O.; Gibbs, S.; and Tsichitris, D. Component-oriented software development. Communications of the ACM, 35, 9 (September 1992), 160-165.
[71]
71. Parnas, D.L.; Clements, P.C.; and Weiss, D.M. Enhancing reusability with information hiding. In T.J. Biggerstaff and A.J. Perlis (eds.), Software Reusability, vol. 1, Concepts and Models. Reading, MA: Addison-Wesley, 1989, pp. 141-157.
[72]
72. Paulk, M.C.; Curtis, B.; and Chrissis, M.B. Capability Maturity Model for Software. Pittsburgh, PA: Software Engineering Institute, CMU/SEI-91-TR-24, 1991.
[73]
73. Poulin, J.S.; Caruso, J.M.; and Hancock, D.R. The business case for software reuse. IBM Systems Journal, 32, 4 (1993), 567-594.
[74]
74. Prieto-Diaz, R. Domain analysis methodology. Proceedings of the Workshop on Domain Modeling, ICSE-13, 1991, pp. 138-140.
[75]
75. Prieto-Diaz, R., and Freeman, P. Classifying software for reusability. IEEE Software, 4, 1 (January 1987), 6-16.
[76]
76. Pyster, A., and Barnes, B. The software productivity consortium reuse program. Proceedings of IEEE COMPCON, 1988, pp. 242-247.
[77]
77. Ramamoorthy, C.V.; Garg, V.; and Prakash, A. Support for reusability in Genesis. IEEE Transactions on Software Engineering, 14, 8 (August 1988), 1145-1154.
[78]
78. Rauch-Hindin, W.B. Reusable software. Electronic Design, 31, 3 (February 1983), 176-193.
[79]
79. Redwine, S.T., Jr., and Riddle, W.E. Software reuse processes. Proceedings of ACM Software Process Workshop, 1989, pp. 133-135.
[80]
80. Reifer, D.J. Managing Software Reuse: A Case Study Approach. New York: John Wiley, 1993.
[81]
81. Rubin, K. Reuse in software engineering: an object-oriented perspective. Proceedings of IEEE COMPCON, 1990, pp. 340-346.
[82]
82. Ryan, D. RAPID/NM, Reusable Architectures for Transaction Processing and Network Management Applications. Murray Hill, NJ: AT&T, 1990.
[83]
83. Salancik, G.R., and Pfeffer, J. A social information processing approach to job attitudes and task design. Administrative Science Quarterly, 23 (1978), 224-253.
[84]
84. Samuelson, P. Reverse-engineering someone else's software: is it legal? IEEE Software, 7, 1 (January 1990), 90-96.
[85]
85. Samuelson, P. Interface specifications, compatibility, and intellectual property law. Communications of the ACM, 33, 2 (February 1990), 111-114.
[86]
86. Schaefer, W.; Prieto-Diaz, R.; and Matsumoto, M. Software Reusability. New York: Ellis Horwood, 1994.
[87]
87. Selby, R.W. Quantitative studies of software reuse. In T.J. Biggerstaff and A.J. Perlis (eds.), Software Reusability, vol. 2, Applications and Experience. Reading, MA: Addison-Wesley, 1989, pp. 213-233.
[88]
88. Soloway, E., and Ehrlich, K. What do programmers reuse? theory and experiment. Proceedings of ITT Workshop on Reusability in Programming, 1983.
[89]
89. Soloway, E., and Ehrlich, K. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering 10, 5 (September 1984), 595-609.
[90]
90. Sprague, R.H., Jr., and McNurlin B.C., eds. Information Systems Management in Practice. Englewood Cliffs, NJ: Prentice-Hall, 1993.
[91]
91. Strassman, P. The Squandered Computer: Evaluating the Business Alignment of Information Technologies. New Canaan, CT: Information Economics Press, 1997.
[92]
92. Syms, T., and Christine, L.B. Software reuse: customer vs. contractor point-counterpoint. Proceedings of Ada Euro Conference, 1990.
[93]
93. Tirso, J.R. Championing the cause: making reuse stick. Proceedings of the 5th Annual Workshop on Software Reuse, 1992, pp. 1-6.
[94]
94. Tracz, W.J. Where does reuse start? ACM SIGSOFT Software Engineering Notes, 15, 2 (April 1990), 42-46.
[95]
95. Tracz, W.J. Domain analysis working group report--first international workshop on software reusability. ACM SIGSOFT Software Engineering Notes, 17, 3 (July 1992), 27-34.
[96]
96. Tracz, W.J. Second international workshop on software reusability--IWSR2 summary. ACM SIGSOFT Software Engineering Notes, 18, 3 (July 1993), A73-A77.
[97]
97. Tracz, W.J. Confessions of a Used Program Salesman: Institutionalizing Software Reuse. Reading, MA: Addison-Wesley, 1995.
[98]
98. Wirfs-Brock, R., and Wilkerson, B. Designing Object-Oriented Software. Englewood Cliffs, NJ: Prentice-Hall, 1990.
[99]
99. Yoches, E. Legal protection for computer software. Communications of the ACM, 32, 2 (February 1989), 169-171.
[100]
100. Yoches, E., and Levine, A.J. Basic principles of copyright protection for computer software. Communications of the ACM, 32, 5 (May 1989), 544-545.

Cited By

View all
  • (2023)A Complex Adaptive Systems Perspective of Software Reuse in the Digital AgeInformation Systems Research10.1287/isre.2023.120034:4(1728-1743)Online publication date: 1-Dec-2023
  • (2022)Strategies for reuse and sharing among data scientists in software teamsProceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice10.1145/3510457.3513042(243-252)Online publication date: 21-May-2022
  • (2020)Layout Merging with Relative PositioningProceedings of the 12th System Analysis and Modelling Conference10.1145/3419804.3420271(106-115)Online publication date: 19-Oct-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Management Information Systems
Journal of Management Information Systems  Volume 14, Issue 4
Special section: Managing virtual workplaces and teleworking with information technology
March 1998
231 pages

Publisher

M. E. Sharpe, Inc.

United States

Publication History

Published: 01 March 1998

Author Tags

  1. reuse metrics
  2. reuse process
  3. reuse technologies
  4. software reuse

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Complex Adaptive Systems Perspective of Software Reuse in the Digital AgeInformation Systems Research10.1287/isre.2023.120034:4(1728-1743)Online publication date: 1-Dec-2023
  • (2022)Strategies for reuse and sharing among data scientists in software teamsProceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice10.1145/3510457.3513042(243-252)Online publication date: 21-May-2022
  • (2020)Layout Merging with Relative PositioningProceedings of the 12th System Analysis and Modelling Conference10.1145/3419804.3420271(106-115)Online publication date: 19-Oct-2020
  • (2020)Quantifying reusability of software components using hybrid fuzzy analytical hierarchy process (FAHP)-Metrics approachApplied Soft Computing10.1016/j.asoc.2019.10599788:COnline publication date: 1-Mar-2020
  • (2020)Why reinventing the wheels? An empirical study on library reuse and re-implementationEmpirical Software Engineering10.1007/s10664-019-09771-025:1(755-789)Online publication date: 1-Jan-2020
  • (2020)Structural similarity measure between UML class diagrams based on UCGRequirements Engineering10.1007/s00766-019-00317-w25:2(213-229)Online publication date: 1-Jun-2020
  • (2020)On opportunistic software reuseComputing10.1007/s00607-020-00833-6102:11(2385-2408)Online publication date: 1-Nov-2020
  • (2017)Knowledge reuse for customizationMIS Quarterly10.5555/3177663.317768141:1(315-332)Online publication date: 1-Mar-2017
  • (2016)A Method to Support the Adoption of Reuse Technology in Large Software OrganizationsProceedings of the 15th International Conference on Software Reuse: Bridging with Social-Awareness - Volume 967910.1007/978-3-319-35122-3_6(73-88)Online publication date: 5-Jun-2016
  • (2015)Comparing development approaches and reuse strategiesInformation and Software Technology10.1016/j.infsof.2015.01.00261:C(71-92)Online publication date: 1-May-2015
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media