复用研究在软件应用开发领域研述

时间:2022-05-29 15:40:03 公文范文 浏览次数:

摘要:软件重用是近年来软件工程一个很活跃的研究领域。实践证明,软件重用是从根本上提高软件生产率、降低成本、提高质量的有效途径;同时也说明,软件重用需要在关键技术、管理、指标等很多方面引入注重实效的变革。本文首先介绍了软件重用的概念以及可重用的软件成分,随即介绍了软件重用技术,最后提出了在实际应用中使用软件重用技术的要点。

关键词:软件重用;模块;面向对象;类 构件

20世纪70年代以来,一些机构认识到复用研究在软件开发应用领域具有重要应用价值。软件重用是复用研究的最后意义课题之一。80年代以后软件重用技术已被广泛认为能成倍提高软件生产率的重要技术。目前软件重用技术已经成为内容非常广泛的研究领域,是当今软件工程领域中的一个研究热点。比起重新开发一个软件,软件重用技术能大大缩短开发时间,节约人力、物力,提高软件可靠性。

一、软件重用技术的基本概念

最初的计算机中,由于软件依赖于具体的硬件结构,重用的可能性很小;随着系统的开发和软件的不断丰富,人们开始在更高一层的虚拟机器上开发软件,此时软件不再依赖具体的机器结构,这就使重用成为可能,当今由于软件系统越来越来庞大,重用显得更为重要。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似的软件成分的过程。简单的说就是使用现已存在的软件成分构成新的软件系统。广义的讲,软件重用可分为3个层次:知识重用、方法和标准的重用、软件成分的重用。这里仅讨论软件成分的重用。

二、软件成分可重用的必要条件

1、独立性强。

只有在模块化的系统结构中,模块内部的修改和局部系统的重构才能不影响系统的整体面貌。模块必须功能完整且唯一,并经过反复测试被确认为正确,它应该是不受或少受外界干扰的封装体。

2、高度可塑性。

在模块化的结构的前提下,这样的系统可以吧依赖于具体运行环境的部分集中在少数几个模块内,一旦环境变化可以用其他模块替代。从而使重用因素能适应各种环境,提供为适应特定需求二扩充或修改已有构建的机制,而且所提供的机制必须使用起来简单方便。

3、结构清晰。

具有适当的规模,易读,易理解。同时接口必须清晰、简单、可靠。

4、建立在标准的统一的数据界面上。

以标准的数据模式为依据,可以减少系统中模块之间的数据交换和相互依赖关系,是数据的操作集中在几个模块内

统一管理。

三、软件可重用成分分析

1、代码。人们谈论最多的是代码重用,通常把它理解为调用库中的模块(比如标准数据库)。实际上代码重用可以采用源代码剪贴、源代码包含、继承三种形式。

2、数据。采用标准的数据交换格式有利于软件重用,尤其是在当前阶段声音、图像等也被定义为数据。因为如果数据是标准的形式,应用程序无需依据格式和内容的事先一致就可以利用数据。

3、程序结构。有效的重用需要一个结构出发点,而不仅是将模块组合连接。

4、程序设计。可用的描述公共应用程序设计类型的构造方法与通用程序设计的参考资料。这种重用有助于把一个应用系统移植到完全不同的软硬件平台上。

5、程序分析结果。重用某个软件系统的分析模型。这种重用特别适用于拥护需求未改变,但体统体系结构发生了变化的场合。

6、可重用的软件可重用的不仅仅是软件成分,整个软件系统也可重用。就是说,在环境和功能需求发生变化时,可以通过一些局部性的修改,在仍然保持整体稳定的前提下,适应型的环境和需求。

四、软件重用关键技术分析

软件的重用技术可分为三个层次:知识重用、方法和标准的重用、软件成分的重用。就软件成分的重用可分为:代码重用、设计结果重用、分析结果重用。当前阶段来说,实现软件重用的技术途径有三种,一种是基于软件的自主生成,另一种是将中用技术。

1、软件组合技术

该技术就是按照一定规则把可重用的软件成分组合在一起,构成软件系统或新的可中用成分。特点是,可重用的软件成分作为被动的原子模块适用,它们在整个组合过程中保持中保持不变。用底层不见库法和上层组合法可把软构件组合成所需的软件。

2、软件生成技术

该技术是按照形式化的软件功能描述和一定的生成机理,由生成器系统主动的生成目标程序。这种方法所适用的可重用部件是生成器本身的代码模板或隐藏在变换规则及种种的模板。这种技术抽象级别高,需要由可重用软件库和知识库的支持。

3、面向对象的软件中用技术

面向对象的软件技术是重用技术中最成功的一个,它可以通过提高方法的聚合性、减小方法的规模和交互耦合的程度,以及利用继承机制、委托和封装等来提高软件的可重用性。

利用面向对象技术,可以更方便更有效的事先软件重用。面向对象技术中的“类”,是比较理想的可重用软构件,不妨称为类构件。它有实例重用、继承重用和多态重用三种重用方式。

实例重用。实例重用是最基本的中用方式,是一位类的封装性,使用者不用了解实现细节,就可以使用适当的构造函数,按照需要构建类的实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成需要的工作。这是最基本的重用。此外,还可以用几个简单的对象作为类成员,创建出一个更复杂的类。但是设计出一个理想的类构件并非一件容易的事。以确定某个类对外提供的服务为例,提供的服务过多,会增加接口的复杂度,使类构件难于理解,提供的服务过少,则会失去中用价值。

继承重用。面向对象发发特有的继承性,提供了一种对已有的类构件进行才裁剪的机制。当已有的尅构建不能通过实例重用完全满足当前系统需求时,继承重用提供了一种安全的修改已有类构件,一边在当前系统中重用的手段。需提高继承重用的效果,关键是每个子类在继承负累的属性和服务的基础上,只加入少量新属性和新服务,这不仅降低了每个类构件接口复杂度,表现出一个清晰的进化过程,提高每个子类的可理解性,而且为软件并发人员提供了更多可重用的类构件。

为提高继承重用的效果,其关键是设计一个合理的、具有一定深度的类构件继承层次结构。必要时应在领域专家帮助下,简历符合领域只是的继承层次。

多态重用。利用类的多态性不但可以降低消息连接的复杂程度,使对象的对外接口更加一般化,而且还提供了一种简单可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接的过程。

为充分实现多态重用,在设计类构件时,应该吧注意力集中到一些可能影响重用特性的操作上。否则,这些操作会妨碍类构件的重用。这是,必须吧它们从类的操作中费力出来,作为“适配接口”,也可以吧适配接口再进一步细分为转换接口和狂冲、扩充接口。

五、软件重用技术的应用分析

为了能够在软件并发过程中重用现有的软部件,必须再次之前不断的进行软部件的积累,并将它们组织成软部件库。这就是说,软件重用不仅要讨论如何检索所需的软部件以及如何对它们进行必要的就见,还要解决如何序曲软部件、如何组织软部件库等问题。因此,软件重用方法学通常要求软件开发项目既要考虑重用已有软部件的机制,又要系统的考虑生产可重用的软部件的机制。这类项目通常被称为软件重用项目。软件重用技术一个典型的要求设计的构块具有类似芯片的特性:抽象性、封闭性及信息隐蔽。一个构件可以是对某一函数、过程、数据类型、算法等可重用成分的抽象。使用构建的软件重用技术比传统方法可以简单不少,提高生产率,缩短了开发周期。

参考文献

张海潘【软件工程导论】北京清华大学出版社

郑人杰 【使用软件工程】北京清华大学出版社

推荐访问:复用 领域 开发 研究 软件