SOFTWARE REUSE

SOFTWARE REUSE
复制标题

DOI:
10.1145/130844.130856
复制
发表时间:
1992-06-01
期刊:
COMPUTING SURVEYS
影响因子:
--
通讯作者:
KRUEGER, CW
KRUEGER, CW
中科院分区:
其他
文献类型:
--
作者:
KRUEGER, CW

文献摘要

被引文献

相似文献

软件重用是从现有软件创建软件系统而不是从头开始构建软件系统的过程。这个简单而强大的愿景于 1968 年提出。然而,软件重用未能成为标准的软件工程实践。为了理解其中的原因,研究人员重新对软件重用以及实现软件重用的障碍产生了兴趣。本文调查了研究文献中发现的软件重用的不同方法。它使用分类法来描述和比较不同的方法,并对软件重用领域进行概括。该分类法根据可重用工件以及这些工件的抽象、选择、专门化和集成方式来描述每种重用方法的特征。抽象在软件重用中发挥着核心作用。如果要有效地重用软件工件,简洁且富有表现力的抽象至关重要。重用技术的有效性可以根据认知距离来评估——认知距离是使用该技术所需智力努力的直观衡量标准。认知距离通过两种方式减少:(1) 重用技术中的更高级别抽象减少了从软件系统的初始概念到重用技术中的表示所需的工作量,(2) 自动化减少了从重用技术中的抽象到可执行实现所需的工作量。这项调查将有助于回答以下问题:什么是软件重用?为什么要重用软件?重用软件有哪些不同的方法?不同方法的效果如何?实施软件重用技术需要什么?为什么软件复用困难?软件重用研究的开放领域有哪些?
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?