




已阅读5页,还剩67页未读, 继续免费阅读
(计算机软件与理论专业论文)基于xml和软件体系结构的构件组装技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕士学位论文 摘要 从软件体系结构的角度出发,对构件组装技术进行了一定的研究。提出 了一个基于软件体系结构的、面向构件组装的构件模型,该模型从三个方面 来对构件进行规范,包括基本信息描述、构件规约以及构件实体。阐明了构 件连接同构件组装的概念和区别,并分析了构件组装的插接式和粘结式两种 结合方式。对接口绑定和接口组装进行了一定的分析,主张在进行构件组装 的同时进行接口组装。重点讨论了构件组装操作、构件组装模式以及构件组 装模板的概念,提出了一个原子组装操作集,并给出了多种构件组装模式以 及相应的组装模板。以构件模型、构件组装操作和构件组装模式为基础,提 出了一个基于x m l 的构件组装描述语言,主张从构件、构件之间的连接以 及构件组装框架这三个层次对构件组装信息进行描述。给出了一个构件组装 系统的整体框架,从整体上对构件组装技术进行了阐述。为实现构件组装自 动化,在理论上给出了一条思路,做出了一定的贡献。结合实际的项目开发, 分别对源代码构件、二进制构件和可执行文件构件三种形式构件的组装方式 进行了分析,并以两个项目为实例阐述了构件组装技术的实际应用,为构件 组装技术在目前的实际应用方式提供了一些经验。 关键词:软件工程;软件复用;软构件技术;构件组装技术;软件体系结构 哈尔滨工程太学硕士学位论文 a b s t r a c t t h i sp a p e ri ss e tf o c u so nt h er e s e a r c ho ft h ec o m p o n e n tc o m p o s i t i o n t e c h n o l o g yb a s e do nt h es o f t w a r ea r 【h i t e c t u r e ac o m p o n e n tm o d e li sp r e s e n t e d b a s e do ns o f t w a r ea r t h i t e c t u r ea n do r i e n t e dt oc o m p o n e n tc o m p o s i t i o na n di t d e s c r i b e ss o f i e w a r ec o m p o n e n ti nt h r e ef a c e t e sw h i c ha r et h eb a s i ci n f o r m a t i o n , t h ec o m p o n e n ti n t e r f a c e sa n dr u l e sa n dt h ec o m p o n e n tb o d y t h ec o n c e p t i o no f c o m p o n e n tc o m p o s i t i o ni sc l a r i f i e df r o mt h a to fc o m p o n e n tc o n n e c t i o n ,a n dt h e c o m p o s i t i o nm a n n e r sa l ed i v i d e di n t o p l u ga n ds o c k e t m a n n e ra n d “喾u d e l i n k m a n n e r t h ei n t e r f a c eb i n d i n ga n dt h ei n t e r f a c ec o m p o s i t i o na l ea n a l y z e dt o c l a i mt h a tt h ei n t e r f a c ec o m p o s i t i o ns h o u l db ec a r r i e do n 谢t ht h ec o m p o n e n t c o m p o s i t i o n 。p u t se m p h a s e so nt h ea n a l y s i sa n dr e s e a r c ho fc o m p o n e n to p e r a t o r , c o m p o s i t i o np a t t e ma n dc o m p o s i t i o nt e m p l a t e ,as e to fc o m p o n e n to p e r a t o r s , m a n yc o m p o n e n tp a t t e r n sa n dm a n yc o m p o n e n tt e m p l a t e sa r ep r e s e n t e dd u r i n g t h ea n a l y s i s b a s e do nt h ec o m p o n e n tm o d e l ,t h ec o m p o n e n tc o m p o s i t i o n o p e r a t o ra n dt h ec o m p o n e n tc o m p o s i t i o np a t t e m , a nx m l - b a s e dc o m p o n e n t c o m p o s i t i o nd e s c r i p d o nl a n g u a g e i s p r e s e n t e d t od e s c r i b et h ec o m p o n e n t c o m p o s i t i o ni n f o r m a t i o ni nt h r e ef a c e t e st h a ta r ec o m p o n e n ta l o n e ,c o n n e c t i o n b e t w e e nc o m p o n e n t sa n dc o m p o s i t i o n 蠡a m e w o r k 。p r e s e n taf r a m e w o r ko fa c o m p o n e n tc o m p o s i t i o ns y s t e mw h i c ha i m sa tt h ea u t o m a t i o no fc o m p o n e n t c o m p o s i t i o n p u t t h et h e o r yi n t o r e a l i t yb ym a k i n gs o m ea n a l y s i s o nt h e c o m p o s i t i o nm e t h o d so fd i f f e r e n tc o m p o n e n t sw h i c ha r es o u r c ec o d ec o m p o n e n t , b i n a r yc o d ec o m p o n e n ta n de x c u t a b l ec o m p o n e n t a l lt h e s es t u d ya c t sa st h e f o u n d a t i o no ft h ea p p l i c a t i o no fc o m p o s i t i o nt e c h n o l o g ya n dt a k e se f f e c ti nt h e r e a lp r o j e c tc o n s t r u c t e dt h r o u 班c o m p o n e n tc o m p o s i t i o n k e y w o r d s :s o f t w a r ee n g i n e e r i n g ;s o f t w a r em u s e ;s o f t w a r ec o m p o n e n t ; c o m p o n e n tc o m p o s i t i o n ;s o f t w a r ea r c h i t e c t u r e 哈尔滨工程大学 学位论文原刨性声明 本人郑重声明:本论文的所有工作,是在馨师豹指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中酲 注甥零| 照鳇内容外,本论文不包含任侮其悠个人域集体邑 经公开发表麴作品成聚。对本文的磺究散遗重骚赏献瓣个 人窝集薅,筠已在文中渡明确方式标明。本天完全意谈劐 本声明的法律结果由本入承担。 作者签字 : 日期:矗厂车文月砷日 第 耄绪论 随着软件规模的不敝扩大,软件搿发的质量和效率越来越成为软件人员 关注夔焦患。基于聿鸯彳孛豹较终工程( c o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g , 简称c b s e ) 被认为是解决这一问蹶的有效方法。基于构件的软件工程是在 软件复用和软件构件技术的基础之上发展成熟的种软件系统歼发方法。软 孛复焉是纛软传开发孛避免重复劳动鹣解决方寨,其出发点是蔽羽系统静开 发不蒜采瘸切“从零开始”盼模式,两是敷已裔的工俸为鏊穑,充分稠闻 过去应用添统开发中积累的知识和缀验,其核心怒软件构件技术。软件构件 技术是以构件为研究对豫,以构件韵制作、管理、组装以及与之相关的一系 剜活动燕主簧磅究活动瓣技零,箕核心技术是筏髂静缝装按零。鏊蘸,鏊肉 外对于软件构件技术的研究方兴未艾,些研究成槊已经被赢用于软件项圈 的开发过程中,但是,软件构件技术仍然还不成熟,特别是在构件组装技术 方嚣,理论磅究同实酝藏翔之超还农段缀长韵爨舞。霞魏,瓣予软辞构转 技术,特稍楚对于掏律缀装技术静磷究在今后一段时闯里仍然怒入 弼f 究的 热点。 。 课题背景 本课题来源于两个项目,一个是黑龙江省信息厅的专项基焱颈目“熬 予软搀傅瓣e r p ”,另一令是罴龙淡省秘技厅重大攻关璜嚣“工终滚鹭 理系统”。在这两个项醺中,都涉及剿构件组装的阏题。 “基于软构件的e r p ”顾名思义就是采用构件集成的方式。搭建成一个 e r p 系统。该系统的构 孛分为两种,弛是通用构件,一种是业务构件。其 中,逶霜稔彳孛指的是那黧在整个系绫中被多次复藤的穗释,像精逶蔫囊诲稳 件、通用报表打印构件、通用g u i 构件、通用帮助构件、通用学出构件、通 用数据敏躲构件等等,业务构件指的是那些完成某个特定业务的构件,包括 设冬警褒搦箨、爱量警溅褥薛、采黧管理梅箨、疼存喾莲麴锋簿等,每一静 l 哈尔滨工程大学硕士学位沧文 业务梭件又可以继续细分,直到系统所需要黪矮小粒度为止。该系统酲翦仍 然楚l j = ;l 客户程亭爱采用手工的方式,将琢子啦务构件组装成为夫的韭务鞠箨, 再组装成为e r p 系统。这种组裟方式的缺点在于效率低下,不能根据众业用 户的黼震,进行快遮的组装。如果能够开发出一种构件组凝平台,按照不同 企业鹣鼹要,铁基缀开发窭寒熬麴锌中选取逡臻豹稳俘,褥蘩缀装藏恣一个 e r p 系统,将会减摊不少的工佟麓,并能提高e r p 系统的质量。 “工作流管理系统”是一个动态管理应用构件的系统。该系统也涉殿到 构l 牛缀装的知识。从梅传组装的蹙度来看待工作流管理系统,它其实就烧一 个奁系统运芎亍静潜谈,对韭务构锫进幸亍动态缀装静系统,豳魏,构停缀装技 术在该系统中的应用主要表现在与业务构件相必的地方,即什么样的业务构 件才符合该系统调度的要求,业务构件按照什么样的方式共同完成一项工作, 怎么调发竖务稳转。这些阕题郡萄棱磐缝装技术毒一定懿联系,因嚣鸯必要 对其谶行研究。 不同的软件系统,对于构件组装技术的应用方式会有所不同。目前,对 于梅传缀装技术的藏用还多半停露在手工组装的阶段,半爨动佳甚至皇渤证 静褐俘缀装的实瓒遥有待露西。本文着眼予构佟缀装搡律,维装框架驭殿与 之相关的技术理论的研究,为实现构件组装自幼化进行一必理论上的探讨。 。2 阑内外磺究现状 软件复用技术魁c b s e 的支撑技术,而软件构件技术则是c b s e 的核心 技术。霆扶1 9 6 8 年豹n a t o 坎 牛工程会议上,m e l l r o y 在论文大量生产的 软件构件中提出“软件组装生产线”静器想籍,采用褐 牛技术实现软佟复 用,采用“搭积木”的方式生产软件,成为软件开发人员的梦想。 九十年代中后期,面向对象技术的出现和赢联网时代的到来,为软件构 箨技术豹研究秘瘦麓疆貘了囊好瓣技寒支持裁实黢平台,镌 孛懿疆念褥鞠了 更大的扩充,由当年刀的子程序到现在的系统级抽象,构件技术正在走向成熟。 面向对缘技术对一组类的组合进行封装,隐藏了具体的实现细节,只是邋过 接口两於提供服务葶鞋请求嚣境鲍月鞋务。互联嘲瓣出理,太大蠖趣了应用软转 的复杂褴,软件开发人员采用分艨的思想,通过将一个大瀚系统分割成不同 2 哈尔滨工程大学硕士学位论文 i i 一 层次鲍模块,并采用构件的方式求实现这些模块,然后将这些梅件组装成为 一拿大靛系统软释,不仅这妥了合理分工,掇高工雩# 效率静霜的,焉且这样 做出来的系统还其有很高的质缴。可以说,魁面向对象技术和互联网倪谶了 软件簸用和软件构件技术,特别是构件组装技术的发展。 _ i 霞年来,黠予稳传缰装技零麴黟 究蠢盛鲻歪鞠着多热寝、全方霞鹣方淘 发展。有的入主张从软件体系结构的角度来研究构件组装技术,有的人则从 基于a g e n t 的角度朱研究构件组装技术,还材的人希望能够开发出一种构件 组装反动机,从而达到构伴组装趣动他的晷标,等等。构传缀装技术已经在 图形翔户赛嚣设诗、第西戎语富和编译器构造等藏熬领域中取得了一定程度 的成功。目前,对于构件组装按术的研究主鬻集中在以下几个方面: 构件规范化及其描述规魏化; 稳转缝装攥髂及其接述瓣莲稼; 构件组装檄架及其描述规范化; 构件组装描述语言; 可视化的梭牛组装平台; 构件静鹭装; 构件组装披术的应用。 在构件规范化方面,学术界和业界已经取得一定的成果,如0 m g 的 c o r b a 、m i c r o s o f t 戆c o m 、s u n 豹j a v a b e a r d e j b 。毽蹩,瓣予梅 孛熬攘遮 的规藏化还没有统,采用什么样的形式来攒述构件,需鼹描述构件的那些 方面的属性,依赖予不同公司的构件组装平台。这样的描述,不利于构件在 不羼的缀装平台上送行快捷的缎装。但宥一点可以肯定的燕,尽管不同鹣镌 释缀装平台对于稳件的搐述要求不一样,主簧鹣绉述还楚藏不多,这又绘构 件描述规范化留下了可能性。 构件组装操作怒构件组装技术的一个重要研究课题。构件与构件之间不 仅双会整凌筵蕈黧缀装攥谗,嚣艇囊会窭现笺金熬缝装搽终。蠢兹,露予构 件组装操作的研究融经有的进展,诸如什么样的组装操作魑不可再分的简单 的组黻操作,什么样的组装操作悬可以通过简单的操作复而成,但是,一 个最小瓣、完备的、正确的篱单缀装操作集剿底应该包蕤哪些组装操俸还没 有定论。对于捣 串缎装操作的攒述也没有达到统一的规范纯程度,这些攒述 3 哈尔滨工程大学硕士学位论文 是构件组装自动机的必需描述。 软件开发人员在开发一个系统的时候,往往要设计出这个系统的框架, 构件组装同样需要这样的框架,并且需要用某种语言精确、正确的描述出来, 这样才能作为构件组装自动机的输入。构件组装自动机就是根据以上的三种 描述来组装系统。但是,目前还没有出现那种通用性较强的构件组装平台, 一般的构件组装都是通过客户程序员采用手工的方法实现的。 在构件组装描述语言方面,国外已有许多的研究,如b m l ( b e a n m a r k u p l a n g u a g e ) 和c o m l ( c o m p o n e n tm a r k u pl a n g u a g e ) 。这些语言都要求具有 平台无关性,但是都仅仅是对组装的描述,不涉及与之相关的信息。 国内从事这方面的研究的机构也有不少,比较有名气的如北京大学软件 工程研究所、中国科学院软件研究所、上海普元、互联网实验室。其中,北 京大学软件工程研究所的青鸟工程已经取得了丰富的成果,在构件组装体系 结构,构件组装的机制以及构件组装的行为推导方面都均有成果发表。中科 院软件所在在构件技术方面的主要研究成果是信息化基础软件核心平台。上 海普元把互联网相关技术同先进的构件复用技术以及可视化开发技术完美地 结合起来,创造了一套具有国际先进水平的面向构件的互联网的应用基础平 台e o s 。互联网实验室于2 0 0 4 年1 月1 6 日发布了面向构件的互联网 应用基础平台研究报告是目前国内较为详细的关于构件技术研究的专业报 告。其它的机构在构件组装技术方面的也有不少研究成果,但都只是对与构 件组装相关的技术的研究,还没有真正实现构件组装的自动化。可以预见, 组装自动化将是今后对软件构件技术,特别是对构件组装技术的研究重点。 1 3 课题所完成的工作和本文的组织结构 1 3 1 课题所做的工作 针对本文前面在课题背景一节中提到的问题,本文在如下方面开展研究 工作: ( 1 ) 对于构件组装时的接口组装问题进行一定的研究; 4 哈尔滨工程大学硕士学位论文 ( 2 ) 提出一个基予软 掌傣系续穆弱瓣佟模爨; ( 3 ) 给出一个构件组装原子操作集; ( 4 ) 对予维装禳式和楼板进行一定的研究; ( 5 ) 提出一种构件组装描述语言; ( 6 ) 给出一个构件组装系统的整体框架的设计; ( 7 ) 分板不同形式构传豹组装方式; ( 8 ) 在实际的软件系统中对于构件缎装技术的应用。 1 3 2 本文的组织结构 本文的组织结构安排如下: 第一章是绪论,介绍本文的课蹶背景、国内外研究现状和本文的工作以 及对本文瓣组织安接。 第二章对相关技术进行了介绍,包括软件复用与软件构件技术、软件体 系结构、x m l 语言、j a v a 语言。 第三章是本文的主体部分,首先对构件组装技术进行了概述;接羞对构 件连接、构件组装、接口绑寇和接翻组装避行了分析;在第五节,分析了原 子缀装操作的表要条件,并绘出了一个原予组装操作集;第六游阐了构件缎 装模式和模板的概念,并给出了几种构件装模式;第七节给出了一种新的构 搏缀装攒述语言;最爱,褒羲嚣敬避谂豹技本基戳之上,提出一令搀锌缝装 系统的整体框架的设计。 第圈章氇是零文豹主体都努之一,首凳,分耩了基予j a v a 虢搞蟹缝装技 术的应用方式;接着,给出本文作者在所参加的两个项目中对于构件组装技 术的应用。 在结论中,瓣本文的内容给出一个总缎,并在北基础之上提出以羼可熊 的研究方向。 堕奎鎏三堡态兰鎏圭主堡鲨銮 第2 章相关技术 软件复用的核一1 5 , 技术是软件构件技术,软件构件技术的核一1 5 , 技术是构件 组装技术,因此,要研究构件组装技术,首先就必须了解什么是软件复用和 软件构件技术。本文对于构件组装技术的研究是基于x m l 和软件体系结构 的,因此,对于x m l 语言和软件体系结构的了解也是必要的。 2 1 软件复用技术 可复用性是人类解决问题时普遍使用的一个概念,例如在传统产业的发 展过程中,其基本模式均是符合标准的零部件( 构件) 的生产和基于标准构 件的产品生产( 组装) ,其中,构件是核心和基础,“复用”是必需的手段。 实践表明,这种模式是产业工程化、工业化的必由之路。标准零部件生产业 的独立存在和发展是产业形成规模经济的前提。机械、建筑等传统行业以及 年轻的计算机硬件产业的成功发展均是基于这种模式并充分证明了这种模式 的可行性和正确性。这种模式是软件产业发胀的良好借鉴,软件产业要发展 并形成规模经济,标准构件的生产和构件的复用是关键因素。这正是软件复 用受到高度重视,被认为是解决软件危机,提高软件生产的效率和质量的重 要途径的根本原因。 2 1 1 软件复用的定义 软件复用( s o f t w a r e r e u s e ) 的定义比较多,本文借用北京大学杨芙清教 授的定义,将软件复用定义为:软件复用是重复使用“为了复用目的而设计 的软件”的过程。这个定义表明软件复用必须包括两个方面的内涵f 2 1 : ( 1 ) 可复用软件是指为了复用目的而设计的软部件,这些软部件不仅仅 表现为代码,它还可以是:分析、设计、测试数据、原型、计划、文档、模 板、框架等等; 6 哈尔滨工程大学硕士学位论文 ( 2 ) 系统地使用这些软部件作为构筑模块,来建立新的系统或者更高层 次上的软部件。 从上面的定义来看,软件复用是一种重复使用的行为,但要真正理解软 件复用的概念,还应该将它同其它的重复使用的行为区分开来。在软件演化 的过程中,重复使用的行为可能发生在三个维上m : ( ”时间维:使用以前的软件版本作为新版本的基础,加入新的功能, 适应新需求,即软件维护; ( 2 ) 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分, 使其运行于新平台,即软件移植; ( 3 ) 应用维:将某软件( 或其中构件) 用于其它应用系统中,新系统具 有不同功能和用途,即真正的软件复用。 这三种行为中都重复使用了现有的软件,但是,真正的复用是为了支持 软件在应用维的演化,使用“为复用而开发的软件( 构件) ”更快、更好地开 发新的应用系统。 2 1 2 软件复用的形式 软件复用的形式( 或者手段) 有很多,复用的级别有大有小。在软件开 发过程中,复用的形式主要有以下几种【: ( 1 ) 源代码级复用,包括模块、类、甚至某一段源代码的复用,这是最 基本的软件复用形式; ( 2 ) 二进制形式的复用,即在软件系统中复用已经编译好的功能模块, 例如组件复用; ( 3 ) 组装式复用,即将好几个可执行的应用程序集成在一起的复用,每 一个可执行应用程序既可以集成到这个系统中,又可以集成到另一个系统中, 例如工作流管理系统中管理的业务程序可以组装到不同的工作流程中; ( 4 ) 分析级别的复用,对于相似的系统,一个系统的分析可以借鉴、复 用另一个系统的分析结果,例如不同公司所采用的e r p 系统就可以在分析级 别上进行复用: ( 5 ) 设计级别的复用,对于框架相似的系统,可以在设计级别上进行复 7 哈尔滨工程大学硕士学使论文 用,例如不闻的数据库访阅系统,可以采用棚似的设计策略; ( 6 ) 软 孛文耧豹复焉。帮为一个系统掰绽写静文档,经过修改后氇可黻 作为相似的系统的文档。 2 。 。3 软佟复麓的分类 软件复用的分类方法有许多种,主要有四种分类方法。按照软件复用所 应用的领域范围,w 以将软件笈用分为横向复用和纵向复髑嘲。 ( 1 ) 横囱复麓楚指复溺不阉领域孛豹较 睾元素,镶翔数据结褐、分凝算 法、人机界面构件等。标准函数库是一种典型的原始的横向复用机制。 ( 2 ) 纵向复用是指在一类嶷有较多公欺性的应用领域之间进行软部件 豹笺溺。萁活动主要惫擐三令步骤:善先遴行蠛分辑,缀据痤躅矮域瓣特 征及相似性预测软部件的可复用性;然后避行软部件的开发,并对具有复 用价慎的软部件进行一般化,以便它们能够适成新的类似的应用领域;最 后将软都 牛及其文楼保存在软舔 牛库里,成为可供后续顼嚣使魇的可复用资 源。 按照复用的方法,可以将软件复用分为组禽式复用和生成式复用【j l 。 ( 1 ) 组合式复用。这种复用方法对已有构件不作修改躐作部分修改,就 浆穆黪经装在一越,获瑟稳造塞耨魏蘑标系绞袋者更襄一缀熬穆捧。l t n i x 中的s h e l l 语言和管道采用的就戆典型的组含式复用思想,其它如子程序技 术、软件i c 技术等也是采用组含式复用的例予。 ( 2 ) 生成式复用。生成式笺用技术剩用霹复鲍模式,通过应羼生成嚣产 生新的程序或程序敬,产生的程痒可瑷看痒怒模式的实锣 | 。程序编译器即是 典型的生成式复用的例子。生成复用的复用效率一般比较高,但是实现怒来 比较圈难。其研究熬点在于如何形式化地表承特定领域的规格说明语言、系 统楚骥过程及元雯成器等。 按照复用的对苏,可以将软件复用分为产品复用和过程艇用。 ( 1 ) 产品复用指复用已有的软件构件,濑过构件集成( 组装) 得到新的 系统。它是基前瑰察嚣、主滚的复用途径。 ( 2 ) 过程复髑疆复蘑已有的软件开发道穗,使用可爱麓豹应用生成器来 r 哈尔溟工糕大学硕士学位论文 自动溅半自动地生成所需要的系统。过程复用依赖于软件颤动化技术的发展, 磊蘩灵遥鬟予一骜特殊酶痤蒡l 领域。 按照复用方法对软件复用进行分类,同按照复用对象对软件复用进行分 类所得到的结果几乎样,这是因为,组合式复用只能是对产品进行组仑, 恧过撩式复翅,嚣蓦蓼豹实理方法裁是生或器。飘瑟,嚣熬溪以谈先这强耱分 类方法是等价的。 按照对可复用信息进行复用的方式,可以将软件复用分为黑盒复用和白 盒复用, ( ) 黑盒复麓捂对已有静掏侔不捧 壬秘修改,壹接逡行复嗣。这是一静 理想的复用方式。 ( 2 ) 白盒复用指已有构件不能完全符含用户的需求,濡要根据用户需求 迸移邋疲蛙掺改惹才霹隘复鼹。多数复弱是这糖形式瓣复麓,这是因灸多数 构件都不能完全同用户的需求哟含,其适应饿修改是必需的。 在灾际的复用洒动中,可能菜一种复用活动既属于这种分类方法中的某 一秘方式,又属于另一耱分类方法中鲍菜一秘方式,例如,器秀控传浆艇翅 羲是摸向复舔,又惩产品复雳稻缀合式复蔫,还是自盒复髑。 2 1 4 流行的软件复用技术 自从软件复用的思想产生以来,软件开发人员就致力于软件复用技术的 研究和实践。在三十多年的时间内,相继出现了多种软件复用技术,如:库 函数、模援、面向对象、设计搂式、梅终、掇絮彝架梅渤,这些技术鸯数邑 经稻强成熟,有些遥在发震中。 ( 1 ) 库函数。库函数是很早的软件复用技术。很多的编成语言为了增强 自身的功能,都提供了大量的摩函数。对于岸缀数的使用卷,他只要知道露 交数翡名称,返器德缛类鍪,爨羧参数帮螽数麓戆羲霹爨辩箕遗学谖羯。 ( 2 ) 面向对蒙技术。面向对象技术通过方法、消息、必、继承、封装、 和实例等机制构造软件系统,并为软件复用提供强有力的支持。面向对教技 术已缀或为当今最蠢效瓣、最惫遴戆较 牛开发方法。与瘁瓣数挺对瘟,缀多 面向对象语言提供易于使用的类痒,如m f c 、j f c 。 9 哈尔滨工程大学硕士举位论文 一i _ ( 3 ) 设计模式。设诗模式作为复用设计傣息中的一静技术,在露内对象 技寒中越来越流行。设诗模式攒述不獗重复发生豹闫题,淹开发者矫共枣, 并可以用共同的诺裔来描述。 ( 4 ) 模板。模板相当于工般生产中的“模具”,又各种各样的模掇( 如 文档模叛、薅夏摸缀簿 ,嚣磊这黧摸叛可醛魄较快速静建立对应夔软 孛产菇。 模扳乎巴不变的封装在内部,对可能变化的部分提供了通用接口,由使用者来 对这娥接口进行设定或者实现。 ( 5 ) 梅件。软传复用的核嫂术就是软传梅传技术,露翦对手软傍炭技 术静磷究熬点蠢羹点就是基于孝弩件静较释复麓技术懿磷究。 ( 6 ) 构架。构架与设计同义理解,是系统的原型或者早期的实现,属于 高层次的系统整体缀织,是关于特定技术如何食作组成一个特定系统的瓣释。 ( 7 ) 疆絮。分予稳终程稳絮之阗戆概念,三者懿嚣澍巍予:褪馋楚麓爨, 是基于构件开发的最小单元;糕架和构架包禽多个构件;个系统可以幽多 个框架嶷撑,但只对应一个架构;框架和构架复用都包括代码复用和分析设 计复耀,僵构件复爝鼹撼象层次受裹。 2 1 5 实现软件篾用的相关因素 安凌较謦复趱鹣关键嚣素主器惫瑟较 夸褥箨蔹本( s o f t w a r ec o m p o n e n t t e c h n o l o g y ) 、领域工程( d o m a i ne n g i n e e r i n g ) 、软件构架( s o f t w a r e a r c h i t e c t u r e ) 、软件褥工程( s o r w a r e r e e n g i n e e r i n g ) 、开放系统( o p e ns y s t e m ) 、 软l 孛越程( s o f t w a r ep r o c e s s ) 、c a s e 技零秘轰转 技术爨素f l l 。各转嚣索互 相联系,互相影响,共同影响软徉复用的实域,其关系魏豳2 。 软件构件技术照软件复用技术的核心技术,是近几年米迅速发展并受到 高度熬视盼一个学科分支。目前,国内外对予软件构件技术的研究已经取得 了一定戆残暴,构佟技拳懿磅寇燕赣藿深入、实霜秘方淘笈震。掏 孛技术发 展的懑势主要包括两方面: ( 1 ) 从集中式的小粒度组件向分布式的大粒度组件发展; ( 2 ) 觚建予器瑟裁终熬露溺组 孛囱完成逻辑动能豹救务缝孛发袋。 本文将在2 2 节中,对软件构件技术进行详缅豹叙述。 1 0 哈尔滨工程大学硕士学位论文 图2 1 实现软件复用的关键因素 软件构架是对系统整体结构设计的刻划,包括全局组织与控制结构,构 件间通讯、同步和数据访问的协议,设计元素间的功能分配,物理设计,设 计元素集成,伸缩性和性能,设计选择等。在基于复用的软件开发中,为复 用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构架进行 复用,而且软件构架还为构件的组装提供了基础和上下文,对于成功的复用 具有非常重要的意义。 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础 的过程,它覆盖了建立可复涌软件构件的所有活动。领域工程包括三个主要 的阶段:领域分析、领域设计和领域实现。其产品( 可复用的软件构件) 包 括:领域模型、领域构架、领域特定的语言、代码生成器和代码构件。 软件再工程是个工程过程,它将逆向工程、重构和正向工程组合起来, 将现存系统重新构造为新的形式。再工程的基础是系统理解,包括对运行系 统、源代码、设计、分析、文档的全面理解。但在很多的情况下,由于各类 文档的丢失,只能对源代码进行理解,即程序理解。 开放系统技术是在系统的开发中使用接口标准,同时使用符合接口标准 1 1 哈尔滨工程大学硕士学位论文 的实现。当前以解决异构环境中的互操作为目标的分布对象技术是开放系统 技术中的主流技术。该技术使得符合接口标准的构件可以方便地以“即插即 用”的方式组装到系统中,实现黑盒复用。 c a s e 技术与软件复用技术相关的主要研究内容包括:在面向复用的软 件开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发 中,可复用构件的检索、提取、组装及度量等。 非技术因素包括机构组织、管理方法、开发人员的知识更新、知识产权 等。 2 2 软件构件技术 前面提到,软件构件技术是c b s e 的关键技术。c b s e 包括三个重要的活 动,分别是构件的制作、管理和组装,其中,构件组装既是c b s e 的目的, 又是c b s e 的关键技术。要想提高c b s e 的开发效率和质量,发现、抽象、 制作出方便组装的可复用构件,并将这些可复用构件组装起来,是目前最好 的解决办法。可复用构件应该具备以下的属性: 有用性:构件必须提供有用的功能; 可用性:构件必须易于理解和使用; 质量:构件及其变形必须能正确工作; 适应性:构件应能在不同的硬件运行平台和软件环境中工作。 深入理解、掌握软件构件技术,一般来说应该从软件构件的概念入手, 之后还要知道软件构件技术包括哪些具体的研究内容,最重要的一点是要知 道现今主流的软件构件规范。 2 2 1 软件构件的概念 软件构件( s o r w a r ec o m p o n e n t ) 在中文中有好几个同义词,如:软构件、 软组件、软部件等等,在本文中,这几个名词指的是同一个概念。由于不同 时期,不同的研究人员所关注的软件复用的类型不同,到目前为止,软件构 件还没有一个统一的定义。 1 2 哈尔滨工程大学硕士学位论文 早期婚研究人员主要关注源程序代码的复用,将软件构l 牛理解成为巢嵇 胃复麓豹程序代碣片断,瑷在一般它稻称为代码辞。代码 串的表现形式蠢: 予程序,程序包,模板等 4 1 。 后来,研究人员认识到复用的范围并不局限于编码阶段,而是可以贯穿 于整个较终开发蓬褪,包瑟分辑、设诗、实糕、溺试遥拿泠毅,每一令狳莰 都会产生相应的文档或者软件产品,这些文档或者产品都典有复用的价德, 因此,软件构件应该包括分析件、设计件、代码件、测试件等多种类型。这 个时期盼软件构件定义力:可以被复用的软传实体,它可以楚设计、代磷或 软俘开发逶程串豹蒸它产晶 4 1 。 九十年代以后,随着分布对敷、w e b 、j a v a 、4 g l 、w 视化开发工鼎以 及基于构件的软件开发( c b s d ) 的发展,国际学术界对软件构件的概念又 鸯了戆躲谈识,磅突久员程继掇滋了若予瑟瓣软舞魏臀瓣定义,其孛考谯表 性的包括f 4 】: ( 1 ) 1 9 9 6 年e c o o p 会议上提出的定义:软件构件怒一个具有规范接 口和确定豹上下文依赖鲍组装攀元,软件构牛够被独立帮器和被第三方缝 装。 ( 2 ) s z y p e r s k i 在1 9 9 8 年绘出的定义:软件构件是可单独生产、或取、 部署的二进制单元,它们之间可以互相作用构成一个功能悉统。 ( 3 ) c m u s e i 豹f e l i xb a e h m a n 等人在2 0 0 0 年5 舞豹一掺荚于菱予褥 件的软件工程的报锯中给出的定义;构件是个不透明的功能实现,能够被 第三方组装,符合一个构件模型。 ( 莓) o m g 的定义:构箨怒一个物理躲、可替换鲍系绕缀成部分,它毽 装了实现体且提供了对一组按翻鹃实现方法【5 】。 上厢这些定义都是描述性的定义,它们都包含了以下几个共同的因索: 构件怒二进制功能摹元、符合构件模型( 或具寓规范接口) 、允许不同构传开 发褰开发豹稳终避行缀装。 分析软件构件概念的历史变化与现在的多样理解,本文作者认为,对于 软件构件的概念可以从两个层次上来把握,即广义上的软件构件与狭义上的 软件鹅 孛。 本文在狭义的滋次上将软件搦件定义为:软件构件是一段代码软 串,具 1 3 哈尔滨工程大学硕士学位论文 有定义良好的接1 :3 ,实现了一定的功能,具有二进制可重用性,遵从某种软 件构件规范,可以与其它构件组合成一个系统或者更高级别的构件,并且是 可替换的,既有运行时可访问的接1 3 ,又具有开发时可独立提交与安装的特 性。从该定义可以看出,软件构件具有以下基本特点: ( 1 ) 软件构件通过接1 3 输出其功能,外界仅能通过接口访问构件,从而 有效保证了构件的复用性,每个接口代表构件的某个属性或方法,构件和应 用程序的连接通过其接口实现; ( 2 ) 软件构件是由一些对象类组成的物理意义上的包,支持对象意义上 的封装性、多态性,又称构件对象; ( 3 ) 软件构件是具有特定功能、支持互操作的对象,它可阻在跨越地址 空间、网络、语言、应用程序、开发工具和操作系统的异构环境下,被调用 或者同其它构件协同工作,实现“即插即用”; ( 4 ) 软件构件遵循二进制标准,其实现不依赖于某种高级语言,它可以 用面向对象语言或非面向对象语言实现,构件之间是相互独立的,因而构件 运行效率高,便于使用和管理。 本文在广义的层次上将软件构件定义为:软件构件指的是软件开发过程 中可以明确标识的构成成分。广义上的软件构件包括:分析件、设计件、代 码件、测试件等等,而狭义上的软件构件指的仅仅是代码件( 包括源代码和 二进制代码,主要是二进制代码) 。 软件构件可分为可复用构件和不可复用构件。剖析一个应用软件系统, 可以发现其中有3 类构成成分: 通用的基本构件,如,数据结构,用户界面元素等等; 领域共性构件,指的是仅在该应用软件所属领域内经常出现的构件; 应用专有构件,指的是仅在该应用软件中出现的特定构件。 可复用构件指前两者,通常情况下软件构件指可复用构件。 2 2 2 软件构件技术的研究内容 软件构件技术的研究内容非常广,软件开发研究人员不仅仅要对软件构 件的制作、管理和组装等活动进行研究,还要研究与这些活动相关的一些辅 1 4 哈尔滨工程大学硕士学位论文 助的技术。软件构件的主要研究内容包括m : 构俘获取;有鑫的戆构佟生产帮鼓曩蠢系统挖弱摄取梅 牟; 构件模型:研究构件的本质特征及构架间的关系; 构件描述语言;以构件模烈为基础,解决构件的精确描述、理解及组 装趣题: 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构 件库系统,支持构件的有效管理; 槐传复合缀装:在构件模型的基础上研究梅件缱装概制,包括源代码 级静组装秘基于构律对象互操终往的避行缀组装; 标准化:构件模型的标猴化和构件席系统的标准化。 2 。2 。3 较转梅锋豹模鍪 人们在研究一个对象的时候,总是喜欢为该对象建造一个模型,从而能 够更糯塞褒、深入的磅究这一类对象。软件橡传技术的研究人员在硬究软传 褐俘的时候,也怒遵循这一久癸通常愚维的。强前,学术器澍子软谗构件豹 模型也没有达成统一的认识,有代表的理论模型如:3 c 模型、r e b o o t 模 型和费岛模型”1 。 l 。3 c 穰鍪。 3 c 模型是由l a t o u r 等人提出的,得到学术界普遍认同的一个具有指导性 作用的构件模型。该模型从概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同方瑟来攒述梅馋。概念是关予“梅佟徽侍么”的獭象攒述,萄以逶 过概念去理解构件静功能,穰念包括接口燕约帮语义獾述两个部分;斑容是 概念的具体实现,描述构件如何究成概念所刻画的功能;谮境是描述构件同 外围环境在概念级和内容级的关系,语境刻煎构件的应用环境,为构件的选 惹窝逡痘链嫠改掇供掺导薅塞。 2 r e b o o t 横型。 r e b o o t ( 刻顾) 模型是在r e b o o t 项目中总结提出的,它实质上摄一 个刻熬分类模型。该模型认为;霹激囊鸯限绥信患空润懿术诿缝合从若予令 刻嚣豹综合兔度采刻画一个构 牛。具体至l r e b o o t 项目,他们提出静刻蕊有 l5 哈尔滨工程大学硕士学位论文 四个:依赖、抽象、操作、操作对象。另步 ,该模型还提蹴了用圊一词典来 挺供术语闻语义关系豹搐速手段。 3 青鸟模型。 襁中国,北京大学软件工稷研究所对软件构件技术进行了比较深入朔有 效懿麟究王 萋。该礤究获熬青鸟王疆罄三令禚楚( 形态、鬃次_ 萃羹表示) 、岁b 个 方面采描述构件横烈。这九各方面分别为: 概念:对构件功能的抽歙描述; 操作翘约:据誊每 牛对终提供鲍、可被请求的服务; 接口:给漤了褐 牟静辩夕 行为接述; 类型:用于定义“什么慎可用作操作势数”; 实现体:构件的具体实现体,是实际宪成被请求服务的系统; 憨终复舍:构终逶蓬复合缀残系统; 构件性质:指明构件的形态、层次和表示; 构件注释:描述和构件滕相关的其他性质; 鞫传语境;接述梅件的软、硬件搜用环境窥实瑗依赖。 督岛构锌模型翼多的关心褐绺静义理解襁、封装往,邋过给构锌掇供明 确的对外接口实现服务提供者同服务请求者之间的分离,黧多的关心构件及 其使用者之间的交驻,特别是对构件使用者裔意义的部分。 程实嚣镬矮孛,这些攘鍪甏簧棱转键为粪傣豹语言撵遮澎式。嚣兹疆究 的第豳代规约描述谣言的工作主嚣集中在构件的语境描述上,即构件的使用 语境信息。有代表憔的工作有k d l 语言和青岛构件描述语言,它们不仪能 够援述构 孛,更掇供了对魏律予系统的攒述然力。这部分敬工作集中予二卡 世纪丸十年代中爱潮,它稍豹成熟有待子进一步的实践与摊广。 现有的构件模型一般认为构件由构件接口( 对应于3 c 模型中的概念芹日概 念级谱媲) 和构件内容两部分组成。构件接口就是为成功羹用该构件实体而 需要撬傻绘癸赛豹掰有痿惑,毽耩梅舞囊燕捷馁嚣请求数鼹务、擒譬# 瓣蠢透 信息和定制信息、构件的初始化、实例化和永久化方法以及构件对目标麓用 环境的依赖和构件组装信息等。构件内容就怒用于直接重用的软件实体,它 可以舆霄瀑代磷、= 遴案l 码、文楼、分援设计模壅帮辩本等不嗣魏物理形态, 并遵从一定的格式标准。 1 6 哈尔滨工程大学硕士学位论文 2 2 4 主流软件构件规范 在上一节中,已经概述了当今学术界对于构件模型的研究成果,但这离 软件构件技术的实际应用还有一段距离。软件构件技术要想实现商业价值, 还必须在公认的软件构件模型的基础之上,提出实用、标准的软件构件规范。 目前,主流的软件构件技术标准规范有o m g 提出的c o r b a 、s u n 公司提 出的j 2 e e 、微软提出的m i c r o s o f td n a2 0 0 0 。它们为应用软件的开发提供了 可移植性、异构性的实现环境和健壮平台,结束了面向对象中的开发语言混 乱的局面,解决软件复用在通信、互操作等环境异构的瓶颈问题。 1 o m g 的c o r b a c o r b a 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分 布对象互操作内容的基础上制定的公共对象请求代理体系规范。 c o r b a 分布计算技术。是由绝大多数分布计算平台厂商所支持和遵循的 系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持 程度广泛的特点,已逐渐成为分布计算技术的标准。c o b r a 标准主要分为3 个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理 o r b ,规定了分布对象的定义( 接口) 和语言映射,实现对象间的通讯和互 操作,是分布对象系统中的“软总线”;在o r b 之上定义了很多公共服务, 可以提供诸如并发服务、名字服务、事务( 交易) 服务、安全服务等各种各样 的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用 的服务,规定业务对象有效协作所需的协定规则。目前,c o r b a 兼容的分 布计算产品层出不穷,其中有中间件厂商的o r b 产品,如b e a m 3 ,i b m c o m p o n e n tb r o k e r ,分布对象厂商推出的产品,如i o n a o b i x 和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瑞金市消防安全培训课件
- 农业碳汇项目碳排放权交易市场政策环境与市场发展动态研究
- 恩施美化工程方案(3篇)
- 东莞废水环保工程方案(3篇)
- 店面水电改造工程方案(3篇)
- 农业碳汇产品认证与市场推广策略报告
- 电厂工程大件运输方案(3篇)
- 农业现代化背景下的数字化转型路径与模式研究2025
- 球团车间安全知识培训课件
- 广西佛子矿业有限公司石材加工一厂年产30万吨级废石(矿山固废)综合再生利用项目环评报告
- 安全生产管理中的安全设备与技术应用
- 《3D打印产品后处理》 课件 项目3-5 3D 打印产品的上色、3D 打印产品的喷砂处理、3D 打印产品的丝网印刷
- 煤仓作业规程
- 测金属电阻率实验报告
- 政治经济学完整全套教学课件
- 养老护理员培训排泄照料
- 计算机应用基础(windows7-office2010)
- 肾脏肿瘤影像学诊断策略
- 仓库定期检查表范例仓库管理工作检查项目与评分标准
- 化疗前的准备和评估
- 显微外科设备器械及显微外科基本技术培训教材培训课件
评论
0/150
提交评论