已阅读5页,还剩51页未读, 继续免费阅读
(模式识别与智能系统专业论文)webis系统框架构件自动组装模型的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
昆明理工大学硕士论文论文摘要 2 0 0 5 年3 月 论文摘要 本文将基于框架构件的复用应用到w e b i s 系统的开发过程中,创新性地提出 了一种j - 2 e e 平台上的框架构件自动组装模型,并阐述了模型的详细设计和具体 实现。 随着网络技术的发展,w e b i s 系统的应用越来越广泛。在w e b i s 系统的开发 过程中,主要是采用p h p 、a s p 等脚本语言来实现前台界面的数据显示、应用逻 辑的处理和后台数据库的连接,这种开发方式周期长、重复劳动量大,程序质量 差、开发效率低,因此如何在确保质量的同时提高开发效率已成为w e b i s 系统应 用中急待解决的问题。 当前基于框架和构件的软件开发已经成为软件工程化开发和工业化生产的 必然趋势。其中框架构件的组装是框架构件复用过程中的关键环节,目前框架构 件的组装过程多为用户手工完成。如何提高框架构件组装过程中的自动化程度也 是一个很有研究价值的问题。 本文结合w e b l s 开发和框架构件组装问题,研究了基于框架构件的w e b l s 系统开发,提出了一种j 2 e e 平台上的框架构件自动组装模型,该模型实现了模 板构件实例化过程的自动化和框架构件组装过程的自动化,通过框架构件的自动 组装可以高效地创建出美观实用的w e b l s 系统,从而极大地提高了框架构件的复 用效率,有效地解决了w e b l s 系统开发中的问题。 在本论文中,首先介绍了w e b l s 系统的开发现状和基于框架构件的软件复用 方式,从而说明了将框架构件技术应用到w e b l s 系统开发中的可行性和必要性; 接着详细阐述了本文提出的框架构件自动组装模型的多层体系结构和模型中各 组成部分的具体功能,对于本文提出的框架构件自动组装原理等模型设计理论做 了详细的说明,并对相关的技术进行了介绍;在模型理论设计的基础上对模型进 行了具体实现:最后给出w e b i s 系统框架构件自动组装模型的一个具体应用实 例,有效地验证了模型的研究价值和实用价值。 本论文研究受到云南省自然科学基金资助项目( 项目编号:2 0 0 2 f 0 0 2 9 m ) 。 关键词:框架:构件;自动组装;w e b l s ;j 2 e e 垦塑型三奎兰堡主堡苎二二堡苎塑量二二 ! ! ! ! 望! 旦 r e s e a r c ha n dr e a l i z a t i o no fa u t o m a t i cc o m p o s i t i o nm o d e l a b s t r a c o ff r a m e w o r ka n d c o m p o n e n ta b o u tw e b i s t h i sp a p e ra p p l y sf r a m e w o r ka n dc o m p o n e n tt o d e v e l o p m e n to fw e b i s , i n n o v a t e saf r a m e w o r ka n d c o m p o n e n ta u t o m a t i cc o m p o s i t i o nm o d e lb a s e d0 nj 2 e e , a n de x p a t i a t e st h ed e s i g na n d i m p l e m e n to f m o d e li nd e t a i l f o l l o w i n gt h ea d v a n c e m e n to fn e t w o r k ,w e b l si s w i d e l y u s e d i nt h e d e v e l o p m e n to fw e b i s ,t h em a i nm e a n sa r eu s i n gp h pa n da s pt or e a l i z ed a t ad i s p l a y i nf r o n te n d a n dd a t a b a s ec o n n e c t i o ni nb a c ke n d i tm a k e st h a tt h ei m p l e m e n t l o g i co f w e b i si sc o n f u s e d ,r e p e a t e dw o r ki sl a r g ea n dt h eq u a l i t yo f w e b i sa n de f f i c i e n c yo f d e v e l o p m e n ti sl o w h o wt oa d v a n c et h ee f f i c i e n c ya n da s s u r et h eq u a l i t yi sa l l i m p o r t a n tp r o b l e m s o f t w a r ed e v e l o p m e n tb a s e do nf r a m e w o r ka n dc o m p o n e n tb e c o m e st h et r e n do f s o f t w a r ei n d u s t r i a lp r o d u c t i o n t h ec o m p o s i t i o no ff r a m e w o r ka n dc o m p o n e n ti st h e k e y , b u ti tu s u a l l yi sd o n em a n u a l l yn o w i ti sav a l u a b l er e s e a r c ht oi m p r o v et h e a u t o m a t i cc o m p o s i t i o no ff r a m e w o r ka n dc o m p o n e n t t h i sp a p e rt a k e si n t oa c c o u n t t h ed e v e l o p m e n to fw e b l sa n dc o m p o s i t i o no ff r a m e w o r ka n dc o m p o n e n t ,r e s e a r c h s t h ea p p l i c a t i o no ff r a m e w o r ka n dc o m p o n e n ti n t ot h ed e v e l o p m e n to fw e b i s ,a n d p r o v i d e saf r a m e w o r ka n dc o m p o n e n ta u t o m a t i cc o m p o s i t i o nm o d e lb a s e do nj 2 e e w h i c hr e a l i z ea u t o m a t i o no ft e m p l a t ec o m p o n e n ti n s t a n t i a t i o na n dc o m p o s i t i o no f f r a m e w o r ka n dc o m p o n e n t t h em o d e lc a nc r e a t eg o o dw e b l sq u i c k l y s ot h em o d e l a d v a n c e st h ee f f i c i e n c yo fr e u s eo ff r a m e w o r ka n dc o m p o n e n ta n dr e s o l v e st h e p r o b l e mi nt h ed e v e l o p m e n to f w e b l s t h i sp a p e ri n t r o d u c e st h ed e v e l o p m e n to fw e b l sn o wa n ds o f t w a r er e u s eo f f r a m e w o r ka n dc o m p o n e n t ,w h i c he x p l a i nt h ef e a s i b i l i t ya n dn e c e s s i t yo fa p p l i c a t i o n o f f r a m e w o r ka n dc o m p o n e n ti nw e b l s t h e n ,i te x p a t i a t e st h em u k i t i e ra r c h i t e c t u r e o ft h em o d e l ,f u n c t i o no fe v e r yp a r ti nm o d e la n di l l u m i n a t e st h ep r i n c i p l eo f i i 昆明理工大学硕士论文论文摘要2 0 0 5 年3 月 a u t o m a t i cc o m p o s i t i o no ff r a m e w o r ka n dc o m p o n e n ta n dt h er e l a t i v et e c h n o l o g y i t d e p i c t si m p l e m e n t a t i o no fm o d e la n dp r e s e n t sa na p p l i c a t i o ni n s t a n c et op r o v et h e r e s e a r c hv a l u ea n dp r a c t i c a l i t yo f m o d e l k e yw o r d s :f r a m e w o r k ;c o m p o n e n t ;a u t o m a t i cc o m p o s i t i o n ;w e b l s ;j 2 e e i i i 昆明理工大学硕士论文图表目录 2 0 0 5 年3 月 图表目录 图2 1 使用模型开发w e b l s 系统示意图4 图2 2 框架构件自动组装模型的体系结构图6 图2 3 黑箱示意图7 图2 4 黑箱的透视图7 图2 5 基于构件的框架结构图1 2 图2 6 框架构件自动组装示意图1 3 图2 7j 2 e e 体系结构图1 4 图2 8 基于j 2 e e 平台的企业级w e b i s 系统架构图1 6 图3 1 系统应用层类图2 l 图3 2s y s a p p 类实现的处理流程图2 2 图3 3 界面视图管理中各类对映的功能模块布局图2 3 图3 4 界面视图管理的加载过程图2 4 图3 5s c r e e n - d e f i n e x m l 文档内容图2 5 图3 6d b d e f i n e x m l 文档内容图_ 2 5 图3 7a p p s e r v e r x m l 代码图2 5 图3 8 使用x m ls c h e m a 验证x m l 文档的流程图2 6 图3 9x m l 文档信息提取流程2 7 图3 1 0 界面视图管理的处理流程图2 8 图3 1 1 保存c o m p o n e n t d e f i n e x m l 流程图2 9 图3 1 2 应用层解析c o m p o n e n t d e f i n e x m l 流程图2 9 图3 1 3 组装层解析c o m p o n e n t d e f i n e x m l 流程图2 9 图3 1 4c o m p o n e n t d e f i n e x m l 的内容片断图3 0 图3 1 5 自动组装层的工作流程示意图3 1 图3 1 6 自动创建的w e b i s 系统代码目录结构图3 4 图4 1 销售管理系统流程图3 6 表4 1 销售记录信息字段定义表3 7 表4 2 客户信恳字段定义表3 7 图4 2 销售管理系统的主界面图4 1 v i i 昆明理工大学硕士论文图表目录 2 0 0 5 年3 月 图4 3 销售管理系统中销售记录浏览图4 2 图4 4 销售管理系统中销售记录添加图4 2 图4 5 销售管理系统中销售记录更新删除图4 2 图4 6 销售管理系统中客户记录浏览图4 3 v i i i 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 或 我个人) 进行研究工作所取得的成果。除文中已经注明引用的内 容外,本论文不含任何其他个人或集体已经发表或撰写过的研究成 果。对本文的研究做出重要贡献的个人和集体,均已在论文中作了明 确的说明并表示了谢意。本声明的法律结果由本人承担。 学位论文作者签名:彼葚i 自 日 期:矿罗年) 月f 夕日 关于论文使用授权的说明 本人完全了解昆明理工大学有关保留、使用学位论文的规定,即: 学校有权保留、送交论文的复印件,允许论文被查阅,学校可以公布 论文的全部或部分内容,可以采用影印或其他复制手段保存论文。 ( 保密论文在解密后应遵守) 导师签名:至亡篁塑妻窆论文作者签名 较量团 日 期:竺! 生月! 皇 旦 注:此页放在封面后,目录前。 昆明理工大学硕士论文第一章 2 0 0 5 年3 月 第一章引言 1 1w e b i s 系统开发现状 w e b l s 系统是随着i n t e r n e t 逐渐成为主要的信息处理平台而发展起来的, 己逐步扩展为具有时空性的统一资源调度与管理,日益在现代企业管理过程中 发挥主要的作用。w e b l s 系统以其跨地域、具有灵活性、易维护性等优越的性 能已成为企业应用的主要趋势。但目前对w e b l s 系统仍没有一种高效的开发途 径。国外s y b a s e 公司提倡使用p o w e r d y n a m o 工具来开发w e b l s 系统【1 1 ,其主要 方式是将p o w e r d y n a m o 工具生成的脚本嵌入到h t m l 文本中实现具有数据库访问 功能的w e b l s 系统。这种开发方式的缺点是w e b l s 系统中h t m l 文本需要同时实 现页面显示代码和业务逻辑代码,因此容易造成逻辑混乱,难于维护,移植性 和扩展性差。目前国内的一些w e b l s 系统研究人员提出采用c o m 组件和a s p 脚 本来开发应用系统口1 ,但是这种方式存在的问题是用户编程工作量大,而且开 发出的应用系统的跨平台性差。目前,采用脚本语言开发w e b l s 系统也是一种 主要的方式1 3 1 ,例如使用p h p 、j s p 等脚本语言通过编程实现界面显示代码、应 用逻辑处理代码和数据库连接代码,这些代码完全需要开发者自己编写。这种 开发方式其开发周期长、程序的质量得不到保证【“。 在新经济环境下,企业对w e b l s 系统的应用提出了哪些新的要求呢? 显然 就是在保证具有高质量的同时要具有较高的开发速度,这样才能从容应对激烈 的竞争,才能最大地提高w e b l s 系统开发产出和投入的比例,最大地发挥w e b l s 系统价值。但是显然通过上文中提到的方法无论是开发w e b l s 系统的效率,还 是开发出来的w e b l s 系统的质量都不能令人满意,因此本文提出种j 2 e e 平台 上的框架构件自动组装模型,此模型将框架构件的软件复用方式应用到w e b l s 系统的开发中,通过本文提出的框架构件自动组装理论实现了模板构件的自动 实例化和框架构件的自动组装,从而高效快速地自动创建出基于j 2 e e 平台的 w e b l s 系统,即保证了自动创建的w e b l s 系统的质量,同时也提高了开发效率, 弥补了上文中提到的几种方法的不足,有效地解决了w e b l s 系统开发中的难题。 昆明理工大学硕士论文第一章2 0 0 5 年3 月 1 2w e b l s 系统的框架构件自动组装模型的提出 伴随着软件复用技术的逐渐深化,软件应用框架和构件技术正日益受到重 视,基于框架和构件的软件开发已经成为软件工程化开发和工业化生产的必然 趋势。 由s u n 公司提出的j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 规范描述 的就是一种框架构件技术。j 2 e e 规范是由多种技术( e j b 、j n d i 、r m i 、s e r v l e t 、 j s p 等) 支持的多层体系。其中的e j b ( e n t e r p r i s ej a v a b e a n ) 在j 2 e e 整个框 架中扮演着构件的角色。s u n 推出j 2 e e 的目的是为了克服传统c l i e n t s e r v e r 模式的弊病,迎合b r o w s e r s e r v e r 架构的潮流,为应用j a v a 技术开发服务器 端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业 级平台。基于层次化构件模式的j 2 e e 平台把业务逻辑和底层网络技术分离出 来,具有可伸缩性、可扩展性、易维护性,已经成为企业级商业分布式网络计 算的事实标准【2 1 1 。因此将w e b l s 系统构建与j 2 e e 平台之上,可以使得w e b l s 系 统具有良好的应用性能。 信息技术的快速发展给企业的w e b i s 的开发提出了更高的要求,必须在保 证w e b i s 系统应用质量的同时,更快的设计、开发企业级w e b l s 。针对这一w e b l s 系统开发中迫切需要解决的问题,本文提出了一种框架构件的自动组装模型, 该模型能够自动地创建出基于j 2 e e 平台的企业级w e b i s 系统,并结合j 2 e e 平 台给出了框架构件自动组装模型的应用实例。 基于j 2 e e 平台构建的企业级w e b l s 系统具有较高的可伸缩性、可扩展性、 易维护性、平台无关性以及安全性,因此保证了w e b l s 的使用性能和应用质量。 框架构件自动组装模型实现了构件的自动实例化和框架构件的自动组装,这就 使得开发基于j 2 e e 平台的w e b l s 系统具有很高的自动化程度,从而可以有效地 提高开发效率,降低了开发难度和维护成本,同时保证了程序的质量。 综上所述,本文提出了一种基于j 2 e e 平台企业级w e b l s 系统的框架构件自 动组装模型,该模型实现了构件实例化过程的自动化和框架构件组装过程的自 动化,实现了基于j 2 e e 平台的企业级w e b l s 系统创建过程的自动化。本文详 细地阐述了框架构件自动组装模型的设计和实现,最后以一个框架构件自动组 装模型的应用实例来验证和说明了模型的可行性和实用性,证明了该模型能够 昆明理工大学硕士论文第一章 2 0 0 5 年3 月 有效地解决目前w e b i s 系统开发中面临的问题,具有一定的研究价值和广阔的 应用前景。 1 3 本研究的主要任务及工作 本研究的主要任务是利用框架构件技术,通过分析和研究j 2 e e 平台,设计 一个用于创建基于j 2 e e 平台企业级w e b i s 系统的框架构件自动组装模型,此组装 模型可以自动完成与数据库连接,通过对数据库表信息的采集和分析自动实例化 实体e j b 模板构件,而后实例化会话e j b 模板构件和w e b 模板构件,并通过框架上 的扩展点自动地将这些构件组装到框架中。从而自动创建出了一个具有浏览、添 加、更新和删除功能的基于j 2 e e 平台企业级w e b i s 系统。这使得w e b i s 系统的开发 效率得到很大的提高,由于系统是通过框架构件组装而成的,所以质量也得到保 证。 在研究过程中,笔者查阅了大量资料,做了以下工作: 提出了采用框架构件、x m l 和j 2 e e 技术来实现能够创建基于j 2 e e 平台的 企业级w e b i s 系统的框架构件自动组装模型的总体技术方案; 使用x m l 文档作为框架构件组装过程中的配置描述语言,定义了描述语 言x m l 的文档说明形式; 用j a v a 技术编程实现了框架构件自动组装模型,验证了模型设计的可行 性。 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 第二章框架构件自动组装模型 2 1 研究内容及基本要求 2 1 1 框架构件自动组装模型的研究内容 研究内容是针对目前快速高效地开发出高质量的w e b i s 系统这一需求,对 基丁框架构件、x m l 和j 2 e e 等技术的,用于创建出基于j 2 e e 平台企业级w e b i s 系统的框架构件自动组装模型的实现进行研究。以此来提高w e b l s 系统应用的 开发效率,减低程序开发人员的重复劳动强度,提高了代码的规范性,降低了 维护成本和二次开发的难度。另外对于使用者来说,甚至不需要了解j 2 e e 规范 和相关技术,只要设计好数据库,通过使用该框架构件自动组装模型就能够得 到基于j 2 e e 平台的具有添加记录、删除记录、浏览记录和更新记录的w e b i s 系 统,从而极大地降低了开发难度。 研究的思路是通过对框架构件技术和w e b i s 系统结构深入分析的基础上, 结合x m l 、j 2 e e 规范等技术来实现框架构件自动组装模型。 本论文提出的框架构件自动组装模型设计的目标就是使得w e b l s 系统开发 人员能够通过使用模型就可以自动地创建出基于j 2 e e 平台的w e b i s 系统。为了 增强模型应用范围,模型可以创建出针对多种j 2 e e 应用服务器( j b o s s 、 w e b l o g i c 等) 和针对多种数据库服务器( m y s q l 、p c s z g r e s q l 或s q l s e r v e r 等) 的w e b l s 系统。将模型自动创建出的w e b l s 系统部署到服务器上后,用户即可 通过i n t e r n e t 网络使用w e b i s 系统,使用本论文提出的模型开发w e b l s 系统的 示意说明如图z 1 所示。 示意说明如 图2 1 使用模型开发w e b i s 系统示意图 4 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 2 ,1 2 框架构件自动组装模型的基本要求 模型必须具有良好的实用性 能够通过框架构件的自动组装创建出具有若干基本功能( 包括:加入记录、 删除记录、浏览记录和更新记录) 的w e b i s 系统。 模型应该具有友好的易用性 针对的用户群应该包括那些不熟悉j e e e 规范和相关技术的初级开发员。因 此,应该最大限度地实现j 2 e e 规范和技术对用户透明,将其封装到模型的子模 块中。 可广泛地扩展应用服务器类型 当前,支持j 2 e e 规范的应用服务器种类繁多,如b e a 公司的w e b l o g i c t ”】、 i b m 公司的w e b s p h e r e 、o r a c l e 公司的o r a c l e9 ia p p l i c a t i o ns e r v e r 、s u i q 公司的s u ni p l a n e t 和j b o s s 等服务器叫】。为了使得模型组装出的基于j 2 e e 平 台企业级w e b l s 系统具有更广泛的应用范围这一点来考虑,框架构件自动组装 模型应该不仅仅局限于自动组装出针对一种应用服务器的w e b l s 系统。而是应 该可以动态地加入新的应用服务器类型。 可广泛地扩展数据库服务器类型 同时为使得框架构件自动组装模型具有更广泛的应用范围,当自动组装时 v c e b l s 系统所依赖的后台数据库类型不是唯一的,用户可以根据特定的需要选 择合适的数据库类型。因此,框架构件自动组装模型应该包括多种常用的数据 库如:p o s t g r e s q l 和小型数据库m y s q l 等。并且可以动态加入新的数据库类 型。 模型必须易于维护,方便二次开发完善 随着时间流逝,新功能不断加入,不应该产生庞大的不可维护的情况,每 个部分应该容易阅读和维护。 昆明理工大学硕士论文第二章2 0 0 5 年3 月 2 2 框架构件自动组装模型结构设计 2 2 1 框架构件自动组装模型的体系结构 框架构件自动组装模型的结构采用分层式结构,从而限制各个子系统间的 依赖关系,使系统以更松散的方式耦合。方便了功能扩展和系统维护【“。模型 的体系结构如图2 2 所示。 框架构件自动组装模型由“三层二接口”组成,并提供对层和相应接口的 管理。 1 ) “三层”: ( 1 ) 系统应用层:包括界面视图管理和逻辑控制管理。这一层主要实现了 显示界面和用户交互,接收用户录入的构件参数信息,包括:数据库类型、参 数值等,方便用户进行构件配置。 ( 2 ) 自动组装层:包括信息提取管理,构件仓库管理,实例生成管理和输 出管理。这一层实现了构件的自动实例化和框架构件的组装,是自动组装模型 的核心层。 ( 3 ) 数据储存层:用于存储数据库表信息。 图2 2 框架构件自动组装模型的体系结构图 2 ) “二接1 3 ”: ( 1 ) x m l 文档i o 管理接口:在系统应用层和自动组装层之间提供通信接口, 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 将用户在系统应用层录入的参数信息传递到自动组装层。 ( 2 ) 数据库驱动管理接口:在自动组装层和数据储存层之间提供通信接口。 2 2 2 框架构件自动组装模型结构的设计原理 在框架构件自动组装模型的体系结构设计上,采用了层次结构的设计原理。 多层结构是将系统不同层次的功能对应分散在不同层次上的软件系统结构。 层次结构适用于复杂的软件系统,其特点是:上层使用下层提供的服务,且 仅通过调用层次间的特定接口获取下层服务,下层暴露特定接口为上层提供特定 服务,且不依赖于上层,也不知道上层的存在。下层与相邻上层之削为一对多的 关系,即同一个下层可能为不同的上层提供服务。其中,层是一群负有特定使命, 提供特定服务的软件模块,层是通过多组软件模块之间的经过规划的调用来实现 的。 框架构件自动组装模型的层次结构设计使得模型具有对象化和层次化的特 性,这就有利于在软件空间和问题空间之间建立映射关系,实现平滑过渡,进 而有利于对于问题的理解和问题解决方案的实现,有利于模型的开发,维护和 重用。 框架构件自动组装模型在设计中为了增加友好性,将自动组装所需的逻辑 处理都封装在了模型的内部。在使用中对用户事实上是一个黑箱,如图2 ,3 所 示,黑箱的内部透视图如图2 4 所示。用户只需要关心界面上如何操作即可: 在界面上选择他要发出的命令,选择或输入执行该命令需要的参数就可以了。 图2 3 黑箱示意图 图2 4 黑箱的透视图 在框架构件自动组装模型中x m l 文档i o 管理和数据库驱动管理的角色类 似于适配器。x m l 文档i o 管理可以提供自动组装层和系统应用层之间进行数 7 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 据传递和转换的服务。数据库驱动管理可以提供自动组装层和数据存储层之间 进行数据传递和转换的服务。这样,自动组装层就不必关心用户界面和数据存 储,仅通过接口与之进行数据交换,因此可以隔离相关可变化因素,集中精力 实现自动生成的逻辑处理要求。层次之间通过接口的隔离来进行基于服务的调 用,降低了系统的复杂性。 模型采用多层结构设计具有一些的优点: ( 1 ) 可重用性:由于每个层的功能相对独立,耦合性较小,因此每个层在 相关的二次开发过程中具有较高的可重用性。 ( 2 ) 开发并行性:由于层与层之间是采用基于服务的存取( 接口调用) , 并且是独立存在的,所以各层可以在约定好的接口下并行开发。 ( 3 ) 系统进化的容易度:当软件需求变更时或技术进步时,只需要更改相 应层中的构件,在保证接口不变的情况下,不会影响系统的其他部分,也不需 重新测试系统的其他部分。 2 3 框架构件自动组装模型的组装原理 2 3 1 软件复用技术 为了说明框架构件技术,先要有软件复用的理论基础,此处先简要介绍一 下软件复用技术。 学者n c i l r o y 在1 9 6 8 年的软件工程会议上正式提出软件复用的概念。软件 复用是指充分利用过去软件开发中积累的成果、知识和经验,去开发新的软件 系统,使人们在新系统的开发中着重于解决出现的新问题、满足新需求,从而 避免或减少软件开发中的重复劳动。它不仅是对软件程序的复用,还包括对软 件生产过程中其它劳动成果的复用,如项目计划书、可行性报告、需求分析、 概要设计、详细设计、测试用例、文档与使用手册等等。因此,软件复用包括 软件产品复用和软件过程复用两部分的内容。本文研究主要侧重于软件产品上 的复用p 】1 1 3 】肛刀1 4 2 j f 4 3 】。 软件复用不同于软件移植。软件移植是指对软件进行修改和扩充,使之在保 留原有功能、适应原有平台的基础上,可以运行于新的软硬件平台。而复用则 8 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 指在多个系统中,尤其是在新系统中使用已有的软件成分。 从对复用产品的了解程度和复用方式看,也可分为白盒复用与黑盒复用。 黑盒复用指对已有产品或构件不需作任何修改,直接进行复用。它主要基于二 进制代码的复用,包括可执行程序的复用和基于库( 包括动态链接库和静态库) 的复用。白盒复用指根据用户需求对已有产品进行适应性修改后才可使用。白 盒复用一般为源代码一级的复用,以及相应的测试用例、文档等的复用m 】。本 文所研究的框架构件自动组装模型,为了创建基于j 2 e e 平台企业级w e b l s 系统, 需要通过e j b 模板构件和w e b 模板构件的实例化来实现,这是在源代码一级上 的复用,因此属于白盒复用范畴。 软件复用有三个基本原则,一是必须有可以复用的对象;二是所复用的对 象必须是有用的,三是复用者需要知道如何去使用被复用的对象。软件复用包 括两个相关过程:可复用构件的开发( d e v e l o p m e n tf o rr e u s e ) 和基于可复用构 件的应用系统构造( 集成和组装) ( d e v e l o p m e n tw i t hr e u s e ) 。解决好这几个方 面的问题才能实现真正成功的软件复用。本文研究的重点放在了框架构件的自 动组装上,属于软件复用的第二个过程。同时,在框架构件自动组装模型的实 现过程中,也实现了对e j b 模板构件和w e b 构件的设计与开发,这又属于软件 复用的第一个过程。这两个过程统一在框架构件自动组装模型的设计和实现之 中,相辅相成,缺一不可。 软件复用使人们在软件开发中不必“重新发明轮子”或“切从零开始”。 在应用系统开发中可以充分地利用已有的开发成果,减少了包括分析、设计、 编码、测试等在内的许多重复劳动,同时,通过复用高质量的已有开发成果, 避免了重新开发可能引入的错误,提高了软件生产率和质量,缩短开发周期, 降低开发成本。软件的重用中没有材料的消耗,而且软件通过多次重用后其质 量和可靠性越来越高。据统计,软件系统的开发中若复用程度达到5 0 ,则其 生产率提高4 0 ,开发成本降低约4 0 ,软件出错率降低近5 0 。软件工程专家 b o h e m 认为,近十年来软件复用已成为解决软件危机、提高软件生产率和质量 的最有效、最具潜力的手段。 当前伴随着软件复用技术的逐渐深化,软件应用框架技术正日益受到重视。 昆明理工大学硕士论文第二章2 0 0 5 年3 月 2 3 2 框架构件技术 对于框架的定义可以从多个角度入手,从复用的角度来说,“框架是一个系 统全部或者部分的可复用设计,通常由组抽象类和类之间的协作组成”。从框 架的目的而言,“框架是一个能够被开发人员实例化的系统骨架”。由以上定义 可知,框架中定义了系统的控制机制,实现了系统的部分功能,可以对特定环 境进行复用,通过实例化扩展生成特定的应用。从领域工程的角度来看,框架是 实例化的d s s a ( d o m a i ns p e c i f i cs o f t w a r ea r c h i t e c t u r e ,特定于领域的软件 体系结构) ,它反映了一个软件系统族的体系结构,并且提供了创建后者的基本 构造单元,同时定义了针对特定的功能需要在何处进行调整和修改,即扩展点 ( h o ts p o t s ) 。软件框架有助于实现领域内体系结构层次较大粒度的设计复用, 提高应用开发中复用的比例,从而保证复用活动的成功率,降低应用开发的成 本p 2 1 1 3 3 1 3 4 。 从复用的角度来划分框架,可以分为白盒框架( w h i t e b o xf r a m e w o r k ) 和黑 盒框架( b l a c k b o xf r a m e w o r k ) ,从复用成本上来看,白盒框架高于黑盒框架。 软件框架在其生命周期开始时一般是白盒框架,随着对领域认识的不断加深, 白盒框架将逐渐演化成为黑盒框架,从而提高对复用活动的支持。目前,实践 中的白盒框架主要是面向对象框架,它是构成一类特定软件可复用设计的相互 协作的一组类,包括具体类和抽象类,其实例化方式主要通过子类化抽象类以 及对现有具体类方法的调用。随着面向对象框架的开发和使用,许多学者也意 识到了面向对象框架的不足,主要集中于以下3 点:首先是框架的“过度增殖 问题”,通过实际的调查表明,在许多基于面向对象框架实例化实现的软件系 统中,是将变化性“硬编码”到框架中,这就造成了框架的大量“增殖”,使 框架维护交得困难。其次, “脆弱的基类”问题,面向对象框架的开发者并不 清楚在框架被分发后,用户将进行何种扩展,当框架开发者修改框架基类时, 就有可能损害用户所做的扩展。第3 , “隐式的体系结构”问题。当用户使用 一个框架时,首先需要了解其体系结构,然而由于框架的实现表现为具体的、 在代码层次提供复用的类,因此框架的体系结构被“隐没”在类的实现细节中 面难以被识别。上述面向对象框架的不足可以归结为两个方面的原因,即框架 类的粒度过小和继承扩展机制【3 2 】【3 6 1 ”1 【”】。 1 0 昆明理工大学硕士论文第二章2 0 0 5 年3 月 本文提出的框架构件自动组装模型中采用的框架是一种基于构件的框架。 框架通过构件接口的调用来替代类方法的重载,将“继承”变为“组装”,因 此具有更大的构件粒度及其基于组装的扩展机制,使得它更易于被复用,这种 框架属于黑盒框架。 软件构件是软件系统内可标识的、符合某种标准要求的构成成分,类似于 传统工业中的零部件。广义上讲,构件可以是需求分析、设计、代码、测试用 例、文档或软件开发过程中的其它产品。狭义来说,一般指对外提供一组规约 化接口的、符合一定标准的、可替换的软件系统的程序模块。通常情况下是指 后者。 软件构件可分为可复用构件和不可复用构件。剖析一个应用软件系统,可 以发现其中有三类构成成分:通用的基本构件,如:数据结构,用户界面元 素等等领域共性构件,指仅在该应用软件所属领域内经常出现的构件应用 专有构件,指仅在该应用软件中出现的特定构件。可复用构件指前两者,通常 情况下软件构件指可复用构件。本文研究的框架构件自动组装模型使用的都是 可复用构件8 9 删h ”。 软件构件有两个特征:有用性,指构件完成的功能是有用的,也就是其 功能可出现在很多应用软件中易用性,指构件要有很好的包装,能很方便地 使用它。一般来讲,构件的包装要符合一定的标准。 从构件的角度来看,其实框架也是一种特殊的构件,框架是一个可复用的 设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖 关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法 【4 2 】 2 3 3 框架构件的自动组装原理 本文研究的框架由一组互相协作的构件组成,是一种基于构件的框架。通 过这些构件及其协作关系定义了应用系统的体系结构,同时框架通过扩展点组 装用户开发的构件,以处理领域变化性。框架中定义了系统的控制机制,实现了 系统的部分功能,当对特定环境进行复用时,要通过实例化扩展才能生成特定 的应用。当前较常见的框架实例化方法与模板构件密不可分,模板构件是将要 昆明理工大学硕士论文第二章 2 0 0 5 年3 月 被进一步实例化的特殊构件,通过将模板构件实例化获得的应用构件组装到框 架的扩展点上,即实现了框架的实例化,从而形成了框架构件针对于某一特定 应用的复用。 纽装 蜘 模板构件 图2 5 基于构件的框架结构图 如图2 5 所示,框架内部的构件称为框架构件,它实现了领域共性。而在 框架外部的、由用户定制的、待组装的构件称为应用构件,它表现了具体应用 系统的特性,即领域变化性;框架复用时需要根据应用的具体特点,组装不同 的应用构件,应用构件主要由模板构件的实例化过程获得。模板构件中包含具 体的算法和业务处理规则,使用时通过设置具体参数( 包括数值参数和类型参数) 进行实例化。框架中预先定义了一些扩展特定功能时需要进行调整和修改的位 置,即扩展点。在框架复用中应用构件的组装需要基于扩展点进行,这体现了 框架的部分实现特性。 模板构件是通过组装时的参数设置实现实例化的,就目前而言,参数设置 过程多为框架构件用户手工编写完成。同样通过模板构件的实例化得到的应用 构件与框架组装的也是用户手工编写实现的,因此效率较低。 s u n 公司提出的j 2 e e 就是一种基于框架构件技术的规范,这在下- - 4 , 节中 将有详细介绍。本文研究的框架构件自动组装模型是结合j 2 e e 规范,在j 2 e e 平台上进行模型的研究与实现。 在本文提出的框架构件自动组装模型中,模型通过图形用户界面引导用户 进行实例环境设置,由x m l 文档保存设置信息后,模型自动地进行模板构件的 参数设置,实现模板构件的实例化。模板构件实例化得到的应用构件和框架组 装过程也由模型自动完成,如图2 6 所示。因此模型可以在框架构件的复用过 程中提离开发效率,并通过有效的验证机制保证了构件与框架组装的正确性。 昆明理工大学硕士论文第二章2 0 0 5 年3 月 图2 6 框架构件自动组装示意图 在模型实现过程中,通过对j 2 e e 框架的分析,使用j a v a 语言和模板描述 语言来编写e j b 模板构件和w e b 模板构件,以用于实例化为应用构件来处理领 域变化性。具体的模板构件实例化和框架构件的自动组装过程为: ( 1 ) e j b 模板构件实例化与自动组装 在自动组装层中由模板实例化引擎专门负责构件的实例化过程操作。实例 引擎首先调用构件仓库冲的实体e j b 模板构件,通过读取 c o m p o n e n t d e f i n e x m l 文档的d o m 树获得实体e j b 名称、与之映射的数据库表 信息( 表名、字段名、字段类型、长度、主键等) ,由这些参数对实体e j b 模板 构件进行实例化,得到实体e j b 应用构件。在通过得到的实体e j b 名称和实体 e j b 接口中定义的方法名称作为参数,实例引擎调用会话e j b 模板构件,对其 进行实例化。在实例化过程中,由于会话e j b 构件获得了实体e j b 名称和方法, 从而可以通过j n d l 命名进行实体e j b 构件的查找和实体e j b 方法的调用。因此, 模型通过查找方式实现了实体e j b 与会话e j b 构件的自动组装。会话e j b 应用 构件通过w e b 应用构件的调用间接地与框架进行自动组装。 ( 2 ) w e b 构件实例化与自动组装 e j b 构件在m v c 模式中属于m o d e l ( 模型) 部分,作用是实现数据模型,应 用系统所有要处理的数据都由此构件来实现;而w e b 构件属于v i e w ( 视图) 和 c o n t r o l l e r ( 控制) 部分,实现了应用系统的视图,在应用系统中需要通过w e b 构件来调用e j b 构件。 通过e j b 模板构件实例化过程中得到的相关信息,模型将构件仓库中的w e b 模板构件进行实例化,将得到的w e b 应用构件通过框架上的界面扩展点组装到 昆明理工大学硕士论文第二章2 0 0 5 年3 月 框架中。界面扩展点主要是处理系统界面的扩展,模型将w e b 构件实例化过程 中得到的控制类和j s p 显示页面等信息自动地写入到框架界面扩展点的插述文 件中,从而实现了w e b 构件与框架的自动组装。通过以上过程,完成了框架构 件的自动组装,在框架中自动扩展了一个完整的以数据库操作为基础的业务流 程。 2 4 框架构件自动组装模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44887.1-2025IPv6演进技术要求第1部分:参考架构
- 2024年丽水辅警招聘考试题库含答案详解(新)
- 2024年中卫辅警招聘考试题库附答案详解(精练)
- 2024年九江辅警协警招聘考试备考题库附答案详解(研优卷)
- 2023年郑州辅警协警招聘考试备考题库含答案详解(夺分金卷)
- 2023年黄石辅警协警招聘考试备考题库含答案详解(模拟题)
- 2024年南京辅警招聘考试题库含答案详解(综合卷)
- 2024年南平辅警招聘考试题库带答案详解
- 2024年呼和浩特辅警招聘考试题库含答案详解ab卷
- 2023年舟山辅警协警招聘考试真题附答案详解(巩固)
- DL-T 5022-2023 发电厂土建结构设计规程
- 阅己+悦己+越己+-高中认识自我心理健康主题班会高中班会课件
- 再回首二部合唱简谱金巍
- 质量管理体系建设与实践案例分析报告书
- 人教版小学1-6年级诗词全集
- 青少年网络安全法制课
- 精神专科医院建筑设计规范
- 《石墨烯新材料》课件
- 阶段性测试卷(范围:第一、二、三章)(基础篇)(秋季讲义)(人教A版2019必修第一册)
- 新一代信息技术产业发展新趋势与关键路径研究
- 数学期中模拟测试卷八年级上册(考试范围:第12-14章)(原卷版)
评论
0/150
提交评论