skip to main content
article
Free Access

Software reuse

Authors Info & Claims
Published:01 June 1992Publication History
Skip Abstract Section

Abstract

Software reuse is the process of creating software systems from existing software rather than building software systems from scratch. This simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it.

This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach in terms of its reusable artifacts and the way these artifacts are abstracted, selected, specialized, and integrated.

Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluated in terms of cognitive distance—an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance is reduced in two ways: (1) Higher level abstractions in a reuse technique reduce the effort required to go from the initial concept of a software system to representations in the reuse technique, and (2) automation reduces the effort required to go from abstractions in a reuse technique to an executable implementation.

This survey will help answer the following questions: What is software reuse? Why reuse software? What are the different approaches to reusing software? How effective are the different approaches? What is required to implement a software reuse technology? Why is software reuse difficult? What are the open areas for research in software reuse?

References

  1. BALZER, R. 1985. A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.), 1257-1268.]] Google ScholarGoogle Scholar
  2. BALZER, R. 1989. A 15 year perspective on automatic pcogramming. In Frontier Series: Software Reusability: Volume H--Applicattons and Experience. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press. New York, pp. 289-311, Chap. 14. Originally Balzer {1985}.]] Google ScholarGoogle Scholar
  3. B~NTLEY, J. 1986. Programming pearls. Commun. ACM 29, 5 (May), 364-369.]] Google ScholarGoogle Scholar
  4. BIGGERST~F, T. 1987. Hypermedia as a tool to aid large scale reuse. In Proceedzngs of the Workshop on Software Reuse (Oct.). Rocky Mountain Institute of Software Engineering, Boulder, Colo.]]Google ScholarGoogle Scholar
  5. BIGGERSTAFF, T. J., AND PERLIS, A. J., EDS. 1989a. Frontier Series: Software Reusability: Volume I --Concepts and Models. ACM press, New York.]] Google ScholarGoogle Scholar
  6. B~CERSTAFF, T. J., AND PERLIS, A. J., Ens. 1989b. Frontier Series: Software Reusability: Volume H Applications and Experience. ACM Press, New York.]] Google ScholarGoogle Scholar
  7. BIGGERSTAFF~ T., AND RICHTER, C. 1987. Reusability framework, assessment, and directions. IEEE Softw. 4, 2 (Mar.), 41 49. Also in Tracz{1988} and Biggerstaff and Richter {1989}.]] Google ScholarGoogle Scholar
  8. BIGGERSTAFF, T., AND RICUTER, C. 1989. Reusability framework, assessment, and directions. In Frontier Series: Software Reusability: Volume 1-Concepts and Models. Biggerstaff, T. J., and Perlis A. J., Eds. ACM Press, New York, pp. 1-17, Chap. 1. Originally Biggerstaff and Richter { 1987}.]] Google ScholarGoogle Scholar
  9. BOEHM, B. W. 1987. Improving software productivity. IEEE Comput. 20, 9 (Sept.), 43-57.]] Google ScholarGoogle Scholar
  10. BOOEH, G. 1987. Software Components with Ada: Structures, Tools, and Subsystems. Benjamin/ Cummings Publishing Company, Inc., Menlo Park, Calif.]]Google ScholarGoogle Scholar
  11. BROOKS, F. P. JR. 1975. The Mythical Man-Month. Addison-Wesley, Reading, Mass.]] Google ScholarGoogle Scholar
  12. BROOKS, F. P. 1987. No silver bullet: Essence and accidents of software engineering. IEEE Cornput. 20, 4 (Apr.), 10-19.]] Google ScholarGoogle Scholar
  13. CHEATHAM, T. E. JR. 1983. Reusability through program transformations. In Workshop on Reusability in Programming (Newport, RI, Sept.). ITT Programming, Stratford, Conn., pp. 122-128. Also in Cheatham {1984, 1989}.]]Google ScholarGoogle Scholar
  14. CHEATHAM, T. E. JR. 1984. Reusability through program transformatLons. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 589-594. Originally Cheatham { 1983}.]]Google ScholarGoogle Scholar
  15. CHEATH~JV, T. E. JR. 1989. Reusability through program transformations. In Frontier Series: Software Reusability: Volume I Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds., ACM Press, New York. pp. 321-335, Chap. 13. Originally Cheatham {1983}.]] Google ScholarGoogle Scholar
  16. CHENG, T. T.~ LOCK, E. D., AND FRYWES, N. $. 1984. Use of very high level languages and program generation by management professionals. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 552-563.]]Google ScholarGoogle Scholar
  17. CLEAVELAND, J. C. 1988. Building application generators. IEEE Softw. 5, 4 (July), 25-33. Also in Prieto-Diaz and Arango {1991}.]] Google ScholarGoogle Scholar
  18. DEREMER, F., AND KRON, H. H. 1976. Programming-in-the-large versus programming-in-thesmall. IEEE Trans. Softw. Eng, SE-2, 2 (June), 80-86.]] Google ScholarGoogle Scholar
  19. DEUTSCH, P. L. 1983. Reusability in the Smalltalk-S0 programming system. In Workshop on ReusabLllty ~n Prog-rammmg (Newport, R. I. Sept.). ITT Programming, Stratford, Conn,, pp. 72 76. Also in Freeman {1987b}.]]Google ScholarGoogle Scholar
  20. DEUTSCH, L. P. 1989. Design reuse and frameworks in the Smalltalk-80 system. In Frontier Series: Software Reusability: Volume H Applications and Experience. Blggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 57-71, Chap. 3.]] Google ScholarGoogle Scholar
  21. DOBERKAT E., DUBINSK~f, E., AND SCHWARTZ, J. T. 1983. Reusability of design for complex programs: An experiment with the SETL optimizer. In Workshop on Reusability in Programruing (Newport, R. I., Sept.) ITT Programming, Stratford, Conn., pp. 106-108.]]Google ScholarGoogle Scholar
  22. DONGARRA, J. J., AND GROSSE, E. 1987. Distribution of mathematical software via electronic mall. Commun. ACM 30, 5 (May), 403-407.]] Google ScholarGoogle Scholar
  23. DONZEAU-GOUGE, V., KAHN, G., LANG, B., AND MELESE, B. 1984. Document structure and modularity in Mentor. In Proceedtngs of the ACM Szgsoft/Sigplan Software Engineering Symposium on Practical Software Development Environments (Pittsburgh, Penn. Apr.). ACM SIGSOFT/SIGPLAN, New York, pp. 141-148.]] Google ScholarGoogle Scholar
  24. DUBINSKY, E., FREUDENBERGER, S., SCHONBERG, E., AND SCHWARTZ, J. T. 1989. Reusability of design for large software systems: An experiment with the SETL optimizer. In Frontier Series: Software Reusability: Volume I--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 275-293, Chap. 11.]] Google ScholarGoogle Scholar
  25. EMBLE~, D. W., ANn WOODFIELD, S. N. 1987. A know)edge structure for reusing abstract data types. In 9th Internattonal Conference on Software Engineering, (Monterey, Calif., Mar.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 360 365. Also in Tracz {1988}.]] Google ScholarGoogle Scholar
  26. ESHELMAN, L. 1988. MOLE: A knowledge-acquisition tool ~or cover-and-difFerentiate systems. In Kluwer International Series in Engineering and Computer Science. Automatzc Knowledge Acquisition for Expert Systems. Kluwer Academic Publishers, Boston, Mass, pp. 37 80, Chap. 3.]]Google ScholarGoogle Scholar
  27. EVB SOFTWARE 1985. An Object Oriented Design Handbook for Ada Software. EVB Software Engineering, Inc., Fredrick, Maryland.]]Google ScholarGoogle Scholar
  28. FEATHER, M. S. 1983. Reuse in the context of a transformation based methodology. In Workshop on Reusabili(v in Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 50-58. Also in Freeman {1987b} and Feather { 1989}.]]Google ScholarGoogle Scholar
  29. FEATHEB, M. S. 1989. Reuse in the context of a transformation based methodology. In Frontier Series: Software Reusability: Volume 1--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 337-359, Chap. 14. Originally Feather {1983}.]] Google ScholarGoogle Scholar
  30. FICKAS, S. F 1985. Automating the transformational development of software. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.), 1268-1277.]] Google ScholarGoogle Scholar
  31. FREEMAN, P. 1983. Reusable software engineering: Concepts and research directions. In Workshop on Reusabtllty zn Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 2-16. Also in Freeman {1987b}]]Google ScholarGoogle Scholar
  32. FREEMAN, P. 1987a. A conceptual analysis of the Draco approach to constructing software systems. IEEE Trans. Softw. Erzg. SE-13, 7 (July), 830-844. Also in Freeman {1987b}.]] Google ScholarGoogle Scholar
  33. FREEMAN, P., ED. 1987b. Tutorial: Software Reusability. IEEE Computer Society Press, Washington, D.C.]] Google ScholarGoogle Scholar
  34. GARLAN, D. 1990. The role of formal reusable frameworks. In Proceedi,gs of the ACM SIG- SOFT I, ternational Workshop on Formal Methods in Software Development (Napa, Calif, May). ACM Press, New York, pp. 42-44.]] Google ScholarGoogle Scholar
  35. GOGUEN, J. A. 1986. Reusing and interconnecting software components. IEEE Comput. 19, 2 (Feb.), 16-28. Also in Freeman {1987b} and Prieto-Dlaz and Arango {1991}.]] Google ScholarGoogle Scholar
  36. GOGUEN, J. A. 1989. Principles of parameterized programming. In Frontier Series: Software Reusabzlity: Volume I--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 159-225, Chap. 7.]] Google ScholarGoogle Scholar
  37. HABERMANN, A. N., KRUEGER, C., PIERCE, B., STAUDT, B., AND WENN, J. 1988. Programming with views. Tech. Rep. CMU-CS-87-177, Carnegie- Mellon University, Pittsburgh, Penn.]]Google ScholarGoogle Scholar
  38. HAYES-ROTH, F., WATERMAN, D.~ AND LENENT, D., EDS. 1983. Teknowledge Ser~es ~n Knowledge Engzneering. Vol. 1, Buzlding Expert Systems. Addison-Wesley, Reading, Mass.]] Google ScholarGoogle Scholar
  39. HoRowiTz, E., AND MUNSON, J. B. 1983. An expansive view of reusable software. In Workshop on Reusability in Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 250-262. Also in Horowitz and Munson {1984}, Freeman {198761, and Horowitz and Munson{1989}.]]Google ScholarGoogle Scholar
  40. HOR0WITZ, E., AND MUNSON, J. B. 1984. An expansive view of reusable software. IEEE Trans. Softw. Eng. SE-iO, 5 (Sept.), 477-487. Originally Horowitz and Munson {1983}.]]Google ScholarGoogle Scholar
  41. HOROWITZ, E., AND MUNSON, J. B. 1989. An expansive view of reusable software. In Frontier Series: Software Reusab~lzty: Volume I-- Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 19 41, Chap. 2.]] Google ScholarGoogle Scholar
  42. HOROWITZ, E., KEMPER, A., AND NARASIMHAN, B. 1985. A survey of application generators. IEEE Softw. 2, 1 (Jan.), 40-54.]]Google ScholarGoogle Scholar
  43. ICHB~AU, J. D. 1983. On the design of Ada. In Information Processing' 83. Mason, R.E.A., Ed. IFIP, Elsevier Science Pub., New York, pp. 1-10.]]Google ScholarGoogle Scholar
  44. IMSL 1987. IMSL Math/Library User's Manual. 1.0 Edition, Houston, Tex.]]Google ScholarGoogle Scholar
  45. JOHNSON, S. C. 1979. Yacc: Yet Another Compiler- Compiler in the UNIX Programmer's Manual Supplementary Documents. 7th ed. AT & T Bell Laboratories, Indianapolis, Ind.]]Google ScholarGoogle Scholar
  46. KAISER, G. E. 1985. Semantics for structure editing environments. Ph.D. dissertation, CarnegSe-Mellon Univ.]] Google ScholarGoogle Scholar
  47. KAISSR, G. E. 1989. Incremental dynamic semantics for language-based programming environments. ACM Trans. Program. Lang. Syst. 11, 2 (Apr.), 169-193. See also Kaiser {1985}.]] Google ScholarGoogle Scholar
  48. KAISER, G. E., ANn GARLAN, D. 1987. Melding software systems from reusable building blocks. IEEE Softw. 4, 4 (July), 17-24. Also in Tracz{1988}.]] Google ScholarGoogle Scholar
  49. KAISER, G. E., AND GARLAN, D. 1989. Synthesizing programming environments from reusable features. In Frontier Series: Software Reusability: Volume II Applications and Experience. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 35-55, Chap. 2.]] Google ScholarGoogle Scholar
  50. KATZ, S., R~CHTER, C. A., AND THE, K. 1987. PARIS: A system for reusing partially interpreted schemas. In 9th International Conference on Software Engineering (Monterey, Calif., Mar.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 377-385. Also in Tracz {1988} and Katz et al. {1989}.]] Google ScholarGoogle Scholar
  51. KATZ, S., RICHTER, C. A., AND THE, K. 1989. PARIS: A system for reusing partially interpreted schemas. In Frontier Series: Software Reusability: Volume ! Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 257-273, Chap. 10. Originally Katz et al. {1987}.]] Google ScholarGoogle Scholar
  52. KERNIGHAN, B. W. 1983. The Unix system and software reusability. In Workshop on Reusability *n Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 235-239. Also in Kernighan {1984} and Freeman {1987b}.]]Google ScholarGoogle Scholar
  53. KERNIGHAN, B. W. 1984. The Unix system and software reusability. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 513-518. Originally Kernighart {1983}.]]Google ScholarGoogle Scholar
  54. KNUTH, D., E. 1973. The Art of Computer Programming. Addison-Wesley, Reading, Mass.]] Google ScholarGoogle Scholar
  55. KAUCHTEN, P., SCHONBERG, E., AND SCHWARTZ, J. 1984. Software prototyping using the SETL programming language. IEEE Softw. 1, 4 (Oct.), 66-75.]]Google ScholarGoogle Scholar
  56. IiRUEGER, C. W. 1987. Expert system engineering and its relation to conventional software engineering. Ph.D. area qualifier paper. Carnegie- Mellon Univ., Pittsburgh, Penn. Available from author on request.]]Google ScholarGoogle Scholar
  57. KRUEGER, C. W. 1992. Application-specific object management architectures. Ph.D. dissertation, Carnegie-Mellon Univ.]]Google ScholarGoogle Scholar
  58. LANE, T. G. 1990. User interface software structures. Ph.D. dissertation, Carnegie-Mellon Univ.]] Google ScholarGoogle Scholar
  59. LATOUR, L., AND JOHNSON, E. 1988. Seer: A graphical retrieval system for reusable Ada software modules. In The 3rd International IEEE Conference on Ada Applications and Environments (Manchester, N.H., May). IEEE Computer Society Press, Los Alamitos, Calif., pp. 105-113.]]Google ScholarGoogle Scholar
  60. LESK, M. E., AND SCHMII/T, E. 1979. Lex: A Lexical Analyzer Generator in the UNIX Programmer's Manual Supplementary Documents, 7th ed. AT 8, T Bell Laboratories, Indianapolis, Ind.]]Google ScholarGoogle Scholar
  61. LEvY, L. S. 1986. A metaprogramming method and its economic justification. IEEE Trans. Softw. Eng. SE-12, 2 (Feb.), 272-277.]] Google ScholarGoogle Scholar
  62. LIEBERHERR, K. J., AND RIEL, A. J. 1988. Demeter: A CASE study of software growth through parameterized classes. In The lOth International Conference on Software Engineering (Singapore, Apr.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 254-264.]] Google ScholarGoogle Scholar
  63. LISKOV, B. 1987. Data abstraction and hierarchy. In OOPSLA '87, Addendum to the Proceedings (Orlando, Fla., Oct.). ACM Sigplan, New York, pp. 17-34.]] Google ScholarGoogle Scholar
  64. LIU, S., AND PAIGE, R. 1979. Data structure choice/formal differentiation. Tech. Rep. NSO- 15, Courant Institute of Mathematical Sciences, New York.]]Google ScholarGoogle Scholar
  65. LOECKX, J., AND SIEBER, K. 1984. Wiley and Teubher Series in Computer Science: The Foundations of Program Verification. John Wiley, New York.]] Google ScholarGoogle Scholar
  66. LUCKHAM, D. C., AND VaN HENKE, F. W. 1984. An overview of Anna, a specification language for Ada. In 1984 Conference on Ada Applications and Enwronments (St. Paul, Minn., Oct.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 116-127.]]Google ScholarGoogle Scholar
  67. MARCUS, S., ED. 1988. Kluwer International Series in Engineering and Computer Science: Automatic Knowledge Acquisition for Expert Systems. Kluwer Academic Publishers, Boston, Mass.]] Google ScholarGoogle Scholar
  68. MCDERMOTT, J. 1986. Making expert systems explicit. In Information Processing 86. IFIP, Elsevier Science Pub., New York, pp. 539-544.]]Google ScholarGoogle Scholar
  69. MCDERMOTt, J. 1988. Preliminary steps toward a taxonomy of problem-solving methods. In Kluwer International Series in Engineering and Computer Science. Automatic Knowledge Acquisition for Expert Systems. Marcus, S., Ed., Kluwer Academic Publishers, Boston, Mass., pp. 225-256, Chap. 8.]]Google ScholarGoogle Scholar
  70. MCILROY, M. D., 1968. Mass produced software components. In Software Engineering; Report on a conference by the NATO Science Committee (Garmisch, Germany, Oct.). Naur, P., and Randell, B., Eds. NATO Scientific Affairs Division, Brussels, Belgium, pp. 138-150.]]Google ScholarGoogle Scholar
  71. MENDAL, G. O., 1986. Designing for Ada reuse: A case study. In 2nd Internattonal Conference on Ada Applications and Environments (Miami Beach, Fla., Apr.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 33-42.]]Google ScholarGoogle Scholar
  72. MEYER, B. 1987. Reusability: The case for objectoriented design. IEEE Softw. 4, 2 (Mar.), 50 63. Also in Tracz {1988} and Meyer {1989}.]]Google ScholarGoogle Scholar
  73. MEYER, B. 1989. Reusability: The case for objectoriented design. In Frontier Series: Software Reusabilzt~: Volume H Applications and Experience. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York. pp. I 33, Chap.1. Originally Meyer {1987}.]] Google ScholarGoogle Scholar
  74. NAUER, P., AND RANDELL, B., EDS. 1968. Software Engineering; Report on a Conference by the NATO Science Committee. NATO Scientific Affairs Division, Brussels, Belgium.]]Google ScholarGoogle Scholar
  75. NEIGHBORS, J. M. 1983. The Draco approach to constructing software from reusable compoents. In Workshop on Reusability in Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 167 178. Also in Neighbors {1984} and Freeman {1987b}.]]Google ScholarGoogle Scholar
  76. NEIGHBORS, J. M. 1984. The Draco approach to constructing software from reusable components. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 564 574. Originally Neighbors {1983}.]]Google ScholarGoogle Scholar
  77. NEIGHBORS, J. M. 1989. Draco: A method for enganeering reusable software systems. In Frolztier Series: Software Reusability: Volume I--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 295-319, Chap. 12. Also in Prieto-Diaz and Arango{1991}.]] Google ScholarGoogle Scholar
  78. PARNAS, D. L., CLEMENTS, P. C., AND WEISS, D. M. 1983. Enhancing reusability with information hiding. In Workshop on Reusability in Programming (Newport, R.I., Sept.). ITT Programruing, Stratford, Conn., pp. 240-247. Also in Freeman {1987b} and Parnas et ah {1989}.]]Google ScholarGoogle Scholar
  79. PARNAS, D. L., CLEMENTS, P. C., AND WEISS, D. M. 1989. Enhancing reusability with information hiding. In Frontter Ser~es: Software Reusa&llty: Volume I Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 141 157, Chap. 6. Originally Parnas and Clements {1983}.]] Google ScholarGoogle Scholar
  80. PARTSCH, H., AND STEINBRUGGEN, R. 1983. Program transformation systems. ACM Comput. Surv. 15, 3 (Sept.), 199 236.]] Google ScholarGoogle Scholar
  81. PAYTON, T., KELLER, S., PERKINS, J., ROWLAN, S., AND MARDINLY, S. 1982. SSAGS: A syntax and semantics analysis and generation system. In 6th International Computer Software and Applications Conference ( COMPSA C82 ) (Chicago, Ill., Nov.). IEEE Computer Society Press, Los Alamitos, Cahf., pp. 424-432.]]Google ScholarGoogle Scholar
  82. PmETO-Dttz, R. 1989. Classification of reusable modules. In Frontier Series: Software Reusability: Volume I--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 99-123, Chap. 4.]] Google ScholarGoogle Scholar
  83. PRIETO-DIAZ, R., AND ARANGO, G., EDS. 1991. Domain Analysis and Software System Modeling. IEEE Computer Society Press, Los Alamitos, Calif.]] Google ScholarGoogle Scholar
  84. PRIETO-DIAZ, R., AND FREEMAN, P. 1987. Classifying software for reusability IEEE Softw. 4, 1 (Jan.), 6-16. Also in Freeman {1987b}.]]Google ScholarGoogle Scholar
  85. PRIETO-DIAZ, R., AND NEIGHBORS, J. M. 1986. Module interconnection languages. J. Syst. Softw. 6, 4 (Nov.), 307-334. Also in Freeman {1987b}.]] Google ScholarGoogle Scholar
  86. PRYWES, N. S., AND LOCK, E. D. 1989. Use of the model equational language and program generator by management professionals. In Frontier Ser~es: Software Reusabtlity: Volume H--Applicatmns and Experience. Blggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 103 129, Chap. 5.]] Google ScholarGoogle Scholar
  87. REPS, T., AND TEITELBAUM, T. 1984. The synthesizer generator. In Proceedings of the ACM Slgsoft /Slgplan Software Engineering Symposlum on Practtcal Software Development Environments (Pittsburgh, Penn., Apr.). ACM SIG- SOFT/SIGPLAN, New York, pp. 42-48.]] Google ScholarGoogle Scholar
  88. RICH, C., AND WATERS, R. 1983. Formalizing reusable software components. In Workshop on Reusabih(~ in Programming (Newport, R.I., Sept.). ITT Programming, ITT, Stratford, Conn., pp. 152-159.]]Google ScholarGoogle Scholar
  89. RICH, C., AND WATERS, R. C. 1988. Automatic programming: Myths and prospects. IEEE Cornput 21, 8 (Aug.), 40-51.]] Google ScholarGoogle Scholar
  90. RICH, C., AND WATERS, R. C. 1989. Formalizing reusable software components in the programmer's apprentice. In Frontier Series: Software Reusa&lity: Volume H--Applications and Experzence. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 313-343, Chap. 15. Expanded version of Rich and Waters{1983}.]] Google ScholarGoogle Scholar
  91. SHAW, M. 1984. Abstraction techniques in modern programming languages. IEEE Softw. 1, 4 (Oct.), 10 26.]]Google ScholarGoogle Scholar
  92. SHAW, M. 1989. Larger scale systems require higher-level abstractions. In Procee&ngs of the 5th Internattonal Workshop on Software Specifzcation and Destgn (May). IEEE Computer Society Press, Los Alamitos, Cahf., pp. 143 146.]] Google ScholarGoogle Scholar
  93. SHAW, M. 1991. Heterogeneous design ~dioms for software architectures. In Procee&ngs of the 6th International Workshop on Software Spec,- fzcation and Design (Come, Italy, Oct.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 1-8.]] Google ScholarGoogle Scholar
  94. STANDISH, T. A. 1984. An essay on software reuse. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 494-497.]]Google ScholarGoogle Scholar
  95. STAUDT, B. J., KRUEGER, C. W., HABERMANN, A. N., AND AMBRIOLA, V. 1986. The GANDALF system reference manuals. Tech. Rep. CMU-CS- 86130, Carnegie-Mellon Univ., Pittsburgh, Penn.]]Google ScholarGoogle Scholar
  96. STEFIK, M., AND BOBROW, D. G. 1986. Object-oriented programming: Themes and variations. The AI Mag. 16, 4, 40-62.]] Google ScholarGoogle Scholar
  97. TEXAS INSTRUMENTS 1985. The TTL Data Book, Vol. 2. Texas Instruments, Dallas, TeE.]]Google ScholarGoogle Scholar
  98. TRACZ, W., ED. 1988. Tutorial: Software Reuse: Emerging Technology. IEEE Computer Society Press, Los Alamitos, Calif.]] Google ScholarGoogle Scholar
  99. TSENG, J. S., SZYMA~S~C~, B., S~I, Y., ANn PRYWES, N. S. 1986. Real-time software life cycle with the model system. IEEE Trans. Softw. Eng. SE-12, 2 (Feb.), 358 373.]] Google ScholarGoogle Scholar
  100. VOLPANO, D. M., AND KmBURTZ, R. B. 1985. Software templates. In 8th International Conference on Software Engineering (London, UK, ug.). IEEE Computer Society Press, Los Alamitos, Calif., pp. 55-60.]] Google ScholarGoogle Scholar
  101. V^IJP~O, D. M., AND KmBURTZ, R. B. 1989. The templates approach to software reuse. In Frontier Series: Software Reusability: Volume I--Concepts and Models. Biggerstaff, T. J., and Perlis, A. J., Eds. ACM Press, New York, pp. 247-255, Chap. 9.]] Google ScholarGoogle Scholar
  102. WATERS, R. C. 1985. The programmer's apprentice: A session with KBEmacs. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.). 1296-1320.]] Google ScholarGoogle Scholar
  103. WEGNER, P. 1983. Varieties of reusability. In Workshop on Reusability in Programming (Newport, R.I., Sept.). ITT Programming, Stratford, Conn., pp. 30-44. Also in Freeman {1987b}.]]Google ScholarGoogle Scholar
  104. ZAVE, P. 1984. The operational versus the convem tional approach to ~oftware development. Commun. ACM 27, 2 (Feb.), 104 118.]] Google ScholarGoogle Scholar
  105. ZAVE, P., AND SCHELL, W. 1986. Salient features of an executable specification language and its environment. IEEE Trans. Softw. Eng. SE-12, 2 (Feb.), 312 325.]] Google ScholarGoogle Scholar

Index Terms

  1. Software reuse

                          Recommendations

                          Comments

                          Login options

                          Check if you have access through your login credentials or your institution to get full access on this article.

                          Sign in

                          Full Access

                          • Published in

                            cover image ACM Computing Surveys
                            ACM Computing Surveys  Volume 24, Issue 2
                            June 1992
                            81 pages
                            ISSN:0360-0300
                            EISSN:1557-7341
                            DOI:10.1145/130844
                            Issue’s Table of Contents

                            Copyright © 1992 ACM

                            Publisher

                            Association for Computing Machinery

                            New York, NY, United States

                            Publication History

                            • Published: 1 June 1992
                            Published in csur Volume 24, Issue 2

                            Permissions

                            Request permissions about this article.

                            Request Permissions

                            Check for updates

                            Qualifiers

                            • article

                          PDF Format

                          View or Download as a PDF file.

                          PDF

                          eReader

                          View online with eReader.

                          eReader