2001年第2期 内蒙古科技与经济 63
软 件 重 用 技 术 及 其 进 展
王洪薇
(内蒙古大学计算机学院)
摘 要:随着软件开发从结构化方法发展到面向对象方法,软件重用方式相应地从源代码级、目标
代码级发展到类库级以及可视化环境 中的组件技术。本文介绍 了各种重用方式及各 自的优缺点,重点讨
论了作为最新重用方式的组件开发技术对重用概念的丰富与发展。
关键词:重用方式;姐件技术;可视化环境
中图分类号:TP31 文献标识码:A 文章编号:1007--6921(2001)02—0063一O2
1 引盲
软件重用的概念是随着软件开发方法的不断发
展而逐步建立起来的。所谓重用是指利用现有的软
件及其构件或者它们的抽象来构造新的软件系统,
即将原有软件或系统 中的代码数据和方法或者 由它
们抽象而得的构件作为其 中的一部分直接引用。最
初的计算机中,由于软件依赖于具体的硬件结构,重
用的可能性很小 }随着系统 的发展和软件的不断丰
富,人们开始在更高一层 的虚拟机器上开发软件,此
时软件不再依赖于具体的机器结构,这就使重用成
为可能;当今由于软件系统越来越庞大,重用显得尤
为重要,尤其是 WINDOWS操作系统及可视化环境
的推出,其一致的图形界面、设备无关性等特点 ,以
及基于构件 的开发方法更 为重用创造 了条件 ,很大
程度地推动了软件重用技术的发展。
2 软件重用的意义
当今软件开发的主流思想即是如何在最短的时
间内完成设计 任务,采用重 用技术由于直接引用了
原有的成分,必然能够提高软件的开发效率 ;另外重
用成分一般是经过检验的,质量可以保证,因此软件
重用可以明显地提高软件质量 。
3 软件重用的形式
软件重用可分为三个步骤:①获取,指从软件实
例中抽取可重用的成分。②管理,指有效地组织所获
取的软构件。③施用.指使用已积累的可重用资源,
解决新问题。正是 由于实现这三个步骤的方法不同,
软件重用在程序设计发展的不同阶段采用了不同的
形 式 。
3.1 结构化程序设计 阶段
该阶段重用主要有源代码级重用和 目标代码级
重用两种形式。
源代码级重用是最低级的重用 方式 ,也是最基
本的一种方式。使用该种重用方式,为了编写出可重
用的代码 ,软件技术人员必须在细节上耗费大量 的
精力;重用时 ,程序员必须读懂重用 的代码 ,有时 为
了满足新系统的需要 ,编程人员又不得不对重用 的
源代码进行必要的修改。因此源代码级的重用对编
程人员要求是 比较高的。
目标代码级重用是将常用的一些功能模块集 中
起来 ,经过编译独立存放在一个二进制文件中,一般
以函数库的方式来体现,多数结构化编程语言都支
持这种方式 。函数库提供一个清晰的接 口,程序员只
要指定必要的接 口参数 即可重用某个功能模块 ,而
不必要知道源代码的具体内容。但由于程序员不能
对重用代码进行修改,大大降低了重用的灵活性 。另
外 由于使用函数库重用功能模块 ,它们 与数据是分
离的,不可能实现大规模重用。
不论源代码还是 目标代码级的重用,都是受所
使用 的编程语言限制的,不能实现与开发平 台无关,
重用的范围只能是使用该种语言开发的软件之内。
3.2 面向对象程序设计阶段
面向对象的开发方法提出的类对象和继承等概
念为软件重用开辟 了一个崭新的时代。将数据和方
法封装在一个个对象之 中,软件开发人员 可以通过
建立派生类来继承父类 的绝大部分可重用信息 ,而
且 与函数库类似 ,大部分 面向对象的开发环境都将
常用的类集中在一起,经过编译形成一个类库 ,程序
员可以通过继承机制重用类库中的某个类。
面向对象技术 中的重用有三种方式:直接重用、
进化性重用和独立开发。开发过程中,如果可以从类
库 中找出已有的可 以直接提供所要求功能的类 ,这
样 就可以直接通过该类产生一 个实例(对象),实现
维普资讯
64 内蒙古科技与经济 2001年第2期
直接重用;进化型重用也称为继承性重用,其理论依
据在于类之间的继承性.新的类作为已有类库中某
十类的子类 ,继承 了父类的所有功能,然后在新 的类
中加入必要的方法和数据。新的类也可以通过对几
个类的多重继承来构造;如果找不到符合上述两种
类型的对象类 ,只能独立开发新的对象类,但仍可以
把一些已有的类、实例作为新类的成员进行重用。
面向对象程序设计中类库的出现使得大规模的
软件重用得以实现 ,并大大提高了重用的可维护性,
但 由于类库也是经过特定的语言编译而成的,所 以
也受到开发语言的限制。
3.3 基于构件 的开发技术
软构件的产生与软件行业工业化趋势是密不可
分的。软件工业与硬件工业有着相似之处 ,硬件工业
中由于 IC技术 的出现,使得硬件系统 的开发变得更
容易,把硬件人员从烦琐的细节 中解脱出来 ,从总体
上利用 IC组台设计出更复杂的系统。构件的概念正
是从硬件集成电路的思想中得到启发而产生的。
软构件又称组件 ,它是以嵌^后可马上使用的
即插即用型概念 为核心,包括二进制形式 的可重用
的代码和数据。外部遵循一个二进制标准,而内部的
实现是不受语言限制的,可以用任何支持指针操作
的语言来实现。
基于构件的软件开发方法是 当前软件开发的一
个新思潮,大大提 高了代码的重用性 ,使软件开发摆
脱 了小作坊的工作方式,按照大规模 的工业化方式
进行。不同的软件开发商开发并销售具有各种功能
的构件,这些构件将其具体功能封装起来,一般遵从
某一个构件标准,其他软件开发商就可 以象组装机
器零件一样 ,将购买来的构件组装成具有某种功能
的产品。
基于构件的软件开发思想来 自于面向对象的软
件设计理论 .但又是这一理论的发展 ,更好地支持软
件重用。面向对象中的封装技术是构件技术的基础 ,
严格来讲构件并不是对象,它支持封装与重用,但并
不强调继承性。与面向对象类库重用方式相 比,构件
重用不受编程语言和编译程序的限制,因此重用的
范围更广泛;而且 软构件提供规格化的二进制级软
部件构架,通过这个构架,不同的开发者可以跨地址
空间、跨网络以至于跨机器结构进行交互 。
基于 WIND0WS的可视化开发环境推动了构
件技术的发展,使得软件重用发展到一个新的阶段
由于WINDOWS下 ,所有的应用程序具有一致的图
形界面(窗口),每个窗 El中的构件都有类似的功能
和操作 。可视化环境 中将常用的构件如按扭、文本
框、列表框等封装为一个个具体的可视构件,在可视
化设计阶段从构件板 中选取合适的构件放置到应用
程序窗 口中,并设 置其相关 属性 即可完成界面的设
计。如 Microsoft推出的VBX和 OCX控件 。
目前组件分 为两大 类:一种是 Microsoft推 出
的 ActiveX,另一种是 Sun的 Java Bean。ActiveX
可以做到操 作系统级兼容 ,即在 WINDOWS下运
行,支持 WINDOWS中的各类开发工具;Java Bean
在所有支持 Java的平台上都可以运行 ActiveX的
发展到成熟经历了如下四个阶段 :
3.3.1 动态数据交换(DDE),它是 WINDOWS程
序之间传递消息的原始协议,提供应用程序之间的
同步通信 ,支持多种平台软件的集成与互访 。可以使
不同的应用程序通过建立链接的方式实现数据的重
用。
3.3.2 对象链接与嵌入(OLE),这是对 DDE的一
种扩展 ,利用 OLE可以在应用系统的各程序之问创
建可视的链接关系。并且允许重用二进制 软构件 ,软
件开发者可以将他们 的数据和方法封装成为可视的
对象,并且通过外部接 口把它插^到应用程序中,应
用程序可以与其它应用程序交换对象,处 理和使用
其它应用程序定义的对象。开发者只关心如何使用
这些对象 ,而不必考虑怎样去具体实现它们。
3.3.3 组件对象模型(COM),它是一种 构件软件
通用体系结构,即构件对象。旨在建立一套软构件标
准和接 El标准 ,确保用不 同语言编写的软构件具备
二进制级的互操作性 。这种结构允许应用程序和系
统由不同软件供 应商提供的构件组成,并且 可以按
一 种定义好的方式相互连接和通信。如今COM 已
经成了使用和设计 OLE应用程序的一个工业标准。
3.3.4 最后,Microsoft在 CoM 的基础上 推出 了
ActiveX.引入了“软件构件”的概念。支持“软件包”
的概念,实现了软件级 的重用。
4 结论
随着软件系统 的 日益庞大 .软件重用技术越来
越受到人们 的重视,而利用组件技术 ,使得软件的开
发变得更加方便和快捷,尤其是极大地增 强了软件
的重用能力。因此组件技术不断发展完善必将作为
一 种重要的软件重用手段 。
[参考文献]
[1]费宗铭、王志坚、棘家福 .款件复用的机器支撑
. 计算机学报,1994,7
[2]张辉、龚杰民.款构件与面向对象技术 .计算机
工程 .1 1 98,5
(33俞集辉、贾代平 .面向对象技术与可视化开发环
境 .计算机系统应用,1998,2
收稿 日期 :2001年 1月 3日
维普资讯