(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf_第1页
(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf_第2页
(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf_第3页
(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf_第4页
(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机科学与技术专业论文)人工智能算法在构件检索中的应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性声明 i i i it li ii itt ii i t ii iiil 18 8 0 0 6 5 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名: 圊耘 j 、 、 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务o ( 保密的论文在解密后应遵守此规定) 研究生( 签名) :凰薹导师( 签名) ;粕期刚l 摘要 随着i n t e m e t 时代的到来,软件业面临着一系列的变化。软件越来越复杂, 时间要求越来越短,软件的代码从几十年前的几百行到现在的上百万行。些变化 使得传统的软件开发方法不能满足现在商业界对于软件的需求,软件业面临着越 来越大的压力。基于构件的软件开发是解决软件危机的有效途径。它是在一些构 件模型的基础上,根据需求选择构件库中的一个或多个软件构件,然后把这些构 件组装起来,高效率、高质量地构造应用软件系统的过程。随着网络技术的不断 发展,构件库中的构件也越来越多,一般情况下构件库中满足用户需求的构件不 止一个,如果让用户自己手动的来进行选择,这无疑提高了对用户的要求,而且 不利于构件的智能化组装、增加了基于构件软件开发的成本。所以如何从这多个 候选构件中快速、有效的选择出最优或近似最优的构件,从而提高构件组装的成 功率是一个关键的问题。 本文主要分为三大部分。第一部分阐述了构件的一些基本概念、现阶段比较 流行的三种构件模型c o m 、e j b 、c o r b a 以及软件的质量度量模型,然后介绍 了构件库与数据库系统的区别和联系及其主要功能。第二部分主要是根据不同的 构件描述形式,介绍了现在常用的四种构件检索方法。第三部分阐述了两种人工 智能算法( 遗传算法和禁忌搜索算法) 在构件检索中的应用。首先对两种智能算 法在构件检索中的可行性进行了分析,然后分别介绍了基于遗传算法的构件检索 方法和基于禁忌搜索算法的构件检索方法,对这两种构件检索方法的一些关键设 计和具体的算法过程进行了详细的描述,并在此基础上进行了实验仿真,对仿真 的结果进行了对比和分析,证明了这两种方法的有效性。 本文研究的目的和意义在于对于构件数量非常庞大的构件库,根据用户的需 求所检索出的构件较多时,利用人工智能算法找出一个最优的构件组合反馈给用 户,减少了下一步组装过程中人工参与否认程度,提高构件的组装效率,加快构 件的智能化组装的发展。 关键字:软件复用;构件检索;遗传算法;禁忌搜索算法 a b s t r a c t w i t ht h ec o m i n go ft h ei n t e r a c ta g e ,t h es o f t w a r ei n d u s t r yi sf a c i n gas e r i e so f c h a n g e s i n c r e a s i n g l yc o m p l e x ,s h o r t e rt i m er e q u i r e m e n t sa n dt h el e n g t ho fs o f t w a r e c o d ec h a n g ef r o maf e wh u n d r e dl i n e saf e wd e c a d e sa g ot om i l l i o nl i n e sn o w t h e s e c h a n g e sm a k e t h et r a d i t i o n a ls o f t w a r ed e v e l o p m e n tm e t h o d sc a nn o tm e e tt h ec u r r e n t d e m a n do ft h es o f t w a r eb u s i n e s s s o f t w a r ei n d u s t r yi st a k i n gm o r ea n dm o r ep r e s s u r e c o m p o n e n t - b a s e ds o f t w a r ed e v e l o p m e n ti s a ne f f e c t i v ew a yt op a s st h es o f t w a r e c r i s i s ,o nt h eb a s i so fs o m ec o m p o n e n tm o d e l ;i ts e l e c t so n eo rm o r es o f t w a r e c o m p o n e n t sf r o mc o m p o n e n tl i b r a r ya c c o r d i n gt ot h ed e m a n d , a n dt h e na s s e m b l i n g t h e s ec o m p o n e n t st o g e t h e rt of o r mas y s t e m i ti sah i 【g h l ye f f e c t i v ea n dq u a l i t y p r o c e d u r ef o rc o n s t r u c t i n ga p p l i c a t i o ns o f t w a r es y s t e m w i t ht h ed e v e l o p m e n to f n e t w o r kt e c h n o l o g y , t h en u m b e ro fc o m p o n e n ti nc o m p o n e n tl i b r a r yi s b i g g e ra n d b i g g e r g e n e r a l l y , t h e r ea r em o r et h a no n ec o m p o n e n tc a nm e e tu s e r sd e m a n d , a n di f w el e tu s e r sm a k ec h o i c em a n u a l l y , i tw i l lu n d o u b t e d l yi n c r e a s et h er e q u i r e m e n tf o r u s e r s ,a n da l s o ,i ti s n tc o n d u c i v et ot h ei n t e l l i g e n tc o m p o n e n ta s s e m b l y , a n dn e e d l e s s t os a yi tw i l li n c r e a s et h ec o s to fc o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t s oi ti sa k e yi s s u eo nh o wt os e l e c ta l lo p t i m a lo ra p p r o x i m a t eo p t i m a lc o m p o n e n tf r o mt h e c a n d i d a t eq u i c k l ya n de f f e c t i v e l y , s oa st oi m p r o v et h es u c a :e s sr a t i oo ft h ec o m p o n e n t a s s e m b l y t h et h e s i sh a st h r e ep a r t s t h ef i r s t p a r td e s c r i b e ss o m eb a s i cc o n c e p t so f c o m p o n e n t 、t h et h r e ep o p u l a rc o m p o n e n tm o d e lc o m 、e j ba n dc o r b aa n d s o f t w a r eq u a l i t ym e t r i c sm o d e l a n dt h e ni ti n t r o d u c e st h ed i f f e r e n c ea n dc o n t a c t b e t w e e nc o m p o n e n tl i b r a r ya n dd a t a b a s es y s t e ma n dt h e i rm a i nf u n c t i o n s t h es e c o n d p a r t i n t r o d u c e sf o u rc o m p o n e n tr e t r i e v a lm e t h o d s a c c o r d i n g t ot h ed i f f e r e n t c o m p o n e n td e s c r i p t i o nf o r m t h et h i r dp a r tp r o p o s e st w oc o m p o n e n tr e t r i e v a lm e t h o d u s i n g t w oa r t i f i c i a l i n t e l l i g e n c ea l g o r i t h m s :g e n e t i ca l g o r i t h m a n dt a b us e a r c h a l g o r i t h m t h eb e g i n n i n go ft h i sp a r ta n a l y z e st h ef e a s i b i l i t yo ft w oa l g o r i t h m si n c o m p o n e n tr e t r i e v a lp r o b l e m ,a n dt h e n i t r e s p e c t i v e l yd e s c r i b e st h ec o m p o n e n t r e t r i e v a lm e t h o db a s e do ng e n e t i ca l g o r i t h ma n dt h et a b us e a r c ha l g o r i t h m i nt h ee n d , i t c o m p a r ea n da n a l y z et h es i m u l a t i o nr e s u l t s ,t h et w om e t h o d sa r ep r o v e nt ob e e f f e c t i v e t h ep u r p o s ea n dm e a n i n go ft h i st h e s i si st h a ti nt h ec o n d i t i o no ft h en u m b e ro f c o m p o n e n ti nt h ec o m p o n e n tl i b r a r yi sh u g e ,a n da tt h es a m et i m et h e r ea r em a n y c o m p o n e n t sc a nm e e tu s e r sd e m a n d ,w ec a n u s ea r t i f i c i a li n t e l l i g e n c ea l g o r i t h m st o f i n da no p t i m a lo ra p p r o x i m a t eo p t i m a lc o m p o n e n ta n df e e d b a c kt ot h eu s e li tc a n r e d u c et h ed e g r e eo fu s e r sp a r t i c i p a t i o n ,i m p r o v ee f f i c i e n c yo fc o m p o n e n ta s s e m b l y a n da c c e l e r a t et h ed e v e l o p m e n to fi n t e l l i g e n tc o m p o n e n ta s s e m b l y k e y w o r d s :s o f t w a r er e u s e ;c o m p o n e n tr e t r i e v a l ;g e n e t i ca l g o r i t h m ; t a b us e a r c ha l g o r i t h m m 目录 摘要i a b s t r a c t i i 第1 章绪论1 1 1 研究背景和意义1 1 2 国内外研究现状2 1 3 本文主要研究工作3 1 4 本文组织结构。4 第2 章构件及其相关概念5 2 1 构件的基本定义5 2 2 构件模型6 2 2 1 c o m 构件介绍6 2 2 2e j b 构件介绍7 2 2 3c o r b a 构件介绍9 2 3 构件库o 1 0 2 4 软件的质量度量模型1 2 2 3 1m c c a l l 软件质量度量模型1 3 2 3 2i s 0 9 1 2 6 软件质量度量模型1 3 2 5 本章小结1 5 第3 章构件的检索方法1 6 3 1 基于规约描述的构件检索。1 6 3 2 基于人工智能的构件检索方法1 7 3 3 基于信息科学的构件检索方法1 8 3 4 基于超文本的构件检索技术1 9 3 5 本章小结2 0 第4 章基于遗传算法的构件检索2 1 4 1 遗传算法在构件检索中的可行性分析2 1 4 2 遗传算法简介2 2 4 2 1 遗传算法的基本流程2 2 4 2 2 编码2 4 4 2 3 选择操作2 7 4 2 4 交叉操作2 9 4 2 5 变异操作3 0 4 3 遗传算法在构件检索中的应用3 1 4 3 1 构件描述3 1 4 3 2 编码3 2 4 3 3 产生初始种群。3 3 4 3 4 适应度函数3 4 4 3 5 遗传算子3 6 4 3 6 停止准则3 7 4 3 7 算法描述3 7 4 3 8 仿真分析3 8 4 5 本章小结3 9 第5 章基于禁忌搜索算法的构件检索4 0 5 1 禁忌算法简介4 0 5 1 1 禁忌搜索算法的基本流程4 0 5 1 2 禁忌搜索算法中的设计要点4 2 5 2 禁忌搜索算法在构件检索中的应用4 4 5 2 1 邻域结构设计4 4 5 2 2 候选解集的选择4 5 5 2 3 全禁忌处理方法4 5 5 2 4 算法描述。4 5 5 2 5 仿真分析。4 6 5 3 本章小结4 9 第6 章总结与展望。:5 0 6 1 全文总结5 0 6 2 全文展望5 1 致谢5 2 参考文献。5 3 攻读硕士学位期间发表学术论文5 5 武汉理工大学硕士学位论文 1 1 研究背景和意义 第1 章绪论 随着i n t e r n e t 时代的到来,软件业面临着一系列的变化。软件变得越来越复 杂,对时间的要求也越来越高,同时软件代码长度也由过去的几百行发展到现 在的几百万行。尽管各种高级语言的描述能力在不断的增强,但是其只有几十 种变化的句子,所以代码的长度只能不断的变长,软件中的各种变数也变得越 来越多,在完成了系统的开发之后很难对系统进行测试,同时用c m m ( c a p a b i l i t y m a t u r i t ym o d e lf o rs o f t w a r e ,软件能力成熟度模型) 这种管理模式更无法解决这个 变数的问题。这些变化使得传统的软件开发方法不能满足现在商业界对于软件 的需求,软件业面临着越来越大的压力。 基于构件的软件开发( c o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t ,c b s d ) i l j 是解决这些问题的一种有效的方法。它是在一些构件模型的基础上,根据需求 选择构件库中的一个或多个软件构件,然后把这些构件组装起来,高效率、高 质量地构造应用软件系统的过程。随着以分布式对象为基础的构件实现技术日 趋成熟,现在c b s d 已经是对软件复用理论进行实践的一种主要形式,并被评 价是软件工程最具发展潜力的方向之一。 一旦将软件开发转换成由构件来进行开发,软件就不是由几百万行的代码 构成了,而是由若干个构件组成。这种由代码级向构件级的转变减少了软件的 变化因素,增强了对软件的控制和管理能力。构件的内涵也能够不断的进行扩 展,类似于集成电路虽然其内部的电路在不断的增加,变得越来越复杂,但是 从外部来看依旧是一个集成模块。因此,一个软件无论有多复杂,都可以看成 是由一些构件构成的。所以,构件的范畴也可以不断扩大,整个系统的复杂度 由以前不能控制的代码指数级增长变成了可控制【2 】。而且,现有的很多系统的 扩展也适合采用构件的形式,比如,c r m ( c u s t o m e rr e l a t i o n s h i pm a n a g e m e n t , 客户关系管理) 要和现在的业务系统进行融合,必须首先把现在所存在的一些 模块打碎才可以融合,所以以后的企业管理软件可能都是一些较小的构件,以 便于与日常的业务系统进行融合。这样系统内部与系统之间同时使用面向构件 的系统来实现是最有效的方法之一。 c b s d 的过程包括构件的开发、检索、组装、部署四个步骤。最终可体现为 武汉理工大学硕士学位论文 复用构件通过集成机制组装成一个完整的系统。要对构件进行组装,首先要从 构件库中找到满足需求的构件集,这是一个关键的环节。如果构件库中的构 件比较少,则可以通过手工的方式来一个一个的进行选择,但是由于计算机 武汉理工大学硕士学位论文 可以用来帮助j a v a 开发人员学习j a v aa p i 库,也可以被用来支持构件的复用它由 三个a g e n t 组成:监听者、获得者和呈现者,通过三者的相互协作实现构件的自动检索。 在国内构件的检索技术也发展的比较快,比如北京大学开发研制的青鸟构件模型。 它是从面向对象的技术出发,并对其进行扩展,构造出的一个适应构件技术要求的可使 用而且比较成熟的软件构件模型。该模型使用青鸟构件描述语言j b c d l ( j a d eb i r d c o m p o n e n td e s c r i b el a n g u a g e ) 来描述构件接口,对构件进行了形式化的描述,并建立了 青鸟构件库数据模型和构件检索工具,支持关键字检索、主题检索、属性检索等。 构件检索是一个复杂的过程,由于构件库中构件数量不断增加,构件的检索不仅仅 要求能够高效的检索出满足用户需求的相关构件集,还必须准确的在所检索到的构件集 中快速的选择一个最满足用户需求的构件,这是一个复杂的决策过程。 1 3 本文主要研究工作 本文主要讨论的是构件的检索问题,由于构件中构件数量不断增加,一般 情况下构件库中满足用户需求的构件不止一个,如果让用户自己手动的来进行 选择,这无疑提高了对用户的要求,而且不利于构件的智能化组装、增加了基 于构件软件开发的成本。所以如何从这多个候选构件中快速、有效的选择出最 优或近似最优的构件,从而提高构件组装的成功率是一个重要的问题。这里的 最优主要是通过构件的质量来进行评判的,而构件的质量主要是根据一些属性 以及权重来进行定量的计算。 本文提出使用人工智能算法中的遗传算法和禁忌搜索算法来快速的找到一 组满足用户需求的最优构件组合,主要分为两步:第一步是根据用户的需求使 用基于接口匹配的构件检索方法从构件库中找出所有的候选构件,排除一些不 相关的构件,减少下一步检索的范围,提高检索的准确率。第二步是在上一步 所找的候选构件中使用遗传算法和禁忌搜索算法再一次的进行检索,准确的找 到一组最优的构件。 本文主要研究工作如下: 1 介绍了软件复用技术的基本理论和构件技术。 2 介绍了现有的一些构件检索方法。 3 针对构件检索的特点,本文提出了使用两种智能算法一遗传算法和禁 忌搜索算法来提高构件的检索的效率。 4 针对上面提出的两种构件检索方法,进行了模拟仿真,验证其有效性。 3 武汉理工大学硕士学位论文 1 4 本文组织结构 本文讨论了共分为六章: 第1 章绪论,主要介绍了本课题的研究背景和意义以及国内外关于构件检 索的研究现状,并指明了本文的主要研究工作。 第2 章主要介绍了构件的一些基本知识,首先描述了各个研究学者对构件 的定义,并根据这些定义总结了构件的一些主要的特点,然后对构件的模型、 构件库的组织进行了阐述,同时还介绍了一些软件质量度量模型。 第3 章介绍的是构件的检索技术。主要根据不同的分类方法,分别阐述了 基于规约描述的构件检索、基于人工智能的构件检索、基于信息科学的构件检 索和基于超文本的构件检索方法。 第4 章将人工智能算法中的遗传算法应用到了构件检索过程中,这是本文 讨论的重点内容之一。首先介绍了基本遗传的算法的流程和一些操作,然后分 析了构件检索问题,详细了介绍了构件检索过程中的编码、遗传操作、适应度 函数的选取以及算法的详细实现过程。在此基础上对该算法进行了模拟仿真, 将其检索的结果与其他的方法所得到的结果进行了对比,证明了其有效性。 第5 章将人工智能算法中的禁忌搜索算法应用到构件检索过程中这是本文 讨论的重点内容之一首先介绍了禁忌搜索算法的基本思想,然后根据构件检 索问题,详细的分析了基于禁忌搜索算法的构件搜索算法,并对该算法进行仿 真实验,验证了其高效性。 第6 章:总结和展望。本章对全文做了总结并提出了未来研究的方向和计 划。 4 武汉理工大学硕士学位论文 第2 章构件及其相关概念 2 1 构件的基本定义 c b s d 是一种类似于“零部件组装”集成组装式的软件生产方式。它把生产工 业的零件、生产线和装配运行的概念运用在软件产业中,完完全全打破了传统 的手工作坊式的软件开发模式。开发者可以通过组装已有的构件来开发新的应 用系统,从而达到软件复用的目的。与传统的软件开发模式一样,c b s d 的整 个过程也是从需求分析开始,需要开发团队使用需求获取技术建立系统的 需求规约。然而在完成需求分析之后,并不是马上开始进行详细设计,而 是确定哪些部分可由构件组装而成。这时开发人员所面对的问题是:“是否 存在满足某种需求的c o t s ( c o m m e r c i a l o f f - t h es h e l l ,商用现成品) 构件竹; “是否存在满足某种需求的内部开发的可复用构件”,“这些可用构件的接口 与体系结构的设计是否匹配”等。软件构件技术是软件复用的关键因素,也是 软件复用技术研究的重点。 构件( c o m p o n e n t ) 是可复用的软件组成部分,可以被用来构造其它的软件。 对于构件的定义,一些研究者从不同的角度和层次给出了对构件的看法。 在1 9 9 6 年的面向对象程序设计欧洲会议上,面向构件程序设计工作组提出 “软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构 件可以被独立部署并且由第三方任意地组装”。 著名的b r o w n 和w a l l n a u 把描述构件【1 1 】为“一个非平凡的、几乎独立的、可 替换的系统组成部分,它在定义完善的体系结构环境中实现某一清晰的功能 d e s m o n dd s o u z a 和a l a nw i l l s 对构彳牛【1 1 】的定义“软件构件是一个内聚的 软件实现包,能够被独立地开发并发布,对于它所提供的服务具有清楚而良好 说明的接口,对于该构件需要的由其他构件提供的服务也具有清楚而良好的接 口,并且能够与其他构件进行组成,可能需要定制它们的属性但不修改构件本 身”。 从上面的定义可以看出,构件主要有如下几个特点: ( 1 ) 复用:它是软件构件最基本的特征,主要有可复用性和易复用性两方面 的含义。不可以被复用的构件没有任何存在的意义:同时不容易被复用的构件 也没有其应用的需求。 5 武汉理工大学硕士学位论文 ( 2 ) 封装:与面向对象对象类似,构件的封装可以保证其不向外暴露任何设 计和实现的细节,只通过接口和外界交换信息,构件的内部是紧耦合的而接口 之间是松耦合的。 ( 3 ) 组装:构件通过组装能形成一个更大的实体,组装是实施复用的手段。 ( 定制:构件在组装的过程能根据组装环境的不同做出相应的调整,完成 与其他构件的融合。 武汉理工大学硕士学位论文 的一些核心服务的实现) ,系统注册表、类工厂和c o m 服务器等。c o m 构件封 装了其内部的属性和方法,只有接口对外可见,c o m 构件之间通过接口来进行 通信和交互。目前构件库市场上存在许多可以复用的c o m 构件,但其中大部分 构件大都只能在w i n d o w s 环境下使用,支持其他操作系统如u n i x 、m a c x o s 等 的可复用构件还不是很多,需要进一步的发展。 通常一个c o m 构件由多个接口构成,接口又由多个函数构成。这些接口进 行编译之后的二进制代码结构必须符合一个与语言无关的的内存块结构,所以 c o r b a 是一个二进制标准。图2 1 描述的是一个接口的内存模块【坷,它有3 个 函数f u n l 、f u n 2 和f u n 3 ,p t r 是指向接口的指针,而啪指针指向接口中的函 数指针数组v t a b l e ,v t a b l e 数组中的指针指向接口中各个函数的具体实现。无论 使用什么语言编写的构件,只要编译之后所生成的目标代码结构符合图2 - 1 所示 的二进制结构形式,则认为其是这个接口的实现。一般的程序设计语言都有将 相应的语法转换成上面的内存结构的c o m 支持工具,不需要程序员来手动的进 行转换。 构件 v t a b l e & f u n l v t b 指针 夕 j 1 _ 图2 - 1c o m 构件的二进制结构 由于c o m 没有分布式特性,d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ,分 布式对象构件模型) 对c o m 进行了扩展,在网络协议的基础上使用远程过程调 用取代本地进程之间的通信使其能够支持在局域网、广域网甚至i n t e m e t 上不同 计算机的对象之间的通讯,实现分布式特征。 2 2 2 耵b 构件介绍 c o m 技术是一种不依赖于语言却依赖于平台的软件构件技术,为了解决构 件的平台依赖性,s u n 公司提出了e j b 构件技术标准。它是基于j a v a 的面向对 象的组件标准,包含一定的业务规则,运行在服务器端。一个典型的e j b 结构 由如下几个部分组成【1 7 1 :e j bs e r v e r 凹b 服务器) 、日bc o n t a i n e r ( e j b 容器) 、 以及运行在容器中的e n t e r p r i s ej a v ab e a n 、e j b 客户、辅助系统如j n d i ( j a v a n a m i n ga n dd k c c t o r ) ri n t e r f a c e ,j a v a 命名和目录接口) 、j t s ( j a v at r a n s a c t i o n 7 武汉理工大学硕士学位论文 m o n i t o r , j a v a 组件事务监视器) 、以及安全等一系列服务。如图2 - 2 所示: 图2 2e j b 构件的系统构架 e j b 可以分为两大类:e n t i t yb e a n 和s e s s i o nb e a n 。其中e n t i t yb e a n 主要功 能是用对象的形式来展现数据库中的数据表记录,对数据表的存取工作,例如 添加记录、修改记录和删除记录等都是使用对象所定义的b u s i n e s s 函数来完成。 然而对于客户端来说,他们只要通过e n t i t yb e a n 的b u s i n e s s 函数来执行这些表 格记录的存取操作,而不管用了什么样的s q l 语句,这一切对用户都是透明的。 客户端必须间接通过远端对象的存取接口一e m o t ci n t e r f a c e 来存取e n t i t y b e a n ;而s e s s i o nb e a n 的主要功能是代替客户端执行复杂的逻辑程序,减轻客户 端的负担。s e s s i o nb e a n 可以将复杂的业务逻辑包装起来放在服务器端执行,减 轻客户端程序的复杂度;最重要的是s e s s i o nb e a n 可以重复的被客户端程序调 8 武汉理工大学硕士学位论文 用,不管是重用性、弹性还是可移植性都较高,且e j b 服务器能够提供功能强 大的t r a n s a c t i o n 服务和一致性存取的控制管理。 2 2 3c o r b a 构件介绍 c o r b a 是由o m g ( o b j e c tm a n a g e m e n tg r o u p ,对象管理组织) 在1 9 9 0 年提出 的一种基于中间件的构件技术标准,其主要目的是为了解决分布式、异构的软 件和硬件环境下对象之间的互操作问题。面向对象技术与分布式计算的结合以 及代理机制的中间件技术是c o r b a 的有两个重要的特点,下面分别介绍这两 点。 面向对象与分布式技术的结合。c o r b a 是为了解决分布式处理环境中,硬 件和软件系统的互连而提出的一种分布式计算模型。使用分布式计算可以实现 资源共享、实现网络中计算节点负载均衡。传统的分布式计算模型如c l i e n t s e r v o r 关系存在灵活性、远程服务层次、用户使用透明度等方面的问题,这种计算模 型还不够成熟。面向对象中的对象拥有其内部状态外部接口,是一个只能够在 单机上运行的独立的软件实体。c o r b a 则将这两者进行了结合,c o r b a 把分 布式计算模型中的节点描述模块当成对象,它能够自由地分布在计算机网络上, 可以是“客户”或“服务器”。它完全把位置信息、计算机的软件与硬件环境屏蔽掉 了,使得对象之间可以透明地进行访问。所以c o r b a 建立了一个统一和位置透 明的分布式软件开发平台。 代理机制的中间件技术。对象请求中介( o b j e c tr e q u e s tb r o k e r , o r b ) 是 c o r b a 的核心,它提供对象定位、对象激活和对象通讯的透明机制。当服 务对象实现之后,就在o r b 中登记其接口。当客户发出了要求服务的请求之 后,o r b 再把这个请求发送给对象,具体的服务则由对象来提供,当对象 完成了这个服务后,把输出的结果返回给o r b ,最后由o r b 输出结果反馈 给客户。对客户来说这一切都完全是透明的,客户只同o r b 打交道,根本 不知道对象在网络中所处的位置、对象具体是如何实现的以及它们之间的 通信方式,只要他们拥有对某个对象的对象引用,就可以向这个对象发出 服务请求。这些都是由o r b 自动地、透明地为客户对象完成的,这就大大简化 了客户程序的工作。 9 武汉理工大学硕士学位论文 图2 3c o r b a 体系结构 c o r b a 有两种方法可以向对象提出服务请求:第一种方法是静态调 用,这种方法通过给定接口的i d l 桩,在把对象代码进行编译了之后,才 进入客户端的程序。所以,静态调用必须在编译的时候就知道提供服务的 对象和其具体的类型;第二种方法是动态调用,这种方法在运行的时候可 以动态的生成访问对象的代码,这主要是通过o r b 的动态调用接口d i i 来 完成的。 无论客户以上面所介绍的哪一种方法提出请求,o r b 的主要功能就是 根据客户的服务请求对对象进行定位,然后激活该对象,再把该请求传递 给对象,等对象完成了所请求的服务之后,把得到的结果返回给o r b ,最 后o r b 再把该结果反馈给用户。 o r b 完全屏蔽了软硬件平台、网络环境和程序语言的不同,这完全得 益于o m gi d l 。它是一种定于语言,只能用来定义接口和数据结构,具体 实现接口的算法语言可以用o m g 定制的联编将它们绑定在一起。目前 o m g 已经为c 、c + + 、j a v a 制定了相应的联编。只要c o r b a 的产品中 包含这些联编,用户就可选择一种相应的语言编写其客户程序或服务器程 序,并且可以用一种语言实现的客户程序调用另外一种语言实现的服务器 程序。 2 3 构件库 c b s d 是以构件库为中心的开发模型。由于构件的种类和数量的不断增加, 为了使构件使用者更加方便、快捷、有效的使用构件,提供一个构件复用环境, 1 0 武汉理工大学硕士学位论文 所以构件库出现了。构件库【1 7 】是支持软件复用的基础,能够对构件进行描述、 分类、存储和检索,它是构件的开发者和使用者之间一座“理解构件含义”桥梁。 构件库管理系统类似于数据库管理系统,是为构件库的建立、使用和维护而配 置的应用软件。它提供了一套数据库管理语言来对构件库进行管理,比如 c d u c o m p o n e n td e l t a cl a n g u a g e ,构件定义语言) 和c m l ( c o m p o n e n t m a n i p u l a t i o nla n g u a g e ,构件操纵语言) 。按照功能可将其分成构件入库层、构件 维护层和构件组装层三个层次。构件库管理系统如图2 - 4 所示: 构件 构件维护层 构件 图2 4 构件库的结构 ( 1 ) 构件入库层功能 主要是描述构件的结构、对构件进行分类、定义构件的完整性以及安全性、 定义构件的存取路径。这些定义是构件库管理系统运行的基本依据,全部存放 在数据字典中。 ( 劲构件维护层功能 1 1 武汉理工大学硕士学位论文 提供用户对构件的基本操纵如检索、插入、修改和删除等功能。一个优秀 的构件库管理系统不仅拥有功能强大、易学易用的构件操纵语言和方便的操作 方式而且要有较高的数据存取率。 ( 3 ) 构件组织层功能 根据用户的需求从构件库中检索到目标构件,并按照一定的规则对这些构 件进行组装,最后生成应用系统。 构件库管理系统不仅具备数据库的基本特征和功能外,还能够存储构件和 构件相关信息: 构件的语义描述:构件的功能和语义进行精确的描述。 构件的分类:把具有相同特征的构件归为一类,便于构件的检索。 构件的状态:主要是指一些与时间有关的构件属性,比如版本号、提交时 间、修改时间等。 为了能够管理和维护构件信息,构件库除删除、备份、用户登记和存取控 制等功能外,还必须能够提供如下的操作: 构件的添加:主要是构件的测试和认证方法,只有满足一定规则,合格的 构件才能添加到构件库中。 构件的检索:构件的需求匹配与一般的数据库不同,构件匹配通常不能得 到百分之百匹配的构件,一般是通过适配与需求相关或接近的构件使之满足需 求。 2 4 软件的质量度量模型 软件的质量贯穿于软件开发的整个过程,是一个需要考虑的关键问题。但 是软件质量又是一个非常复杂的问题,对于不同的人或系统,质量的定义不同。 一个软件的质量通常与许多不同的质量属性密切有关,同时不同类型的软件所 关心的质量属性也大不相同。 许多软件开发者度量一个软件的质量仅仅考虑到这个软件能做什么即功能 性属性,实际上这只是影响整个系统质量的一个因素。比如两个系统可能有大 致相同的功能,但在很多时候如果其中的一个系统在可靠性、稳定性等方面比 另外的一个系统要好,那么这个系统将会更加的令人满意。所以除了功能属性, 我们还应该关注这个软件的非功能性属性。 软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组 成。不仅在软件开发的整个过程中要对软件质量进行度量,而且在软件交付之 1 2 武汉理工大学硕士学位论文 后还要继续对软件质量进行度量,只是度量的方面不一样而已。在软件交付之 前主要是对程序的复杂性、有效性和可靠性等方面进行度量,在软件交付之后 则主要是对残存的缺陷数和系统的可维护性等方面进行度量。 为了更好的理解和评价软件的质量,一些研究者设计了许多质量度量模型, 主要包括层次模型和关系模型两大类。其中比较著名的层次模型包括m c c a l l 模 型【1 9 1 、b o e h m 模型和i s 0 9 1 2 6 质量模型【1 9 1 ;关系模型包括p e r r y 模型和g i l l i e s 模 型。下面主要介绍其中的两种层次模型。 2 3 1m c c a l l 软件质量度量模型 在7 0 年代末c a v a n o 和m c c a l l 提出了“软件质量因素框架”,随后被命名为 m c c a l l 模型,这是最早的层次软件质量度量模型之一。m c c a l l 等认为,特性是 软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件 质量的优劣。他们把软件质量分解到能够进行度量的层次,主要包括三个方面共 1 1 种属性( 如表2 - 1 所示) 。m c c a l l 模型的基本思想是把软件质量的因素分为产 品修正、产品转移和产品运行三组,每一组称为软件质量要素,反映了软件产 品质量的一个重要方面。每一个质量要素由诸多衡量标准构成。由于其创建的 时间比较久远,所以其包含的属性还不是很全面。 表2 1 m c c a l l 模型 产品运行因素产品修正因素产品转移因素 正确性可维护性互联性 可靠性灵活性可移植性 效率可测试性复用性 完整性 易用性 2 3 2i s 0 9 1 2 6 软件质量度量模型 i s o 组织也为构件的质量属性制定了i s 0 9 1 2 6 标准,他们对构件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论