(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf_第1页
(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf_第2页
(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf_第3页
(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf_第4页
(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机软件与理论专业论文)领域构件提取和分类与检索研究及其在水利领域的应用.pdf.pdf 免费下载

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

文档简介

河海大学硕士研究生论文摘要 摘要 基于构件的软件复用研究的重点包括如何提取可复用的构件、如何对构件进 行分类管理以及如何提高构件的检索效率等方面。本文以水利领域应用为背景, 结合领域工程,分析基于现有软件系统的构件提取、分类与检索方法,重点论述 了领域构件提取的方法与过程。研究的主要内容如下: l 、在分析当前可复用构件的提取技术以及构件分类与检索方法的基础上, 讨论了构件的识别与度量方法,重点分析了基于结构分析和知识匹配方法两类构 件识别方法的特点与适应性,以及应用构件度量来进行构件标识与构件验证的基 本技术。 2 、结合领域特征,论述了一种在特定领域范围内,从应用面向对象方法开 发的系统中进行构件提取的方法与过程。并在分析现有标识算法的基础上,提出 了一种基于有向带权图迭代分析的领域构件标识算法( i a d c i ) ;给出了基于 q m o o d 度量模型的影响领域构件提取的主要因素:在采用基于x m l 的刻面分 类模式的基础上,讨论了一种领域构件的检索模型。 3 、应用领域构件提取技术,结合水利领域中的实际应用系统,实现了对水 情信息查询构件的提取;采用刻面分类模式,给出了基于x m l 的水利领域构件 描述实例以及相应的检索算法。 关键字:领域构件,构件提取,构件标识,水利领域 河海大学硕士研究生论文摘要 a b s t r a c t n 坨f o c u so f c o m p o n e n t - b a s e ds o f t w a r er e u s ei n e l u d e sh o wt oo b t a i nc o m p o n e n t s h o wt om a n a g ec o m p o n e n t s a n dh o wt oe n h a n c et h ee m c i e n c yo f c o m p o n e n ts e a r c h 1 1 拉p a p e rt o o kt h ea p p l i c a t i o no fw a t e rr e s o l l r c c sd o m a i n a st h eb a c k g r o u n d , c o m b i n e dw i t ht h ed o m a i ne n g i n e e r i n g a n dt h e nw ea n a l y z e dt h em e t h o d so f c o m p o n e n te x t r a c t i o na n dc l a s s i f i c a t i o na n ds e a r c hi ne x i s t i n gs o f t w a r es y s t e m s ,a n d d i s c u s s e dt h em e t h o da n dp r o c e s so fd o m a i nc o m p o n e n te x t r a c t i o n1 1 地m a i n c o n t e n t sa sf o l l o w s : 1 a f l e ra n a l y z i n gt h ec u r r e n te x t r a c t i o nt e c h n o l o g i e so fr e u s a b l ec o m p o n e n t s 勰 w e l la sm e t h o d so fc o m p o n e n tc l a s s i f i c a t i o na n ds c a r e l l , t h ep a p e rd i s c u s s e dt h e m e t h o d so fc o m p o n e n ti d e n t i f i c a t i o na n dm e 仃i c e m p h a s i z e dt h ec h a r a c t e r i s t i c sa n d a d a p t a b i l i t yo f t w ok i n d so f c o m p o n e n ti d e n t i f i c a t i o nb a s e do ns t r u c t u r a la n a l y s i sa n d k n o w l e d g em a t c h i n g , a sw e l la sb a s i ct e 圯h n o l o 西e so fc o m p o n e n tm e 砸cw h i c h i d e n t i f i e da n dv e r i f i e dc o m p o n e n t 2 c o m b i n i n gw i t hd o m a i nc h a r a c t e r i s t i c ,t h ep a p e rd i s c u s s e dt h em e t h o da n d p r o c e s so f t h ed o m a i nc o m p o n e n te x t r a c t i o nw h i c hi sf r o mo b j e c t - o r i e n t e ds y s t e a n si n s p e c i f i cd o m a i n a t i e ra n a l y z i n gt h ee x i s t i n gi d e n t i f i c a t i o na l g o r i t h m s , t h ep a p e r p r o p o s e di t e r a t i v ea n a l y s i sa l g o r i t h m sb a s e do nt h ed i r e c t e x tw e i g h t e dg r a p hf o r d o m a i nc o m p o n e n ti d e n t i f i c a t i o n ( i a d c d ;a n dp r e s e n t e dt h em a i nf a c t o r so f i n f l u e n c i n gd o m a i nc o m p o n e n te x t r a c t i o nb a s e do nt h eq m o o d ;t h e nt h ep a p e r d i s c u s s e dt h es e a r c hm o d e lo fd o m a i nc o m p o n e n tb a s e do nx m lf a c e tc l a s s i f i c a t i o n p a t t e r n 3 a p p l y i n gt h et e c h n o l o g yo fd o m a i nc o m p o n e n te x t r a c t i o n , a n dc o m b i n i n gw i t h p r a c t i c a ls y s t e m si nw a t e rr e s o n l c e sd o m a i n , t h ep a d e ri m p l e m e n t e dt h ee x t r a c t i o no f w a t e ri n f o r m a t i o n q u e r yc o m p o n e n t ;m e a n w h i l e , t h ep a p e ra d o p t e d f a c e t c l a s s i f i c a t i o np a t t e r na n dg a v ex m l b a s e dd e s c r i p t i o ne x a m p l e si nw a t e rr e s o u r c e s d o m a i na n dc o r r e s p o n d i n gs e a r c ha l g o r i t h m k e y w o r d s :d o m a i nc o m p o n e n t , c o m p o n e n te x t r a c t i o n , c o m p o n e n ti d e n t i f i c a t i o n , w a t e rr e s o u r c e sd o m a i n n 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工 作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意。如不实,本人负全部责任。 论文作者( 签名) :j 过2 。7 年月;口 学位论文使用授权说明 日 河海大学、中国科学技术信息研究所、国家图书馆、中国学术期刊 ( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件或电子 文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档 的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许 论文被查阅和借阅。论文全部或部分内容的公布( 包括刊登) 授权河海 大学研究生院办理。 论文作者( 签名) ; 露鑫盔l2 0 0 7 年弓月;勺日 河海大学硕士研究生论文第一章绪论 i i 研究背景及现状 第一章绪论 软件复用被认为是解决软件危机的一条现实有效的途径,它通过利用已有资 源,从而提高软件的开发效率与质量。软件复用是指重复使用“为了复用目的而 设计的软件”的过程【1 1 ,通过软件复用,可以提高软件开发的效率和质量。近年 来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持 软件复用通常分为产品复用和过程复用。产品复用指复用已有的软件构件,通过 构件集成( 组装) 得到新系统;过程复用指复用已有的软件开发过程,使用可复用 的应用生成器来自动或半自动地生成所需系统。基于构件的软件开发方法( c b d ) 逐渐被接受,并用于软件开发实践中,特别是基于分布式对象的开发领域【2 】。c b d 集软件重用、分布式对象计算、c a s e 和企业级应用程序开发等技术为一体,以 软件构架为组装蓝图,以可重用软件构件为组装块,支持组装式软件复用,是提 高软件生产效率和产品质量、缩短产品交付时间的现实有效途径之一。 软件构件技术是以构件为研究对象,以构件的提取、管理、组装以及与之相 关的一系列活动为主要研究对象,其中最基础也是很重要的一项技术是构件的获 取技术。构件获取技术的基本思想,即生产或者挖掘可重用的构件并将其组装以 得到新的软件系统。可以预见,构件和复用技术是软件产业化革命的必然发展趋 势,基于构件的软件复用技术的广泛应用将促进软件产业的变革,对我国软件产 业的发展起到重要作用【3 j 。 1 9 9 8 年以来,c a r n e g i em e l l o n 大学每年举办一次c b s e 国际会议( c b s 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 ) 。每次会议发表论文2 0 余篇,为构件技 术研究奠定了良好的理论基础,并提出新的研究方向( 例如软构件测试,质量评 估等) 。在国内,北京大学、中科院软件所、吉林大学、南京大学、复旦大学、 中山大学等单位,均发表了不少有价值的学术论文。在实际工程上,青鸟公司、 中软公司、华科电脑公司、特宝科公司、天中公司等均采用基于构件技术开发应 用软件,积累了不少经验,获取了较好的效益。但是,作为构件技术中最基础的 构件获取技术仍没有得到广泛的重视,相关的理论还不成熟,许多与此相关的问 题尚未得到很好地解决,这些都需要进一步的研究和探讨。 近年来,对于构件获取技术的研究主要集中在以下几个方面: ( 1 ) 特定领域的软件体系结构与领域框架的研究; ( 2 ) 对遗产软件系统的程序理解和信息抽取: ( 3 ) 构件度量以及相关的模型和算法; 河海大学硕士研究生论文 第一章绪论 ( 4 ) 构件提取辅助工具的研究; ( 5 ) 构件规范化及其描述规范化; ( 6 ) 构件提取技术的应用。 随着构件提取研究的深人,出现了一些研究性与商业性构件提取工具,其中 有如下几个典型的系统: ( 1 ) c o d e m i n e i l 4 j o u n u 和k n i g h t 等人开发的辅助程序员识别c 语言遗产系统中可复用模块的 工具。它通过标识多次调用的函数、标识松散耦合的函数和表示能够构成抽象数 据类型的函数以及变量三种方式来识别软件系统中潜在的可复用成分。 ( 2 ) c a r e n c a r e ( c a m p u t e r - aid e dr e u s ee n gin e o tin g ) 是一个针对a d s 和a n s i c 遗产软 件系统的辅助可复用构件标识和验证的系统。它把整个分析过程分为以下两个阶 段:第一阶段识别一些候选的构件,并为可能的复用部件进行包装;第二阶段由 具有构件所在的应用领域的领域专家分析每个构件以决定构件所能提供的服务。 最后,合格的可复用构件连同所有能得到的相关信息被存人构件库中。 ( 3 ) p a t r i c i a 6 p a t r i c i a ( p r o g r a ma n a l y s i st o o lf o rr e u s e ) 是一个针对面向对象系统基 于度量的可复用构件自动标识系统。它由自然语言分析工具( c h r i s ) ,c + + 程序 分析工具,面向对象度量数据收集工具,构件质量和可复用性分析工具组成。 ( 4 ) 青鸟构件提取辅助工具【7 】 青鸟构件提取辅助工具是青鸟程序分析工具集的组成部分,它以程序分析和 信息抽取器为基础,能够根据青鸟软件可复用性度量模型,自动标识面向对象软 件系统中的候选可复用构件,支持候选构件的手工筛选,支持可复用构件代码的 包装并提供了构件夹和工作台管理,方便了构件的提取过程。 随着构件技术的成熟和构件市场的形成,可复用的构件将越来越丰富。构件 库作为分类和管理构件的基础设施变得十分重要。 构件的分类与检索是构件库研究的重点,即研究构件分类策略、组织模式、 检索手段和构件相似性分析。在可复用构件库中存储、查询构件是复用技术的关 键技术之一。尽管可复用对象复用的前景十分乐观,但不得不面对分类、存储、 检索等可复用构件的问题。目前有很多构件分类和检索方法,从构件表示出发可 分为人工智能方法 s l 、超文本方法【明和信息科学方法【1 0 1 - - 类;而根据复杂度和检 索效果的不同则可以分为基于文本的【1 1 l 、基于词法描述子的【1 习和基于规约0 3 1 的 编码和检索。信息科学方法是实际复用项目中应用较为成功的一类,并且以枚举、 刻面、属性值、关键词和正文检索几种方法较为常见,其中刻面分类方法能够表 达丰富的构件信息,为人关注。构件分类是构件检索的前提,只有合适的分类方 法才能更好地满足检索的需要,而检索是分类的目的。 2 河海大学硕士研究生论文 第一章绪论 计算机信息技术在领域业务应用中的快速普及,已经极大地推动了领域软件 复用的需求,迫切需要在当前构件技术研究成果的基础上,结合领域应用的需求, 研究领域构件技术及其应用。 基于构件的开发通过构件组装得到最终应用系统,在领域内进行应用系统的 开发,需要在相应的领域应用中抽取大量的所需的构件,例如在水利领域应用系 统调用的过程线构件,或其它通用的信息查询构件。在现有的系统中如何提取出 构件或者如何在领域中提取构件,需要进行深入的研究;提取出构件加入构件库 以后,构件库就在后续的应用中扮演着重要的角色,而构件的分类与检索正是构 件库研究的重点,那如何在构件库中准确地查询到所需的构件? 这就需要对构件 进行必要的分类,然后还需要构造一些好的检索机制来提高效率。因此,为了保 障在基于构件的领域软件开发中快速有效地组装构件,尽快形成应用领域应用系 统,需要对领域构件的提取、分类与检索进行必要的研究。 1 2 本文的选题及意义 本课题的选择是根据上述分析,并结合水利领域对软件构件具体需求而做出 的。选择这一研究课题的理由在于: 1 、构件提取、分类与检索是构件技术研究的重要问题,虽然目前有多种构件 提取方法,但应用于具体的领域时,就会发现这些方法存在很多方面的不足,例 如构件的合理粒度的确定,在一般意义下很难,但在特定领域中,根据领域业务 处理具有的特征,就可能给出一个合理的解。 2 、从目前构件提取技术的研究看,所取得的研究性成果没有明确的领域针对 性,对于领域应用而言,如果提出的领域构件提取技术能与领域应用的特点相结 合,那么将更有利于领域用户的理解和掌握,从而更加方便地实现从领域中获取 粒度大小合适的领域构件。 3 、随着水利领域中计算机业务应用系统的迅速增长,需求越来越复杂,开发 的费用也越来越高,但仔细分析后发现,大多数系统需求存在着许多相同部分或 相似部分,如果应用领域构件提取技术在这些系统中提取出复用性很高的构件来 支持基于构件的软件开发,将会大幅度削减开发成本。 纵观软件构件技术研究的现状便不难发现,构件在特定领域相对容易取得成 功,当构件技术与特定应用领域相关联时,许多问题往往得以简化,例如构件的 合理粒度的确定,在特定领域中,根据领域业务处理具有的特征,就比较容易给 出一个合理的解。相对于其它部分而言,构件提取、分类与检索技术涉及了构件 技术的很多方面,因而成为构件技术能否在领域中成功应用的关键之一。由于目 前的研究没有明确的领域应用背景,无法突出构件的特征,导致将这些技术应用 于特定的领域时,显得过于复杂和不易操作。为此,需要研究领域内软件构件相 河海大学硕士研究生论文 第一章绪论 关技术,满足通过领域构件技术来提高领域应用系统的技术水平、减少开发风险 和降低运行维护的难度与成本的需求,具有一定的理论意义和应用价值。 尤其在水利领域,各类计算机应用系统很多,尽管这些业务应用构成复杂, 但通过分析发现其基本的业务逻辑却有许多相同部分或相似部分,从而也导致了 水利领域应用软件较为严重的重复开发不但造成不必要的浪费,而且在一定程 度上阻碍了整个领域应用水平的提高。为了解决这一问题,利用软件构件技术, 在已有的水利领域应用系统中提取出大量的符合规范的构件,提高水利领域软件 复用的水平是完全必要的。 1 3 本文的内容及结构 根据选题,本文的主要研究内容为: l 、对构件技术、特别是构件提取、分类与检索当前国内外研究状况进行分 析研究,指出当前构件技术应用于特定领域所存在的不足,寻找研究的切入点。 2 、在总结前人研究成果的基础上,分析并阐述一般构件的提取、分类与提 取技术,并进行比较分析,探求适合特定领域应用的构件提取方法。 3 、根据一般构件的提取、分类与检索技术,研究在领域意义下如何进行构 件的提取。将利用构件提取方法,结合领域工程,详细分析在领域下基于现有系 统的构件提取过程,在分析现有的构件标识算法的基础上,优化基于面向对象系 统的领域构件标识算法,并给出影响领域构件提取的主要因素以及度量方法。 4 、研究在水利领域中,按照所提出的构件提取方法,实现针对面向对象系 统进行领域构件的提取,并给出相关的实例和算法。 本文正文共分为五章,如下安排: 第一章介绍了本文的技术背景、国内外的发展现状和全文的组织结构; 第二章对相关技术进行介绍,包括构件的提取、分类与检索技术,并进行 必要的对比、总结; 第三章本文的主体部分,在对领域工程进行了概述之后,详细分析了在领 域意义下基于现有软件系统的构件提取的步骤,并给出一个基于面向对象的构件 标识算法,以及相应的度量方法; 第四章也是本文的主体部分之一,首先阐述了作者所参加的项目,然后以 此项目为依托,应用领域构件提取方法,实现了在水利领域业务应用面向对象系 统中构件的提取过程,并进行了量化的分析与比较;最后实现了简单构件的分类 与检索; 第五章对本文的研究进行总结,并提出需要进一步研究的问题。文后还附 有本文参考和引用的主要文献的目录。 4 河海大学硕士研究生论文第二章相关工作 第二章相关工作 作为软件复用的一项关键技术,构件获取主要存在两种途径:有目的的构件 生产和从已有系统中提取。构件提取技术一般包括构件识别与构件度量两个主要 的步骤,二者在实施过程中相互依存,其中度量可用于验证标识结果和筛选候选 构件,构件识别则可能需要基于度量并以之为一种识别手段。同时,随着构件提 取的发展,为了对其进行比较,人们又提出了比较度量,它主要用于比较不同构 件提取方法的优劣,以及评判现有方法的效果。提取出构件加入构件库以后,构 件库就在后续的应用中扮演着重要的角色,而构件的分类与检索正是构件库理论 研究的重点。 领域工程和软件再工程是构件提取的基础,它有助于解决可复用信息的识 别、组织和利用问题,从而对构件的提取提供了有力的支持,领域工程有助于产 生较高的可复用性的构件,而且通过产生构架定义了复用的时机和复用的上下 文,这样就对开发者复用这些构件提供了有利的支持,使得复用变得规范、系统 和高效。 本章以构件的提取过程为基础,由于构件识别方法与度量之间的依赖关系, 采用如下的组织方式,首先探讨了现有的构件识别方法,我们将其分为概念匹配 与结构分析方法两大类;接下来分别综述构件度量的三个方法,即局部度量、全 局度量和比较度量,随后再详细研究现有的分类与检索技术,最后给出了领域工 程和软件再工程的知识。 2 1 构件识别方法 从现有文献看,构件识别方法大致可分为两类:知识匹配和结构分析。知识 匹配方法以软件系统的相关知识为驱动,将其与系统的构成成分进行匹配,匹配 的结果即为候选构件。结构分析方法则基于某种软件系统的抽象结构,比如树或 图,我们将其统称为图结构,通过对图结构的分析进而将其分解为多个子结构, 其中每个子结构对应一个候选构件。图2 1 显示了构件识别方法的分类体系。 , 河海大学硕士研究生论文 第二章相关工作 弋 回臣亟习 圈2 1 构件识别方法分类体系 2 1 1 基于知识匹配的构件识别方法 知识匹配作为构件识别的一类方法,它通过对软件系统中语义元素的分析而 将程序中具备相同或者近似语义的实体关联起来作为一个候选构件。这类方法一 般是基于信息获取、数据挖掘、关联分析或专家系统等相关技术。随着这些技术 的发展。这类方法也逐步受到重视。根据其在构件识别中所采用的策略不同,又 可以分为:概念匹配方法【1 4 j 【1 5 1 与模式匹配方法【1 6 】【1 7 1 嘲。 1 概念匹配 采用已有概念与程序中信息进行匹配。通过这种匹配可以获取与特定概念相 关的软件构成成分,并认为这些构成成分具备良好的独立性与单一的功能性。通 过这种方式得到的软件构成成分可以作为候选构件。目前这类方法存在的一些问 题是:( 1 ) 概念的可获取性问题;( 2 ) 必须假定待分析的程序具备良好的语义特性, 也就是它的标志符号具有实际的含义。 目前,这方面研究工作的代表有文献 1 4 ,1 5 】,其中文献【1 4 】首先通过专家系 统获取概念,然后标识与这些概念关联的软件成分。文献 1 5 贝l j 是直接从需求信 息中提取概念,然后采用信息获取( 瓜) 技术在程序中匹配与特定需求对应的成 分。 2 模式匹配 随着模式匹配以及构件特性研究的深入,出现了一类以模式语言为基础的构 件识别方法,这类方法根据构件的结构特性,应用环境以及需求特性为构件模式 提供描述,进而根据这种描述,从程序中识别构件。目前这种方法的代表有文献 【1 6 - 1 s ,其中文献【1 6 】定义了一种模式语言为构件的需求应用环境提供描述,并 以这种描述作为构件识别的方法,文献 1 8 】为体系结构提供一种描述语言,然后 基于该语言完成体系结构的恢复。除了定义模式语言的方法外,有的方法还采用 了专家系统为基于模式的构件识别提供支持。模式匹配方法存在的主要问题是模 式的可获取性与准确性难以保证。 6 河海大学硕士研究生论文第二章相关工作 2 1 2 基于结构分析的构件识别方法 目前,结构分析方法是构件识别的主流方向,它以软件系统的某种抽象结构 为基础,进而通过对该结构的划分或聚类而实施构件的识别这种抽象结构可以 是类图、函数调用图、文件引用图、模块依赖图以及概念格等,我们将之统称为 图结构。基于目前结构分析方法的现状,我们将其分为启发式分析与确定性分析。 为了提高构件识别效率,启发式方法一般采用次优解算法,根据构件度量获取一 个可以接受的解决方案,它是一种高效的普适性算法,但构件识别的可用性差。 而确定性方法一般基于软件系统的某种结构特征,试图从中发现针对特定视图的 最优解决方案。 2 1 2 1 启发式方法 是一种基于最优搜索的近似算法,它以符合给定质量特性的构件识别方案为 目标。该类方法一般能快速地发现满足给定质量的方案,但随着质量指标的提高, 其效率将急剧下降。同时,启发式方法的稳定性差,即同一软件系统采用同一方 法在不同时期得到的结果不一致。目前在构件识别中广泛采用的启发式方法有: 爬山算法【1 川与遗传算法 2 0 l 。 1 爬山算法 基本思想是基于当前状态搜索更优解,在构件识别中,它首先随机地选取一 个初始划分,在该划分的基础上,通过某种迭代策略不断地获取更优解:文献 2 1 】 中的构件识别方法采用的即是以邻接划分为迭代策略的爬山算法,邻接划分指的 是移动原始划分中一个模块的某节点至另一个模块而得到的新划分。图2 2 展示 了邻接划分的实倒。 韪艮 够( 邻接划分( 2 ) 邻接划分( 3 ) 图2 2 领接划分示倒 为了提高爬山算法在构件识别中的质量特性,可以采用多爬山算法,它通过 对某一软件系统同时进行多个爬山进程,而提高构件识别的效率与质量。 7 河海大学硕士研究生论文 第二章相关工作 2 遗传算法 基本思想是基于d a r w i n 进化论和m e b d e l 的遗传学说,它认为在进化过程中 经过存优去劣的自然淘汰,适应性高的基因结构将得以保存下来。文献【2 0 仲将 构件识别看成一个不断优化的进化过程,它基于模块依赖m ( m d g ) ,以结点为单 位进行基因编码,一种基因结构表示一个相应的划分实例,也称之为个体,通过 对个体执行变异,交叉,选择的进化操作而获取高质量的构件识别方案。 将遗传算法应用于构件识别存在两个需要关注的问题:适应度函数的确定与 进化操作的选取。适应度函数用于度量个体的适应程度,在构件识别中,它将采 用前述的某种构件度量,文献 2 0 j l o 以全局度量m q 为适应度函数。而进化操作 作为控制遗传算法执行的关键元素存在三种基本操作:选择、交叉与变异,在构 件识别中,选择操作以适应度函数为基准选取更优划分,交叉操作则是通过综合 两个划分方案以发现更优解,而变异则通过局部的改变当前划分以期获得更优结 果,前述的邻接划分策略即可以作为一种变异操作。 2 12 2 确定性方法 在时间维上对同一软件系统的多次构件识别结果是一致的。它也是目前构件 识别所主要采用的方法,通常它以函数调用图,类图为基础。根据分析策略的不 同。可将其分为度量分析与聚类分析。度量分析方法一般基于度量进行构件的识 别,它通过对抽象结构的度量分析或候选构件的度量验证达到构件识别的目的; 聚类分析方法则是基于聚类策略进行构件识别,它通过将软件抽象结构中联系紧 密的结点集合归为一类而达到构件识别的目的。这种分类方式基于分析策略的不 同侧重点。实际上,度量分析方法也可能需要采用聚类的思想,丽聚类分析可能 也需要基于某种构件度量。 1 度量分析 度量分析方法基于度量识别候选构件。其中有些采用了函数调用图的度量分 析,从结构化软件中识别抽象数据类型与抽象数据对象陋l ;有些则采用类图的度 量分析在面向对象软件中识别类树或类簇。基于度量的可复用构件获取【2 3 l 与基于 有向图的方法【冽。是度量分析方法的典型实例,它们基于不同层次的度量模型进 行构件识别。这类方法的提取效果较好,但相对而言也更为复杂。 基于度量的可复用构件获取采用了类间关系分析构件标志算法( r b c l ) 从面 向对象遗产系统中挖掘构件。而有向带权图迭代分析方法采用前述的模块独立性 度量i m 考察图中小规模的连通子图。它通过选取度量值高于阈值的连通子图作 为候选构件,同时将这些候选模块表示的子图抽象为一个节点,而形成一个规模 更小的新图,如此迭代分析直到得到新图规模小于给定阈值。其中独立性度量考 察的是软件系统的类图结构,在该方法中表现为一种构件识别手段。 8 河海大学硕士研究生论文第二章相关工作 2 聚类分析 针对软件系统的抽象结构,构件可以看成是由紧密联系且具备相似特性的一 组软件成分构成,这样构件识别就可以抽象为软件构成成分的聚类问题。聚类研 究在很多领域有着广泛的应用。其在构件识别中的应用可以大致分为两种情况, 自顶向下的系统分解以及自底向上的结点收敛。自顶向下的系统分解一般基于完 整的系统抽象结构,通过去除其中的一些元素而将系统分解为几个独立的模块。 自底向上的分析一般通过将被依赖结点收敛到依赖结点而得到更大粒度的结构 作为候选构件。基于聚类的构件识别研究一直以来受到了广泛的重视,本文将简 要地概述函数调用图收敛方法嘲【凋、函数调用图分解方法 2 7 1 、类图收敛方法【篮】 和类图分解方法例。 ( 1 ) 函数调用图收敛方法 文 2 7 】中给出了一种针对函数调用图所表示的树结构收敛的算法,其基本步 骤是:( 1 ) 选取一个活动结点;( 2 ) 选取一个收敛结点;( 3 ) 将收敛结点合并至活动 结点,依此继续直到只剩下一个结点。这种方法可以针对函数调用图给出系统的 层次结构,而每一层的构成元素都可以作为一组候选构件。文献f 2 5 】给出另外的 一种针对函数调用图的收敛方法,它通过获取抽象数据类型与抽象数据对象将结 构化软件系统转化成面向对象软件系统。 ( 2 ) 函数调用图分解方法 针对结构化软件的函数调用图,怎样从其中获取抽象数据类型以及抽象数据 对象在软件维护与演化领域受到了广泛的关注。对此人们提出了一系列抽象数据 类型与抽象数据对象的获取方法,它们一般采用的是函数调用图的分解方法,通 过对函数调用图的局部结构分析从中标识调用关系紧密的一组函数以及相关的 变量作为可复用的软件成分。 ( 3 ) 类图收敛方法 基于类图的收敛方法通过将关系紧密的两个类收敛成一个结点,该方法针对 类图给出了系统的层次结构。其中每层的元素都可以作为候选构件。可以针对类 图采用了将权值小的边收缩而使两个结点合并成一个结点的收敛策略。实际上, 有向带权图迭代分析方法也采用了类似的收敛策略,但是它的核心机制是独立性 度量技术。 ( 4 ) 类图分解方法 类图分解方法通过将类图中某些弱边删除掉,而对一个系统进行划分,划分 中不同粒度与层次的模块即是候选构件。图聚类方法采用了最小图算法为图中的 边确定权值,然后根据边的权值顺序不断地删除弱边而进行系统结构的划分。基 于度量的可复用构件获取也采用了类似的聚类策略,但该方法的核心机制是 r m c q ( 构件可复用性度量模型) 。 9 河海大学硕士研究生论文 第二章相关工作 2 1 3 分析比较 由于基于知识匹配的构件识别方法需要对软件系统中语义元素进行分析,但 在不同的领域中存在着大量的语义不一致问题,难以保证匹配的准确性,该类方 法在形式化描述、知识获取与表示上也存在着很大的难度;而基于结构分析的构 件识别方法是通过对软件系统抽象结构的划分或聚类来实施构件的识别,比较容 易操作,所以基于结构分析方法的构件识别效果通常优于知识匹配方法,但方法 的通用性与结果的可用性仍无法满足应用的需要。结构分折方法一般基于假设: ( 1 ) 良构的软件系统由具备高内聚特性的模块松散地耦合在一起,( 2 ) 软件系统模 块之间不存在交叉。满足假设的软件系统,结构分析方法的构件识别效果良好。 但实际中的软件系统往往不能很好地满足上述假设,通过对软件系统结构特性的 分析,正是由于多种可能软件结构形态的存在,所以目前的构件方法缺乏足够的 通用性。 2 2 构件度量 在构件提取中度量主要应用于构件标识与构件验证,前者用于从软件系统中 标识候选构件,后者则用于从候选构件中筛选构件。而在构件识别方法的研究中, 度量也可以应用于比较两个不同的构件识别方法,进而作为构件识别方法的比较 基准。本文根据度量的应用范围将其划分为局部度量,全局度量以及比较度量三 大类。其中局部度量与全局度量主要用于构件验证与构件标识,比较度量则主要 用于构件识别方法的比较。 2 2 1 局部度量 局部度量从候选构件所在系统的局部出发,通过考察其结构与语义特性而评 价其可复用性。其中结构特性通常基于类图,函数调用图等抽象形式,它反映了 候选构件的内聚度与耦合度;而语义特性则一般通过统计分析方法获取基本度 量,比如代码行数、继承层次、类平均方法、类引用数等,进而基于相应的度量 模型计算候选构件的可复用性指标。因此在本文中我们将局部度量分为结构局部 度量与统计局部度量,结构局部度量如文 3 0 1 3 ”,统计局部度量如文 3 2 1 3 3 1 1 3 4 ,其 中模块独立性度量( 订) 与构件可复用性度量模型( r m c q ) 是这两种形式的代表。 一般而言,局部度量简单且高效,可同时应用于构件标识与构件验证,但它没有 考虑候选构件对系统整体提取效果的影响。 1 模块独立性度量( i m ) 用于验证候选构件的可复用性,它是在借鉴q m o o d 度量模型中可复用性 度量的基础上给出的。 河海大学硕士研究生论文第二章相关工作 独立性度量与模块的内聚性正相关,与模块的耦合性与模块规模负相关。 2 构件可复用性度量模型( r m c q ) r m c q 是综合r e b o o t ,q m o o d 模型而提出的,它包含因子、准则和度 量三个基本的层次,通过从代码资源中获取相关统计特性,比如,实例化使用数、 子类数目、外部调用方法数等,然后根据度量模型进行规约,最终得到一个相对 或绝对的可复用性指标。该模型在构件验证中效果良好,但其实施过程也相对复 杂。 2 2 2 全局度量 全局度量从系统整体视图上评价构件识别方案,它能够为系统的划分度量提 供支持。但由于其对整体效果的关注,使得在高全局度量指标的情况下,可能由 于各个候选构件单独的可复用性都偏低而无法得到可用的候选构件。模块划分质 量度量【3 5 1 是全局度量的代表。q m o o d ,c a r e 等可复用性度量模型同样可以应 用于全局的可复用性度量。 2 2 3 比较度量 比较度量是在已知一种构件识别方案的基础上,评价其它构件识别方案的度 量技术,在构件识别方法的比较中被广泛应用,同时它也可以在特定的构件提取 上,用于判断某一构件识别方法的效果。因此根据比较度量的应用范围不同,可 将其分为模块划分相似度度量与比重度量。前者用于比较两种不同的构件识别方 法的优劣,后者则以已有的构件识别方案为基准来评价某一构件识别方法的有效 性。 1 模块相似度度量 针对相同软件系统的两种不同构件提取方案,模块划分相似度度量在不同情 形下表现出不同的效果。如果两种构件提取方案分别采用了不同的构件识别方 法,则它体现的是两种方法的差异;如果两种方案采用的是同一构件识别方法, 则它体现的是该构件识别方法的稳定性;如果其中一种方案是手工获取的精确结 果,另一方案采用了某种给定方法,则它体现了该方法的有效性。目前针对模块 相似度度量的研究中,具有代表性的度量主要有:距离度量m o j o 3 6 、边相似度 量e d 蜘s i m 【3 7 l 和划分聚类相似度度量m e c l 0 7 1 。 2 比重度量 指的是一种构件识别方案中的某类元素在另一方案中同类元素的比重,在应 用过程中通常设其中的一种方案作为基准方案,另一种作为考察方案。我们称 基准方案中某类元素在考察方案中同类元素中所占的比重为查准率,而考察方案 中的某类元素在基准方案中同类元素所占的比重为查全率。根据其考察元素的区 河海大学硕士研究生论文 第二章相关工作 别,又可以分为:模块比重度量与相关对比重度量【3 s 1 ,其中模块比重度量考察的 元素为划分中的模块,该度量因其对模块要求的精确匹配使得其度量值偏低,在 实际中,主要应用于一种方案为手工精确划分的情况。相关对比重度量中的考察 元素是划分中的相关对。 2 2 4 分析比较 表2 1 给出了上述几类度量的比较。 表2 1 构件度量比较 代表性技术优点缺点应用 局部度量 i m 简单,可以提取复用性缺乏全局考虑,在构件提取过程 高的候选构件不支持划分中用于标志、筛 选构件,也可用 于评价提取方案 全局度量m q 全局特性,可以提取系忽略了局部最构件识别方案的 统的完整划分优性 实现与评价 比较度量 m o j o 应用于不同构件识别缺乏比较基准用于比较方法或 方法的比较者验证方法的有 效性 通过表2 1 可以看出,模块独立性度量用于评价划分结果中一个模块的可复 用性,它保证了局部的最优性,但忽略了其对整体效果的影响;模块划分质量度 量用于评价一个划分的整体质量,但它忽略了单个候选构件的可用性;模块划分 相似度度量在不同情形下表现出不同的效果,主要用于构件识别方法的比较;比 重度量根据一种构件识别方案中的某类元素在另一方案中同类元素的比重来进 行方法的比较。 2 3 构件的分类与检索 2 3 1 现有的构件分类与检索方法 目前软件复用所使用的技术很多,但是用的比较多的还是基于可重用构件库 的方法。构件库是存储和检索构件的数据库,是开发可重用构件和使用可重用构 件的中间件。随着可重用构件库的不断增长,使用构件库面临着这样一种困境: 一方面,为了使用构件,构件库中必须有足够的构件来支持开发;另一方面,当 大量的可重用构件存在时,查找和选择恰当的构件又变得十分困难。高效的检索 方法能使用户正确地定位所需要的构件,而构件的检索效率与构件的分类和检索 方法密切相关。 1 2 河海大学硕士研究生论文第二章相关工作 实践中构件数量不断增长、构件也随技术和领域演化而更新,要在库中众多 的构件中寻找,必须借助于自动检索工具的支持。另一方面,对单个构件的复用 可以划分为构件的识别和检索、构件理解和适应性修改3 部分 有效的构件检索机制能够大大降低构件检索和理解的成本,而构件的分类正 是为了实现高效方便的检索。因此,管理构件库和降低复用成本两方面的要求都 促进了对构件表示和检索机制的研究和评价,为实践中的复用项目提供了技术支 持。 w f r a k e s 从构件表示方法出发,将已发表的构件分类方法分为人工智能( a j ) 方法嘲、超文本方法 9 1 和信息科学方法【l 川三类。 h 埘l i 则按照构件表示的复杂度和检索效果的递增关系将已发表的构件表 示与检索方法分为基于文本的【1 、基于词法描述予的【1 习和基于规约的【1 3 1 三类。 w f r a k e s 重点讨论了应用信息科学的编目方法来实现构件的表示与检索的 方法。信息科学的编目方法分类以枚举、刻面、属性值、关键词和正文等分类编 目与检索方法最为常用,其中又以关键词( k e y w o r d ) 分类和刻面分类两种方法应 用最为常见。 关键词分类方法原理简单。构件按一组与之相关联的关键词进行编目,查询 者通过给出关键词来查找所需构件。由于关键词对构件的描述不够准确,并缺少 上下文语境,容易产生歧义,因而查询效率较低。刻面分类方法则是关键字分类 方法的改进。 刻面分类方法d g l 4 0 l 选择能准确描述构件本质特征的一组特定视角,并将这 些特定视角称为构件的刻面( f a c e t s ) ,然后在刻面中定义一组术语( 即关键词) , 并据此对构件进行分类。各个刻面的术语共同构成结构化的术语空间。术语仅限 于在给定的刻蘧之中取值( 也就是取自受控的词汇表) 。这一做法将关键词( 术 语) 置于特定语境之中,从而提高构件的查询效率。刻面的选择和术语空间的建 立主要取决于构件库的领域特征和软件复用的需求。如r e b o o t 构件库中定义 了抽象( a b s t r a c t i o n ) 、操作( o p e r a t i o n s ) 、操作对象( o p e r a t e so n ) 和依赖 ( d e p e n d e n c i e s ) 个刻面;p r i e t o d i a z 等将功能( f u n c t i o n ) 、对象( o b j e c t s ) 、介质 ( m e d i a ) 、系统类型( s y s t e mt y p e s ) 、功能区域( f u n c t i o na r e a ) 和应用领域( s e t t i n g ) 定义为刻面;北大青鸟构件库0 b c l ) 中将使用环境( a p p l i c a t i o ne n v i r o n m e n t ) 、应 用领域( a p p l i c a t i o nd o m a i n ) 、功能( f u n c t i o n a l i t y ) 、抽象层次( l e v e lo f a b s t r a c t i o n ) 和表示方法( r e p r e s e n t a t i o n ) 定义为刻面。术语空间也可以随构件的发展而演变 另一类与刻面分类方法相类似的方法是属性值分类方法。 h m i l i 【帅l 则讨论了基于词法描述子和基于规约的构件编码与检索方法。从原 理上说,这是比较符合构件的表示与检索特点的方法,但这类方法在实现上存在 的困难较多。 所谓基于词法描述子的编码与信息科学编目方法中“基于受控词汇表”的表 河海大学硕士研究生论文 第二章相关工作 示方法类似。该方法有若干变种和细化,已形成内容丰富的方法类。在这一方法 类中,最具特色是近似匹配算法。近似匹配算法将基于偏序关系的检索扩展为基 于距离的检索,利用带权语义网、模糊逻辑触发器和带权术语空间等技术来计算 构件之间的语义距离,以实现近似查询。 基于词法描述

温馨提示

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

评论

0/150

提交评论