(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf_第1页
(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf_第2页
(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf_第3页
(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf_第4页
(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机软件与理论专业论文)基于形式化描述的构件库应用研究.pdf.pdf 免费下载

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

文档简介

摘要基于形式化描述的构件库应用研究计算机软件与理论专业硕士研究生陈文指导教师丁晓明副教授内容摘要随着信息技术的迅猛发展,计算机软件已渗透到社会生活的方方面面。与此同时,软件项目规模的不断壮大、功能的增强和复杂度的增加软件的成本、进度、质量也变得更加难咀控制,这使得软件开发难度不断上升,软件开发周期加长,修改与返工情况严重【1 1 。因此,如何复用以往成功的开发方案以快速生产出高质量软件产品成为软件产业重要的热点问题。基于构件的软件工程( c o m p o n l - b a s e ds o 件w me i 晒m e r i l i g ,c b s e ) 或基于构件的开发( c 平o m t - b a s c dd e v e l o p f m 眦,c b d ) ,是一种新的软件开发方式它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,以组装的方式高效率、高质量地构造应用软件系统的过程有效地提高了软件开发效率和质量。随着软件复用研究不断深入,构件的准确描述与高效检索已成为面向构件的软件复用研究的热点和难点。本文首先参照3 c 构件模型,提出一种基于形式化方法的,可扩展的构件描述模型,包括构件的功能描述、接口描述、环境依赖描述等,并保留了构件关键字、非功能属性等描述项。在此描述模型基础上提出了构件的分步检索法,首先通过构件的非功能属性描述,构件的分类描述等信息进行类似于刻面方法的非形式化检索;然后根据构件接口描述中的构件执行前件与后件进行多模糊级的形式化检索;最后在前两步检索的结果中,根据构件的复用历史信息、演示文件等进行手工筛选,以最终选出晟适合需求的构件。基于3 c 构件模型,本文第三章提出了构件的描述模型,第四章在描述模型的基础上,着重论述了包含四级模糊度的构件形式化检索方法,以提高构件的查找效率并兼顾查全率和查准率。本文的最后设计了构件检索的原型系统s c r d e m ,以实践验证3 、4 章的理论并对实验结果进行了分析。关键词:构件描述;构件检索;形式化:语义r e s e a r c ho fc o m p o n e n tl i b r a r yb a s e do nf o r m a ld e s c r i p t i o nm 巧o r :c o m p u t e rs o r w a r ea n dt h e o gs u p e i s o r :a d j u n c tp r o f e s s o rd i n gx i a om i n ga u t b o r :c h e nw e na b s t r a c ta sm cq u i c kd c v e l o p r n 印t0 f i 耐b 加谢t e c l i l l i q n e 伽n 驴u t e rs 湘a r eh 髂9 0 te 、屯f y w h e 托o fo ws o c i a lh f e w l l i k 血es c a l eo fs o 仔吼陀i sg o i n gt ob eb i g 孽e f 锄dh 豳l n o r ec 伽 1 p l i c a 刚矗m 出o i l s ,l l 】呤c o n 缸d lo f c o s t 、p r o g r e 豁a n dq h t yc o i 5t ob em o 雎d i 塌“l t n o w ,i ti sh a r dt o曲v e l o pl a r 寥蛆dc o m p l i c a t 。ds o 矗w a 把e i l ya i i dt i n 嵋l y ,f h r t h 盯哪,娜l l y ,也e 他a f et o om a n yl o d i 6 c a t i o 雌蛐t b e 胁a m s o ,h o t o 程懈t h e 锄c c e s s f b l f t w a 托p f o j e c lt od e v e l o p f m n tn w a w i n lh i g hq m l i 母如ds h 叫劬ei sah o t s p m 抽f | w a 陀船l 正c b s e ,c b d ,a 畔e 鹞o f c a 曲ge 街c i 曲ta p p i i c 撕s y 咖b y 蝌娣o f e 甜“眦脚铷f e删p 咖时n t sj n 僻u 鞠m es o f t w a 心c o r 珥 叩e n tl i b r a r y ,i san e ws 哆l e0 fs o f h ed e v e l o p m e n t 吐i a li m p r o v e ss o f t w a r ed e v c l 0 1 m 砖n te 伍虻i e n c y 趾dq l m l i 哆a sg o i n gd e e pi i i t ol h es t i i d yo fl h e 丘w a 咒他u ,t h e c 啪t e l yd c s c r i b i l l go f 行w a 咒n 平c n ta n dh i g l le 街c i 锄c yo fc o f n l ,0 口瑚t 豫啊咖ga mb e c o n 砖t b eh o 啪ta 1 1 dn o d u so fl l l e咖d y i i i go f 吐l e n w a r e 船u h it l l i s 枷c l e ,b yt h e 佗f e 托n c eo f 3 cm o d e io f s o f h a a 加叩讲l 册t ,i n t t t 拉t h j 柑娜盯w ep u tf 孤蜘af b l m a b l e ,e x t e n s i b kd 鼯口i b e 删e lo f c o l 珥 0 n e n t ,i n c l l l d i n g垂i l n c t i o nd e s c f i p t i 鲫i n t e r f k ed e s c r i p 石舳,锄v 曲m 哪md 鼯c r i p d ,e 忙,硼dw ek e 印t b ek c ) w o r dl i s t 跚du 幽n c 廿o m la m 伯u t ed e s c d p 石傩b a 靶da 也ed e s c r i p t i o i i ,访也ef b l 删柏yc h 印i e rw cm n gf b r a r da 删m p l e 曲甲ss e a r c h i l l gf r 圮t 1 1 0 do f c o i 珥 o n 衄t ,a n d 唧h 鹊i z e do nt h ed i s c 啦s i o no fm ef m l rk v e l so f f i i z 2 了鞭锄d 血培o f c 唧佃e n t ,i l l0 r d e rt om i 辩m ee 历c i e i l c yo f t l l ec o 如p e 1 1 t删n g 锄d 扭k ec a r eo f t h ef i l - s c a l eo f t h e a r c l l i n gi | e 鲫l 忸a f l 私t ,w e 即c t i s e da n dd i s c u s dt h et l l e o l yo fc h 印衄t h r e ea n df o l l rt i l r o u g ha 出 姗s y s 捃m ,s c 砌) e m ,a n da l y z e d 血er e s 协o f a l l re x p 口衄t a t i o n k e y w o r d s :c o m p 蛐e n td e s c r i p t j o n ;c o m p o e n tr e t r i e v i n g ,;f o r m a l i 趾;s e m a t i cl n独创性声明学位论文题目:基王丝盛丝描述煎掬住座廛垣珏盎本人提交的学位论文是在导师指导下进行的研究工作及取得的研究成果。论文中引用他人已经发表或出版过的研究成果,文中已加了特别标注对本研究及学位论文撰写曾做出贡献的老师、朋友、同仁在文中作了明确说明并表示衷心感谢。学位论文作者:蔚、延签字日期:上矿。g 年善月7 日学位论文版权使用授权书本学位论文作者完全了解西南大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权西南大学研究生院( 筹) 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书,本论文:曰不保密,口保密期限至年月止) 学位论文作者签名:陈走导师签名:撇签字日期:沙,嚣年6 月f 日签字日期:曾。多年彳月日绪论第一章绪论1 1 研究背景及意义随着软件系统复杂性与软件开发成本的不断提高,传统的软件开发技术已经越来越难以满足现代化软件的开发需要。软件复用技术可以有效地提高软件开发的质量和生产效率,是解决“软件危机”比较现实可行的途径之一【l 】。构件是具有特定功能,可被复用的软件实体。基于构件的软件开发技术是软件复用的一种重要手段,是近年来软件复用研究的热点要使用基于构件的软件开发技术,发挥构件在软件重用方面的优势,就必须要有支持整个软件生命周期并包含有大量可用构件的构件库系统来提供有效的构件管理和高效的构件查询,这是基于构件的软件开发( c ( p e n tb a d 竹w a d e v e l 叩r n e n t ,c b s d ) 成功的关键【2 】而对构件进行有效的管理和高效的检索依赖于准确合理的构件描述。常用的构件描述方法有刻面描述、编目描述、关键值描述,以及reboot 模型等。这些描述方法大部分面向构件的使用和组装,对构件检索支持不够充分;同时,缺乏对接口元素之间语义关系的描述;另外以刻面关键值,编目等非形式化方法进行构件检索不能对构件进行精确描述难以提高构件的查准率,从而导致查找效率低。而基于形式化的构件描述方法如:基于语义网络的描述方法,基于特征空间的语义定义方法等对构件的功能语义描述较为精确,但都基于严密的数理逻辑和大量的专用定义符号,不适宜于多数构件用户用来构造查询语句以进行构件查找且以这类描述为基础的构件检索易忽略与查询构件功能相近的库构件,导致构件的查全率低。目前,工业界面临着产品功能越来越复杂和推出产品周期越来越短的双重压力软件工程的一个主要目标就是如何在复杂性增加的情况下仍能构造正确可靠的系统,达到这个目标的一种有效途径就是形式化方法【4 】。形式化方法是一种用于规范、设计和验证计算机系统的基于数学的方法,包括各种语言、技术和工具等。近年来,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量要求,软件复用是一条现实可行的途径。对软件复用技术的研究也已成为软件工程学科的主攻方向之一在这两个研究方向不断发展的环境下,本文试图将形式化方法应用到软件构件的描述与检索的过程,以用来支持软件复用的各个环节。1 2 国内外研究现状1 2 1 构件模型研究现状构件模型( c 叩o n e n tm o d a l ) 是构件本质特征及构件问关系的抽象描述。在学术界和产业界己经出现了多种构件模型,其中,在学术界3 c 模型和r e b o o t 模型是两个重要的构件描述模型。3 c 模型是学术界普遍认同的一个具有指导性作用的构件模型。该模型从概念 c o t l c e p t ) 、内容( c o n t t ) 和语境( c o n t c x t ) 三个不同方面来描述构件;r j ! b o o t 模型实际西南大学硕十学位论文是基1 :已有构件的一种刘面分类;f i | 检索模型,用米从各个角度刻画构件属性,基于r e b o o t模型北京大学青鸟工程提出了青鸟构件模型,从3 个视角( 形态、层次和表示) 和9 个方面( 概念、操作规约、接口、类型、实现体、构件复合、性质、注释和语境) 对构件进行刻画【5 。在实现级工业标准构件模型中,c o r b a 、d c o m c o m 和e r l t e r p r i s ej a v a b e a n 三足鼎立,构成竞争与互操作并存的格局但它们均缺乏对构件语义的深入支持。下面对上述几个具有代表性的构件模型的定义和特点进行介绍。1 3 c 模型3 c 构件模型是关于构件模型的一个指导性模型 8 ,是一些系统工程领域专家在1 9 8 9 年的r e u s ei np n c t i c ew 砒s h o p 上提出的。该模型由构件的3 个不同方面的描述组成,即概念( c o n c 印t ) 、内容( c o m e n l ) 、语境( c o n t e x t ) 3 个方面。概念关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两个部分;内容概念的具体实现,描述构件如何完成概念所刻画的功能;语境构件和外围环境在概念级和内容级的关系。语境刻画构件的应用环境,为构件的选用和适应性修改提供指导。3 c 模型对构件定义与开发具有一定的宏观指导意义但它缺乏形式化定义和易懂的描述。因此制约了其在软件工程中的应用。2 r e b o o t 模型r e b o o t 是一个包括储存可复用构件的数据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具的环境。其中在对构件进行分类时采用了刻面的分类策略,这个分类策略主要针对面向对象的构件。r e b o o t 定义了四个刻面:抽象、操作、操作于、依赖。使用这四个刻面为面向对象构件分类时,抽象刻面常为类名,操作刻面常是类的方法,操作于刻面描述与之合作的其它构件其术语空间与抽象刻面是基本一致的。从整体上看来,r e b o o t的刻面分类模式主要针对的是源代码级别的构件,而且不具备描述粒度较大、结构较复杂的构件( 如模式、框架等) 的能力3 青鸟模型,北京大学青鸟工程以三个视角( 形态、层次和表示) 和九个方面定义构件模型。( 1 ) 概念:对构件功能的抽象描述。( 2 ) 操作规约:用来指称构件对外提供的、可被请求的服务。( 3 ) 接口:给出了构什的对外行为描述。( 4 ) 类型:用于定义“什么值可用作为操作参数”。( 5 ) 实现体:这是构件的具体实现部分,是实际完成被请求服务的系统。( 6 ) 构件复合:构件通过复合组成系统。( 7 ) 构件性质:指明构件的形态、层次和表示。( 8 ) 构件注释:描述和构件库相关的其他性质。2绪论( 9 ) 构件语景:描述构件的软、硬件使用环境和实现依赖青鸟构件模型更多地关心构f ,f :的易理解性、封装性及相互问关系,通过给构件提供明确的对外接口实现服务提供者和其服务请求者的分离,更多地关心构件及其使用者间的交互,特别是对构件使用者有意义的部分。但青鸟构件模型没有明确提出语义问题,缺乏形式化定义,而且没有与具体的实现技术密切相关。4 c o r b c m 构件模蘩2 0 0 2 年8 月o m g 发布了c o r b a 3 d ,从某种意义上说,c o r b a 是“软件总线”。c o r b a的实质是r p c ( r e r n a t ep m c e d u rc a n 。r p c ) 与面向对象技术的有机综合,它的底层和核心部分是对象请求代理【8 】。在c o r i 认定义中,每一个构件都是一个对象,含有一个基于面向对象的接口,内部代码实现可以是o o ( o 崎e c lo f i e m c d ,0 0 ) 或非o o 的语言,总线上的对象能够被任何其他对象所使用。c o r b a 规范是由o m g 提出的一种开放的、分布式对象计算结构,它为异构计算环境的互操作提供了标准。使用c o r b a 规范,能够实现应用程序之间的相互通信,而不论它们的位置、编程语言以及操作系统环境是否相同。:、c o i m ac c m ( c o r b ac 唧p 0 i l e n tm o d e l ) 技术,是在支持p o a 伊矾曲l eo b j e c ta d a m 虻可移植对象适配器) 的c o r b a 规范( 舨本2 3 以后) 基础上,结合e j b 当前规范的基础上发展起来的。c o r b a 构件模型,是o m g 组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范,它主要包括如下三项内容:a 抽象构件模型,用以描述服务器端构件结构及构件问互操作的结构;b 构件容器结构用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成:c 构件的配置和打包规范o c m 使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于x m l 的文档内容标准。目前正在研制的实现c c m 规范的项目包括:法国u n e 大学开发的o p c c m 、阿尔卡特资助f p x 负责开发的m i c o c c m d o c 组织和华盛顿,大学开发的c i a o 以及中国国防科技大学的s t a 以c m 等。5 c o i 以仍c o mc o m ( c 1 p e n to b j c c tm o d e l ) 是微软提出的构件对象模型它在微软w m d o w s 系列平台上运行。c o m 定义了构件及其客户交互的方式,因而不需要任何的系统中间件。c o m 还提供了构件及其客户动态互操作的= 进制标准,这使得在线软件升级和不同语言的构件复用十分方便 1 1 】。d c o m ( d i s 埘b u t e dc o n l p o n 舶to b j e c tm o d c l ) 是微软与其他业界厂商合作提出的一种分布式构件对象模型,是c o m 在分布式环境下的自然扩展,它使构件在网络环境中高效、安全、可靠地进行互操作。d c o m 增强c o m 的分布式处理性能,支持多种通信协议。加强构件通两南大学硕十学侥论文信的安全保障。建立d c o m 时和使用c o m 对象的方式相同,仅需要住定位对象时加入一个机器名称的参数。c 0 m 十把c o m 构件提升到应用层,把底层细节留给操作系统,使c o m + 与操作系统的结合更加紧密。c o m + 的底层结构仍然以c o m 为基础,但在应用方式上则更多继承了m t srm i c r o s o f tt r s a c t i o ns e 神的处理机制。包括m t s 的对象环境、安全模型、配置管理等。c o m + 把c o m ,d c o m 和m t s 三者有机地统一起来,同时也增加了一些新服务,如负载平衡、内存数据库、事件模型、队列服务等,使c o m + 成为真正适合于企业应用的构件模型。6 j a v ab e a 砸,e j be j b 的全称是e n t e r p 一j a v a b e a n ,是由s l 肘公司提出的一种基i 组件模型的分布式对象标准构架s u n 制订e j b 规范的基本思想是为组件的开发提供一个运行平台。任何一个组件,只要它满足e j b 模型就可以方便、灵活地部署到任何支持e j b 的运行平台上,而不需要考虑移植等细节,从而达到类似于硬件即插即用的效果。e j b 构架规范了用j a v a 语言开发和部署服务器端应用程序的业务逻辑,它使得企业应用程序更容易开发,能够将e j b 应用程序部署到任何与j 2 e e 兼容的服务器上,可以重用每个企业b ,简化了构建复杂的企业应用程序的过程。e j b 的主要组成部分包含e j b 服务器、e 旧容器、本地接口和远程接口等【1 3 】。( 1 ) e j b 服务器是管理e j b 容器的进程或应用程序,提供了对可访问j n d i ( j a v a 命名和目录接口) 的名称服务和事物服务支持。( 2 ) e j b 容器是管理一个或多个e j b 类实例的抽象,它通过规范中定义的接口使e j b 类访问所需的服务。( 3 ) 本地接口( h o i n e 血c e ) 定义了用于创建、删除、查找e j b 类实例的方法。它通过容器的h o m e 对象来实现。( 4 ) 远程接口( r e m o t e l l l 缸f a c e ) 由e j b o b j e c t 实现,包含了e j b 类中的商务方法,客户端可通过远程接口来访问e j b 实例的商务方法,但不能直接得到e j b 实例的引用只能得到它的e j bo b j e c t 实例的引用。e j bo b 】e c t 的作用就象是一个“代理人”,当客户端调用一个方法的时候,e j bo b e c t 接受调用请求并把它传给e j b 实例。c o r b a c c m 、c o m ,d c 0 m c o m + 和j a v ab e a n s 厄j b 三种模型均在积极向采用x m l ,s o a p ,u d d i 和w s d l 等技术规范或协议来实现系统的松散藕合方向发展,并不断出现横向的融合与渗透 1 l 】。综合考虑现有的构什模型,可得出以下结论:1 现有的构什模型缺乏对构件语义,特别是接口功能和构件领域特征的语义的描述,而这些正是理解构件功能和基于领域的构件复用价值的关键。2 现有的构件模型很少涉及有关构件复用和构件管理的一些信息,比如构件的复用度、可维护性等。而这些信息对于构件用户的构件选取和构件维护者是非常有价值的。4绪论3 在构件库系统中构件模型的应用是既面向构件描述和分类又是面向 幻件规约和组装的,而目前关注如此多方面的构件模型还不多见 4 】。软件构件模型定义构件的基本属性,规定构件接口的结构以及构件与应h j 框架、构件与构件之间的交互机制,提供创建和实现构件的指导原则,所以构件模裂可以认为是实现基于软件开发的标准,同时也是定义构件描述和检索模型的基础。1 2 2 构件描述与检索研究现状当前国内外许多构件库管理系统处于理论研究阶段,投入实用的系统主要有北大青鸟构件库管理系统、上海构件库管理系统、ibm 、or ac le 构件库管理系统等。目前比较有代表性的构件描述和检索方法包括传统的信息科学的枚举、刻面、编日奄询技术、基于框架、基于演绎的构件描述与检索方法 8 】1 信息科学分类查询技术信息科学方法是实际复用项目中应用较为成功的一类,以枚举、刻面、属性值、关键词和正文检索几种方法较为常见【8 】。早期比较具有代表性的信息科学分类方法是使用基于关键字匹配的图书馆编目信息查询技术,这类检索方法主要是计算查询关键字与构件描述关键字之间的匹配程度,在应用中也比较容易实现另外比较著名的有m e l v i ld e w a y 的d m a yd c c i m a ld 弱s i f i c 砒i o n ( d d c ) 枚举模式( e n u 疗砖枷v es c h e 圮) 层次分类模式( 1 l i e r a r c l l i c a ld s i f i c 乱i h e m ) 是另外一种常见的分类方法,它用“自然的”、“逻辑的”方法把每个主题划分为多个分区最大可能地把相似的主题的条目聚类到一起【1 4 】。当前北京大学青鸟构件库与上海构件库采用了以刻面分类为主、多种分类模式相绪合的方法对构件进行分类描述【5 】【1 5 】。基于刻面的描述方法中,一个构件可以用多个刻面以及每个刻面中的多个术语来刻画不同的刻面从不同的角度对构件进行描述。这些特征使刻面方法能够从多个角度、多个方面对构件做出更为全面的描述,在应用中取得了良好的效果。然而,上述方法忽略了关键字之闯的联系,某些与查询关键字在描述句法上完全不同但语义上等价的构件被忽略,导致查全率的降低,虽然通过使用m a l n i cn e 忸( 比如w o r 科e 1 ) 捕获术语间的语义联系( 同义词、反义词等) 可以扩大检索的范围,从而提高查全率,但这种方法会降低齑准率,因为这些网络关注的是纯语言学方面的联系。基于关键字匹配的查询无法体现出所查询的关键字之间的逻辑联系,使得构件的查准率受到限制。刻面方法中对于构件的服务和功能等刻面,由于未定义形式化的描述方式,使得其描述内容往往过于自然语言化而导致精确性f 降。而且,传统的刻面描述方法重视构件的静态特征描述而没有提供对构件动态行为和服务的描述机制【1 6 】。因而基于关键字、刻面、枚举等信息科学的方法在构件描述和检索方面尚有较丈的局限性。2 基于框架o m m e 七a s e d ) 的构件描述与检索5两南大学硕十学待论文框架是一种描述所讨论对象( 事物、事r i ,概念) 属性的数据结构。框架由若干个被称为“梢”的结构组成,每一个槽又可以根据实际情况划分为若干个侧面。一个槽川于描述所讨论对象某一方面的属性;一个侧面用于描述相应属性的一个方面:槽雨i 侧面所具有的属性值分别称为横值和侧面值。框架、槽、侧面,都可以为其附加一些说明性信息一般是指束条件,用丁指出怎样才能填值到槽和侧面中去。在软件代理和分布式计算领域提出的基于框架( n a m e - b a s e d ) 的构件描述和检索方法中,要求所有的构件和检索查询都用相同的预先定义好的词汇来描述,即使用“属性一值对( a t t r i b u t e v a 】u ep a i r s ) ”来对构件进行分类描述。目前大部分商业化的构件服务搜索技术( 例如j i i l i ,e s p c a k ,s a l l 妇i o l l ,u d d l ) 都使用基于框架的方法。这种方法的构件描述和检索查询都使用相同术语的方法来提高查全率和查准率但它是以要求所有的构件服务都用框架进行建模为代价的。使其灵活性受到制约,在实践中比较难以推广应用。3 基于演绎的构件描述与检索软件构件包含很多语义信息,通过有效的方法描述,关键信息可以简化。提高信息搜寻的效率。语义抽象既能精确描述构件行为,又能说明构件的功能。语义抽像的两个典型例子是基调( s i 驴a n l r e ) 描述和规约( s p c c 诟c a t i o n ) 描述 8 】。前者是描述构件的参数类型信息,例如接口参数类型及数量;后者是描述构件的动态行为例如构件的功能语义。z a r e l m l c i a m 6 】等人针对构件的形式化规格说明提出的签名( s i m t i l r e ) 匹配( 接口规约) 和规约匹配( 功能规约) ,对构件的行为特征作形式化说明以排除自然语言描述的二义性和不准确性,并且还可以利用规约说明之间的偏序关系来组织构件库中的构件存储。基于规约匹配的构件检索能够提供层次丰富的规约匹配类型,所以能够较好的满足用户对构什检索查准率和查全率的综合要求。但是,基于演绎的方法面临两个十分严峻的现实困难( 1 ) 用形式逻辑对所有构件服务语义进行建模的代价十分高昂:( 2 ) 这种方法中的证明过程的计算复杂度很高,从而导致系统性能难以提高 1 6 】。尤其是第一方面的问题限制了基于演绎的检索方法的可扩展性,使得它很难成为实用的构件服务检索方法。综上,由于缺乏对构件功能语义的准确、易理解的描述方案,基于非形式化的刻面或属性值、框架等描述方法,难以对构件进行精确描述和查找,构件的查准率不理想,从而导致查找效率低;而现有的多数形式化的构件描述方法如:基于语义网络的描述方法,基于特征空间的语义定义方法等对构件的语义描述较为精确,但都基于严密的数理逻辑和大量的专用定义符号,不适宜于多数构件用户用来构造查询语句以进行构什查找且以这类描述为基础的构件检索易忽略与查询构件功能相近的库构件,导致构件的查全率低。为了解决这个问题,必须在构件语义层次上提供一种合适的面向服务的构件描述和检索方法,一方面使得构件语义描述相对简单直观,另一方面使得在构件语义上执行的检索快速而准确。进一步,考虑到构件用户在查找构件时对构件的需求程度不同,有必要引6绪论入带模糊级的构件检索方法,并保留必要的非形式化检索与手1 :选择方法以缩小构件检索范围,提高检索效率1 3 本文的研究内容本文的主要研究内容包括如下几个方面:( 1 )本文研究的重点是以3 c 构件模型为基础构造一种描述准确,可扩展,易操作的构件形式化描述模型,包括构件的接口描述、功能描述、属性描述、环境依赖描述、附加文档描述,五个部分。( 在描述模型的基础上,本文提出了一种将非形式化检索、形式化检索与手工检索相结合的分步构件检索方法,以提高构件查全率与查准率,并着重论述了包含四级模糊度的构件形式化检索方法。( 3 )对检索方法进行理论证明,然后在形式化描述模型与检索模型的理论基础上,开发出构件检索原型系统s c r i ) e m ,通过分析原型系统检索效率对本构件描述与检索模型进行实践验证。1 4 本文的组织结构本文共分为六章,各章主要内容如下:第一章介绍了本文的研究背景和本文研究的主要内容。第二章介绍构件软件工程和形式化方法两个研究领域内的一些概念和研究热点。第三章中将构件的各个组成要素抽象出来,以经典b n f 范式对构件及利于构件检索的元7素进行形式化描述,提出了构件的形式化描述模型第四章以构件的形式化描述模型和逻辑理论为基础,综合考虑构件用户在构件索检时的应用需求,引入了模糊查找的概念。基于构件执行前、后件之间的关系提出了具有模糊鸯找能力的构件形式化检索模型并举例演示用z 语言来描述构件的具体功能和行为规约。第五章在上述理论研究的基础上,设计并开发了一个支持多模糊级构件检索的原型系统s c r j ) e m 详细分析了s c r d e m 的系统结构、功能和执行效果。第六章总结了全文的内容和研究成果,列举出本文的不足,并展望在本论文基础上还需要进一步做哪些方面的研究7两南大学硕卜学位论文2 1 构件定义第二章相关概念及理论软件构件( s 0 r w a r ec o 唧o n e m s ) 的概念共生于软件复用。早在1 9 6 8 年在北大风洋公约组纵( n a t o ) 会议上就提出了软件复用的概念,后来还为此制定了一整套软件复用的指导性标准,其中包含了利埘标准构件实现软件复崩的基本思路。也就是在这次会议上,m c i l r o y 在题为m a s s p r o d u c e ds o f t w a r ec 甲o n e n t s 的论文中首次提出了软件构件、构件工厂等概念【】。作为解决软件危机的一种有效手段,软件构件技术成功地完成了系统开发的重点从程序设计到对已有构件的选取、组装和部署的转换。在软件构件模型的支持f 。通过复用已有的软件构件,软件开发者可以“即插即用”地快速构造应用系统。这样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的应用软件。目前,软件构件技术已经得到了学术界及产业界的认可,利用软件构件进行软件开发己经成为一种趋势,基于构件的软件开发方法己成为一种新型的软件开发范型【1 1 1 。2 1 1 软件构件定义软件构件的定义是随着时间的推移及其他相关软件开发技术的发展而逐渐演化的。在二十世纪七十和八十年代,软件构件主要指可复用的程序代码片段,一般被称为代码件,此时的代码仲主要有予程序、程序包、类、模板等形态。这一时期对软件构件的定义为:可复用软件构件是一个逻辑内聚、藕合松散的模块,它表示了单一的抽象 8 。到二十世纪九十年代,软件构件概念的l j j 涵有了很大程度的扩展,此时的软件构件包括分析件、设计件、代码件、测试件等多种类型。随着分布式计算、i r 恤 t 等技术以及基于构件的软件开发技术的发展,对构件的认识又产生了新的变化,出现了若干新的软件构件的定义。其中主要的软件构件定义有:欧洲面向对象编程( e c 0 0 p ) 1 9 9 6 年会议认为“软件构件是一个具有规范接口和确定的上下文依赖的组装单元。软件构件能够被独立部署和被第三方组装”。著名软件构件学者s z y p e r s k i 认为软件构件是一个带有契约化接口规约和显式上下文依赖的组装单元,软件构件可以被独立发布并且可以被第三方组装。该定义己被广泛地接受。m i c r o s o n c o r p o r a t i o n 对构件下的定义是:构件是一个通过接口向外界提供服务的软件包。近几年,随着软件构件技术的发展和日益广泛的应用,开始建立软件构件标准规范。构件标准规范可指导开发者开发标准软件构件,同时,方便用户组装不同开发者提供的软件构件【11 】。在软件构什技术的研究领域,这些构件标准规范也称为构件模型。相应的软件构件定义主要有:1 卡内基梅隆大学软件工程研究所的b a c b m a n 认为:软件构件是非透明的功能实现,可供第三方组装,并遵循一个构件模型。8相关概念及理论2 ,h e 曲m 认为:软件构中| 是这佯的软件元素,它符台一种构件模型,能被独立地部署,且可未经修改地依据一种合成规范被组装。3 m i c h 神l 认为:构件代表一个白包含的实体,能够向环境输出功能并可以通过定义明确的开放接口从环境输入功能。4 杨芙清院七认为:构件是软件的构成元素,具有一定的功能和结构,f 符合一定的标准,可以完成一个或多个特定的服务。最近,在传统软件构件的基础上提出了w 曲构件的概念,对软件构件的内涵进行了进一步的扩充,w 曲构件是h l t e m e t 环境下面向服务的智能软件实体,它包含明确目标指向的描述内容和清晰契约性质的接口,既可以被单独发布和调用又可以同其他w 曲构件进行组装,构成粒度更大的w 曲构件【l l 】。2 1 2 构件库及其管理系统概念构件库( c 岬n e n il i b r a r y ) 是指在构件库管理系统统一管理下的、持久存储的可复用软件构件及其相关资源的集合,其中包括向用户提供构件时所需的过程和功能等描述信息。构件库管理系统( c 弘l e n ti 呐m a g es y s t e m ) 是指在操作系统和数据库系统支持下的系统软件用于对构件库进行统一的管理构件检索系统( c 驴t 黜慨e v 柚s y 咖m ) 用来支持可复用软件构件分类和检索的自动t k工具。典型构件库系统及其相关研究、当前学者们已经对构件库系统进行了一系列研究,并形成了r e b 0 0 1 t 、北大青鸟等实际自镌系统和n 朋f o 标准。r e b o o t 是一个包括存储可复用构件的数据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具环境。在对构件进行分类时它采用了刻面分类策略,这个分类策略主要针对面向对象的构件。r e b o o t 定义了四个刻面:抽象、操作、操作于、依赖,使用这四个刻面为面向对象的构件进行分类。从整体上看来,r e b o o t 的刻珏分类模式主要针对的是源代码级别的构件,不具备描述粒度较大、结构较复杂的构件( 如模式、框架) 的能力。a g m 是c m us e i 开发的一个构件搜索引擎。a g o m 通过对w 曲页面的搜索来获取构件u r l 等相关信息,采h j 和普通搜索引擎相同的方式管理构件信息。除了利用s p i d e r 技术在w 曲页面上搜索构件外,a g o 慎也允许构件开发者将他f f j 开发的构件直接在a g o m 服务器上注册。但是,其搜索的构件种类有限由r 构件模型的筹异,对j a v aa p p i e t 和a 砸v e x 的搜索效果比较好,而对其他种类的构件( 如c o r b a ,e j b ) 搜索效果较差。而且构件的描述信息和分类信息不够充分。缺乏构件功能的语义描述信息,用户只能通过方法、事什或属性名称进行检索,不便于用户准确定位和使用构件。库中构件的唯一性和存在性也得不到保证。北大青鸟工程在“九五”期间开发了基于异构平台、具有多信息源接口的应用系统集成( 组9两南大学硕十学位论文装) 环境青鸟i 型( j b 3 ) 系统。在相应构件模型基础上,建立了青鸟构什库数据模型,并与其它c a s ej :具相结合,支持对构件的描述( 使用青鸟构件描述语言j b c d l ) 、分类、管理、存储、检索和复合,满足了基于“构件一构架”重_ l j 的软件开发过程的需要。n 朋( n o r 吐la t l t i c1 h a t yo r g a n i z a t i o n ) 提出了一种刻面分类模式,其中的刻面不必彼此独立或适明于所有的构件。因此在对一个构件进行分类时,未必l f 所有的刻面来描述。刻面术语之间或者没有关系或者是同义词关系,术语空间是非结构化的。n a r d 标准为构件库的建设提供了一个基本的指导。2 2 形式化方法2 2 1 形式化方法的定义和发展历史形式化方法的研究和应用已有三十多年的历史,最初是由d 驰她和h o a r c 在程序验证以及s c o n ,s 眈t c h e y 等人在程序语义方面的工作发展而来的。形式化方法的最大目标是提高软件的可靠性应用形式化语言能够为软件建立精确、无二义的模型,在初始规范的基础上,对初始规范进行检查和精化,并且可以采用数学方法证明这种精化符合初始规范的所有特性,从而在很大程度上保证软件开发过程的一致性和符合性。但是形式化方法的主要缺点也很突出,形式化语言在易用性上比图形语言差得多,形式化开发过程中要求开发小组中几乎所有的人员都要了解形式化方法,形式化语言往往没有非常有效的代码生成系统,这些问题限制了形式化方法在软件开发中的应用。经过3 0 多年的研究和应用,如今人们在形式化方法这一领域取得了大量、重要的成果,从早期最简单的形式化方法( 一阶谓词演算方法) 到现在的应用于不同领域、不同阶段的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法,形式化方法的发展趋势是逐渐融入软件开发过程的各个阶段,从需求分析、功能描述( 规约) 、( 体系结构算法) 设计、编程、测试直至维护 1 9 】。2 2 2 形式化方法在现阶段的主要研究内容形式规约形式化方法的一个重要研究内容是形式规约( f o r i i l a ls p e c i 丘c a t i o l l ) ,也称形式规范或形式化描述,它是对程序“做什么”( w h a ct od o ) 的数学描述,是用具有精确语义的形式语言书写的程序功能描述是设计和编制程序的出发点,也是验证程序是否正确的依据。对形式规约通常要讨论其一致性( 自身无矛盾) 和完备性( 是否完全、无遗漏地刻画所要描述的对象) 等性质。形式规约的方法主要可分为两类:一类是面向模型的方法也称为系统建模,该方法通过构造系统的计算模型来刻画系统的不同行为特征;另一类是面向性质的方法也称为性质描述,该方法通过定义系统必须满足的一些性质来描述一个系统。不同的形式规约方法要求不同的形式规约语言,也就是用于二8 写形式规约的语言( 也称形式化描述语言) ,如代数语言o b j 、c l e “、a s l 、a c to n e 广r w o 等;进程代数语言c s p 、c c s ,演算等;时序逻辑语言p l t l 、c t l 、) z ,e 、1 0桐_ ) 概念及理论i n 蝴、1 1 a 等:这些规约语言由于基于不同的数学理论及规约方法,因而也千等万别,但它们有一个共同的特点,即每种规约语言均由基本成分和构造成分两部分构成。莉者用来描述基本( 原子) 规约,后者用基本部分组合成大规约。构造成分是形式规约研究和设计的重点,也是衡量规约语言优劣的主要依据【1 9 1 。形式验证形式验证的主要技术包括模犁检验和定理证明。模型检验是一种基于有限状态模型并检验该模型的期望特性的技术。粗略的说,模型检验就是对模型的状态进行蛮力搜索,以确认该系统是否具有某些性质。搜索的可终止性依赖于模型的有限性模型检验方法的一个严重缺陷是“状态爆炸问题0 即随着所要检验的系统的规模增大模型检验算法所需要的时问空间开销往往呈指数增故,因而极大的限制了其实际使用范围。定理证明采用逻辑公式来证明系统及其性质,其中的逻辑由一个具有公理和推理规则的形式化系统给出,进行定理证明的过程就是应用这些公理或推理规则来证明系统具有某些性质。不同于模型检验定理证明可以处理无限状态空间问题。定理证明系统又可以粗略地分为自动和交互式两种类型。自动证明系统是通用搜索过程,在解决各种组合问题中比较成功;交互式定理证明系统需要与用户进行交互,要求用户能提供验证中创造性最强部分( 建立断言等) 的工作【8 】。本文5 5 节原型系统的设计方案中,对构件属性的可推导性证明就采用了交互式证明方式先由系统设计者将构件属性的推导规则以存储过程的形式存放在数据库中,机器进行形式化推导时,宜接调用对应的存储过程,执行规则验证得出可推导性的证明结果。2 3 指称语义基础2 3 1 概述指称方法通过把语言的每种构造和下面两个函数相联系,来表达语言的含义f 7 】。巧:丁寸曰( 1 )i 易:,寸-( 2 )合法性函数巧定义构造t 的静态语义,该函数叫做“上f 文条件”或者“上下文约束”,r _ 口表示从构造t 到布尔值集合b 的全函数。含义函数肘,给出构造t 的动态语义或指称,r _ d r 表示从构造t 到语义论域d r 的部分函数。每个合法性函数由对应的构造t 命名。构造t 叫做语法论域指称集合d ,叫做语义论域。函数y 和m 服务于不同的目的:( 1 ) 合法性函数是一个谓词,即布尔值凼数。它的值为舰p 当且仅当它的变元是对应程序构造的合法实例。引入合法性函数,是为了完成语法描述滩以完成的上下文有关的约束,如取值约束、类型约束等。因为每一个程序变元都必须有对应的合法性约束,故合法性函数声西南大学硕十学位论文明为全函数。在本文讨论的构件领域,合法性约束包括构件接口执行前运行环境中的状态变量必须满足的取值范嗣、变餐状态等条件;( 2 ) 函数肘通过说明其数学指称来描述每个合法构造的含义。由于m 函数只作脂于静态合法的变元,另外可能存在不终止的计算因而它们必须声明为部分豳数。通过区分y 和m 函数,可以得到比把静态语义和动态语义堆在一个机制中更加模块化的描述。尤其是,含义函数的定义总是认为其变元a 从静态语义的观点看是合法的,换句话说,k 伪n w n 这对于保持m 函数的简单性是十分重要的。2 3 2 动态语义含义函数m ,需要下面一些论域:( 1 ) z 整数集合;( 2 ) b ,布尔值集合:( 3 ) v 矾u e ,值集:v a l u e zu 占u “以砌d w 玎 这个特殊的值勋。w 指未定义的赋值状态。语言的语义定义需要选择适当的论域来定义程序的状态。状态s t a t e 表示程序执行期间的瞬像,它包含了程序到目前为止所完成的计算的所有有用信息。在多数情况下,与程序执行有关的信息是程序变量的值。因此,所有可能的状态的集合可以简单地定义为从变量到值的函数的集合。更精确地说,因为任何程序只可能有有限个变量,从而只需要考虑有限函数。因此,表示可

温馨提示

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

评论

0/150

提交评论