




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)j2ee框架下基于构件的软件复用技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东轻工业学院硕十学位论文 摘要 软件复用是解决“软件危机”的技术上可行的、现实的方案。软件复用的主 要思想是采用已有的软件成份来构造新的软件系统。从最初的概念提出至今近四 十年的发展过程中,软件复用经历了结构化程序设计、面向对象技术、软件构件 技术的发展,如今软件复用的发展已经突破了传统的复用概念,将“复用”概念 从代码延伸到文档、设计模式、软件体系结构乃至软件框架。软件复用技术已经 成为推动软件工业化早日实现的重要力量。 j 2 e e 框架是当前企业级和关键任务应用的最主要的平台之一,它代表了最新 的应用程序构架发展状况。j 2 e e 框架不仅是一种适合于构建企业级应用程序的技 术,更是一种具有很大潜力的分布式对象技术。它基本上已经成为世界上大型企 业级应用和关键任务应用的首选体系结构。j 2 e e 框架与软件复用技术的结合将会 打破传统的“一切从零丌始”的软件开发模型,从而在极大程度上提高企业级应 用程序的开发效率。 本文介绍了软件复用技术的定义、软件复用分类、实现软件复用技术的关键 因素以及j 2 e e 框架的基本架构、技术优势和基于j 2 e e 框架的一般软件体系结构。 并着重阐述了软件复用技术中的构件技术以及j 2 e e 框架中的e j b 技术。构件技术 的内容包括构件的定义、分类、描述以及构件库的相关知识。e j b 技术内容包括 e j b 的定义、分类、各种e j b 的适用范围、e j b 的应用体系结构等相关知识。 本文研究了j 2 e e 框架下构件的分类、描述、匹配、自适应性修改方法以及构 件库的检索和构件库系统的体系结构等相关技术。并在此基础上研究了j 2 e e 框架 下基于构件的面向特定领域的软件开发方法,内容主要包括系统中构件的抽取、 映射、设计等内容。并在论文最后以企业应用中常见的仓库管理系统为例具体演 示并验证了该方法。 关键词:j 2 e e 框架;软件复用;构件;e j b ;构件库;基于构件的软件开发 a b s t r a c a b s t r a c t s o f t w a r er e u s ei st h ep r a c t i c a b l ea n dr e a l i s t i ct e c h n o l o g yw h i c hc a ns o l v e “s o f t w a r ec r i s i s ”t h em a i nt h o u g h to fs o f t w a r er e u s ei sc o n s t r u c t i n gn e ws o f t w a r e s y s t e mu s i n gt h ee x t a n ts o f t w a r ec o m p o n e n t f r o mt h ef i r s tc o n c e p to fs o f t w a r er e u s e h a db e e np u tf o r w a r d ,s o f t w a r er e u s eh a sb e e nd e v e l o p e df o rn e a r l y4 0y e a r s i nt h e p r o c e s ss t r u c t u r e dp r o g r a m m i n g ,o b j e c t - o r i e n t e d t e c h n o l o g ya n dt h et e c h n o l o g yo f c o m p o n e n th a sb e e np u tf o r w a r da n dd e v e l o p e d n o wt h ed e v e l o p m e n to fs o f t w a r e r e u s eh a sb r o k e nt h er e s t r i c t i o no ft h e o l dc o n c e p t t h ed o m a i no fr e u s ei n c l u d e sc o d e s , d e s i g np a t t e r n ,s t r u c t u r eo fs o f t w a r ea n ds o f t w a r ef l a m e t o d a y ,s o f t w a r er e u s eh a s b e e nt h ep o w e ro fi n d u s t r i a l i z a t i o no fs o f t w a r e n o w a d a y s ,t h ej 2 e ef r a m ei so n eo ft h em o s tp o p u l a rp l a t f o r m so fc o n s t r u c t i n g s o f t w a r e j 2 e ef r a m ei sn o tat e c h n o l o g yw h i c hi ss u i t a b l ef o rb u s i n e s se n t e r p r i s ec l a s s a p p l i c a t i o n ,b u ta l s oi sad i s t r i b u t e dt e c h n o l o g yw h i c hi sv e r yp o t e n t i a l n o w ,m a n y l a r g es o f t w a r ee n t e r p r i s e sa d o p tt h i sf r a m et oc o n s t r u c ts o f t w a r e t h ec o m b i n a t i o no f s o f t w a r er e u s ea n dj 2 e ew i l lb r e a kt h et r a d i t i o n a l “e v e r y t h i n gi sf r o mz e r o s o f t w a r e d e v e l o p i n gm e t h o d ,s oi tw i l la tb i g g e s td e g r e ei m p r o v et h ed e v e l o p m e n te f f i c i e n c yo f d e v e l o p i n gb u s i n e s se n t e r p r i s ec l a s ss o f t w a r e t h i st h e s i si n t r o d u c e st h ec o n c e p t ,d e f i n i t i o na n dk e yf a c t o r so fs o f t w a r er e u s e ,a d e f i n i t i o na n dt h em a i nk n o w l e d g e ,t e c h n i q u ea d v a n t a g ea n dg e n e r a ls o f t w a r es y s t e m s t r u c t u r eo fj 2 e ef r a m e i te m p h a s i z e st h ek n o w l e d g eo fe j b t h ei n t r o d u c t i o ni n c l u d e s t h ec o n c e p t ,d e f i n i t i o na n da p p l i c a t i o ns t r u c t u r eo fe j b ,c o n c e p t ,d e f i n i t i o n ,a n d d e s c r i p t i o no ft h ec o m p o n e n ta n dt h er e l a t e dk n o w l e d g eo ft h ec o m p o n e n tl i b r a r y t h i st h e s i ss t u d i e st h ed e s c r i p t i o n ,d e f i n i t i o n ,a n dm a t c ho fc o m p o n e n ta n d s e a r c h i n gm e t h o da n ds t r u c t u r eo ft h ec o m p o n e n tl i b r a r yo nj 2 e ep l a t f o r m o nt h i s f o u n d a t i o n ,i tp u tf o r w a r dad e v e l o p i n gm e t h o do fs o f t w a r eb a s e do nj 2 e ep l a t f o r ma n d c o m p o n e n t i tf o c u s e so nd i v i s i o na n di m p l e m e n to fs o f t w a r es y s t e m a tl a s ti tt a k e s w a r e h o u s es y s t e mf o re x a m p l ed e s c r i b i n gt h ec o n c r e t ep r o c e s so fd e v e l o p i n g k e y w o r d s :j 2 e ep l a t f o r m ;s o f t w a r er e u s e ;c o m p o n e n t ;e j b ;c o m p o n e n tl i b r a r y ; c b s d i i 学位论文独创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。文中 引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上已 属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成 果,与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示谢意。 学位论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属山东轻工业 学院。山东轻工业学院享有以任何方式发表、复制、公开阅览、借阅以及申请专 利等权利,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名 单位仍然为山东轻工业学院。 论文作者签名:燧 导师签名: 日期:丝年月丝日日期:型鱼年上月丝日 日期:2 继年j f l 月2 乏日 一 山东轻工业学院硕+ 学位论文 第1 章绪论 1 1 课题研究背景与意义 软件复用是一种计算机软件工程方法和理论。6 0 年代的“软件危机 使软件 程序设计人员明白用于生产和维护软件的成本是极其高昂的。当软件的规模不断 扩大时,这种软件的综合成本可以说是没有人能负担的起,并且即使投入了高昂 的资金也难以得到可靠的产品。而软件复用的思想是解决这一问题的根本方法。 1 9 6 8 年,n a t o ( 北大西洋公约组织) 软件工程会议上由m c i l r o y 第一次提出 了软件复用的概念。早期的软件复用主要是代码级复用,被复用的知识专指程序, 后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码 和文档等一切有关方面。它的主要思想是将软件看成是由不同功能部分的“组件 所组成的有机体,每一个组件在设计编写时可以被设计成用于完成同类工作的通 用工具,这样,如果完成各种工作的组件被建立起来以后,编写特定软件的工作 就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量 和维护工作都有本质性的改变【1 , 2 , 3 】。 j 2 e e 框架是使用j a v a 技术开发企业级应用的一种事实上的工业标准,它是 j a v a 技术不断适应和促进企业级应用过程中的产物。j 2 e e 代表了最新的应用程序构 架发展状况,现如今它已经成为实现企业级和关键任务应用的最主要的平台之一。 j 2 e e 技术不仅是一种适合于构建企业级应用程序的技术,更是一种具有很大潜力 的分布式对象技术。在j 2 e e 标准中详细地定义了采用j a v a 语言实现大型多层分布式 应用系统各个组成部分之间的接口规范,程序开发人员可以在j 2 e e 平台上建立灵 活且可重用的组件以及应用程序,与此同时j 2 e e 也为不同厂商创建平台产品提供 了标准,这就使不同j 2 e e 平台产品之间的交互成为可能【4 。8 】。随着i n t e m e t 应用的不 断发展和下一代分布式计算模型w e b 服务的出现,j 2 e e 框架基本上已经成为世界 上实现大型企业级应用和关键任务应用的首选体系结构。在过去几年里j 2 e e 一直 引领着企业应用的潮流,使得企业应用系统的开发变得更加迅速而且便捷。 从理论角度来看,j 2 e e 框架本身就是由不同功能的组件以及它们之间的接口 规范所构成的,这就为在j 2 e e 框架中引入软件复用技术提供了可能性。我们可以 将j 2 e e 框架中的组件技术与软件复用中的构件技术相结合,将j 2 e e 框架中成熟 的组件模型和接口规范看作是构件技术的一种实现和应用。可以将c b s d ( 基于构 件的软件开发) 方法和领域工程等方面的知识引入基于j 2 e e 框架的软件开发过程 中,从而使得该开发过程更加高效和容易。从实际运用角度来看,软件复用技术 和j 2 e e 框架的结合将会打破传统的“一切从零开始 的软件生命周期模型,在极 大程度上缩短软件开发周期,提高软件开发效率。尤其对于大规模的企业级应用 第l 章绪论 程序来说,两者的结合将具有重大意义。因此,软件复用技术与j 2 e e 框架的结合 既可以促进这两项技术的融合与扩展,又对实际应用软件的开发具有现实意义。 1 2 国内外研究现状 从最初概念的提出至今,经过近四十年的发展软件复用技术在领域工程、构 件及构件库的标准化、构件组装技术、基于复用的软件开发过程和复用成熟度模 型等方面取得了重大成就。目前在国际上已经有很多成功的案例,例如运用于美 国空军运动控制等领域的由卡内基梅隆大学的软件工程研究所( c m u s e i ) 提出 的面向特征的领域分析方法;成功的构件库系统包括c a r d s 、a s s e t 、d s r s 等; 由s t a r s 项目组于1 9 9 2 年提交的a l o a f ( a s s e sl i b r a r yo p e na r c h i t e c t u r e f r a m e w o r k ) 开放体系结构的构件库框架v e r s i o n1 2 【9 】:由c a l d i e r i 和b a s i l i 提出 的基于复用的软件开发过程以及由i b m 和l o r a lf e d e r a ls y s t e m 公司研究出的复 用成熟度模型等。另外许多国外大型软件公司所提供的集成开发环境中也蕴含有 软件复用技术,例如m i c r o s o f t 公司的系列可视化产品、e s r i 公司的m a p o b j e c t s 、 i m e r g r a p h 公司的g e o m e d i a 等。在国内,由杨芙清院士主持的国家重点科技攻关 项目青鸟工程,重点研究了软件的工业化生产流程和软件复用的相关技术,开发 软件工业化生产系统青鸟软件生产线系统,即基于构件构架模式的软件开发 技术及系统,为软件开发提供了从组织、管理、技术及支撑等方面的整体解决方 案,并为推行软件工业化生产模式,促进软件产业规模的形成奠定了坚实基础。 与此同时,软件复用技术现己应用于国内许多领域,包括小型探测卫星系统软件 的可复用性结构设计以及基于构件技术的商业d d s 等领域。总的来说,目前国内 外越来越多的软件系统均采用面向构件的技术进行开发,围绕构件的生产、管理 和组装将形成相当规模的构件市场和构件开发工具市场。随着构件应用的推广和 深入,构件理论也渗入到各个行业,包括一些特殊的领域,譬如军事领域,航空 领域等等。由于领域的特殊性,现有的成熟理论和技术并不能完全满足这些领域 的要求,因此在成熟的理论和技术的基础上建立针对特殊的领域的构件理论和技 术是必然的趋势。 j 2 e e 是一种可以简化诸多与多级企业解决方案的开发、部署和管理相关的复 杂问题的体系结构。它不仅巩固了标准版中的许多优点,例如“编写一次、到处 运行 的特性、方便存取数据库的j d b ca p i 、c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、 j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。目前j 2 e e 已经成为企业级开发的工业标准和主流平台,它可以大大降低开发多层应用的成 本和复杂性,并对获得高可用性、高安全性以及高可扩充性软件服务以及确保系 统的可移植性等方面做出了卓越贡献。 山东轻丁业学院硕十学位论文 随着近两年j 2 e e 的应用逐步走向成熟,国内外对于j 2 e e 平台中的软件复用 技术研究也逐步展开。但是对于这一领域的研究还不成熟与完善,尤其是在j 2 e e 框架下如何进行构件管理,包括构件描述、接口设计、构件检索、匹配等问题, 以及在软件开发过程中如何抽取构件,抽取构件后如何映射为企业b e a n ,如何实 现构件互联,对于这些问题的讨论还不够细致充分。 需要指出的是s u n 公司已于2 0 0 5 年6 月正式将j 2 e e 更名为j a v ae e ( j a v a p l a t f o r n le n t e r p r i s ee d i t i o n ,j a v a 平台企业版) ,最新的j a v ae e 版本j a v ae e5 0 也已于2 0 0 6 年4 月份发布。鉴于与早期的j 2 e e 框架相比,j a v ae e5 0 的实质并 没有改变并且为了保持研究的连贯性与一致性,在本文中还继续沿用j 2 e e 一名, 但围绕j 2 e e 框架所进行的所有研究将采用j a v ae e5 0 规范。 1 3 本文的研究内容与组织结构 目前实现软件复用的关键问题在于要有统一的构件描述和管理规范以及高效 的基于构件的软件开发方法。针对这些问题,本文所研究的主要内容包括:j 2 e e 框架下如何实现构件的描述、接口设计、构件检索、匹配等问题,以及在软件开 发过程中如何抽取构件,抽取构件后如何映射为e j b ,如何设计实现构件。 全文一共分为八章。第一章介绍课题研究的背景和意义,并对国内外软件复 用技术和j 2 e e 框架的发展现状进行了综述和预测分析,指出软件复用技术和j 2 e e 框架的结合将对软件开发和工程建设产生深远的影响。第二章概要介绍软件复用 技术,主要包括软件复用的定义、实现软件复用的关键因素以及领域工程等方面 的知识。第三章介绍构件技术,其中着重阐述了构件模型、构件描述和构件库三 方面的知识。第四章介绍j 2 e e 框架技术,包括j 2 e e 技术优势、e j b 组件技术、 j 2 e e 框架结构以及基于j 2 e e 的软件体系结构。第五章研究j 2 e e 框架下的构件技 术,包括j 2 e e 框架下构件的描述方法、构件接口的设计、构件的检索方法以及构 件实现的规范和标准。在介绍了传统软件开发模型的基础上,提出了基于构件的 软件开发过程,并概括了基于构件的软件复用的特点。第六章研究j 2 e e 框架下基 于构件的软件开发方法。将c b s d 方法引入基于j 2 e e 的软件开发过程中,具体描 述构件的抽取和实现方法。第七章设计开发了一个j 2 e e 框架下基于构件的软件复 用系统一仓库管理系统,从实用的角度证明了软件复用技术和j 2 e e 框架的结合 在系统设计和快速实现方面所具有的突出优势和强大的生命力。第八章对全文进 行总结并展望了软件复用技术未来发展的方向。 3 第2 章软件复用技术 第2 章软件复用概述 2 1 软件复用技术定义 目前,人们对软件复用还没用一个形式化的定义,很多研究人员都是从自己 的研究角度给出软件复用的定义。例如,b i g g e r s t a f f 和r i t c h e r 认为软件复用是在 新的开发项目中使用以前已有的概念和对象。t r a c z 则认为:复用是特别为复用目 的而设计的软件的过程,这个定义认为软件复用具有事先性,而把使用不是特别 为复用目的的设计的软件称为软件挽救,把在多个应用中使用相同的构件称作软 件复用,不区分软件复用和软件挽救之间的区别。虽然人们对于软件复用概念的 表述不尽相同但所表达出来的软件复用的本质含义是一致的。软件复用的本质是 利用已有的软件及其有效成分来构造新的软件或系统。本文支持一种目前已得到 业内研究人员普遍认可的定义表述形式,其具体内容为,软件复用是指充分利用 过去软件开发中积累的成果、知识和经验,去开发新的软件系统,使人们在新系 统的开发中着重于解决出现的新问题、满足新需求,从而避免或减少软件开发中 的重复劳动 1 0 - 1 2 j 。需要指出的是,早期的软件复用主要是指代码级复用,被复用 的知识专指程序,经过近四十年的发展现在复用领域已扩展到包括领域知识、开 发经验、设计决定、体系结构、需求、设计、代码和文档等方面。简单来说,一 切与软件开发过程相关的成果、知识都可以纳入复用领域。 2 2 软件复用分类 软件复用的分类方式有很多种,其中按照抽象程度的高低进行分类、按照复 用方式的不同进行分类以及按照复用粒度的大小进行分类是三种最主要的分类方 式。 按照复用程度的高低,软件复用可以划分为如下几类: ( 1 ) 代码复用:包括目标代码和源代码的复用。大规模地实现源程序的复用要 依靠含有大量可复用构件的构件库。 ( 2 ) 设计复用:实现此复用有三种途径,从现有系统的设计结果中提取一些 可复用的设计构件,并在新系统的设计中应用这些构件;把一个现有系统的设 计文档运用于其他系统的实现;开发专门的可复用的设计构件。 ( 3 ) 分析复用:该复用的级别较高,受设计技术及实现条件的影响很少,可复 用的机会也更大。它的实现途径也有三种,从现有系统的分析结果中提取一些 可复用的分析构件应用于新系统的分析中;把现有的分析文档作为输入产生针 对不同软硬件平台和其它实现条件的多项设计;有针对性地开发一些可复用的 分析构件。 ( 4 ) 测试信息复用:主要包括在测试过程中对测试用例和测试过程信息的复用。 4 山东轻工业学院硕士学位论文 从复用方式出发,软件复用可分为: ( 5 ) 黑盒复用:黑盒复用是理想的复用方式,它是指直接复用已有的产品或构 件不需要对其进行任何修改。它主要基于对于二进制代码的复用,包括可执行程 序的复用以及基于动态链接库和静态库的复用。 ( 6 ) 白盒复用:白盒复用是指先根据用户需求对已有产品或构件进行适应性修 改后才使用它们的复用。白盒复用一般包括针对源代码的复用和对相应的测试用 例以及文档等资源的复用。 根据软件复用的粒度可将其分为如下五类:代码和设计拷贝、源代码复用、 软件体系结构( s o f t w a r ea r c h i t e c t u r e ) 复用、应用程序生成器( a p p l i c a t i o ng e n e r a t o r ) 以及领域特定的软件体系结构( d o m a i n ,s 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 ,d s s a ) 复 用。这五类复用的粒度是从小到大排列的,复用级别也是从低层到高层逐步递增。 需要说明的是实现小粒度的复用是实现软件复用的基础而实现大粒度的复用才是 软件复用的最终目标。 2 3 实现软件复用的关键因素 实现软件复用的关键因素包括软件构件技术、软件构架、领域工程、软件再 工程、开放系统技术、软件过程、c a s e 技术以及非技术性因素八个方耐1 3 】。这八 个方面相互联系共同影响着软件复用的实现。 ( 1 ) 软件构件技术 软件构件技术是软件复用技术的最重要组成部分,是实现软件复用的关键因 素。构件技术的关键点涉及构件做什么、构件交互的规则、构件存在的环境等方 面,相应地在现实中有各种支撑性的技术,包括:构件模型,研究构件的本质 特征及构件间的关系;构件描述语言,以构件模型为基础,解决构件的精确描 述、理解和组装问题;构件分类与检索,研究构件的分类策略、组织模式及检 索策略,建立构件库系统,支持构件的有效管理;构件复合组装,包括源代码 级的组装和基于构件对象互操作性的运行级组装;标准化,包括构件模型的标 准化和构件库的标准化;软件构架,研究如何快速、可靠地应用可复用构件系 统进行系统构造的方式,着重于软件系统自身的整体结构和构件间的互联。有关 构件技术的具体讨论将在下一章中完成。 ( 2 ) 软件构架 软件构架是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 它是一个系统的草图,描述的对象是直接构成系统的抽象组件。各个组件之间的 连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细 化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连 接通常用接口来实现。 第2 章软件复用技术 ( 3 ) 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过 程,它覆盖了建立可复用软件构件的所有活动。领域工程的实施基于这样一种思 想:同一领域中的系统的需求和功能必然具有显著的共性,这些系统的实现也常 常具有相同之处。 领域工程可分为以下三个阶段:领域分析阶段:这个阶段的主要目标是获 得领域模型。领域模型用于描述领域中各系统之间共同的需求;领域设计阶段: 这个阶段的目标是在前一阶段的基础上获得d s s a 。d s s a 用于描述在领域模型中 所表示的需求的解决方案。它并不是单个系统的表示,而是能够适应领域中多个 系统的需求的高层次设计。在此阶段同时形成构件的规约;领域实现阶段:这 个阶段的主要目标是依据d s s a 开发和组织可复用信息。这些可复用信息包括领 域模型、领域构架、领域特定的语言代码生成器和代码构件等产品【1 4 】。 ( 4 ) 软件再工程 软件再工程是指对既存对象系统进行调查,并将其重构为新形式代码的开发 过程。它的一个最重要特点是最大限度地重用既存系统的各种资源。软件再工程 的工作量由软件的可重用程度决定,它包括如下几个阶段:再分析阶段:该阶 段的主要任务是对既存系统的规模、体系结构、外部功能、内部算法、复杂度等 进行调查分析,其目的是调查和预测再工程涉及的范围。再工程分析者最终提出 的重用范围和重用策略将成为决定再工程成败以及再工程产品系统可维护性高低 的关键因素。再编码阶段:根据再分析阶段所完成的再工程设计书,再编码过 程将在系统整体再分析基础上对代码做进一步分析。再测试阶段:一般来说, 该阶段是再工程中工作量最大的一个阶段,如果可以大规模重用原有的测试用例 及运行结果,将大大降低再工程的成本。这也正是复用技术被再工程高度评价的 关键原因之一。 ( 5 ) 开放系统技术 开放系统是一个不断发展的概念,它是由许多已商品化的产品和技术组成 的通用软件环境,这些产品和技术是按照事实上的标准或工业标准设计制造的, 这些标准独立于厂家,可以使软件运行于各种硬件平台和操作系统之上并能实现 多台计算机系统的合作计算,因此用户可以在该环境中使用其所有资源和信息。 从开放系统的概念不难看出,开放系统技术能够为软件复用提供良好的支持。特 别是分布对象技术使得符合接口标准的构件可以方便地以“即插即用 的方式组 装到系统中,实现黑盒复用。这样,在符合接口标准的前提下,构件就可以独立 地进行开发,从而形成独立的构件制造业。 ( 6 ) 软件过程 软件过程是指软件生存周期所涉及的一系列相关过程。软件过程主要针对 6 山东轻工业学院硕十学位论文 软件生产和管理进行研究。为了获得满足目标的软件,不仅涉及项目开发,而且 还涉及项目支持和项目管理。这里需要指出的是基于构件的软件开发过程和传统 的软件开发过程有着本质的区别,目前探讨适用于软件复用的软件过程已经成为 研究的热点。 ( 7 ) c a s e( c o m p u t e ra i d e ds o f t w a r ee n g i n e e r i n g ) 技术 c a s e 是指计算机辅助软件工程。它是一套方法和工具,可使系统根据开发商 规定的应用规则,由计算机自动生成合适的计算机程序。c a s e 工具分成“高级 c a s e 和“低级 c a s e 。高级c a s e 工具用来绘制企业模型以及规定应用要求, 低级c a s e 工具用来生成实际的程序代码。c a s e 工具和技术可以帮助软件开发人 员控制软件开发中的复杂性,有利于提高软件开发的效率和质量。其重要的技术 包括应用生成程序、前端开发过程面向图形的自动化、配置和管理以及寿命周期 分析工具。c a s e 技术中与软件复用相关的主要研究内容包括:在面向复用的软件 开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中,可 复用构件的检索、提取和组装、可复用构件的度量等方面。 ( 8 ) 非技术性因素 非技术性因素涉及的范围很广,它包括组织机构和管理方法如何适应复用的 需求、复用前期投入的经济考虑标准化问题、创造性和工程化的关系以及知识产 权问题等多方面。在软件复用的实现过程中不应忽视这些非技术因素的作用,把 握好这些因素同样对软件复用的实现具有重要意义。 第3 章构件技术 第3 章构件技术 3 1 构件的定义和分类 构件是一个非平凡的、几乎独立的以及可替换的系统组成部分,它在一个良 好定义的体系结构语境下完成一定功能,统一于且提供了一组接口的物理实现。 构件对外发生作用或构件间的交互都是通过规范定义的接口进行,构件使用者只 需要知道构件的接口,而不关心其内部实现。当前,构件的概念已不再局限于源 代码构件,而是延伸到需求、系统和软件的需求规约、系统和软件的构架、文档、 测试计划、测试案例和数据以及其他对开发活动有用的信息。总的来说构件应该 具备以下几个特征: ( 1 ) 自治性:构件必须能够独立分布和独立运行,它是内含识别其属性、存取 方法和事件等信息的黑盒子; ( 2 ) 粗粒度:构件应该代表一定商业服务功能,是企业级应用系统的一个有效 部件; ( 3 ) 集成特征:在一定的软件体系结构( 或环境、或语境) 下,可以将异构的 软件构件无缝地结合起来,集成包括动态梆定和静态组装; ( 4 ) 接口连接机制:以契约性接口和外部环境相连接,接口是对构件外部特征 的唯一抽象; ( 5 ) 可定制性:不同环境可以通过接口对构件内部产生不同的配置【1 5 】。 根据不同的角度,可以对构件进行多种形式的划分: ( 1 ) 按照自顶向下设计、自底向上组装的思想可将构件分为:系统构件、组织 构件、分子构件以及原子构件。这四种类型的构件的粒度逐步递减,粒度较大的 构件由粒度较小的构件组成。系统构件是指系统总体框架构件;组织构件是嵌入 到系统构件中的子构件,一个或几个组织构件可完成一个特定的任务;分子构件 和原子构件是构成系统构件、组织构件的子构件,其中分子构件又可复用原于构 件。 ( 2 ) 根据构件的复用方式,分为黑盒构件和白盒构件。黑盒构件可以即插即, 而百盒构件使用时需要根据需求进行修改。 ( 3 ) 根据使用范围,分为通用构件和专用构件。 ( 4 ) 根据构件粒度大小,分为大、中、小型构件。 ( 5 ) 根据构件被复用时的状态,分为动态构件和静态构件。例如o l e 和d l l 属于动态构件,原代码则属于静态构件。 ( 6 ) 根据构件的功能用途,分为系统构件、支撑构件和领域构件。系统构件运 行于整个构件集成环境和运行环境中;支撑构件出现在构件集成环境和构件库管 8 山东轻t 业学院硕士学位论文 理;领域构件则是专门为特定领域而开发的构件。 ( 7 ) 根据构件的不同来源,可将构件分为自开发构件和第三方构件( 从第三方 购买的构件) 。 3 2 构件模型与构件描述 构件模型是关于开发可重用软件构件和构件之间相互通信的一组标准的描 述,它是为开发者定义软件构件而建立的体系结构a p i 集,使开发者可通过软件 构件的动态组合来建立应用系统。构件模型由构件与容器这两种主要成份构成。 构件是具有可重用特性的基本软件部件,而容器则用于存放和安排构件,以实现 构件间的交互,容器也可以作为另一个容器的构件使用。当前,在软件市场上有 三种具有代表性的构件模型。它们分别是c o m ( c o m p o n e n to b j e c tm o d e l ,对象 构件模型) 、j a v a b e a n 和c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e , 公共对象请求代理体系结构) i l6 。如今,s u n 公司又在j a v a b e a n 的基础上提出 了另一种构件模型:e j b ( e n t e r p r i s ej a v a b e a n ) 。 c o m 是由m i c r o s o f t 公司推出的构件接口标准,它是一种二进制标准的构件技 术。正是通过这种统一的二进制代码结构,不同语言之间的互操作和代码的共享 才能得以实现。c o m 在接口与实现之间建立了一种弱的、松散的耦合,可以通过 接口找到其相应的实现,并且能够在不影响用户使用的f j 提下将编译好的二进制 代码中的一个接口的实现转换成其他一种实现。在c o m 模型中,通过d l l 机制实 现对构件生命周期的管理。基于c o m 标准实现的软件可以被所有的语言环境所共 享,因此它c o m 可以作为各种高级语言的互操作的中间桥梁。 e j b 是s u n 公司推出的又一构件模型,它用于开发和部署多层结构的、分布的、 面向对象的、跨平台的j a v a j 立用系统构件体系结构。e j b 使用容器集成服务,用以 支持其使用声明属性和部署描述符的方式来请求服务。e j b 是解决平台依赖性和语 言依赖性的软件构件技术,对进一步提高软件复用性是至关重要的。 c o r b a 是目前较为成熟的构件模型,它主要是为了解决分布式、异质的软件 和硬件环境下对象之间的互操作问题而提出的。在解决二进制代码之间的互操作 问题上,c o r b a 与c o m 技术不同,c o r b a 提供了一种中间的代理机制。服务对 象实现后,就将其接口登记在c o r b a 的代理中,客户对象按照代理中的接口描 述访问服务对象。该机制还可提供客户与服务器问的动态匹配以及一个服务器为 多个客户服务等功能。此外,c o r b a 还采用标准的接口定义语言( i d l ) 将接口 与构件的实现相分离,以实现在异构平台上开发出灵活的分布式应用程序。目前, c o r b a 已提供了i d l 至i j c 、c + + 、j a v a 、c o b o l 等语言的映射机制,它可以跨越 不同的网络、不同的机器和不同的操作系统,实现分布对象之间的互操作。 对构件的描述可以采用系统化和标准化的用语,也可以使用自然语。对于构 9 第3 章构件技术 件的描述一般由两部分组成:( 1 ) 构件的类型信息说明,包括构件的功能类型、目 标对象、源对象、中间对象、系统类型、活动类型和应用类型等。( 2 ) 构件的实现 说明及配置特征,包括接口信息及使用方法说明、核心算法说明、实现语言、开 发方法、运行环境、构件版本号、制作时间、关联构件和参考构件等。概括来讲 构件可由以下四元组的形式来表示: 构件= ( 构件标示符,构件说明,构件体,接口) 3 3 构件库系统 3 3 1 构件库的基本概念和功能 构件库是用于存储构件的工具,它是支持软件复用的基础设施。构件库除了 具有普通数据库所具有的存储和管理功能之外,还提供对软件构件的描述、分类、 存储和检索等功能1 7 】【1 8 】。构件库的本质问题是如何建立构件表示和分类模型,从 而用精确的方法表示构件的含义,使c b s d 过程中构件能够得到正确的理解和复 用,即在构件的创建者和使用者之间架起一座“理解构件含义 的桥梁。 构件库中所存储的构件信息包括【1 9 】【2 0 】:( 1 ) 构件的语义描述( d e s c r i p t i o n ) : 描述构件功能和用途,精确定义构件语义;( 2 ) 构件的分类( c l a s s i f i c a t i o n ) :对构 件相同特征的聚类;( 3 ) 构件的形态( f o r m ) :即构件的类型,广义构件包括类、 类树、框架、模块等;( 4 ) 构件的技术环境:包括构件的开发工具、配置方法和部 署环境等内容;( 5 ) 构件的形式:包括源代码、二进制代码等;( 6 ) 构件的状态( s t a t u s ) : 包括构件的版本、历史等相关属性。此外,构件库管理系统必须能够提供如下具 体操作:构件的添加:主要是构件的测试和认证方法,只有合格的构件才能添加 到构件库之中;构件的检索:即与构件的需求相匹配,与一般的数据库不同,构 件的检索通常不能得到完全满意的构件,对与需求相关或相近的构件,需要通过 适配和修改使之满足需求;( 由于构件的粒度不同,需求问题分解和构件合成是 两种配合检索的方法) 以及构件的修改、删除、统计等。 一般来说,构件从入库到被用户复用需要经过如图3 1 所示的流程。构件开发 方将已开发好的构件经过描述、分类和验证等步骤存入构件库,构件库维护工具 对构件库中的构件实施修改、删除、插入、统计等日常维护操作。构件使用方通 过对构件库的检索,找到与需求相关或相近的构件集合并对这些构件按照目标程 序需求进行适配和修改,并将对构件的评估信息反馈给构件库,将其作为对构件 进行维护的依据。经过系统生成器的构件集合进入到应用程序集成系统,用以被 组装成最终的目标系统。 1 0 山东轻工业学院硕】二学位论文 图3 1 构件管理流程 目前,构件库的形式有许多种,主要包括: ( 1 ) 子程序库和类库:高级程序语言编译器的开发商提供给用户的开发工具中 般都带有若干子程序库。例如c 语言的库函数。类库是面向对象程序设计语言中 不可缺少的组成部分,例如j a v a 类库; ( 2 ) 领域专用构件库:用于存储和管理某一特定领域内的构件库; ( 3 ) 软件资产库:用于存储广义范围内的软件构件,包括软件开发过程中分析、 设计、编码、测试阶段内一切具有复用价值的软件成分。这种构件库是近十多年 来构件库领域内的研究重点。 3 3 2 构件库的存储与检索 可复用构件的存储和检索方法是软件复用研究的一个重点,它们决定着构件 的查全率、查准率等复用效率。具体名词定义如下:其中,i x i 表示集合中的元素 个数 查全率= 查准率= 检索到的相关构件集合j 检索到的相关构件集合1 式( 3 1 ) 式( 3 2 ) 对于构件的分类和表示方法决定着构件的存储方式和检索机制。目前,对于 构件的分类方法有多种,主要包括:枚举分类、关键字分类、刻面分类和超文本 分类等方法f 2 i 】【2 2 】。针对以上分类方法,目前研究人员已提出了很多相应的检索方 法。从构件表示出发,可以将现有方法分为:人工智能方法、超文本方法、信息 科学方法三类。其中,信息科学方法是在实际运用中较为成功的一类。在信息科 第3 章构件技术 学方法中,以枚举、刻面、关键词、属性值和正文检索最为常见,又以关键字分 类和刻面分类两种应用居多。 关键词分类:关键词分类方法应用较为普遍,构件库中的构件以一组与之相 关的关键词编目,软件复用者根据构件库系统提供的关键词对构件库进行检索以 找到满足需求的构件。 刻面分类:刻面是指能从特定的视角刻画或反映构件本质特性的方面,它使 得用户可以从多个不同的角度去理解和使用构件。每个刻面有一组术语,将这些 术语置于一定的语境中形成结构化的术语空间。在检索时复用者通过选择刻面的 术语,可以明确地限定构件的范畴,以防有遗漏的构件。 由于自动化程度和检索效率要求的不断提高,这几种常用的构件检索方法都 存在局限性,因此,对于它们的研究仍有较大的空间。在本文的第5 章中会提出一 种将基于层次结构的构件分类方法和基于关键词、刻面分类方法相结合的构件检 索方法。 山东轻工业学院硕上学位论文 第4 章j 2 e e 框架技术 4 1j 2 e e 框架概述 j 2 e e 并非一种产品,它是s u n 公司推出的一套关于开发分布式企业级应用 的规范,它包括一个多层次的分布式应用模型和一系列开发技术规范和指南。这 些规范和指南主要涉及组件、容器以及h t t p 请求处理和事务、消息管理等多种 基础性服务。换言之,j 2 e e 是一种用来简化企业解决方案的开发、部署和管理相 关复杂问题的体系架构。这一体系架构为开发i n t e r n e t 和事务型应用程序提供了 通用平台,开发人员可以在此平台上创建灵活且可重用的组件和应用程序。因而 j 2 e e 全然不同于传统应用开发的技术架构,它所包含的各类组件、服务架构及技 术层次可以使开发人员只需专注于各种应用系统的业务逻辑与架构设计,而不必 考虑底层繁琐的应用与服务,从而使应用系统的开发和部署效率大幅提升。 j 2 e e 框架中包含的主要组件、a p i ( a p p l i c a t i o np r o g r a m m i n gi m e r f a c e ,应用 服务程序接口) 和服务有: ( 1 ) s e r v l e t ,它j a v a 平台上的c g i 技术,运行在服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆安全员培训心得课件
- 民法总论梁慧星课件
- 厨师考试题简答题及答案
- 农业新质生产力的发展机遇
- 保洁年度工作方案
- 保险业新质生产力报告
- 民族课件教学课件
- 企业打造新质生产力的路径
- 银行新质生产力监督路径
- 民族的大团结课件
- 《工程勘察设计收费标准》(2002年修订本)
- 围手术期疼痛管理专家共识
- 电视专题节目授权协议
- 麦尔兹窑工艺培训
- 钻探合同范本
- 福建省漳州市2025届高三上学期第一次质量检测化学试卷+
- 垃圾渗滤液处理站运维及渗滤液处理投标方案(技术方案)
- 高职建筑设计专业《建筑构造与识图》说课课件
- 人教版九年级物理上册《第十三章内能》单元检测卷(带答案解析)
- 中小学五项管理-作业-睡眠-手机-读物-体质五项管理-课件-(26张课件)
- 2024年苏州历史文化名城建设集团有限公司招聘笔试冲刺题(带答案解析)
评论
0/150
提交评论