




已阅读5页,还剩47页未读, 继续免费阅读
(计算机软件与理论专业论文)基于xml的领域构件库系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文摘要 摘要 随着面向对象和软件复用技术的发展,基于构件的技术已经成为软件开发 技术的主流,对构件库的研究也取得了很大的进展。本文在充分研究了x m l 技 术、构件及构件库技术、软件复用技术、领域工程等相关理论知识的基础上, 设计了一个基于x m l 的领域构件库系统。文中采用了构件刻面分类方法,从构 件添加、构件检索、构件下载和构件删除以及用户管理等相关方面对构件库进 行了详细设计,给出了系统的底层开发框架,最后介绍了系统关键技术的具体 实现过程。 关键词:构件,构件库,领域,刻面 a b s t r a c t d u et ot h e d e v e l o p m e n t o fo b j e c t - o r i e n t e da n ds o f t w a r er e u s et e c h n i q u e , c o m p o n e n t - b a s e dt e c h n i q u ei sb e c o m i n gt h em a i n s t r e a mi ns o f t w a r ed e v e l o p m e n t ,w h i l e c o m p o n e n tl i b r a r yr e s e a r c hi se x p e r i e n c i n gg r e a tp r o g r e s s o nt h eb a s i so fr e l e v a n t t e c h n i q u e s a s x m l ,c o m p o n e n t a n dc o m p o n e n t l i b r a r y , s o f t w a r er e u s e ,d o m a i n e n g i n e e r i n g ,t h i sp a p e ri ss u g g e s t i n gad e s i g no f d o m a i nc o m p o n e n tl i b r a r ys y s t e mb a s e d o nx m l w i t ht h em e t h o do fc o m p o n e n tf a c e tc l a s s i f i c a t i o n , t h i sp a p e r p r o v i d e sd e t a i l e d d e s i g no nc o m p o n e n ta d d i t i o n ,c o m p o n e n ts e a r c h i n g ,c o m p o n e n td o w n l o a d ,c o m p o n e n t d e l e t i o n ,a n du s c ra d m i n i s t r a t i o n t h eb o t t o ml a y e ro ft h es y s t e mf r a m e w o r ki sb r o u g h t u pi nt h ee n d ,t o g e t h e rw i t hd e t a i l e di n t r o d u c t i o no nt h ei m p l e m e n to fk e yt e c h n i q u eo f t h i ss y s t e r n h uf e n g ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db yp r o f s o n gy u k e yw o r d s :c o m p o n e n t ,e o m p o n e n tl i b r a r y , d o m a i n ,f a c e t 声明 本人郑重声明:此处所提交的硕士学位论文基于x m l 的领域构件库系统的 设计与实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究 工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在 论文中作了明确的说明并表示了谢意。 学位论文作者签名:丝盘奎:日期:塑z : 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件:学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:塑叠 e t 期:垒乙! :i 导师签 日 华北电力大学硕士学位论文 1 1 问题的提出 第一章引言 通常情况下。应用软件的开发一般从需求分析开始,经过设计、编码、测试, 最后交付使用,而实际过程中经常会开发一些需求相近的系统,如果都按照传统的 软件工程方法从头设计系统,那么在系统开发过程中就必然存在大量的重复劳动, 如:用户需求获取的重复、需求分析和系统设计的重复、程序编码的重复、测试的 重复和文档工作的重复等。 随着计算机应用的逐步扩大,软件的需求量迅速增加,规模也日益扩大,带来 了软件的复杂程度的增加和程序代码的几何级增长,最终导致软件开发成本增加, 开发周期延长,产品的质量不高。为了解决这些问题,必须真正实现软件的工业化 生产方式。而有效利用他人的成熟产品,即进行软件复用( s o f t w a r er e u s e ) ,是一 条现实可行的途径【i 】。目前,对软件复用技术的研究己成为软件工程界的主攻方向 之一。 软件复用本质上是运用现存软件系统的产品或工程知识构造新的软件系统,在 软件开发中避免重复劳动。其出发点是以已有的工作为基础,充分利用过去应用系 统开发中积累的知识和经验,从而将开发的重点集中于应用的特有构成成分。 随着面向对象和软件复用技术的发展,软件构件技术得到了越来越多的重视。 所谓软件构件( s o f t w a r ec o m p o n e n t ) 是指可被用来构造其他软件的软件组成成份。 随着对构件理解的深入,构件的概念己经不再局限于源代码构件,而是延伸到系统 和构件的需求规约、构架、文档、测试计划、测试案例和数据以及其它对开发活动 有利的信息。基于构件的软件复用是软件产品复用的主要形式,也是当前复用研究 的焦点 然而,在实际的开发中,软件的复用程度并不理想【2 】。软件复用面临一个矛盾: 一方面存在大量的可复用构件;另一方面,复用者却很难找到真正需要的构件要 解决这个问题,就需要借助构件库来对构件进行分类管理和有效检索。 软件构件库是软件构件的基础物质仓库,是分类和管理构件资产的基础设施, 在开发可复用软件构件和基于可复用构件开发之间起到了桥梁作用,它在基于构件 的软件复用中扮演了重要角色 1 2 国内外的研究现状 华北电力大学硕士学位论文 1 2 1 软件的发展历程 。 软件技术发展至今,大致可以分为以下几个阶段: 第一阶段:从上世纪五十年代到六十年代,这一时期的主要标志是f o r t r a n 等编 程语言的算法技术。主要特点: 。 ( 1 ) 程序设计是由个人发挥自己才能的活动,程序编写不受约束,程序成为一件 充满技巧和窍门的“艺术品”; ( 2 ) 基于这种算法技术的软件生产率非常低,程序很难理解; ( 3 ) 编写的软件,修改、维护非常困难。 第二阶段;二十世纪七十代,这一阶段软件的发展主要是为了应对当时出现的 “软件危机”。这一阶段的主要特点; ( 1 ) 非常重视数据结构、程序模块化结构; ( 2 ) 采用自顶向下逐步求精的设计方法; ( 3 ) 单入口单出口的控制结构; ( 4 ) 程序的可读性大大提高,质量和可维护性也大为改善; ( 5 ) 软件的开发成本大大增加。 第三阶段:从2 0 世纪7 0 年代末到8 0 年代,这一阶段的主要标志是以c + + 等 为代表的面向对象技术。主要特点: ( 1 ) 使开发人员和客户之间的交流变得极为简便,减少两者之间的误解,清楚地 表达客户的需求; ( 2 ) 作为一种总体设计的方法,在整体架构设计中有着非常重要的地位; ( 3 ) 在提高软件的可读性、可维护性、可重用性的同时,大大降低软件开发成本。 第四阶段:上世纪九十年代,这一时期的主要标志是以中间件技术为核心的分 布式面向对象技术。主要特点: ( 1 ) 解决异构分布式环境软件重用,即不同软件之间的互操作性、可移植性等技 术问题; ( 2 ) 使面向对象技术的优点在新环境下继续得以保持,简化异构分布式软件开发 的复杂性; ( 3 ) 对于遗留系统( l e g a c ys y s t e m ) 的保留利用,提供有效的解决方案; 2 华北电力大学硕士学位论文 ( 4 ) 支持源代码级的软件复用,使开发成本进一步降低 第五阶段:从2 0 世纪九十年代中期至今,主要标志是以c o m ( c o m p o n e n t o b j e c tm o d e l ,c o m ) ,c o r b a3 0 ,e j b ( e n t e r p r i s ej a v a b e a n , e j b ) 和w e bs e r v i c e 等为代表的软件构件技术主要特点: ( 1 ) 支持可执行二迸制码的软件复用,开发人员在复用别人的软件时,不再付出 太多的代价,便能实现软件复用; ( 2 ) 为实现软件的工业化生产提供一条现实可行的途径。 从软件的发展过程来看,目前正朝着构件技术发展。针对目前软件开发的现状, 通过建立构件库管理系统能够支持构件技术在实际工程上的应用,使构件技术得到 更加广泛地应用。 1 2 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 ef r a m e w o r k ) 模型,r i g ( r e u s el i b r a r y i n t e r o p e r a b i l i t yg r o u p ) , n a t o ( 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 e b o o t ( r e u s eb a s e do no b j e c t o r i e n t e dt e c h n o l o g y ,r e b o o t ) 复用环境,北大青鸟工程的y b c l m s ( j a d eb i r dc o m p o n e n tl i b r a r ym a n a g e m e n t s y s t e m , j b c l m s ) 系统。简要描述如下【3 】: ( 1 ) a l o a f 模型 它是s t a r s ( s o f t w a r e t e c h n o l o g y f o r a d a p t a b l e ,r e l i a b l es y s t e m s ) 项目为解决 在构件库之间共享资源和无缝互操作问题而于1 9 9 2 年提交了一个开放体系结构的 构件框架报告。该报告充分体现s t a r s 项目对可复用构件系统的认识,给出了一 个构件库框架的参考模型和该参考模型的一个实例- - a l o a f 模型,由此表明了以 元模型为基础,在构件库之间交换信息和创建易于移植的复用工具是可能的和必要 的【4 】 ( 2 ) r i g 组织 该组织为了实现在软件复用库之间共享软件构件、解决构件库之间的可互操作 性问题,在a l o a f 的基础上开发了一个数据模型u d m ( u n i f o r md a t am o d e l ) 【9 】, 华北电力大学硕士学位论文 u d m 定义了支持可互操作性的构件库之闻交换构件所需的信息以此来达到构件库 之间的无缝互操作。作为u d m 的一个步骤,r i g 开发了b i d m ( b a s i c i n t e r o p e r a b i l i t y d a t am o d e l ) ,它是u d m 的一个子集,是实现互操作和构件库交换构件所需信息的 最小集【5 l 。 ( 3 ) n a t 0 组织 它制订了一组关于软件复用的标准一可复用软件构件开发指南、可复用软 件构件管理指南和软件复用过程指南,其中可复用构件库管理指南讨论 了有关构件库建立和管理的问题【6 i 。 ( 4 ) r e b o o t 项目 它是国际上比较著名的构件库系统,包括一个存储可复用构件的构件库和一组 产生、认证、插入、提取、评价和适配可复用构件的环到7 1 。 ( 5 ) 青鸟构件库管理系统 它是“基于构件构架模式的软件复用支持系统”的核心子系统,用于对可复用 构件进行描述、管理、存储、分类和检索,以满足基于“构件一构架”复用方式的软 件开发过程的需要【8 1 。 这些构件库管理系统的规范和应用,为通用构件库提供了很好的解决方案。目 前现有的大多数构件库系统都是针对领域间通用的面向对象构件的,对特定领域业 务相关可复用构件的支持不够。而大多数的构件复用都是发生在领域内不同的应用 系统之间的,业务相关构件对于领域应用来说有着更高的复用价值。因而研究特定 领域的构件库系统对构件库的研究和领域内的软件复用都有着重要的实际意义。 1 3 本文的研究目标和主要工作 论文的研究目标是在全面了解构件以及构件库等相关知识的基础上,实际设计 了一个基于x m l 的b s 结构的构件库系统,对系统实现的具体环节进行探索。 论文主要从以下两个方面进行了阐述:一是理论研究方面,阐述软件复用、软 件构件以及构件库等相关技术的主要思想;二是具体实践方面,通过建立一个构件 库系统,在构件的描述、构件的入库、构件的分类和检索等方面进行研究,以便将 软件复用思想应用到实际开发领域中,提高开发的效率和质量。 1 4 论文的组织 本文共分六章。 4 华北电力大学硕士学位论文 第一章是引言,介绍了构件技术的发展现状; 第二章概述了基于构件的软件复用的相关知识: 第三章详细设计了一个构件库系统,包括构件的分类、添加、检索等相关模块; 第四章具体设计了该系统的底层开发框架,并介绍了该框架的具体技术实现; 第五章简要介绍了系统具体实现的一些关键技术点,比如框架的配置、重要的 抽象类和数据库具体操作的核心代码和具体操作过程: 第六章是结束语,简单的总结了一下本文的主要工作和以后需改进的地方。 1 5 小结 本章主要讨论了以下内容: 本文选题的出发点; 软件技术的发展过程和构件库知识的相关研究现状; 本文的主要研究目标; 论文的组织结构。 5 华北电力大学硕士学位论文 第二章基于构件的软件复用技术 2 1 构件的相关技术 随着软件技术的不断发展,软件制造业正面临着一些新的课题,如:复杂的分布 环境、灵活的应用模式、广泛的包容性等,传统的软件设计思想己远远不够。在这 一背景下,构件技术应运而生,并逐渐炙手可热。不同于面向对象技术强调对个体 的抽象,构件则更推广了对象封装的内涵,侧重于复杂系统中组成部分的协调关系, 强调实体在环境中的存在形式,形成一个专门的技术领域。 2 1 1 构件的定义 构件( c o m p o n e n t ) 是应用系统中可以明确辨识的构成成分,可复用构件是指具有 相对独立的功能和可复用价值的构件【”1 ,文献【2 6 】给出了构件的一个比较确切的定 义。 定义1 2 6 :构件是指语义完整、语法正确和有可复用价值的单位软件,是软件 复用过程中可以明确表示的系统构成。 构件是具有相对独立功能和具有可复用价值的软件构成成分,它可以是被封装 的对象类、类树、_ 些功能模块、软件框架、软件构架( 或体系结构) 、文档、分 析件、设计模式等。简单地说,具有相对独立的功能和可复用价值的软件成分都可 被称为可复用构件,可复用构件不但包括源程序而且还包括在软件生产过程中各个 阶段的成品,如项目计划需求定义、分析模型、设计模型、文档、测试案例和数据 以及其它对开发活动有用的信息等,它可以是从旧的软件中提取的也可以是专门为 了复用而开发,可复用构件应具备几个基本要求: ( 1 ) 有用性( u s e f u i n e s s ) :构件必须提供有用的功能; ( 2 ) 可用性( u s a b i l i t y ) :构件必须易于理解和使用; ( 3 ) 质量( q u a l i t y ) :构件及其变形必须能正确工作; ( 4 ) 适应性( a d a p t a b i l i t y ) :构件应该易于通过参数化等方式在不同语境中进行配 置: ( 5 ) 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 构件可以用一个四元组来形式化描述【1 0 l : 构件:= ( 构件标识符,构件说明,构件体,接口) 。 6 华北电力大学硕士学位论文 构件是组成软件的基本单位,它包含以下三个内容: ( 1 ) 构件是可复用的、自包含的、独立于具体应用的软件对象模块; ( 2 ) 对构件的访问只有通过其接口进行; ( 3 ) 构件不直接与别的构件通信。 2 1 2 构件的特点 总的说来,软件构件具有以下特点“”: ( 1 ) 以二进制形式存在,软件构件一般不再以源代码方式实现复用; ( 2 ) 可以与其它独立开发的软件构件协同工作,经过少量的修改,软件构件可以 很容易地移植到其它构件生产商所生产的构件中; ( 3 ) 软件构件具有相对独立的功能,可以顺利地将软件构件组合成一个应用系统: ( 4 ) 程序设计语言无关,软件构件不依赖于任何一门编程语言,这便于软件开发 人员与别的软件构件组装; ( 5 ) 成为其它软件构件的生成模块,软件构件和一般的对象相比,可大可小; ( 6 ) 存储在构件库中的长久实体,软件构件是一种带有插件的静态抽象; ( 7 ) 有提供和请求服务的插件,插件是构件与外部世界( 如消息、端口等) 通信 的渠道; ( 8 ) 具有良好定义的接口: ( 9 ) 属于某种构件模型; ( 1 0 ) 有充分的自容性。 2 1 3 构件规范 随着构件技术的广泛使用,s u n 、m i c r o s o f t 等大公司和国际组织制定和提出了 许多构件标准和参考模型,其中比较有代表性的有c o r b a ,c o m d c o m ,以及j a v a b e a n 。 ( 1 ) 公共对象请求代理体系结构c o r b a 公共对象请求代理体系结构c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 是由对象管理组织伽g ( o b j e c tm a n a g e m e n tg r o u p ) 制定的一个工业 规范。c o r b a 的核心思想是采用标准的接口定义语言将软件接口与软件实现相分离。 为此引进了接口定义语言i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 及其映射。i d l 语 言是种中性语言,使用i d l 的客户可以根据i d l 接口中的信息来决定如何发出请求 华北电力大学硕士学位论文 和接收响应,使得客户对象完全独立于具体对象实现所在的位置、使用的编程语言 及其它与对象接口无关的方面。c o r b a 通过对象系统为客户提供服务,对象间的交 互通过o r b ( o b j e c tr e q u e s tb r o k e r ) 传递。对于一个交互来说有客户方和服务方 之分,在c o r b a 中称之为客户( c l i e n t ) 和对象实现( o b j e c ti m p l e m e n t a t i o n ) 。客户 通过构造一个请求来要求得到服务,与请求相关的信息包括操作、目标对象、零个 或多个参数。对象实现使用接口( i n t e r f a c e ) 来描述对它执行的操作。o r b 将请求交 付给目标对象并将响应返回到发出请求的客户。 c o r b a 有几个基本优点:与开发语言的无关性,与开发者无关的独立性和与操作 系统无关的独立性。c o r b a 的o r b 在当前每一种主流操作系统上均有实现,除此之外, o r b 可以访i n 多种语言实现的对象( c + + ,c o b o l ,s m a l l t a l k 和,l a v a ) 。c o r b a 的缺点 是:由于o m g 向各公司提供的是技术规范而非实现细节,因此每种o r b 版本并不是完 全相同,因此为了增加扩展性,不得不损失掉互操作性和移植性;大量的命令集; 缺乏开发工具。 ( 2 ) 微软的构件对象模型c o m d c o m c o m ( c o m p o n e n to b j e c tm o d e l ) 是微软的构件解决方案,它是为构件的互操作 定义的二进制构件模型。c o m 规定了对象模型和编程要求,使c o m 对象可以与其它对 象互相操作。在c o m d c 0 m 中,所有应用都被看作一个对象,并通过接口提供对象的 服务。客户只能通过指针来使用接口,但不能使用指针于对象。构件对象的类能够 提供多种服务,因此构件对象可以有多个接口。构件对象的所有接口都必须继承名 为“i u n k n o w n ”的基本接口,它提供了查询对象的不同接口和管理对象生命周期的 方法。与i d l 类似,微软用接口定义语言m i d l 来精确定义接口,每一接口中的方法, 以及每一方法中的参数。分布式构件对象模型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 t m o d e l ) 是c o m 的一个分布式扩充。c o m 和d c o m 的最大不同在于c o m 构件是运行在单机 上,而i ) c o m 构件则是分布在网络上。因此它必须涉及安全性和访问控制。 c o m d c o m 的主要优点包括:拥有高质量的开发工具及向导( w i z a r d ) ;有大量的 商品化a c t i v e x 构件可供选择:具有静态和动态接口支持;支持多线程服务。但是 它也有一些缺点:一是它由单一开发者( 微软) 定义并控制,这大大限制了使用者的 选择范围。二是缺乏众多的平台支持,这极大程度地制约了代码的可重用性和应用 的可扩展性。 ( 3 ) s u n 的构件对象模型j a v a b e a n j a v a 对于构件的观点与c o r b a 中的构件观点存在一定的区别。在j a v a 中,构件 是能够进行可视化操作的可重用构件,它满足一定的特征要求,并可以根据需要进 行定制和组装。j a v a 的构件称为j a v ab e a n 或简称b e a n 。按照j a v as o f t 给出的定义, 华北电力大学硕士学位论文 b e a n 是能够在构造工具中进行可视化操作的可重用构件。j a v ab e a n 具有属性、方 法、事件、自我检查、定制和永久性等6 个方面的特征,其中前3 种特征是面向对象 的构件必须满足的基本要求,后3 种特征主要侧重于j a v ab e a n 构件性质的刻画。 j a v a 提供了一个概念清晰、结构紧凑的分布计算模型和构件互操作的方法, 为构件应用开发提供了相当的灵活性。j a v a 和c o r b a 在很大程度上可以看作是互补 的。c o r b a 不只是对象请求代理o r b ,也是一个非常完整的分布式对象平台。c o r b a 可以扩展j a v a 语言在网络、语言、构件边界、操作系统中的各种应用。j a v a 简化了 大型c o r b a 系统中的代码分配,其中内置的多线程机制和垃圾收集使编写可靠的网 络对象更为方便。此外,j a v a 能创建可移动对象并将它们分发出去,而采用c o r b a 可以将它们连接在一起,并与计算环境中的数据库、遗留系统、其它语言编写的对 象和应用互相集成。c o r b a 与j a v a 的基础结构也可以很好地补充。c o r b a 处理网路透 明性,j a v a 处理实现透明性。二者的结合将成为o b j e c tw e b 技术的主要形态。 2 1 4 构件的分类与检索 2 1 4 1 构件分类和检索的必要性 软件复用技术,是软件工程研究的重点之一,作为提高软件生产率和软件质量 的有效方法已日益受到软件工程师们的重视。当前许多软件机构和组织正在构建自 己的可复用软件库,他们面临的主要技术问题是如何有效检索库中大量的可复用资 源。 构件的查询过程就是定位类似的构件,使用者只需理解查询得到的少数构件就 可以决定是否直接重用构件。查找软件构件的传统方法。如查看一个用户手则,使 用浏览器检查源代码等,不仅花费大量时间,而且对理解构件帮助不大。通常,在 本地较小的软件库中的构件检索是比较简单的,用户能够很容易地检索到所需的构 件,并可通过它们的名字或通过浏览库来选择它们:但在一个大的软件库中检索可 复用的构件就没有这么简单,存在很多影响检索效率的因素,一般包括: ( 1 ) 用户请求与所需构件信息的相近程度; ( 2 ) 搜寻和索引策略; ( 3 ) 索引方法的详尽性和具体性; ( 4 ) 使用的匹配和相似分析机制 实践中构件数量不断增长,构件也随技术和领域演化而更新,构件的数量只有 达到一定程度后才能满足复用要求,而要在众多构件的库里中找到所需的构件需要 对大量构件进行分类并借助自动检索工具的支持。构件的分类是建立和维护构件目 9 华北电力大学硕士学位论文 录信息的活动,构件的检索方法依赖于构件的标识和分类。对构件进行分类有三个 好处:便于组织管理、方便查询和辅助理解。图2 - 1 是构件分类存储示意图,图2 2 是构件检索复用示意图。 川胡 图2 - 1 构件分类存储示意图 胡胡 图2 - 2 构件检索复用示意图 对单个构件的复用可以划分为构件的识别和检索、构件的理解和适应性修改三 部分,复用成本公式“们为: 软件复用的成本= 检索成本+ 理解成本+ 修改成本 有效的检索机制能大大降低构件的检索成本和理解成本,对构件的分类就是为 了高效方便的检索,而构件的分类最终体现在构件的分类描述上。因此,一个好的 描述是有效检索机制的基础。良好的描述可以使检索者容易获得真正需要的构件; 而不好的描述则容易导致两个结果:检索结果中包含许多不需要的构件;检索结果 中不包含真正需要的构件。这样将大大增加复用成本,并可能导致复用失败。所以 构件的分类和描述对构件的成功复用是至关重要的。 2 1 4 2 构件分类和检索方法 软件构件分类方法较多,从不同的角度有不同的分类方法,而构件的描述方法 是构件分类和检索技术的基础,3 c 模型和r e b o o t 模型是构件描述中的两个重要的 描述模型。l a t o u r 等人提出了3 c 模型,认为一个理想的构件的描述应当涵盖以下 3 个方面一概念( c o n c e p t ) 、内容( c o n t e n t ) 、语境( c o n t e x t ) 。其中,概念是关于“构 件做什么”的抽象描述,可以通过概念去理解构件的功能;内容是概念的具体实现, 描述构件如何完成概念所刻画的功能;语境是描述构件和外围环境在概念级和内容 级的关系,语境刻画构件的应用环境,为构件的选用和适应性修改提供指导信息。 l o 华北电力大学硕士学位论文 r e b o o t 模型是在r e b o o t 项目中总结提出的,它实质上是一个刻面分类模型。该模 型认为;可以用有限维信息空间的术语组合从若干个刻面的综合角度来刻画一个构 件具体到r e b o o t 项目,他们提出的刻面有以下4 个:依赖( d e p e n d e n c i e s ) 、抽 象( 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 b j e c t ) 。 在实际使用中,这些模型需要被转化为具体的语言描述形式,目前所提出来的 语言主要分两类:规约语言与编目语言。规约语言不仅可被用于构件的签名匹配和 规约匹配,还可以用于实现自动化的构件验证与组装。在规约语言的研究中主要经 历了操作规约语言、接口规约语言、表达式规约语言等几个发展阶段。”。目前研究 的第四代规约描述语言的工作主要集中在构件的语境描述上,即构件使用的语境信 息。有代表性的工作如青鸟构件描述语言,它不仅能够描述构件,更提供了对构件 予系统的描述能力。这部分的工作集中于9 0 年代中后期,它的成熟有待于进一步 的实践与推广。 基于规约的编码和检索方法是基于形式化的构件规约,排除了正文和描述子检 索的编码二义性,具有良好的理论背景,通常能够保证构件的正确性和构件与需求 的匹配。该方法依赖于规约语言的表达能力,往往有很高的查全率,但是会降低查 准率。有人提出使用关系规约和“精化”偏序关系来组织和检索构件。还有人提出 使用抽象数据类型的代数规约及其之间的“实现”偏序关系,通过从代码中直接抽 取基调和行为公理构件的行为规约必须考虑成本问题。包括推导和验证规约的成 本,匹配计算的成本,但是最大问题可能还是复用者“钔很难有足够的技巧和耐心来 构造所需构件的完整公约。该类方法目前处于理论研究阶段,应用到的领域也多是 形式化方法经常关注的实时系统和交互系统。 对于编目语言,根据所使用的技术可分为3 类:图书馆与信息科学方法、人工 智能方法和超文本方法。目前这一领域绝大部分研究工作集中在图书馆与信息科学 方法,所提出的具体方法有枚举、刻面、关键字等等。 构件的检索技术在很大程度上依赖于构件的表示方法,目前所提出的检索方 法,根据表示方法的不同可分为以下5 类:基于表达式规约表示的规约匹配,基于 接口规约表示的签名匹配,基于编目术语的特征轮廓匹配,基于构件行为的采样匹 配,基于知识表示的人工智能检索方法。w f r a k e s 和h m i l i 分别对现有的构件表 示和检索方法进行分类。w f r a k e s 从构件表示出发将现有方法分为:人工智能方 法、超文本方法、信息科学方法三类h m i l i 则按复杂度和检索效果的递增将其分 为基于文本、基于词法描述子的和基于规则的编码和检索三类。 在实际项目应用中较成功的是信息科学方法,图2 3 是它的编目方法分类图。 华北电力大学硕士学位论文 图2 3 信息科学方法编目方法分类图 在信息科学方法中,以枚举、刻面、关键词、属性值和正文检索最为常见,又 以关键字分类和刻面分类两种应用居多。 枚举分类枚举分类方法通常将一个被关注的领域严格划分为不相交的子领 域,依次构成层次结构:该方法对领域进行清晰高度结构化的划分,易于理解和使 用;但该方法多于严格,使得分类模式难以伴随淋浴演变而改变,能够表示的关系 也受到限制。 属性值分类属性值分类方法与刻面分类相似,所不同的是刻面对应的术语空 间是有限的不定空间,而属性的值域往往是无限的确定空间,刻面选择也远远比属 性要慎重。 关键词分类关键词分类简单而且普遍,每个构件以一组与之相关的关键词编 目,一般认为关键词的取值不受限制。由于关键词缺少上下文语境而不够精确,导 致该方法所支持的查询效率不高。 刻面分类所谓刻面是指能从特定的视角刻画或反映构件本质特性的方面,它 使得用户可以从多个不同的角度去理解和使用构件。刻面分类方法是将关键词术语 置于一定的环境中,并从不同刻面进行精确分类的方法。每个刻面具有一组术语关 键词,术语之间具有一般特殊关系而形成结构化的术语空间,允许术语之间有同义 词关系。术语仅限在给定的刻面之中取值受控制的词汇表。在术语空间中,游历可 以帮助复用者理解相关领域,术语空间可以演变。刻面选择和术语空间的建立,依 赖不同构件库的角色和复用组织的需求。例如有关文献提出刻面有:功能、对象、 介质、系统类型、功能领域和应用领域。有的在构件库中定义的刻面为:抽象、操 作、操作对象和依赖。有的定义的刻面分别为:使用环境、应用领域、功能、层次 和表示方法。 构件库中的每个构件都具有一组属性,这些属性有的是构件的制作者或提供者 提供的,有的是构件库根据构件的使用情况加入的。从表面上看,属性与刻面非常 华北电力大学硕士学位论文 相似,属性值就相当于刻面的术语。但二者是有一定的区别的,主要区别如下: ( 1 ) 刻面是构件属性的一个子集。属性绝大部分是由构件的制作者或提供者提供 的,而刻面则完全是由构件库的管理者规定的,构件的制作者或提供者完全不需要 了解它们。 ( 2 ) 刻面是构件的复用者在查询构件时最感兴趣的构件属性。在查询时复用者通 过选择刻面的术语,可以明确地限定构件的范畴,不会有遗漏的构件。 表2 1 列出有关部分构件库系统的构件索引和检索方法“o ,表格后面列出了的 是近期的几个复用库系统。 表2 - 1 部分构件库系统的构件索引和检索方法 华北电力大学硕士学位论文 2 2 软件复用 软件复用是在软件开发过程中避免重复劳动的解决方案,出发点是在应用系统 的开发中充分利用过去应用系统开发中积累的知识和经验,以提高软件开发的效率 和软件的正确性乜“。 应用系统本质通常包含三类成分:( 1 ) 基本通用构件:是特定于计算机系统 的构成成分,如基本的数据结构、系统接口等,是由系统或通用软件提供的通用接 口;( 2 ) 领域共性构件:是应用系统所属领域的共性构件成分,存在领域的各个 系统中;( 3 ) 应用专用构件:是每个应用系统的特有构成成分。软件复用主要是 对于前两种构成成分的重复使用。随着面向对象技术的发展,软件构件技术产生并 大量应用于各种应用系统中,并逐渐成为软件复用的核心技术。软件构件的复用技 术成为受到高度重视的研究热点 2 2 1 基本概念 软件复用是指重复使用“为复用目的而设计的软件”的过程。相应地,可复用 软件是指为了重复使用目的而设计的软件汹1 。软件复用包括开发可复用软件的过程 和基于可复用软件的系统开发两个生存周期。构件技术是支持软件复用的核心技 术。可复用构件的复用是软件复用的主要形式。可复用构件的开发是以开发可以复 用构件为目的的开发过程,也就是获取可复用构件的过程,包括有目的的构件生产 和从已有系统中挖掘提取构件的过程,涵盖了应用系统的领域工程和软件再工程。 基于可复用构件的开发是将已有构件快速、高效的组装为应用系统的开发过程,是 软件复用生产线的组装阶段,它包括构件构架技术和开放系统技术。为了实现构件 的重用和互操作,人们提出了许多应用系统框架和规范,如:c o m ,c o r b a ,e j b 等。 基于这些技术人们可以在一定范围内实现可复用构件的开发和基于可复用构件的 开发。 2 2 2 软件复用相关技术 实现软件复用的关键因素( 技术因素和非技术因素) 主要包括:软件构件技术 ( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 、领域工程( d o m a i ne n g i n e e r i n g ) 、软件架构 ( s o f t w a r ea r c h i t e c t u r e ) 、软件过程( s o f t w a r ep r o c e s s ) ,c a s e 技术等以及各种 非技术因素,且各种因素相互联系、相互影响的。它们结合在一起,共同影响软件 复用的实现。 ( 1 ) 软件构件技术 软件构件技术是支持软件复用的核心技术。 1 4 华北电力大学硕士学位论文 ( 2 ) 软件构架 软件架构是对系统整体结构设计的刻画,包括全局组织与控制结构,构件间通 讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元素集成, 伸缩性和性能,设计选择等。软件架构研究如何快速、可靠的从可复用构件构造系 统的方式,着重于软件系统自身的整体结构和构件间的互联。 ( 3 ) 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过 程,它覆盖了建立可复用软件构件的所有活动领域是指一组具有相似或相近软件 需求的应用系统所覆盖的功能区域。领域工程包括领域分析、领域设计和领域实现 单个部分。 ( 4 ) 软件过程 软件过程是软件生存周期内为达到一定的目地而必须实施的一系列相关过程 的集合。基于构建服用的软件开发过程和传统的软件开发过程有着实质的不同。对 软件复用的软件过程的研究也是软件复用研究的重要问题。 2 3 领域工程 2 3 1 领域工程的基本概念 领域工程中有一些基本的概念,正确、深入的理解这些概念对于理解和实施领 域工程具有重要的意义。 ( 1 ) 领域 领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域领域是 领域工程中的基础概念,领域概念的确定决定了领域工程中许多行为和方法的合 义。例如,领域工程师进行领域分析时,需要与“领域专家”进行交流,以获得关 于领域的知识。“领域专家”常常是系统分析员。 ( 2 ) 领域模型 领域模型描述领域中系统之间的共同需求。领域工程的实施是基于这样一个事 实:同一领域中的系统的需求和功能必然具有显著的共性,其实现也常常具有共性。 领域模型描述了需求上的共性,因此称领域模型中描述的需求为“领域需求”。 在进行应用工程时,通过将当前系统需求与领域需求比较,系统分析员可以很 快地建立当前系统的需求模型。也就是说,领域模型可以辅助开发者理解一个应用 1 5 华北电力大学硕士学位论文 领域,并作为系统分析的起点。领域需求是通过考察领域中已有的系统获得的,当 领域中存在大量的系统时,需要选择它们的一个子集作为样本系统,对样本系统需 求的考察将显示领域需求的一个变化范围。一些需求对所有被考察的系统是共有 的,一些需求是单个系统所独有的,依据己获取的领域需求可以建立领域模型。 ( 3 ) 领域工程 领域工程是为一组相似或相近的应用工程建立基本能力和必备基础的过程,它 覆盖了建立可复用软件构件的所有活动。领域工程对领域中的系统进行分析,识别 这些应用的共同特征和可变特征,对刻画这些特征的对象和操作进行选择和抽象, 形成领域模型,依据领域模型产生d s s a ( 特定领域的软件体系结构) ,并以此为基 础识别、开发和组织可复用构件。这样,当开发同一领域中的新应用时,可以根据 领域模型,确定新应用的需求规约,根据特定领域的软件体系结构形成新应用的设 计,并以此为基础选择可复用构件并进行组装,从而形成新系统。 2 3 2 领域工程的三个基本阶段 实施领域工程的过程包含了一些基本的行为,虽然具体的领域工程方法可能定 义不同的概念、步骤、产品等,但这些基本行为大体上是一致的,这些行为分为三 个阶段。 ( 1 ) 领域分析 这个阶段的主要目标是获得领域模型。领域模型描述领域中系统之间的共同的 需求,我们将领域模型所描述的需求为领域需求。在这个阶段中首先要进行一些准 备性的工作,包括定义领域的边界,明确分析的对象:识别信息源,即领域分析和 整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域 和系统开发的专家、用户调查和市场分析、领域演化的历史记录等在此基础上, 就可以分析领域中系统的需求,确定哪些需求是被领域中的系统广泛共享的,从而 建立领域模型。当领域中存在大量系统时,需要选择它们的一个子集作为样本系统, 对样本系统需求的考察将显示领域需求的变化范围,一些需求对所有被考察的系统 来说是共有的,而一些需求是单个系统所特有的,很多需求位于这两个极端之间, 即被部分系统共享。这些处于不同地位的需求被分别表示和描述,反映在领域模型 中。 ( 2 ) 领域设计 这个阶段的目标是获得d s s a 。d s s a 描述在领域模型中表示的需求的解决方案, 它不是单个系统的表示,而是能够适应领域中多个系统的需求的高层次设计。建立 了领域模型之后可以派生出满足这些领域需求的d s s a 。由于领域模型中的领域需求 1 6 华北电力大学硕士学位论文 具有一定的变化性,d s s a 也要相应的具有变化性。由于复用构件是依据领域模型和 d s s a 来组织的,因此在这个阶段通过获得d s s a ,也就同时形成了复用构件的规约。 ( 3 ) 领域实现 这个阶段的主要目标是依据d s s a 开发和组织可复用信息。这些可复用信息可 能是从现有系统中提取得到的,也可能需要通过新的开发得到。也就是说d s s a 定 义了这些可复用信息的复用时机,从而支持了系统化的软件复用。这个阶段也可以 看作复用构件的实现阶段。 需要说明的是,领域工程的三个基本阶段所描述的过程是一个反复的、逐渐求 精的过程。在实施领域工程的每个阶段中,都可能返回到以前的步骤,对以前得到 的结果进行修改和完善,再回到当前步骤,在新的基础上实施本阶段的过程。 2 3 3 基于领域工程的软件开发模型 基于领域工程的软件开发的开发过程可以概括为: ( 1 ) 领域分析:通过专向领域的需求分析,经过抽取得到领域模型; ( 2 ) 领域设计:u m l 模型可利用c a s e 工具自动生成i d l 文件,并对领域体系结构 进行描述生成相应的a d l 文件( 采用a c m e 描述) ; ( 3 ) 领域实现:编译领域设计得到的i d l 文件,自动生成代码; ( 4 ) 应用实现:根据设计得到的a c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东营销公众号开发方案
- 《化工产品运输安全知识普及及应急处理合同》
- 生态园区物业股权转让及绿色建设管理合同
- 生物医药研发成果知识产权共有与市场推广合同
- 守护未成年人权益的监护人协议书模板解析
- 离婚协议中夫妻共同债务清偿与个人债务承担操作指南
- 离婚房产分割及子女抚养权变更与财产清算协议
- 离婚协议中股权及房产转让与子女抚养权协议
- 高等院校离退休教师返聘教学及科研合作协议
- 双方自愿离婚及财产分配与子女监护协议
- 2025年上半年湖北十堰竹山招募三支一扶高校毕业生聘用为事业单位人员12人易考易错模拟试题(共500题)试卷后附参考答案
- 餐饮服务明厨亮灶建设工作方案
- 兽医化验员专业知识考试题及答案
- 福建台湾海峡大桥建设工程可行性研究报告
- (完整)注册安全工程师考试题库(含答案)
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
- 起重机械生产单位质量安全总监-特种设备考试题库
- JBT 9189-2016 水基材料防锈试验方法 铸铁屑试验
评论
0/150
提交评论