(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf_第1页
(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf_第2页
(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf_第3页
(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf_第4页
(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机软件与理论专业论文)基于刻面描述的水资源领域的构件检索方法.pdf.pdf 免费下载

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

文档简介

河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构件检索方法 摘要 软件复用被视为解决软件危机,提高软件生产效率和质量的现实可行的途 径。随着构件技术和基于构件的软件开发的技术的发展使得构件库作为软件构件 利用的物质仓库,如何在可复用的软件构件仓库中找到需要的构件是一个亟需要 解决的难题。 本文重点阐述了基于刻面描述和分类的构件检索,随着不同领域的可复用构 件的增多,在数量庞大的通用构件库中检索所需要的构件,充分理解构件很困难, 而在单个领域中对软件构件的理解相对来说要简单容易得多,构建特定的单一领 域的构件库,构件数量不会太大,构件的刻面和术语也不必考虑扩展问题,而且 尽量使用本领域的专业词汇,不再使用同义词,大大的提高了构件的查找效率。 本文主要工作如下: ( 1 ) 在探索构件库的检索方法下,借鉴了几种典型的构件描述和分类的模式 总结制定出水资源领域构件的刻面描述方案,刻面的定义中增加处理对象的刻面 及其术语突出了领域的特征,帮助用户准确理解构件,提高构件的检索的质量。 ( 2 ) 针对构件的刻面描述特点,利用树匹配的思想及其相关理论,在水资源 管理领域中对构件的基于刻面描述的检索进行分析与在通用构件库系统中的刻 面描述模型的检索进行比较。 ( 3 ) 本文设计和实现基于水资源领域的构件刻面检索的构件库原型系统,并 介绍了其中主要功能模块的实现以及检索性能的分析与比较。 ( 4 ) 总结本文所做的主要工作,展望下一阶段的工作重点。 本文的研究目的和意义在于:通过提出对水资源领域的构件的刻面描述及其 检索的方法,提高构件的查询性能,降低软件复用的成本,最终达到提高软件产 品质量的目的。 关键词:软件构件刻面描述构件检索水资源领域 河海大学硕七研究生毕业论文 基于刻面描述的水资源领域的构件检索方法 a b s t r a c t s o r w a r er e u s ei sr e g a r d e da sa p p r o a c ht os o l v et h es o f t w a r ec r i s i s ,p r o m o t e e f f i c i e n c ya n dq u a l i t yo fs o f t w a r ep r o d u c t i o n w i t ht h ed e v e l o p m e n to fc o m p o n e n t t e c h n i q u ea n dt h et e c h n i q u eo fc 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 t ,w h i c h m a d et h ec o m p o n e n tl i b r a r y 嬲ap r i m a r yr o l eo fm a t e r i a lw a r e h o u s eo fs o f t w a r e c o m p o n e n t h o wt o f i n do u tt h en e c e s s a r yc o m p o n e n ti nt h eu s e a b l es o f t w a r e w a r e h o u s ei sad i f f i c u l tp r o b l e mw h i c hn e e dt os o l v e t h i sp a p e ri n t r o d u c e df a c e t - b a s e dc l a s s i f i e da n dd e s c r i p t i o no fc o m p o n e n t r e t r i e v a l b u ta l o n gw i t hi n c r e a s i n gu s e a b l ec o m p o n e n t si nd i f f e r e n td o m a i n ,r e t r i e v e s t h ec o m p o n e n ti nt h eh u g eg e n e r a lc o m p o n e n tl i b r a r y ,u s e i sc a nn o tf u l l yt o u n d e r s t a n dt h ec o m p o n e n t , b u to nt h eo t h e rh a n di ti sv e r ye a s yt ou n d e r s t a n dt h e s o f t w a r ec o m p o n e n ti nt h es i n g l ed o m a i n c o n s t r u c t st h es p e c i f i cd o m a i no f c o m p o n e n tl i b r a r y ,b e c a u s et h ec o m p o n e n to n l yi sr e s t r i c t e di nt h es o l es p e c i f i c d o m a i n , t h eq u a n t i t yc a n n o tt o ob eb i g , t h e c o m p o n e n tf a c e ta n dt h et e r ma l s od o e s n o tn e e dt oc o n s i d e rt oe x p a n d m o r e o v e ru s e sa sf a ra sp o s s i b l et h ed o m a i n p r o f e s s i o n a lt e r m n ol o n g e ru s e st h es y n o n y m , e n h a n c ec o m p o n e n ts e a r c he f f i c i e n c y t h ep a p e r sm a i nw o r k 船f o l l o w s : ( 1 ) u n d e re x p l o r a t i o nc o m p o n e n tl i b r a r yr e t r i e v a lm e t h o d ,a u t h o rh a sf o r mt h e f a c e tc l a s s i f i e dp a t t e mo fc o m p o n e n to fw a t e rr e s o u r c e sd o m a i nf r o ms e v e r a lk i n do f t y p i c 脚c o m p o n e n t sc l a s s i f i c a t i o n sp a t t e r n ( 2 ) i nv i e wo fc h a r a c t e r i s t i co ft h ec o m p o n e n tf a c e td e s c r i p t i o n ,u s et r e e m a t c h i n gt h o u g h ta n d r e l a t e dt h e o r i e s ,a n a l y z et h er e t r i e v a lo ff a c e td e s c r i p t i o n - b a s e d i nf i e l do fw a t e rr e s o t l r c e sm a n a g e m e n ta n dc o m p a r ew i t hw h i c hi nf i e l do fg e n e r a l c o m p o n e n tl i b r a r y ( 3 ) t h ep a p e rh a sd e s i g n e da n dr e a l i z e dt h ep r o t o t y p es y s t e mo fc o m p o n e n t s f a c e tr e t r i e v a li nw a t e rr e s o u r c em a n a g e m e n td o m a i n a n di n t r o d u c et h er e a l i z a t i o no f m a i nf u n c t i o nm o d u l ea n dc o m p a r e dt h ee f f i c i e n c ya n dp r o p e r t yo f r e t r i e v a l : ( 4 ) t h ep a p e rs u m m a r i z e dt h em a i nw o r k , a n dp r o p o s e dt h en e x ts t a g ew o r k t h er e s e a r c hg o a la n dt h es i g n i f i c a n c eo ft h i sp a p e rl i ei n :t h r o u g ht h ep r o p o s e d c o m p o n e n tf a c e td e s c r i p t i o na n di t sr e t r i e v a lm e t h o di nw a t e rr e s o u r c e sd o m a i n , e n h a n c e dt h ec o m p o n e n tq u e r yp e r f o r m a n c e ,r e d u c e dt h ec o s to fs o f t w a r er e t l s e s ,a n d a c h i e v e di m p r o v e st h es o f t w a r ep r o d u c tq u a l i t yi ne n d k e y w o r d :s o f t w a r ec o m p o n e n t f a c e td e s c r i p t i o nc o m p o n e n tr e t r i e v a l w a t e rr e s o u r c ed o m a i n i i 河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构件检索方法 第一章绪论 1 1 研究背景及意义 随着计算机及其它新技术的飞速发展,各行业对软件开发的速度和质量以 及成本的要求越来越高。而落后的软件生产方式无法满足迅速增长的计算机软件 需求,从而导致软件开发与维护过程中出现一系列严重问题的现象,六十年代出 现的这个“软件危机”的现象导致了有关软件复用的研究。1 9 6 8 年秋季,n a t o 的科技委员会召集了近5 0 名一流的编程人员、计算机科学家和工业界巨头,讨论 和制定摆脱“软件危机”的对策。在那次会议上m c l l r o y 首次提出了可重用软件 构件库的思想以及形式化软件复用的概念。在其后的三十多年中,软件复用引起 了学术界和工程界广泛的关注。人们进行了许多探索性的、实践性的复用活动。 在软件开发过程中如何缩短软件的研发周期,提高软件的质量,增加可维护性, 降低开发成本,成为一个重要的问题。软件复用被普遍认为是解决这一问题的关 键技术1 1 1 ,而软件复用的关键是能够开发出可以重用的软件构件。软件复用技术 是在面向对象的基础上兴起的,是当前软件工程领域中研究的热点,它通过对已 有软件产品的重用来支持新系统的开发,使得系统开发不必每次都“从零开始”, 可以大大提高软件的开发效率。 软件复用是一个涉及到技术、方法学、管理和文化等多方面的复杂问题。 除了日常隐含发生的对专业知识和经验的复用外,最典型的复用活动表现为借 鉴、理解、修改和集装各种不同抽象层次( 从产品的概念、系统模型和规约到程 序源码甚至目标码) 、不同粒度( 从系统构架、框架、类簇到代码片断) 、不同形 式( 黑盒构造块、生成器、模板、设计模式等) 的可复用软件构件来构造新系统 和实现系统演化的过程。软件复用是提高软件开发生产率和保证软件产品质量的 一条行之有效的途径。经过了几十年的努力与发展,软件复用的思想虽然已日趋 完善与成熟,软件复用的方法却并没有在软件生产中被广泛地系统化与实践化 1 2 | 1 3 1 。软件构件技术被认为是有效提高软件生产率、缩短软件产品交付时间和提 高软件质量的新途径。近年来,构件技术的发展和基于构件的软件开发 ( 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 t c b s d ) 的提出,使得构件库的建立 成为发展的必然趋势,但如何有效地分类构件和准确地检索构件是构建构件库的 两个关键技术问题。 但是随着不同领域的可复用构件的增多,在数量庞大的构件库中检索所需要 的构件以及充分理解构件很困难,对准确检索构件造成了很多不便。使用者在检 索和提取构件时会遇到困难,相应构件库管理员在对构件进行管理和维护时也显 河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构件检索方法 得力不从心。而在单个领域中对软件构件的理解相对来说要简单容易得多,在通 用构件库中,随着新的领域的增加,以及构件数量的不断增加,刻面的分类模式 必须进行扩展才可以满足需要,扩展后的刻面和术语又需要大量的工的工作来维 护。构建特定领域的构件库,构件只限于单一的特定领域,数量不会太大,构件 的刻面和术语也不必考虑扩展。而且尽量使用本领域的专业词汇,不再使用同义 词,大大的提高了构件的查准率。 1 2 国内外研究现状 目前有很多构件的分类和检索方法。w f r a k e s 从构件表示出发分为人工智能 方法、超文本方法和信息科学方法三类。信息科学方法是目前实际复用项目中应 用较为成功的一类。它又可又分为基于受控词汇表( 枚举、刻面) 分类和基于不 受控词汇表( 如关键词) 分类两种形式,其中以枚举、刻面、属性值、关键词和 正文检索几种方法较为常见;另外就是h m i l i 按照复杂度和检索效果的递增将其 分为基于文本的、基于词法描述子的和基于规约的编码和检索方法【4 】。相应的构 件检索方法又可以归结为三类1 5 l :( 1 ) 基于外部索引的检索( 如关键词、刻面、 属性值) ( 2 ) 基于内部静态索引的检索( 基于规约的构件检索) ( 3 ) 基于内部动 态索引的检索( 基于行为的检索) 。1 9 8 7 年,r u b e n p d e t o d i a z 等人在i e e es o f t w a r e 发表了题为 c l a s s i f y i n gs o f t w a r ef o rr e u s a b i l i t y 论文【6 j ,提出了用刻面分类方 法来对可复用软件构件进行分类与组织的思想,具有重大的意义。构件的刻面表 示方法属于图书馆与信息科学方法的范畴,它具有对构件进行多视角的分类描述 的特点,所以它的提出立刻得到了普遍的应用与研究。n a t o 7 1 组织的软件复用 标准以及r e b o o t | 8 】项目中构件的表示方法都是采用了刻面表示方法。青鸟构件 库系统中的构件采用的也是以刻面分类为主、多种分类模式相结合的构件表示方 法1 9 1 。现在国内外仅有一些少量的软件构件库系统,在这些构件库系统中,都给出 了一定的构件分类模式及其相应的检索机制,并且取得了一定的成功。表1 1 中列 出了部分构件库系统的基于刻面表示的构件索引和检索方法。 表1 1 部分构件库系统的构件表示和检索方法 系统 表示和检索构件类型状况 a s s e tl i b r a r y 刻面 f o r t r a n 构件 已部署 r e u s e枚举和刻面a d a 构件 已部署 p r o t e u s属性、刻面等u n i x 工具原型 r e b o o t刻面o o 构件原型 j b c l 关键词、刻面多形态多层次原型 属性、超文本o o 构件原型 2 河海大学硕士研究生毕业论文 基于刻面描述的水资源领域的构什检索方法 构件的刻面描述从最初p r i e t o - - d i a z 提出来的刻面描述方案【l o l 为两个主刻面 开始:“功能”和“环境”,且每个主刻面分别有3 个子刻面( 作用、对象、媒介) 和( 应用领域、系统类型、客户类型) 。目前国内外已有的几种构件系统如表l 都 是采用的刻面描述方法。具体如下:3 c 构件模型【l l j 是在1 9 8 9 年的“r e u s ei n p r a c t i c ew o r k s h o p ”中由一些系统工程领域的专家提出的,它是关于构件的一个 指导性模型。3 c 构件模型的刻面分类方案主要来自该模型描述构件所采用的3 个 特征:概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 。概念用于描述构件的 功能;内容描述构件怎样完成概念所描述的功能,它是概念的细化描述;语境描 述构件与其它构件的关系,这是构件中最复杂的特征描述。r e b o o t 模型是 ( r e u s eb a s e d0 no b j e c t - o d e m e dt e c h n o l o g y ) 是e v e n - a n d r ek r r s s o n 等人在 r e b o o t 项目总结中提出的。r e b o o t 中采用的刻面包括1 1 2 :( 1 ) 抽象 ( a b s t r a c t i o n ) :对构件概念的抽象描述。( 2 ) 操作( o p e r a t i o n ) :对构件所提供的 操作的描述。( 3 ) 操作对象( o p e r a t eo n ) :描述构件操作的对象。( 4 ) 依赖 ( d e p e n d e n c y ) :描述构件与外界的依赖关系。它主要用于对可复用构件进行分 类及检索。北京大学软件工程研究所提出的青鸟构件库中的构件也是采用以刻面 分类为主、多种分类模式相结合的方法对构件进行分类描述。它分为五个刻面 【9 】【1 3 1 :( 1 ) 使用环境( 2 ) 应用领域( 3 ) 功能( 4 ) 层次( 5 ) 表示方法。每个刻面 中的术语按照一定的关系组成术语空间,青鸟构件库中的刻面术语存在一般特 殊和同义词关系,术语的一般、特殊关系形成一个树形结构,越顶层的术语抽象 层次越高。从9 0 年代初开始,分布式对象技术已经成为建立应用框架( a p p l i c a t i o n f r a m e w o r k ) 和软件构件的核心技术,在开发大型分布式应用系统中表现出强大的 生命力,为软件复用提供了极大的方便。2 0 0 2 年8 月,o m g 发布了c o r b a 3 0 。 c o r b a 构件模型 j 4 j ( c o r b ac o m p o n e n tm o d e lc c m ) 是c o r b a 3 0 规范的一项 重要扩充。c c m 中的刻面【1 5 】是根据e x t e n s i o ni n t e r f a c e 模式设计的,和m i c r o s o f t 的c o m 中的接口相似。构件提供的相互独立的命名接口,用于构件与其用户交 互。刻面接口是通过组合来扩展构件的,是用户可显式使用的独立接口,是构件 向客户提供应用功能的主要途径。 近年来,本体论作为共享知识的表达基础已经被广泛应用于信息科学中,例 如软件复用、信息检索、需求获取等。领域本体为领域内的概念以及概念间广泛 存在的各种关系提供了共享的描述,因此可以作为领域内构件描述的知识基础。 r u b e n p f i e t o d i a z 在他的文章【1 6 】中给出了一种基于刻面( f a c e t ) 的本体构建方法, 基本步骤可以分为:抽取领域词汇、抽取关键词汇构造刻面,进而把所有词汇 分类、加入词汇与词汇之间的关系。基于领域的本体一方面可以更加准确、完整 地描述检索要求,另一方面可以为构件的刻面描述提供丰富的语义注解,从而更 好地弥合用户复用需求与构件描述之问的“鸿沟”0 7 1 。文献【1 7 中认为引入本体 河海大学硕士研究生毕业论文 基于刻面描述的水资源领域的构件检索方法 后,构件描述仍然以刻面方案为主,不同的是领域本体将作为构件描述和检索的 知识基础存在。这些知识将有助于揭示构件复用需求以及构件描述的真实含义, 提高构件复用的机会。领域知识主要体现在叶子刻面下的术语空间上,而刻面树 主要体现一系列正交的描述方面的组成关系。将叶子刻面和术语定义为本体中的 概念,而叶子刻面、术语以及其它概念之间的关系也将在本体中定义。 以上所有的刻面描述模型中刻面的定义基本集中在一般构件的几个属性中 如构件的功能、环境或者操作对象等,很少涉及到构件应用到的领域及其领域的 专业方面的属性,在北大青鸟构件库中构件的刻面描述中定义了一个应用领域的 刻面,它描述了构件可能被使用到的应用领域( 及其子领域) 的名称,而不涉及到 构件的专业术语方面的描述。但是构件领域特征的描述又是理解构件和对领域构 件复用的关键,针对这方面存在的问题,根据领域的特征在构件的刻面描述中增 加领域特定的元素。由此用户能更加准确的理解目标构件的信息,提高构件检索 的效率和质量。 1 3 本文的主要研究工作 构件的检索效率与构件库的构件的描述及检索方法密切相关。目前,刻面描 述方法正逐步得到重视与应用,其基本思想是抽取软件构件的某些本质特征属性 也即刻面来作为构件的描述符。每个刻面由一组基本的术语构成,一个构件可以 被每个刻面中的一个或多个术语所刻画。在刻面分类策略中,构件库管理者通过 将刻面与对应的术语相联结,可以在构件间建立复杂的联系。与一般的层次分类 策略相比,刻面分类策略更易修改,更富有弹性,刻面与刻面之间是相互正交的, 对一个刻面修改不会影响到其它的刻面。同时,每个刻面对应一个结构化的术语 空间,避免了一般的关键词分类策略的杂乱无章。当构件库很大时,刻面的术语 空间相应也会变得非常大,用户要迅速找到所需的术语是很困难的。另外在检索 构件时,有时用户很难对构件的各个刻面的术语作出准确的描述,使得查找时选 择的术语可能不够精确。而且不同的用户由于习惯不同,使用的术语也不尽相同, 因而查找时容易出现术语的不匹配。这就要求构件的查询需要一定的模糊匹配能 力,保证构件检索的查准率和查全率。针对这一情况,期望通过对某一领域的构 件的特征来制定刻面描述方案的研究,增加对构件的领域特征的刻面描述使得对 构件的描述更趋精确,用户查询时可以只选用此刻面内的描述术语,达到提高构 件检索的查准率和查全率的目的。 本文通过借鉴不同的通用构件库系统的刻面描述的研究成果,结合水资源管 理领域特征及软件构件的特点,总结并制定出水资源领域下软件构件的刻面描述 模型。具体方案是在刻面的描述中增加了专业方面的刻面及术语来增强对构件的 4 河海大学硕士研究生毕业论文 基于刻面描述的水资源领域的构件检索方法 描述,使得用户更加精确的理解构件。并在此基础上设计并实现了水资源领域的 构件库原型系统,采用本文提供的构件刻面描述方案作为构件分类、检索的依据, 在这样一个特定领域下对构件进行检索,刻面的术语也是领域内的专业词汇,消 除了术语同义词,用户也能更加准确的理解目标构件的信息,提高构件检索的效 率和质量。对构件的刻面检索功能进行了实现,并分析了采用此描述模型进行构 件的分类、检索相性能上的提高。 1 4 论文的组织与结构 本文共分五章,第一章绪论介绍了本文的研究背景和意义,构件检索方法以 及构件的刻面描述模型的国内外的研究现状和本文的主要研究内容。第二章详细 阐述了已有的构件的表示与检索方法,着重分析了基于刻面描述的构件检索,从 构件的描述与分类,以及目前存在的典型的构件描述模型等方面阐述构件的刻面 检索以及刻面检索的原理。第三章结合领域特征通过领域工程及领域分析得到 领域模型然后制定水资源领域的构件的刻面描述方案,以及在此基础上分析构件 的刻面检索过程及其检索匹配算法并且和已有的通用构件库的刻面描述模型进 行分析比较等。第四章水资源领域的构件库的设计和构件刻面检索的实现,构建 了水资源领域的构件库原形系统,并检验构件检索的效率。第五章总结与展望, 总结全文,对于水资源领域的构件刻面描述的工作做出总结,并提出进一步要完 成的工作。 5 河海大学硕士研究生毕业论文 基丁:刻面描述的水资源领域的构件检索方法 第二章构件的表示与检索方法概述 2 1 软件构件技术 九十年代软件开发技术的一个重要进展就是构件化。构件复用是软件复用的 核心问题,构件技术是影响整个软件产业的关键技术之一。分析传统产业的发展, 功能再复杂的产品也可以由大量标准的零部件组装而成。构件技术就是一种类似 于“零部件组装”的集成组装式软件生产方式,把零件、生产线和装配的概念运 用在软件产业中,打破手工作坊式的软件开发模式。 2 1 1 构件的定义 构件是软件的构成元素,具有一定的功能和结构,并符合一定的标准,可以 完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口对外提供服务。 人们对构件的认识是随着时间的推移及其他新技术的发展而逐渐演化的。早在 1 9 6 8 年,在北大西洋公约组织的软件工程会议上提出软件复用的概念的同时, m c l l r o y 提出了软件构件、构件工厂等概念。 在二十世纪七十和八十年代,软件构件主要指可复用的程序代码片段,一般 被称为代码件【l 引。这一时期软件生产考虑的主要问题是如何充分利用已有的源 程序代码、子程序库和类库来提高软件开发的效率。此时的代码件主要有子程序, 程序包、类、模板等形态。 到二十世纪九十年代,软件构件应当包括分析件、设计件、代码件、测试件 等多种类型这一观念被普遍认同。由于软件复用的多样性,又将其分为产品复用 和过程复用 1 9 1 。随之产生了许多新的概念,如设计模式,框架以及软件体系结 构等。但是,对软件构件基本属性的深入探讨却主要是围绕代码件展开,若不特 别注明,所论及的软件构件( 或简称构件) 通常是代码件。 近年来,随着分布式计算、i n t e m e t 等技术以及基于构件的软件开发技术的 发展,对构件的认识又产生了新的变化,出现了若干新的软件构件的定义如: 软件构件是一个具有规范接口和确定的上下文依赖的组装单元。软件构件 能够被独立部署和被第三方组裂2 0 1 。 软件构件是可单独生产、获取、部署的二进制单元,它们之间可以互相作 用构成一个功能系统( f u n c t i o n i n gs y s t e m ) 【2 1 1 。 构件是一个带有契约化接口和显式上下文依赖的组装单元,它能被独立发 布并且可以被第三方组装【2 2 1 。 软件构件是一个可以独立交付的软件单元,封装了设计和实现的内容,并 6 河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构件检索方法 向外提供接口,通过接1 :3 与其它构件组装成更大的整体 2 3 1 。 构件代表一个自包含的实体,能够向其环境输出功能并可通过定义明确的 开放接口从环境输入功斛卅。 构件是一个通过接口向外界提供服务的软件包【2 5 1 。 2 1 2 基于构件的软件开发 软件构件技术的基本思想在于,创建和利用可复用的软件构件来解决应用软 件的开发问题。计算机软件工业的生产模式也应该像生产硬件那样,软件开发也 一样可以用各种构件来组装。构件软件技术是一种社会化的软件开发方法,它使 得开发者可将不同语言,不同供应商开发的构件组合在一起来构造软件,利用它 可以提高开发速度,降低开发成本,增加应用软件的灵活性,降低软件维护费用 等等。基于构件的软件开发与其他开发过程不同之处在于它在分析、设计、实现 等各个阶段中所充实的工作不再是从零开始,在每个阶段开发人员首先要通过构 件库管理系统在已有的构件库中检索需要的构件。基于构件的软件开发需要含有 非常丰富的软件构件的构件库做支持,构件库中应含有大量各种类型的构件,还 要对构件进行分类、描述、检索、维护等此,需要设计软构件库的管理程序来完 成这些工作,软构件库的管理程序主要完成以下几个功能: 构件检索:在软构件中查找到所要求的构件; 构件扩充:加入一个构件到构件库中; 构件删除:删除一个已存在的构件; 构件修改:修改一个已存在的构件。 基于构件的开发将复杂的问题空间映射成了解决构件分析、提取、开发和构 件的集成机制问题。构件的集成机制也称作架构技术,涉及到构件的描述、体系 结构、消息通信等多种技术。构件的分析、提取工作需要对领域具有丰富的经验, 通过不断分析领域内的共性、个性的特征来完成的,其方法主要有面向领域的特 征分析方法等,构件的实现与系统所要采用的体系结构和集成机制有关。形象地 说,结构化的开发方法就是用泥土、草来垒房子,面向对象的开发方法就是用砖 头、钢筋等原料来建房子,基于构件的开发方法就时用混凝土浇筑房子,其中做 好的架子就是所谓的构架,或者成为集成机制。基于构件的开发,一般是先构筑 系统的总体框架,然后构造各个构件,并依次把构件安装到系统中去。面向构件 的开发方法克服了快速原型法需要快速工具支持的不足,取而代之以软件构件化 技术来构造系统。大部分领域中的系统,在功能上有类似之处,因而利用软件构 件技术可以加大软件复用的粒度,提高复用率,大大简化开发过程,提高开发效 率。构件技术的出现极大地满足了多个应用领域的要求,使得各种技术形成的软 河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构什检索方法 构件可以最大程度地进行重用。 2 2 构件检索方法概述 与软件复用和软件构件库相关的主要问题是构件的检索问题,以及如何在 软件构件库中找到合适的构件用于构造目标应用系统。目前关于构件检索方法种 类繁多,在此选择一些具有代表性的方法做一综述。 2 2 1 基于规约描述方法的构件检索 构件的规约说明是对构件的行为特征的形式化说明,它排除了自然语言描述 的二义性和不准确性,并且还可以利用规约说明之间的偏序关系来组织构件库中 的构件存储以提高构件检索的效率。 利用规约匹配来进行构件检索的过程可以简述为:用户首先按照规约的书写 要求将他的查询需求表达成需求规约形式,然后与库中构件的规约进行匹配,将 符合匹配条件的构件作为检索结果反馈给用户。基于规约描述方法的构件检索根 据规约描述的形式不同主要分为基调匹配和功能匹配两种。基调匹配也称为接口 规约匹配,c m u 的z a r e m s k i 在其攻读博士期间对基调匹配做了深入而细致的研 究,在它的文献 2 6 1 中提出基调匹配的两个层次。在第一个层次中,验证两个规 约是匹配的,必须要求它们两者的接口中参数的个数和参数的类型是完全一样 的,这是最严格的一种型构匹配层次。在第二个层次中,验证两个规约是匹配的, 则只要求它们两者的接口中的参数的个数是一样的,而对其参数的类型只要求是 相容的( 如长整型参数和短整型参数就认为是相容的) 。这一层次的接1 2 规约匹配 比上一层次的匹配降低了对接口参数类型匹配的要求。在实践应用中,型构匹配 的查全率较高,但查准率较低。所以它一般被用作构件检索中的前置过滤手段以 达到对构件进行粗选的目的。在它的后端一般要进行更复杂的功能规约匹配以进 一步提高检索的查准率。 对于功能规约匹配,a m z a r e m s k i 在文【2 7 】中做了较系统的阐述。文中提出 从两种视角来看待功能规约,并阐述了在这两种视角下具体的功能规约匹配技 术。文中提出从两种视角来看待规约,第一个视角是将一个功能规约分成前置条 件和后置条件两个部分来描述构件行为,并分别讨论了函数和模块两种情形的匹 配问题。文中定义了各种匹配情况,如在函数情形中定义了精确前后件匹配、嵌 入匹配、嵌入后件匹配、弱后件匹配、精确谓词匹配、通用匹配、专用匹配等多 种匹配情况,以这种检索方法检索时,用户先写出谓词形式,根据谓词匹配的定 义检索构件,当没有精确匹配时,可以利用通用匹配、嵌入匹配等其它定义来检 索相似构件。这种检索方法具有很高的准确率,但是代价太高。 8 河海大学硕士研究生毕业论文基丁:刻面描述的水资源领域的构件检索方法 总之,基于规约描述方法的构件检索技术注重软件构件的行为特征,它能够 完整描述构件的计算语义,检索的准确率比非形式化方法高,能够较好的满足用 户对构件检索查准率和查全率的综合要求。但是,基于规约的检索也给用户带来 了书写规约的负担特别是在构件的功能比较复杂时构件的规约的任务更繁重。 2 2 2 基于人工智能的构件检索 基于人工智能的构件描述方法又可以分为基于构件行为的描述方法、基于知 识库的构件描述方法和基于神经网络的构件描述方法等。 ( 1 ) 基于构件行为采样的构件检索 基于构件行为采样的构件检索技术的基本思想是,利用软件构件的执行能力 来检索构件。检索的实质是通过代码级构件的可执行特征来完成构件问的匹配。 它的检索过程可以简述为1 2 8 】:查询用户给出要查找的构件的一些输入数据以及 对应的所期望的软件输出数据,然后对构件库中的每一构件依次执行输入数据, 得到对应的输出数据,如果输入输出数据相同则该构件被认为是用户所要查询的 构件,记录并将其反馈给用户。 目前基于行为采样的构件检索方法主要应用于数学函、符号运算函数等专业 性比较强容易进行采样的构件库中,因为基于构件行为采样的构件匹配方法只适 用于代码级构件,而且匹配的基础是构件必须可执行。要实现基于构件行为采样 的检索方法中的复杂匹配还需要一个开放式的行为采样脚本语言的实现平台,很 难实现这样的一个平台。 ( 2 ) 基于知识的构件检索 这类检索技术所基于的构件描述方法是对软件构件的自然语言描述进行一 些词法、句法和语义的分析,并用一个知识库来存放应用领域以及自然语言本身 的语义信息。基于知识的构件检索的过程可以简述为:检索时根据用户提出的各 种要求,生成系统内部的提问形式,启动推理机求出结果,以用户晚读的形式显 示。常用的有语义网和框架描述形式1 2 9 ,如m u r r a yw o o d 等人应用概念依赖模 型,采用框架形式,描述和检索构件,不过这种方法需要相当丰富的框架。b e r t r a n d i b r a h i m 等人开发的r o s a 系统,通过对软件构件的自然语言描述进行语法、句 法分析来确定软件构件的语义,再用同样的方法处理用户请求信息进行匹配。 基于知识的构件检索方法比基于关键词的检索方法准确、有效。但是知识库 也是需要手工来实现,因此代价也相当高。 2 2 3 基于信息科学的构件检索 信息科学方法是软件复用项目中应用较为成功的一类,并且以枚举、刻面、 9 河海大学硕士研究生毕业论文基于刻面摇述的水资源领域的构件检索方法 属性值、关键词和正文检索几种方法较为常见。 基于信息科学的构件检索方法一般是由一组关键词( 也叫术语) 来描述一个 构件c k ( 这些术语一般是从构件c k 的说明手册中抽取出来的) 。用户在进行构件检 索时,一般先输入与要查找的构件有关的若干个关键词,将其记为q 。构件检索 系统将q 与构件库中每一个构件的描述进行匹配,每一次匹配返回一个数值,它 表示两者之间的匹配程度,一般称为相似度。最后,检索系统将匹配相似度大于 一定值的所有构件,作为本次检索的结果集合反馈给查询用户。 属性值检索法根据一组固定的属性和对应的值来描述。即根据( 属性,值) 构成分类中子集合中元素的满足条件。检索时复用者给出关心的属性的取值,进 行匹配检索。由于属性值可以包含任意的构件的属性,也就是具有无限性、随意 性、模糊性,所以这样给构件检索带来很大的不便。 关键词检索法是用一组与之相关的关键词编目,即每一个关键词构成分类中 子集合中元素的满足条件。检索时复用者给出描述所需构件的关键词,通过关键 词匹配查找满足需求的构件。一般认为关键词的取值是不受限制的,用来描述构 件的关键词可以任意选取,即用户用于查询的关键词是不受控的词汇。 枚举法是将一个被关注的领域划分为不相交的子领域,依次构成层次结构。 即根据关注的领域划分构成分类中子集合中元素的满足条件。枚举分类法的特点 是将受关注的领域分割成若干个严格不相交的子集,而这些子集的并又要正好等 于全集,如此层层递归形成树状结构,这样结构清晰,容易理解和使用,但是一 个部分的概念模糊可能让该部分适用于配置中的多个位置难以定位。 刻面法是由一组描述构件本质特征的刻面所组成,每个刻面从不同的视角对 构件库中的构件进行精确的分类,刻面( f a c e t ) 是一个单词或短语的固定集合,用 于描述构件的某个方面或视角( v i e w p o i n t ) 。每个刻面具有一组术语,术语之间有 类层次关系和同义词关系而形成结构化的术语空间。不同的刻面( 刻面,术语) 构成分类中子集合中元素的满足条件。构件的描述术语仅限在给定的刻面之中选 取,在术语空间中游历可以帮助复用者理解相关领域。 2 2 4 构件检索方法的比较 从上述几种比较常用的构件检索方法中可以看出,每种方法都有它具体针对 的构件描述及表示形式,而构件的刻面描述及其检索方法是一种正逐步得到重视 与应用的构件表示方法,它能够表达丰富的构件信息,尤其为入关注,成为近年 来构件库系统研究的热点。尤其是针对特定领域的构件库系统,如何改进和创新 适合特定领域分类检索技术是必须要考虑的问题。 基于规约描述方法的构件检索技术注重软件构件的行为特征,它能够完整描 1 0 河海大学硕士研究生毕业论文基丁= 刻面描述的水资源领域的构件检索方法 述构件的计算语义,检索的准确率比非形式化方法高,能够较好的满足用户对构 件检索查准率和查全率的综合要求。但是基于规约的检索也给用户带来了书写规 约的负担特别是在构件的功能比较复杂时构件的规约的任务更繁重。另外构件的 规约语义表达能力的局限性和语义表达形式的复杂性,构件呈现越来越多的行为 方式,很难用构件的形式化描述语言对构件的行为进行形式化描述。 基于人工智能的构件描述方法虽然不需要人工建立和维护刻面描述的术语 空间,但是要实现构件的自动分类要精确描述构件很困难。而且有些人工智能方 法如基于行为采样的构件检索只适用于代码级的构件,匹配算法的基础是构件的 可执行性,所以需要一个脚本语言的实现平台,这是一项很艰巨、复杂的工程。 在信息科学的构件检索中刻面描述是由术语或刻面、刻面的值的集合组成的 描述,与属性值方法相似,但刻面值的选择是受限制的,这样消除了决定最佳术 语或属性值的模糊性。关键词检索虽然每个构件有一组相关的关键词编目,但是 关键词的取值不受限制,用户在查找构件时关键词的选择没有目的性,而且一般 关键词不像刻面和术语之间存在一个层次的语义关系,因此关键词缺少上下文语 境导致不够精确的描述检索条件,使得构件的查询效率不高。枚举法常是被用在 一个领域划分较清楚的情况下,但是它的方法太过严格,对构件的描述的词语很 难进行改变,而且表示的关系也受限制,很难建立合用的枚举结构,且没有刻面 描述法那么易于修改和维护。 刻面描述方法可以较大地提高检索效率,而且有助于复用者理解构件和目标 领域,所以构件的刻面表示以及在此基础上的构件检索技术已得到软件复用界的 重视与应用【3 0 l 。刻面描述与其它描述方法相比较具有以下几个优点: : ( 1 ) 从构件的描述能力来看,构件的刻面描述对构件进行了多方面多视角的 分类描述,每个刻面都表示了构件的不同方面的属性,每个刻面下面包含与此刻 面相关的所有术语集合,因此有助于构件的分类和存储。 ( 2 ) 从用户理解构件的角度来看,每个构件给定的刻面与术语是构件属性的 一个子集,而且是复用者查询构件时最感兴趣的构件属性,每个构件的刻面和术 语都要事先定义好,用户可以从这些刻面及术语中选取作为检索词来检索构件并 充分理解构件。 ( 3 ) 从构件在库中的维护管理来看,构件的刻面及术语是根据构件的描述模 型来给出的,管理员就根据构件的刻面的描述来分类构件然后存储构件,并且构 件的术语空间易于修改和维护,表现出较强的描述能力和灵活的扩展机制。 ( 4 ) 从构件检索的效果来看,用户在检索时,限制在只从给定的刻面及术语 中选择术语或子刻面作为检索词,即用户只能使用“合法”的术语,因此节省了 很多由于用户检索词不明确带来的效率问题且提高了构件的检索质量。 正是因为刻面描述具有以上介绍的特征和优点,n a t 0 1 7 1 、r e b o o t 8 】等都 河海大学硕士研究生毕业论文基于刻面描述的水资源领域的构件检索方法 提出了各自的的可复用软件构件的基于刻面描述模型。青鸟构件库 9 1 也是采用以 刻面分类为主、多种分类模式相结合的方法对构件进行描述。在王渊峰博士论文 3 q 中提出的构件的描述方法也是采用刻面描述方法。针对构件的刻面描述的本 质特征并能丰富表达构件的属性的特点,应该考虑选择刻面描述来作为构件库中 构件的描述与分类,提高构件的检索效率与质量。 2 3 基于刻面描述的构件检索 对构件进行检索,首先要了解构件库中的构件描述模型,然后构件库中的构 件依据这些描述模型来进行分类存储,用户在查询时就是根据构件模型中描述的 构件的属性来检索需要的构件。 2 3 1 构件的刻面描述与分类 构件的描述试图以一种综合的方式来描述构件,使得构件易于为用户所理 解,易于在库中被有效、高效地分类、存储和检索。本质上构件的描述分类模型 就是构件库的数据模型。这样的数据模型需要描述所有关于构件的必要信息:所 有对用户查找、理解、选择、适应性修改及使用构件有帮助的信息;所有对构件 库管理者分类和管理构件及构件间关系有帮助的信息;另外还有其它属性如生产 者、版本、使用情况等。 刻面( f a c e t ) 这个术语最早使用是在5 0 年代,分别出现在r a n g a n a t h a n 的 图书馆分类系统中和g u t t m a n 的一项社会调查中。但是那时的刻面概念还比较模 糊,刻面之间也存在着语义上的交迭等诸多不合理因素【3 2 1 。刻面分类方法是由 一组描述构件本质特征的刻面所组成,每个刻面从不同的视角对构件库中的构件 进行精确的分类,刻面(

温馨提示

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

评论

0/150

提交评论