Affiliation:
1. School of Computer Science, G'arnegie Mellon University, Pittsburgh, Pennsylvania
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?
Publisher
Association for Computing Machinery (ACM)
Subject
General Computer Science,Theoretical Computer Science
Cited by
550 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Code search engines for the next generation;Journal of Systems and Software;2024-09
2. A Model-Driven Framework for Composition-Based Quantum Circuit Design;ACM Transactions on Quantum Computing;2024-08-21
3. Bloat beneath Python’s Scales: A Fine-Grained Inter-Project Dependency Analysis;Proceedings of the ACM on Software Engineering;2024-07-12
4. Toward integrating reuse approach within scrum process;2024 IEEE 7th International Conference on Advanced Technologies, Signal and Image Processing (ATSIP);2024-07-11
5. Composable Quantum Oracles for Shifting Quantum Circuits Abstraction Level;2024 IEEE International Conference on Quantum Software (QSW);2024-07-07