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?
- BALZER, R. 1985. A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.), 1257-1268.]] Google Scholar
- 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 Scholar
- B~NTLEY, J. 1986. Programming pearls. Commun. ACM 29, 5 (May), 364-369.]] Google Scholar
- 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 Scholar
- BIGGERSTAFF, T. J., AND PERLIS, A. J., EDS. 1989a. Frontier Series: Software Reusability: Volume I --Concepts and Models. ACM press, New York.]] Google Scholar
- B~CERSTAFF, T. J., AND PERLIS, A. J., Ens. 1989b. Frontier Series: Software Reusability: Volume H Applications and Experience. ACM Press, New York.]] Google Scholar
- 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 Scholar
- 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 Scholar
- BOEHM, B. W. 1987. Improving software productivity. IEEE Comput. 20, 9 (Sept.), 43-57.]] Google Scholar
- BOOEH, G. 1987. Software Components with Ada: Structures, Tools, and Subsystems. Benjamin/ Cummings Publishing Company, Inc., Menlo Park, Calif.]]Google Scholar
- BROOKS, F. P. JR. 1975. The Mythical Man-Month. Addison-Wesley, Reading, Mass.]] Google Scholar
- BROOKS, F. P. 1987. No silver bullet: Essence and accidents of software engineering. IEEE Cornput. 20, 4 (Apr.), 10-19.]] Google Scholar
- 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 Scholar
- CHEATHAM, T. E. JR. 1984. Reusability through program transformatLons. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 589-594. Originally Cheatham { 1983}.]]Google Scholar
- 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 Scholar
- 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 Scholar
- CLEAVELAND, J. C. 1988. Building application generators. IEEE Softw. 5, 4 (July), 25-33. Also in Prieto-Diaz and Arango {1991}.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- DONGARRA, J. J., AND GROSSE, E. 1987. Distribution of mathematical software via electronic mall. Commun. ACM 30, 5 (May), 403-407.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- EVB SOFTWARE 1985. An Object Oriented Design Handbook for Ada Software. EVB Software Engineering, Inc., Fredrick, Maryland.]]Google Scholar
- 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 Scholar
- 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 Scholar
- FICKAS, S. F 1985. Automating the transformational development of software. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.), 1268-1277.]] Google Scholar
- 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 Scholar
- 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 Scholar
- FREEMAN, P., ED. 1987b. Tutorial: Software Reusability. IEEE Computer Society Press, Washington, D.C.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- HOROWITZ, E., KEMPER, A., AND NARASIMHAN, B. 1985. A survey of application generators. IEEE Softw. 2, 1 (Jan.), 40-54.]]Google Scholar
- 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 Scholar
- IMSL 1987. IMSL Math/Library User's Manual. 1.0 Edition, Houston, Tex.]]Google Scholar
- 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 Scholar
- KAISER, G. E. 1985. Semantics for structure editing environments. Ph.D. dissertation, CarnegSe-Mellon Univ.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- KERNIGHAN, B. W. 1984. The Unix system and software reusability. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 513-518. Originally Kernighart {1983}.]]Google Scholar
- KNUTH, D., E. 1973. The Art of Computer Programming. Addison-Wesley, Reading, Mass.]] Google Scholar
- KAUCHTEN, P., SCHONBERG, E., AND SCHWARTZ, J. 1984. Software prototyping using the SETL programming language. IEEE Softw. 1, 4 (Oct.), 66-75.]]Google Scholar
- 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 Scholar
- KRUEGER, C. W. 1992. Application-specific object management architectures. Ph.D. dissertation, Carnegie-Mellon Univ.]]Google Scholar
- LANE, T. G. 1990. User interface software structures. Ph.D. dissertation, Carnegie-Mellon Univ.]] Google Scholar
- 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 Scholar
- 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 Scholar
- LEvY, L. S. 1986. A metaprogramming method and its economic justification. IEEE Trans. Softw. Eng. SE-12, 2 (Feb.), 272-277.]] Google Scholar
- 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 Scholar
- 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 Scholar
- LIU, S., AND PAIGE, R. 1979. Data structure choice/formal differentiation. Tech. Rep. NSO- 15, Courant Institute of Mathematical Sciences, New York.]]Google Scholar
- LOECKX, J., AND SIEBER, K. 1984. Wiley and Teubher Series in Computer Science: The Foundations of Program Verification. John Wiley, New York.]] Google Scholar
- 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 Scholar
- MARCUS, S., ED. 1988. Kluwer International Series in Engineering and Computer Science: Automatic Knowledge Acquisition for Expert Systems. Kluwer Academic Publishers, Boston, Mass.]] Google Scholar
- MCDERMOTT, J. 1986. Making expert systems explicit. In Information Processing 86. IFIP, Elsevier Science Pub., New York, pp. 539-544.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- MEYER, B. 1987. Reusability: The case for objectoriented design. IEEE Softw. 4, 2 (Mar.), 50 63. Also in Tracz {1988} and Meyer {1989}.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- PARTSCH, H., AND STEINBRUGGEN, R. 1983. Program transformation systems. ACM Comput. Surv. 15, 3 (Sept.), 199 236.]] Google Scholar
- 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 Scholar
- 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 Scholar
- PRIETO-DIAZ, R., AND ARANGO, G., EDS. 1991. Domain Analysis and Software System Modeling. IEEE Computer Society Press, Los Alamitos, Calif.]] Google Scholar
- PRIETO-DIAZ, R., AND FREEMAN, P. 1987. Classifying software for reusability IEEE Softw. 4, 1 (Jan.), 6-16. Also in Freeman {1987b}.]]Google Scholar
- PRIETO-DIAZ, R., AND NEIGHBORS, J. M. 1986. Module interconnection languages. J. Syst. Softw. 6, 4 (Nov.), 307-334. Also in Freeman {1987b}.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- RICH, C., AND WATERS, R. C. 1988. Automatic programming: Myths and prospects. IEEE Cornput 21, 8 (Aug.), 40-51.]] Google Scholar
- 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 Scholar
- SHAW, M. 1984. Abstraction techniques in modern programming languages. IEEE Softw. 1, 4 (Oct.), 10 26.]]Google Scholar
- 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 Scholar
- 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 Scholar
- STANDISH, T. A. 1984. An essay on software reuse. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 494-497.]]Google Scholar
- 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 Scholar
- STEFIK, M., AND BOBROW, D. G. 1986. Object-oriented programming: Themes and variations. The AI Mag. 16, 4, 40-62.]] Google Scholar
- TEXAS INSTRUMENTS 1985. The TTL Data Book, Vol. 2. Texas Instruments, Dallas, TeE.]]Google Scholar
- TRACZ, W., ED. 1988. Tutorial: Software Reuse: Emerging Technology. IEEE Computer Society Press, Los Alamitos, Calif.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- WATERS, R. C. 1985. The programmer's apprentice: A session with KBEmacs. IEEE Trans. Softw. Eng. SE-11, 11 (Nov.). 1296-1320.]] Google Scholar
- 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 Scholar
- ZAVE, P. 1984. The operational versus the convem tional approach to ~oftware development. Commun. ACM 27, 2 (Feb.), 104 118.]] Google Scholar
- 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 Scholar
Index Terms
- Software reuse
Recommendations
Role and relevance of reuse repository facilitating software development
This paper discusses the role and relevance of reuse repositories and how software reuse influences software development. Reuse repositories are designed to increase the possibility of locating reusable components at a centralized location to ease ...
Forty years of software reuse
Forty years of software reuseThis paper is an overview of software reuse, its origins, research areas and main historical contributions. Reuse as the process of using existing software artefacts and knowledge has more than 40-year long history, and is ...
An evolutionary approach to constructing effective software reuse repositories
Repositories for software reuse are faced with two interrelated problems: (1) acquiring the knowledge to initially construct the repository and (2) modifying the repository to meet the evolving and dynamic needs of software development organizations. ...
Comments