(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf_第1页
(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf_第2页
(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf_第3页
(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf_第4页
(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机科学与技术专业论文)基于本体的构件检索的研究.pdf.pdf 免费下载

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

文档简介

摘要 软件复用是软件工作者探讨发现的一条解决“软件危机”的新的软件开发模式,是 提高软件生产效率和软件质量的种切实可行的途径。它被认为是软件开发真正走向产 业化和工程化的希望。 基于构件的软件开发技术( 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 ) 是实 行软件复用的有效途径。软件构件技术是实现软件复用的核心技术。构件技术的出现改 变了传统的开发模式,使得软件开发者摆脱“行行写代码”的低效的编程方式成为可 能。但只有当构件达到一定的数量,才能有效的支持软件复用,更好的满足用户的需求, 使软件丌发者真正摆脱“一切从零开始 的软件开发模式。但当构件库中存在大量的构 件时,如何找到满足用户功能需求的构件,也是构件库设计者在设计阶段要考虑的关键 问题之一。 随着构件数量的不断增加,以及用户对查询质量要求的不断提高,传统的构件描述 和检索技术已经很难满足高质量的构件检索任务,因此构件检索的效率受到了一定的影 晌,不能很好的实现资源共享和软件复用的目的。 针对上述问题,本文构建了绘图领域本体,将绘图领域本体作为该领域知识共享和 重用的基础。并将异构的、分散的绘图构件组织到绘图构件库中,设计了一个基于本体 的构件库检索模型,为绘图领域构件提供了一个用户检索、评估、提取的支撑环境。 针对构件检索效率不高的问题,本构件库检索系统通过与用户的交互以及本体规则 库的修正,进一步完整和精确用户的检索条件,提高构件检索的查准率和查全率。 关键词:软件复用,软件构件,本体,构件检索,构件库 r e s e a r c ho nc o m p o n e n tr e t r i e v a lb a s e do no n t o l o g y l i ul i n g ( c o m p u t e rs c i e n c ea n dt e c h n o l o g y ) d i r e c t e db yp r o f z h ul i a n z h a n g a b s t r a c t s o f t w a r er e u s ei san e ws o f t w a r ed e v e l o p m e n tm o d e lt h a tt h es o f t w a r ew o r k e r sd i s c o v e r t os o l u t e ”s o f t w a r ec r i s i s ”,w h i c hi sap r a c t i c a la n df e a s i b l ew a yo fi m p r o v i n gs o f t w a r e p r o d u c t i o ne f f i c i e n c ya n ds o f t w a r eq u a l i t y i ti sc o n s i d e r e dt o b et h eh o p et h a ts o f t w a r e d e v e l o p m e n tt r u l yt r e n d si n d u s t r i a l i z a t i o na n de n g i n e e r i n g t h es o f t w a r ed e v e l o p m e n tt e c h n o l o g yw h i c hb a s e do nc o m p o n e n t ( c o m p o n e n t - b a s e d s o f t w a r ed e v e l o p m e n t ,c b s d ) i sa ne f f e c t i v ep a t ho fi m p l e m e n t i n gs o f t w a r er e u s e ,w h i l e s o f t w a r ec o m p o n e n tt e c h n o l o g yi sac o r et e c h n o l o g yo fs o f t w a r er e u s e c o m p o n e n t t e c h n o l o g y sa p p e a r a n c eh a sc h a n g e dt h et r a d i t i o n a ld e v e l o p m e n tp a t t e m ,w h i c he n a b l e s s o f t w a r ed e v e l o p e r st og e tr i do fi n e f f i c i e n tp r o g r a m m i n gw a yo f ”w r i t i n gc o d el i n eb yl i n e ” b u to n l yw h e nt h ec o m p o n e n ta c h i e v e sc e r t a i nq u a n t i t yc a l li te f f e c t i v e l ys u p p o r ts o f t w a r e r e u s e ,a n db e t t e rm e e tt h en e e d so fu s e r s s ot h a ts o f t w a r ed e v e l o p e r sc a n r e a l l yg e tr i do f t h e s o f t w a r ed e v e l o p m e n tm o d e lo f ”e v e r y t h i n gf r o ms c r a t c h ”h o w e v e r , w h e nt h e r ei sal a r g e n u m b e ro fc o m p o n e n t si nt h ec o m p o n e n tl i b r a r y , h o wt of i n dt h ec o m p o n e n t st om e e tu s e r s f u n c t i o n a l i t yr e q u i r e m e n t sb e c o m e s o n eo ft h ek e yi s s u e s ,w h i c hc o m p o n e n tl i b r a r yd e s i g n e r s m u s tc o n s i d e ri nt h ed e s i g ns t a g e w i t ht h ei n c r e a s i n gn u m b e ro fc o m p o n e n t s ,a sw e l la st h eu s e r sr e q u i r i n gt h ec o n t i n u o u s i m p r o v e m e n to ft h ei n q u i r yq u a l i t y , t h e t r a d i t i o n a lc o m p o n e n td e s c r i p t i o na n dr e t r i e v a l t e c h n o l o g yh a sb e e nd i f f i c u l tt om e e tt h eh i g h - q u a l i t yc o m p o n e n tr e t r i e v a lt a s k s ,t h e r e f o r et h e e f f i c i e n c yo fc o m p o n e n tr e t r i e v a lw a sa f f e c t e dt os o m ee x t e n t , w h i c hc a n n o tb e t t e rr e a l i z et h e p u r p o s e so f r e s o u r c es h a r i n ga n ds o f t w a r er e u s e i nr e s p o n s et oa b o v eq u e s t i o n s ,t h i sa r t i c l ec o n s t r u c t st h ed r a w i n go n t o l o g y , a n dr e g a r d s t h ed r a w i n go n t o l o g ya st h eb a s eo fs h a r i n ga n dr e u s i n gt h i sd o m a i nk n o w l e d g e b e s i d e st h i s , i to r g a n i z e si s o m e r i s m ,t h ed i s p e r s i o nc a r t o g r a p h yc o m p o n e n ts t r u c t u r ei nt h ec a r t o g r a p h y c o m p o n e n tl i b r a r y , a l s od e s i g n so n el i b r a r yr e t r i e v a lm o d e lb a s e do no n t o l o g yc o m p o n e n t , a n dp r o v i d e st h eu s e rw i t hr e t r i e v a l ,- t h ea p p r a i s a l ,t h ee x t r a c t i o ns u p p o r te n v i r o n m e n tf o rt h e c a r t o g r a p h yd o m a i nc o m p o n e n t f a c i n gt h ep r o b l e mo fc o m p o n e n tr e t r i e v a le f f i c i e n c yb e i n gn o th i g h ,t h i sc o m p o n e n t l i b r a r yr e t r i e v a ls y s t e mf u r t h e rc o m p l e t e sa n da c c u r a t e sa u s e r sr e t r i e v a lc o n d i t i o n ,i m p r o v e s t h ec o m p o n e n tr e t r i e v a lp r e c i s i o na n dr e c a l lr a t et h r o u g ht h ei n t e r a c t i o nw i t ht h eu s e ra sw e l l a st h er e v i s i o nt oo n t o l o g yr u l eb a s e k e yw o r d s :s o f t w a r er e u s e ,s o f t w a r ec o m p o n e n t ,o n t o l o g y , c o m p o n e n tr e t r i e v a l , c o m p o n e n tl i b r a r y 关于学位论文的独创性声明 本人郑重声明:所呈交的论文是本人在指导教师指导下独立进行研究工作所取得的 成果,论文中有关资料和数据是实事求是的。尽我所知,除文中已经加以标注和致谢外, 本论文不包含其他人已经发表或撰写的研究成果,也不包含本人或他人为获得中国石油 大学( 华东) 或其它教育机构的学位或学历证书而使用过的材料。与我一同工作的同志 对研究所做的任何贡献均已在论文中作出了明确的说明。 若有不实之处,本人愿意承担相关法律责任。 学位论文作者签名: 日期:2 j di o 年f 月劫e l 学位论文使用授权书 本人完全同意中国石油大学( 华东) 有权使用本学位论文( 包括但不限于其印 刷版和电子舨) ,使用方式包括但不限于:保留学位论文,按规定向国家有关部门( 机 构) 送交学位论文,以学术交流为目的赠送和交换学位论文,允许学位论文被查阅、 借阅和复印,将学位论文的全部或部分内容编入有关数据库进行检索,采用影印、 缩印或其他复制手段保存学位论文。 保密学位论文在解密后的使用授权同上。 学位论文作者 指导教师签名 日期:加f o 年箩月弓de 1 日期:加t o 年5 ,月3 0 a 中国油人学( 华东) 硕上学位论文 1 1 课题背景及意义 第一章绪论 随着人们对软件需求的不断提高,传统的软件开发模式已经不能满足需求。软件工 作者开始探索一条新的途径来解决软件开发与用户需求迅速提高的矛盾。为了提高软件 的丌发效率以及软件的质量,软件复用作为一条切实可行的途径被软件工作者所接受。 软件复用被认为是软件开发真正走向产业化和工程化的希望。其中,软件构件技术是实 现软件复用的关键技术。为了更好的实现软件复用,必须存在大量构件资源,只有当构 件达到一定的数量时,才能支持有效的软件复用。但当构件库中存在大量的构件时,如 何从大量构件中找到符合复用者需求的构件,也是构件库设计者在设计阶段要考虑的问 题,这也是实现软件复用的一个关键问题。所以,对构件库进行良好的组织和管理,是 解决上述问题的基础。 由于构件数量的不断增多,构件库组织和管理的不完善,为构件库的管理带来了诸 多不便。找到一种合理的构件库组织方式和构件库的检索机制成了当前迫切需要解决的 问题。目前很多组织和研究机构对此做了大量的研究和探索,并提出了很多不同的构件 描述和检索的方法,这些方法主要分为5 种i i 】,分别是传统的基于关键字和字符串查找、 行为匹配、型构匹配、基于刻面的分类和检索、基于本体的构件描述和检索。这些方法 都各有长处,但也存在一些不足。 传统的基于关键字和字符串的匹配方式、型构匹配或基于刻面的分类和检索方式由 于缺少语义信息,都不能完整精确的表达复用者的复用需求,从而导致构件检索的查询 效率低下,构件的查准率和查全率不高。针对这些问题,许多学者将本体论的知识引入 到构件检索的研究中。基于本体的构件检索在检索时能考虑到复用者查询条件的语义以 及相关的领域知识,有比较高的查全率和查准率。但通过当前的一些研究工作看,基于 本体的构件检索虽然在构件的检索效率,以及构件的查全率和查准率都有了一定程度的 提高,但仍存在着一定的问题,即复用者用自己所熟悉的自然语言表达的复用需求与构 件的规范语义描述之间的差异。 本课题就是在这一背景下提出的。针对上述问题,本文构建了绘图领域本体,将绘 图领域本体作为该领域知识共享和重用的基础。并将异构的、分散的绘图构件组织到绘 图构件库中,建立统一的绘图构件描述方式,为绘图领域知识的共享和重用提供一定的 第一章绪论 规范性准则。并设计一个绘图构件库检索模型,通过与用户的交互以及本体规则库的修 正,进一步完整和精确用户的检索条件。本体规则库的修正使得复用者的查询条件带有 一定的语义信息,使得构件检索条件与构件库中的规范的语义描述更好的进行匹配,提 高构件检索的查全率和查准率。在修正检索条件的过程,为了更好的理解用户的需求, 加入了与用户交互的功能。 1 2 国内外研究现状 1 2 1 构件库研究现状 随着对软件构件技术研究的不断深入,近些年来,国内外各种构件库系统层出不穷。 r e b o o t 2 1 ( r e u s eb a s e do n0 b j e c t - o r i e n t e dt e c h n i q u e s ) 是一个实际的构件库系统,是 国际上比较著名的系统。该系统提供了构件库管理常用的功能,如匹配构件、认证构件、 插入新构件、提取构件、对复用构件进行评价等功能,包含可储存构件的数据库。其中 采用刻面分类策略对构件进行分类,r e b o o t 定义了四个刻面:抽象、操作、操作于、 依赖。由于该系统采用的刻面分类模式主要对象是粒度较小的源代码级别的构件,所以 不能描述粒度较大、结构较复杂的构件( 如模式、框架) 。 n a t o t m ( n o r t ha t l a n t i ct r e a t yo r g a n i z a t i o n ,北大西洋公约组织) 制定了一组软件复用 的标准,并提出了一种刻面分类描述模式,该刻面分类模式不要求描述构件的刻面必须 彼此独立或者同时适用于构件库中储存的所有的构件。所以描述构件时,只需要描述适 用该构件的刻面即可,未必用所有的刻面来描述。 复用库可互操作性组织r i g ( r e u s el i b r a r yi n t e r o p e r a b i l i t yg r o u p ) 贝, l j 提出软件构件库 问共享软件构件以及进行可互操作性的问题,它提供了一个标准的数据模型,各个构件 库可以以它为中介来传递各自数据模型中的数据。 美国军方提供支持的s t a r s 4 1 ( s o f t w a r et e c h n o l o g yf o ra d a p t a b l er e l i a b l es y s t e m s ) 项目在1 9 9 2 年提出了开放体系结构的构件框架a l o a f ( a s s e tl 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 ) 。该项目体现了s t a r s 对可复用构件库系统的认识,考虑了在构件库之间 共享资源和实现无缝互操作的问题。a l o a f 文档中包括构件库框架的参考模型、在参 考模型上支持构件交换和构件描述的框架服务规约以及该参考模型的一个实例。这是目 前最具有代表性的架构。 此外,国内对构件库的研究也有了一定的研究成果。其中,北京大学的青鸟工程在 “九五期间开发了青鸟构件库管理系统j b c l m s l 5 1 ( j a d eb i r dc o m p o n e n tl i b r a r y 2 中国石油大学( 华东) 硕 :学位论文 s y s t e m ) ,是我国软件复用及相关技术研究工作水平的代表。它是一个基于i n t e m e t 的软 件构件库管理系统,包括构件库、构架库以及相应的构件库管理工具。青鸟构件库管理 系统是在以前相应的构件模型的基础上,建立了青鸟构件库数据模型,开发了“基于构 件一构架模式的软件复用支持系统 ,支持对构件的描述( 使用青鸟构件描述语言 j b c d l ) 、分类、存储、管理、检索和组装。 1 2 2 构件库中构件检索的研究现状 构件的检索方法与构件库中构件的描述方式密切相关,为了提高构件的检索效率, 需要同时考虑构件描述方式和检索方式。因此,构件的表示与检索是构件库研究的关键 技术。针对各种不同的构件描述形式,相应的检索方法也被研究人员提出来。w f r a k e s 【6 从构件的表示出发,将现有方法分为超文本方法、人工智能方法和信息科学方法3 类。 w f r a k e s ,h m i l i i7 j 研究现有的构件分类与检索方法,按照分类和检索的复杂度和检索效 果的递增,将其分为基于文本的、基于词法描述子的、基于规约的编码和检索3 类。目 前很多组织和研究机构对此做了大量的探索和研究,并提出了很多不同的构件描述和检 索的方法,这些方法主要分为5 类1 1 1 ,分别是基于词法描述符的构件检索、基于行为采样 的构件检索、基于规约的构件检索( 型构匹配) 、基于刻面的构件描述和检索和基于语 义的构件描述和检索。其中,基于词法描述符的构件检索又可以细化为关键词、枚举和 属性值等描述和检索方式,基于刻面的分类和检索方法是目前最常用的软件构件分类和 检索方法。刻面分类方法是i 主t p r i e t o d i a z 研等人首次提出的,并将刻面分类方法应用于 g t e 公司的复用项目。m a g w o l f d i e t e rm e r e 9 j 将神经网络的方法应用到构件检索中,提 出将构件库中的构件在逻辑上组成一个自组织的神经网络思想。还有许多学者将关联传 动【1 0 】、模糊数掣1 1 】等方法应用于组件检索,还有学者提出基于熵的构件库动态存储方法, 改善构件查询准确性。 目前,国内外对基于本体的软构件语义检索进行了一些研究工作。贾成【i2 】等人提出 了用于程序挖掘的分布式构件库系统框架结构,并将构件语义网络应用到该系统框架之 中,并实现一个原型系统,该系统能够实现基于语义导航的构件检索。h a i n i n gy a o 探讨 了如何用语义网技术来对软构件进行检索和注册,提出了基于语义网的软构件语义检索 框架。范辉存从本体元建模的角度,提出了一种软构件注册的本体元模型,旨在从概念 上综合已有的各种注册模型,从而实现多种基于互联网的软构件注册技术的互操作。周 拥峰提出了基于本体技术的构件信息集成层次架构,使用本体技术来描述构件信息,为构 3 第一章绪论 件的准确、全面、方便的语义检索提供了支持,使用这种架构,能够提高构件的检索效 率,更好地满足客户的需求。祁华成【3 1 等构造了一个构件行为本体,并根据构件行为本 体提出了一种行为驱动的构件交互适配模型。彭鑫等在分析遗产系统中的框架和构件 在系统中的存储方式基础上,提出一种领域框架和构件的提取方法。 1 3 论文采用的技术路线及研究内容、创新点 1 3 1 研究目标及采用的技术路线 通过当前的一些研究工作看,基于本体的构件检索虽然在构件的检索效率,以及构 件的查全率和查准率都有了一定程度的提高,但仍存在着一定的问题,即复用者用自己 所熟悉的自然语言表达的复用需求与构件的规范语义描述之间的差异。 本课题的研究目的是设计一个比较合理的构件检索模型,通过与用户的交互以及本 体规则库的修正,进一步完整和精确用户的检索条件,使得复用者的查询条件与构件库 中的规范的语义描述更好的进行匹配,提高构件检索的查准率和查全率。 为了达到这一目标,论文采用下述技术路线:本文选取计算机绘图领域为研究对象, 为了构建绘图领域本体,首先应对该领域进行深入的研究,为下一步构建绘图领域本体 做准备。熟悉绘图领域内的概念、术语及其概念间的相互关系后,构建领域本体。利用 绘图领域本体关系构建本体规则库,为基于语义的构件检索系统的构建提供依据。收集 绘图构件,组织构件入库,并对绘图领域构件进行描述,最后设计并实现构件库检索系 统。如图1 1 是本文工作流程的示意图。 图1 - 1 论文工作流程图 f i g1 - 1f l o wd i a g r a mo ft h e s i sw o r k 4 中国石油人学( 华东) 硕士学位论文 1 3 2 论文研究内容和创新点 本课题主要的研究内容有: l 、构件的分类模式及构件检索相关理论的研究 分析比较目前存在的几种有代表性的构件描述和检索方法,加深对构件检索方法的 认识,总结各种构件描述和检索方法的优缺点。 2 、选定一个研究领域,构造并完善该领域本体 对计算机绘图领域做了一定的研究,熟悉绘图领域的概念、术语以及概念间的相互 关系,并利用本体编译工具p r o t 6 9 6 构建了一个计算机绘图领域本体。 3 、设计并实现基于本体的绘图领域构件库检索系统 在设计构件库检索系统时,使用构建的领域本体作为知识共享的基础,对用户输入的 检索条件使用本体规则库中的信息进行语义的扩展,并在语义扩展过程中引入用户与系 统问的交互。引入交互能力的主要目的是通过交互不断地收集并校j 下用户的检索要求, 使检索条件更完整、更精确的表达用户真实的需求。 论文研究工作的主要创新点表现在: 1 、绘图领域本体的构造:构造绘图领域本体,利用绘图领域本体关系构建本体规 则库,为基于语义的构件检索系统的构建提供依据。 2 、绘图领域构件库的构建:将孤立的、异构的绘图构件组织在一起,建立统一的 绘图构件描述方式,为绘图领域构件提供一个可以被潜在的用户检索、评估、提取的支 撑环境。 3 、实现了基于本体的构件库检索系统:使用本体规则库中的信息对复用者的检索 条件进行语义上的扩展,并在语义扩展过程中引入与用户之间的交互,在一定程度上实 现构件的智能查询。 1 4 论文的组织结构 本文共分为五章,各章内容及组织如下: 第一章主要介绍课题的研究背景及意义。综述当前软件构件技术中构件库的研究现 状,简要分析在当前的构件检索中,构件组织和检索存在的不足。最后给出论文组织结 构; 第二章,简述软件复用及软件构件技术相关理论和概念,阐述了软件构件的分类, 软件构件技术的主要研究内容等,并对构件分类和检索的不同方法进行了系统的介绍和 5 第一章绪论 比较。 第三章,首先介绍了本体的基本概念,包括本体的定义,组成,构造方法等,并介 绍了本体的演化和语义推理过程。 第四章,本章主要实现了一个基于本体的绘图构件库检索系统。介绍了绘图领域本 体的构建,构件库检索系统的功能模块,并简要说明了基于本体的构件库检索实现的步 骤和算法描述。通过建立的绘图构件库管理系统,可实现系统与用户的交互,并通过本 体规则库的修j 下,进一步完整和精确用户的检索条件,使得复用者的检索条件与构件库 中的规范的语义描述信息更好的进行匹配,提高构件检索的查准率。并给出部分实验效 果演示,最后对实验结果进行了总结。 最后,对论文的内容作了总结,并指出今后的工作重点和研究方向。 6 中国石油人学( 华东) 硕上学位论文 第二章软件复用及软件构件技术 二十世纪6 0 年代末开始,计算机软件资源的作用得到了普遍的重视,各种大型的、 复杂的计算机软件系统陆续问世。但是,随着应用软件系统规模的不断扩大以及复杂性 的不断增加,在软件开发时仍采用“从零开始的模式 ,开发耗费的人力、物力和运行 时所占有的硬件资源和运算时间都大幅度的增加了,但软件系统的质量( 可靠性和可维 护性等指标) 却明显降低了,软件业爆发了一场“软件危机”。软件危机的严重影响,迫 使软件工作者不断研究和探索新的软件开发模式来解决软件开发效率低下不能满足用 户需求的矛盾。面向对象的概念的提出和理论技术的不断发展和完善,为缓解软件危机 提供了一条有效的技术途径,其中一个重要原因在于面向对象的思想为软件复用提供了 有力支持1 1 5 , 1 6 j 。 软件复用是一种重复使用软件资产或过程的软件开发方法【1 7 】,软件复用思想的提出 以及软件复用技术的发展,将彻底打破“一行行编码”的软件开发模式,为软件开发走 向产业化和工业化提供了可能,软件复用技术对软件界乃至整个计算机技术的发展都将 有着比较深远的历史和现实意义【1 3 】。 软件构件技术是实现软件复用的核心技术。软件构件技术是以面向对象技术为基 础,并更好的发展了面向对象技术。 2 1 软件复用的基本理论 2 1 1 软件复用的定义 软件复用是使用现有的软件资产来实现或更新软件系统的过程。早期的软件复用主 要针对代码。随着产业界的成熟,复用发生了变化。可复用的资产不仅仅包括代码,软 件生命周期中的任何产物都可以被复用,如可行性分析报告、需求定义、分析模型、设 计模型、算法、测试用例、文档和许多其它软件过程产品都可以被复用。 2 1 2 软件复用的分类 软件复用的分类方法很多,可以根据复用对象、复用方法、复用范围和应用等不同 的标准对软件复用进行分类。 依据复用的对象和复用方法的不同,可以将其分为产品复用和过程复用。 1 ) 产品复用,又称为组合式复用,是指通过构件的集成或者组装复用已存在的软件 7 第_ 二章软件复用及软件构件技术 构件实现所需功能,从而构造出新的软件应用系统。产品复用是目前现实的、主流的复 用途径。 2 ) 过程复用,又称为生成式复用,是指采用自动或者半自动技术生成所需的软件应 用系统,应用生成器、程序变换器都是过程复用的例子。过程复用的突出特点是复用效 率一般比较高,但由于过程复用依赖软件自动化技术的研究和发展,实现时一般比较困 难,目前还只适用于一些特殊的应用领域。过程复用研究重点是如何形式化的表示特定 领域的规格说明语言、系统处理过程以及元生成器等。 按照软件复用的应用领域范围的不同,可以将复用分为:横向复用和纵向复用。 1 ) 横向复用指的是复用不同应用领域中的软件元素,如人机界面构件、数据结构、 分类算法等。 2 ) 纵向复用指的是在一类具有较多公共性的应用领域之间进行的软件制品的复用。 由于在两个截然不同的应用领域之间实现软件复用是非常困难的,潜力不大,正因为如 此纵向复用备受关注,并成为软件复用技术的真正所在。 依据对可复用信息进行复用的方式的不同,可以将其分为:黑盒复用和白盒复用。 1 1 黑盒( b l a c k - b o x ) 复用是指对已经存在的软件资源完全满足用户的需求,不需要作 任何修改,就可以直接进行复用。黑盒复用恰好能满足使用者的需求,是一种理想的复 用方式。 2 ) 白盒( w h i t e b o x ) 复用是指已经存在的构件只能满足使用者的部分需求,这就需要 用户根据需求对构件进行适当的修改才能使用。在大部分的复用过程中,对构件进行适 当的修改是必需的。 2 1 3 软件复用技术的优势 采用软件复用技术有以下几个优点: 1 ) 提高了软件的生产率,减少了软件开发时所需的时间和费用; 2 ) 在一定程度上提高了软件质量,因为可复用构件经过了高度的优化,使得复用构 件丌发出来的软件系统可靠性高; 3 ) 软件开发风险降低; 4 ) 简化了软件开发的流程,使得软件开发易于管理; 5 ) 减少系统的维护代价,降低了维护的工作量和费用; 6 ) 共享有关关键系统的知识,便于学习系统结构和建立良好的系统,促进软件开发 8 中国石油人学( 华东) 硕一 :学位论文 过程的标准化: 2 1 4 实现软件复用的困难 虽然软件复用的思想已经被软件工作者普遍接受,但软件复用在大型的、复杂的应 用系统丌发实践中没有得到广泛应用。实现软件复用必须具备三个基本条件:首先必须 存在可被复用的对象,其次所复用的对象必须能满足功能需求,即复用对象必须是有用 的,第三复用者需要了解被复用对象如何使用。 软件复用技术没有得到广泛应用的原因有很多,归纳起来主要有以下几个方面: 1 ) 构件的数量问题。只有当构件达到一定的数量时,才能支持更好的实现软件复用。 但当构件库中存在大量的构件时,如何从大量构件中找到符合使用者需求的构件,这也 是有效的实现软件复用的一个关键问题。 2 ) 构件的组织和检索问题。如何描述构件,如何组织构件库,按照什么方法对构件 进行分类和组织,如何有效地从构件库中查询到完全符合或者最大限度的符合用户需求 的构件。 3 ) 构件的理解和修改问题。要实现对构件的复用,首先要了解构件具有什么功能, 哪些构件能够被利用,哪些需要进行适当的修改才能复用,都需要了解构件的功能。需 要进行适当修改方可使用的构件,不仅需要了解原构件的功能,还需要对原构件的结构、 风格的特征进行了解,并在了解的基础上对构件进行适当的修改,使其完全满足复用者 的需求。 4 ) 建立可复用构件库的费用问题。在进行复用之前,首先需要构造可复用的构件库, 这需要投入大量的人力和物力,而一般的开发机构往往不愿意在可复用构件库上进行额 外的投资。 5 ) 评价和度量的问题。对软件开发行为进行评价和度量是比较困难的。怎样才算是 一个“好 的软件? 在这方面几乎没有统一的标准。 6 ) 法律、合同以及所有权等方面的问题。软件复用还受到大量关于法律、合同以及 所有权问题的影响。 2 2 软件构件技术的相关知识 软件复用按照复用方法的不同,可以将其分为组合式复用和生成式复用,其中研究 的最多,应用前景比较广泛的是组合式复用技术,也就是通常所说的基于构件的软件复 9 第二章软件复用及软件构件技术 用技术。基于构件的软件开发方法( c o m p o n e n t - b a s e dd e v e l o p m e n t ,缩写为c b d ) 是软件 复用思想在实践中的应用。基于构件的软件开发是当前软件开发的发展趋势。基于构件 的软件开发是以构件为核心的。 2 2 1 构件的基本定义 构件,在有些文献中也称为组件,来源于英文中的“c o m p o n e n t 。在软件构件技术 的发展过程中,出现了多种构件的定义,但至今还没有一个统一的构件定义,比较有代 表性的定义有: “构件是已被封装的、可分布的、具有良好接口定义的软件包,向外提供接口,通 过接口可与其它构件组装形成更大的整体1 1 9 1 ,其中封装了设计和实现的内容。 “构件是自包含的、清晰标识的模块,描述和执行特定的功能,具有清晰的接口和 文档,并定义了复用的情景f 2 0 】。 “构件是由一个动态变化的对象集组成,由对象类组合起来的物理意义上的包,这 些对象既可以在构件的内部也可能是其接口的一部分。构件之间既可以直接进行交互, 也可以通过独立的对象进行耦合【2 l 】。 简单的说,构件是一个独立分布的功能部分,可以通过它的接口访问它的服务。它 是软件丌发中一个可替换的软件单元,可将其作为一个大的单元的一部分和其它构件组 合起来,构件是可以用来构建软件系统的可复用的元素。可复用的元素可以是一个在物 理上或逻辑设备上执行的软件实现1 6 j ,也可以是软件的文档等。 构件的定义强调了三个重要方面:第一,它将构件定义为一个可交付的软件单元; 第二,构件会提供一些有用的功能,这些功能的设计符合一些设计准则,并且这些功能 集合到一起能够满足一些软件需求;第三,构件通过接口提供服务。如图2 1 所示构件 本身包括了构件接口和构件规格两部分。 1 0 中国石油大学( 华东) 硕十学位论文 构 件 接 口 图2 - 1 构件定义 f i g2 - 1c o m p o n e n td e f i n i t i o n 可复用构件应具备以下几个基本要求: ( 1 ) 有用性:构件必须提供有用的功能: ( 2 ) 质量:构件及其变形必须能够j 下确工作; ( 3 ) 可用性:构件必须易于理解和使用; ( 4 ) 适应性:构件应该易于在不同语境中通过参数化等方式进行配置; ( 5 ) 可移植性:构件应该能在不同的硬件运行平台和软件环境中工作。 2 2 2 构件的分类 软件构件的分类方法很多,总的说来有以下几种方式: ( 1 ) 按照软件的开发流程分:构件可分为分析构件、设计构件、程序构件和数据构件; ( 2 ) 根据软件构件的用途不同,构件可以分为系统构件、领域构件和支撑构件等。 ( 3 ) 根据软件构件的粒度大小不同,构件可以分为小型构件、中型构件和大型构件。 ( 4 ) 根据软件构件的使用范围的不同,构件可分为通用基本构件、领域共性构件和专 用构件。 ( 5 ) 依据基于构件的软件开发方法学,可以将构件分为4 个层次:1 ) 原子构件和分子 构件:整个支撑环境和运行环境都使用的基本级构件。2 ) 功能级构件:由原子构件、分 子构件和其它功能级构件组成,完成软件系统中的某一项具体的功能,用来组装应用级 构件的组合构件。3 ) 应用级构件:由原子构件、分子构件和功能级构件组装而成。4 ) 系 统级构件:一般指整个应用软件框架,也可以是软件应用系统中的一个较大的子系统, 由应用级构件组装而成。 第二章软件复用及软件构件技术 2 2 3 软件构件技术主要研究内容 软件构件技术是支持软件复用的核心技术之一,是近几年来迅速发展并受到高度重 视的一个学科分支。软件构件技术主要研究内容包括: 1 构件抽取:从己有的软件系统中挖掘提取构件和有目的的构件生产; 2 构件模型:研究构件的本质特征,了解构件间存在的各种关系; 3 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题; 4 构件的分类及检索:研究构件组织模式、分类策略及检索策略,建立有效的构件 库检索系统,支持构件的有效管理: 5 构件的组装:在构件模型的基础上研究构件组装机制,包括源程序代码的组装和 基于构件对象的互操作性运行级的组装; 6 标准化:构件模型的标准化以及构件库管理系统的标准化。 但完成了可复用构件的开发后,或者说构件库中存在一定数量和规模的构件之后, 就可以进行基于构件的软件开发。基于构件的软件开发人员的任务是从构件库中选取合 适的构件来实现所需的功能,构造用户需要的软件系统,而不再是从头编写所有的程序 代码。此时的软件开发可以按照如下步骤进行: 1 ) 构件提取:通过合适的检索策略从构件库中提取出满足用户需求的构件。要检索 到合适的构件,这就要求构件库系统拥有一套好的构件组织分类和检索策略; 2 ) 对构件进行适当修改:按照用户的实际需求,对提取出的构件进行适当的修改, 使其完全适应新的软件系统的需求。需要指出的是:修改构件的代价必须要小于重新开 发的代价; 3 ) 构件组装:基于构件的开发通过构件组装得到最终的软件应用系统。构件的组装 过程可以按照粒度的不同,从小到大,再到整个系统,进而完成整个基于构件的软件系 统的开发。 2 2 4 构件分类和检索的不同方法介绍 由于构件数量的不断增多,构件库的不断膨胀,这给构件库的组织和管理带来了诸 多不便。在大型的软件构件库中检索符合用户需求的构件变得越来越困难。因此找一种 合理的构件库组织方式和构件库的检索机制成了当前构件库研究工作迫切需要解决的 问题。目前很多组织和研究机构对此做了大量的探索和研究,并提出了很多不同的构件 描述和检索的方法,这些方法都各有长处,但也存在着一些不足。这些方法主要分为5 1 2 中国石油大学( 华东) 硕士学位论文 类【l j ,分别是简单的关键字和字符串查找、行为匹配、型构匹配、基于刻面的分类及检 索、基于语义的构件描述和检索。 ( 1 ) 关键字和字符串查找法 这是一种简单的并且被人们普遍接受的方法,在许多检索系统中都使用这种检索方 式。该方法是将构件库中的每个构件以一组与之相关的关键词和字符串编目,查询者在 系统中输入构件描述的关键字或字符串,即可获得构件。这种方法的优势在于,在系统 中容易实现,并且易于被用户理解,有利于减少理解负担,而且在实际的系统中被广泛 应用。但基于关键字和字符串的查找方式只与关键字和字符串的形式有关,却忽略了关 键字和字符串所代表的具体的语义信息,在构件描述和用户查询请求中只能进行机械的 符号匹配,因此无法较好的满足用户的检索请求,使得查询结果不够精确,构件的查询 效率受到限制,大大降低了构件的查准率和查全率。 ( 2 ) 型构匹配 型构匹配是一种基于形式化规约的编码和检索方法。在基于型构匹配的系统中,软 件构件被表示成规范说明,同样复用者的需求也被表示成规范说明的形式,再由一个定理 证明程序决定软件构件与复用者的需求是否匹配【2 2 1 。型构匹配关注构件所提供的接口的 参数类型和参数数量,用户在检索构件时,提供所需功能的输入参数类型和参数数量, 以及输出参数的类型,由此来找到提供该接口的候选构件的集合【2 3 l 。然后检索者在候选 构件集合中选择最符合复用要求的构件进行修改复用。 型构匹配这种方法是基于形式化的理论背景,它侧重于软件构件的行为特征,而不 是它的外观描述。因此,这种方法有较高的查准率。但这种方法有诸多弊端。对于构件 来说,接口的型构( 参数类型和参数数量) 与其所提供的功能语义往往不具有一一对应 的关系,即可能会出现这种情况,构件接口的参数类型和参数数量相同,但构件实现的 功能却不能满足检索者的需求,导致了构件检索的查全率和查准率的下降。另外,型构 匹配这种方法大多采用精确匹配,较难计算部分匹配的匹配度,使得这种方法还不是很 实用。 ( 3 ) 行为匹配 行为匹配的基本思想是直接利用软件构件的执行能力来检索构件【2 2 1 ,行为匹配是与 构件检索的目的关联得最紧密的一种方法。在这种方法中,用户在查询时提供输入向量, 然后在构件库中的软件构件上执行,并比较软件构件的执行结果与查询者预期的输出结 果之间的异同,将所有在执行后得到的输出与预期输出相同的构件作为候选构件返回给 1 3 第一二章软件复用及软件构件技术 用户,以此来匹配软件构件。 这种方法对用户来说非常直观,也比较容易理解,用户在查询构件时只需要提供一 组测试用例即可,并且这种方法具有比较高的查准率。但这种方法需要查询者首先提供 一组测试用例才能使用,但在实际中常常不存在建立好的测试用例。行为匹配的另一个 弊端在于应用范围有一定的局限性,只适应于可单独运行的构件。但构件库中的构件并 不完全是可运行的代码,还包括一些分析或者设计文档等,这些同样也是可复用的软件 资源。行为匹配的另一个弊端在于检索效率低下。由于构件库中储存的每个构件都要尝 试运行测试用例,对于保存了大量构件的构件库来说,这要花费长时间的运行等待时间, 用户的检索成本会变得非常大。行为匹配的另外一个弊端与型构匹配是相似的,这两种 方式都是只适用于精确匹配,较难使用部分匹配算法,这导致了构件检索的查全率的下 降。 ( 4 ) 基于刻面的分类和检索 基于刻面的分类和检索方法是目前最常用的软件构件分类和检索方法。刻面分类方 法是由p r i e t o d i a z 等人首次提出的,并将刻面分类方法应用于g t e 公司的复用项目【羽。 p r i e t o d i a z 提出的刻面描述方案中有两个主刻面:“功能和“环境”,并且每个主刻面 下又细分为3 个子刻面,功能刻面下包括作用,对象,媒体3 个子刻面,环境刻面下包 括应用领域,系统类型,客户类型3 个子刻面。在该刻面描述方案下,某构件可以用图 2 2 所示的刻面树来描述: 图2 - 2 一个构件描述的刻面树 f i g2 - 2a f a c e tt r e eo fc o m p o n e n td e s c r i p t i o n 刻面是事物的刻画面,基于刻面的描述是从事物的多个刻画面来对资源进行描述的 1 4 中国石油大学( 华东) 硕士学位论文 方法【2 4 1 。基于刻面的描述方案主要包括3 部分内容【2 5 1 :( 1 ) n 面分类方案;( 2 ) 各个构件 的刻面描述集合:( 3 )

温馨提示

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

评论

0/150

提交评论