ACM Home Page
Please provide us with feedback. Feedback
Software reuse
Full text PdfPdf (4.96 MB)
Source ACM Computing Surveys (CSUR) archive
Volume 24 ,  Issue 2  (June 1992) table of contents
Pages: 131 - 183  
Year of Publication: 1992
ISSN:0360-0300
Author
Charles W. Krueger  School of Computer Science, G'arnegie Mellon University, Pittsburgh, Pennsylvania
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 163,   Downloads (12 Months): 683,   Citation Count: 150
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/130844.130856
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
3
 
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.
5
6
7
8
 
9
 
10
BOOEH, G. 1987. Software Components with Ada: Structures, Tools, and Subsystems. Benjamin/ Cummings Publishing Company, Inc., Menlo Park, Calif.
 
11
 
12
 
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}.
 
14
CHEATHAM, T. E. JR. 1984. Reusability through program transformatLons. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 589-594. Originally Cheatham { 1983}.
15
 
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.
 
17
 
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.
 
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}.
20
 
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.
22
23
24
 
25
 
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.
 
27
EVB SOFTWARE 1985. An Object Oriented Design Handbook for Ada Software. EVB Software Engineering, Inc., Fredrick, Maryland.
 
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}.
29
 
30
 
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}
 
32
 
33
34
 
35
36
 
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.
 
38
 
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}.
 
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}.
41
 
42
HOROWITZ, E., KEMPER, A., AND NARASIMHAN, B. 1985. A survey of application generators. IEEE Softw. 2, 1 (Jan.), 40-54.
 
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.
 
44
IMSL 1987. IMSL Math/Library User's Manual. 1.0 Edition, Houston, Tex.
 
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.
 
46
47
 
48
49
 
50
51
 
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}.
 
53
KERNIGHAN, B. W. 1984. The Unix system and software reusability. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 513-518. Originally Kernighart {1983}.
 
54
 
55
KAUCHTEN, P., SCHONBERG, E., AND SCHWARTZ, J. 1984. Software prototyping using the SETL programming language. IEEE Softw. 1, 4 (Oct.), 66-75.
 
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.
 
57
KRUEGER, C. W. 1992. Application-specific object management architectures. Ph.D. dissertation, Carnegie-Mellon Univ.
 
58
 
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.
 
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.
 
61
 
62
63
 
64
LIU, S., AND PAIGE, R. 1979. Data structure choice/formal differentiation. Tech. Rep. NSO- 15, Courant Institute of Mathematical Sciences, New York.
 
65
 
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.
 
67
 
68
MCDERMOTT, J. 1986. Making expert systems explicit. In Information Processing 86. IFIP, Elsevier Science Pub., New York, pp. 539-544.
 
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.
 
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.
 
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.
 
72
MEYER, B. 1987. Reusability: The case for objectoriented design. IEEE Softw. 4, 2 (Mar.), 50 63. Also in Tracz {1988} and Meyer {1989}.
73
 
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.
 
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}.
 
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}.
77
 
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}.
79
80
 
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.
82
 
83
 
84
PRIETO-DIAZ, R., AND FREEMAN, P. 1987. Classifying software for reusability IEEE Softw. 4, 1 (Jan.), 6-16. Also in Freeman {1987b}.
 
85
86
87
 
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.
 
89
90
 
91
SHAW, M. 1984. Abstraction techniques in modern programming languages. IEEE Softw. 1, 4 (Oct.), 10 26.
92
 
93
 
94
STANDISH, T. A. 1984. An essay on software reuse. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.), 494-497.
 
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.
 
96
 
97
TEXAS INSTRUMENTS 1985. The TTL Data Book, Vol. 2. Texas Instruments, Dallas, TeE.
 
98
 
99
 
100
101
 
102
 
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}.
104
 
105

CITED BY  151