哪个知道软件复用是什么意思

哪个知道软件复用是什么意思,第1张

分类: 电脑/网络 >>软件 >>其他软件

解析:

软件复用技术概述

2003-6-30 15:31:07

[发布并查看相关评论]

开发中心 孙琪

软件复用是将已有的软件及其有效成分用于构造新的软件或系统。它不仅是对软件程序的复用,还包括对软件生产过程中其它劳动成果的复用,如项目计划书、可行性报告、需求分析、概要设计、详细设计、编码(源程序)、测试用例、文档与使用手册等等。因此,软件复用包括软件产品复用和软件过程复用两部分的内容。

软件复用不同于软件移植。软件移植是指对软件进行修改和扩充,使之在保留原有功能、适应原有平台的基础上,可以运行于新的软硬件平台。而复用则指在多个系统中,尤其是在新系统中使用已有的软件成分。

从对复用产品的了解程度和复用方式看,也可分为白盒复用与黑盒复用。黑盒复用指对已有产品或构件不需作任何修改,直接进行复用,这是理想的复用方式。它主要基于二进制代码的复用,包括可执行程序的复用和基于库(包括动态链接库和静态库)的复用。白盒复用指根据用户需求对已有产品进行适应性修改后才可使用。白盒复用一般为源代码一级的复用,以及相应的测试用例、文档等的复用。

无论白盒复用还是黑盒复用,都需要花费一定的代价熟悉和掌握被复用的软件系统。作为经济上的考虑,要求复用的代价必须大大小于重新开发的代价,否则就不应该考虑。

软件复用的一个关键因素是抽象。抽象是对软件可复用对象的提炼和概括,即将可复用对象的基本属性和相应的 *** 作,从具体的语言、环境和其他细节中提炼出来。软件的复用性很大程度上取决于对可复用对象的认识深度或者说可复用对象的抽象层次。抽象层次越高、与具体环境和特定细节越无关,则它被未来系统复用的可能性也越大。领域分析则是进行抽象的有力工具。领域分析借助特定领域、特定行业的专业知识与技能,对软件系统对象进行抽象和分类,提炼认知的对象及其相互关系,获得系统整体结构,从而生成可复用的软件构件。

通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,减少了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。

软件复用有三个基本原则,一是必须有可以复用的对象;二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关过程:可复用软件(构件)的开发(Development for Reuse)和基于可复用软件(构件)的应用系统构造(集成和组装)(Development with Reuse)。解决好这几个方面的问题才能实现真正成功的软件复用。

可复用软件(构件)的开发是实现软件复用的基本条件,对象技术的广泛使用,提供了建造和使用构件的概念基础和实用工具,有了可复用软件,基于可复用软件(构件)的应用系统构造(集成和组装)才能得以实现。软件的生产也可以象硬件的生产一样,在设计好框架后通过标准的构件组装而成。一般认为构件是具有一定功能、能够独立工作或同其他构件组合起来协调工作的程序体,一经产生,就与它的具体实现语言无关,可以认为是一段二进制码和数据段,其内部具体实现是无法看到的,可将成熟的构件当作商品出售,在保证开发者的利益同时最大地满足社会需求。采用构件来开发软件可以更有效地重用他人已有的劳动成果。

在复用软件设计中,如何设计和构造可复用的软件是软件设计者首先要面对的问题。根据面向对象的设计原理,应着眼于以下几个方面:

(1)封装性

在软构件的定义中,用户只关心事件的输入输出,对事件内部不必关心,方法和事件是独立于应用的,用户可以在软构件中定义自己的事件,对于内部的复杂性调用这并不知晓,从而提高了隐蔽性。

(2)重载

重载就是在同一软件构件中用同一名字来表示不同的方法名。一般有两种实现方法,一是方法参数的个数重载,二是方法参数的类型重载。

(3)继承

继承就是高层的类在不同范围的复用。

(4)聚合

聚合就是把一个难以复用的大软件分成若干部分构件,使其中的某些构件成为可以复用的构件。

(5)多态性

多态性指某方法不仅可以处理有相同结构的对象,也可以处理不同结构的对象。

中间件及相关软件是商业化的软件复用。仅看程序方面,软件复用后的制品也不只包括中间件软件,还包括软件框架、应用框架、通用业务构件等多种可复用形式。

重用是指在软件开发中,一个功能模块被多次使用,利用之前编写的程序重复调用,从而节约开发资源,提高开发效率。

重载是指在一个类中,同名函数拥有不同的参数,根据参数的不同来执行不同的 *** 作,重载会根据参数的个数和类型来区分函数。

复用调用是指在程序中,复用程序调用可以通过再次调用来实现,将一段或多段程序结构抽象,共有程序可以复用,用于实现不同的功能。

软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

目前及近期的未来最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如下的复用级别:

(1)代码的复用

包括目标代码和 源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不匹配的错误。想大规模的实现源程序的复用只有依靠含有大量可复用构件的构件库。如”对象链接及嵌入”(OLE)技术,既支持在源程序级定义构件并用以构造新的系统,又使这些构件在目标代码的级别上仍然是一些独立的可复用构件,能够在运行时被灵活的得新组合为各种不同的应用。

(2)设计的复用

设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。

(3)分析的复用

这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。

(4)测试信息的复用

主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新的软件测试中使用,或者在软件作出修改时在新的一轮测试中使用。后者是在测试过程中通过软件工具自动地记录测试的过程信息,包括测试员的每一个 *** 作、输入参数、测试用例及运行环境等一切信息。这种复用的级别,不便和分析、设计、编程的复用级别作准确的比较,因为被复用的不是同一事物的不同抽象层次,而是另一种信息,但从这些信息的形态看,大体处于与程序代码相当的级别。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11193903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存