谢芳
摘要:基于组件的方式来开发软件的技术,已经成为软件重用的主要手段。这篇文章是基于当今流行的软件重用理论,描述了软件重用优点和组成部分,在基本概念和功能框架下来分析软件组件的工作机制,并给出了系统中基于组件的体系结构参考模型,然后介绍了软件架构设计方法,给出了一个实际应用中的基于组件的软件重用。
关键词:组件;软件工程;重用技术;代理
中图分类号:TP311
1 研究背景
在正常情况下,应用程序开发过程遵循一定的规律,一般软件系统开发包括以下几个阶段:需求分析、设计、编码、测试和维护。当从零开始进行开发时,应用系统的开发必然有大量的重复性工作,例如:用户需要访问的数据类型有重复性需求分析、编码、测试,以及重复的项目文档。所以我们必须首先调查系统的性质,调查通常包括三方面:(1)通用基本组件调查:一个特定的计算机系统组成的基本数据结构,以及它的用户界面元素等区域(2)系统公共部分的常见应用领域调查,如该系统存在于各种应用领域的系统组件;(3)该系统应用程序的特定组件调查,包括每个应用程序特定的复合帧。其中,有重复特性的应用系统的开发,主要是成员组件的重复开发。
2 软件重用的类型
软件重用技术,可以从不同的视角进行观察。基于可重用的对象,软件重用可以分为对产品和对过程的重用。针对产品的重用是使用现有的软件组件进行开发,即进行成员集成与装配,从而获得一个新产品。针对过程的重用,是指在软件开发过程中,使用可重用的应用程序生成器,自动或半自动生成所需的系统组件。软件重用技术,目前只适合一些特殊类型的应用,主要是针对过程的自动化。重用的软件产品越来越多,现在已经成为软件产业的现实,也成为了主流的软件生产方式。
在获取信息分析的基础上进行研究,软件重用可以分为白盒重用、黑盒重用。利用黑盒技术重用现有的工件,意味着不需要做任何修改,直接重用即可。黑盒重用是一种理想模式,现实中较少。白盒重用是指现有的工件不能完全满足用户的需求,需要根据用户的需求进行修改,在使用前需要适应变化。在大多数应用程序开发中,需要考虑零件装配过程中所需的组成部件的变化。
在抽象的层次研究,软件重用可分为以下类别:(1)可重用组件的重用,需要分析某些事物(问题)的阈值,这种解决方案是更高层次的抽象;(2)设计重用,比代码重用有更高的抽象级别,所以这类重用的实施环境影响较小,使可重用的组件重用的机会更大,并且需要较少的修改;(3)代码重用,包括目标代码和源代码的重用。大多数编程语言,目前均提供这方面的运营支撑,包括系统的连接、绑定和其他功能,来支持这种重用。
3 软件重用的优点
软件重用技术,是在软件开发中避免重复的一种解决方案。软件重用所有的出发点是应用系统的开发不再使用“从无到有”的模式。软件重用技术在现有工作的基础上,充分利用在过去积累的知识和经验,例如:过去的需求分析、设计、应用程序、扩展代码、测试计划、测试用例等。软件重用技术关注的焦点,是应用程序组件的一个特定的组合。通过软件重用,应用系统的开发可以充分利用现有的组件成品,消除包括分析、设计、编码、测试等大量的重复性工作,从而提高软件开发的效率。此外,开发将重复使用现有的成品,这样可以提供高代码质量,以避免重新开发可能引入的错误,提高软件的质量。
软件重用是指重复使用之前的开发产品,是一个减少重复性工作的过程。软件重用的具体概念,一般指的是反复使用组件的行为,在“为了重用组件设计为目的”的过程中,须要进行不同应用系统之间的代码重用,或重用不同版本的组件,有些东西不属于严格意义上的软件重用。软件重用在真正意义上,是用“旧的软件产品”更好更快地开发新的应用程序。
重用技术在软件行业,整体效果是比较微妙的,它不是一种完全一厢情愿的想法。这是由于一些技术和非技术方面的各种因素,一个重要的原因是技术的不成熟。在过去的十年,面向对象技术不断发展,提供了软件重用基本的技术支持,使得软件重用研究再次成为热点,被认为是解决软件危机最现实的方式,可以提高软件生产率。
4 组件开发
组件技术的发展有着许多分支,其中最有代表性的是CBSD技术。CBSD是SEI/CMU组件设计参考模型,该模型的设计原则通常认为是:基于独立组件的膨胀特性,组件模型必须有可用性保证,独立开发的一些标准组件可以被配置为一个共同的标准,没有特殊功能和不可预见的问题;组件的开发时间短,这将降低整体系统的开发和维护成本,增加可预测性。
基于组件的软件开发方法,借鉴了传统观念的工业生产模式。首先进行消费者需求分析,设计整体的框架结构,基于组件库需要选择完成相应的功能组件,组装后形成应用系统。如果所需的组件不存在,则去购买、定制或开发新的组件。组件和系统制造商需要严格按照要求生产组件。相关公司提供组件开发团队,团队成员不再只是编程,还需要通过经验取向元素集成开发人员,最后获取一个有效的系统。
5 基于代理的软件重用
这里的代理也称为软件代理或智能代理。许多研究者基于不同的研究内容和目标,术语“代理”被给予不同的含义。根据詹宁斯的研究成果,“代理”的定义主要可以分为两种类型,主要的分类根据它们的用途。这种定义分类划分为弱定义和强定义。代理有自主性弱定义,这主要基于它的社会性、反应性、主动性、时间连续性,是一种面向目标的行为。强定义是指除去弱定义,所展现出的“软弱”的特性,通常包括:流动性、合理性、灵活性、协作性等。
面向对象技术是用于被动实体的一种抽象。然而,它可以实现对抽象实体的活动,从而能够更好地实现一个抽象的实体代理技术活动。在代理软件工程的基础上,软件重用是一个新的研究领域。面向对象编程的代理,或者叫AOP(面向对象编程代理)是在1993年提出的概念。1995年,人工智能专家吉尔福伊断言:十年之后,大多数新兴IT技术将接受该机构的理论,这是解决2l世纪网络协作建模的必然趋势。
基于组件的重用技术面临一些必须解决的问题。需要具备用户的搜索组件需求,需要具备重用现有工件版本的用户升级机制,应用程序供应商和用户组的成员须具备一个良好的语言交流工具,须要使用相同的技术用于组件生产和组件重用技术,添加到系统的组件可以灵活地退出系统。基于组件的重用工具在互联网上发布,也必须重用开发环境的一部分。
根据上述理论,本文构建了基于组件的软件重用体系,它具备多个代理体系结构,必须考虑的因素是:选择几种类型的代理,代理的分工与合作,代理知识创造等。这种体系结构包含多种因素,例如验证机构、精确定义任务本体、定义计划等,这意味着行为的定义和交互原型。使用面向对象技术,可以实现通信模块的功能,需要根据定义的代理进行每个实例的结构开发。这一体系流程概括为:计划、实施、其他代理交互等。
6 结论
本文在当今软件危机日益显现的背景下,研究了软件重用的技术理论体系。包括软件重用的定义,软件重用的优点,软件重用的技术分类,本文还提出了了一种完善的实用体系:基于代理的软件重用技术。软件重用技术,有优点也有缺点,有些时候组件的源代码不能够很好地访问,导致组件开发的阻碍。但是,总体来说软件重用技术有着良好的发展前景。
参考文献:
[1]傅音翔,王直杰,张珏.一种基于组件的软件开发方法[J].微计算机信息,2006,22(3):228-230.
[2]梅宏,李克勤.软件重用与软件组件技术[J].电子学报,1999,27(2):51-68.
[3]熊磊.基于组件的软件重用技术研究[D].武汉大学硕士论文,2004.
[4]陆军,张育平.基于组件的软件体系结构实现技术[J].计算机工程与应用,2002,4:115-117.
[5]朱建江.基于软件组件的软件重用的研究[D].博士学位论文.南京:南京航空航天大学,200l.