已阅读5页,还剩52页未读, 继续免费阅读
(计算机软件与理论专业论文)基于软构件的开发环境的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 中文摘要 软件危机的产生,以及软件行业的工业化趋势导致了软构件的产生。能够像 硬件系统那样,将部分软件组合起来构建软件系统,一直是软件行业多年来追求 的目标。充分利用已有的软构件,将会大大提高生产效率,减少大量重复劳动, 并且提高软件的质量。可以说,基于软构件的开发技术的出现是对传统软件开发 过程的一次变革,使得各种技术形成的软构件可以最大程度地进行复用。这就引 出了大规模软件开发所面临的另一个问题:如何建造面向对象的软构件库结构, 并有效地组织和管理:如何建立基于构件的开发支撑环境;以及如何利用基于构 件的开发方法与相关领域相结合的开发技术。 本文针对上述问题做了一些有意义的研究,并有了一些成果。首先介绍了 关于构件的基本概念,特征、分类等相关技术,并比较了几种主流的构件技术, 包括c o r b a 、c o m d c o m 、j 2 e e 三种著名的构件技术。接下来对构件库的管 理技术进行了详细的分析,并对构建构件库的基本要求、主要功能进行了研究, 介绍了几种常用的构件检索方法。另外,本文还研究了几个著名的构件库系统, 并研究了他们的构件模型。 在第三章中,本文在深入研究了构件库及环境的同时,对基于构件的软件开 发方法( c b s e c b d ) 电进行了研究。重点论述了c b s e c b d 的丌发工程,并与构 件开发环境紧密联系起来,研究了在c b s e ,c b d 过程中,如何应用构件开发环 境,来实现构件的分类、维护、检索、更新、添加、删除等技术,并且也对c b d 与传统的软件开发方法进行了比较。 如何在一个领域中进行基于构件的开发方法,是当前软件工程的一个重要 的研究方向之一。本文在第四章中将基于构件的软件开发方法应用在地理信息系 统领域( g i s ) ,利用m a p x t r e m e 等构件在g i s 构件环境尾实现了武汉网络地理信 息系统( w e b g i s ) 。最后本文给出了总结和展望。 关键词:构件,刻面,构件库,地理信息系统 武汉理工大学硕十学位论文 a b s t r a c t t h ea p p e a r a n c eo fc r i s i so fs o f t w a r ea n dt r e n do f i n d u s t r i a l i z a t i o ni nc o m p u t e r s o f t w a r el e a d st ot h ea p p e a r a n c eo fs o f t w a r ec o m p o n e n t s o f t w a r ec a nb ec o m p o s e d w i t hc o m p o n e n t sl i k eh a r d w a r e ,w h i c hi st h ea i mo fs o f t w a r e i n d u s f f yf o rm a n yy e a r s f u l lu s eo fe x i s t e ds o f t w a r e c o m p o n e n tw i l li m p r o v ep r o d u c t i o ne f f i c i e n c y , a n d r e d u c el o t so f r e p e t i t i o nl a b o r , i m p r o v eq u a l i uo f s o f t w a r e t h ea p p e a r a n c eo ft h e t e c h n o l o g y o fc o m p o n e n t b a s e d d e v e l o p m e n t i so n eo fr e f o r m so ft r a d i t i o n a l s o f t w a r ed e v e l o p m e n t ,a n dl e a d st ou t m o s tr e u s ef o r c o m p o n e n t t h i sb r i n g sf o r t ht oa q u e s t i o n f o r l a r g e s t s o f t w a r e d e v e l o p m e n t :h o w t oc o n s t r u c tt h ef r a m e w o r ko f c o m p o n e n tr e p o s i t o r i e s ;h o wt oo r g a n i z ea n dm a n a g et h ec o m p o n e n tr e p o s i t o r i e s ; h o wt oe s t a b l i s ht h ee n v i r o n m e n to f 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 ) ;a n dh o w t o d e v e l o p m e n tt h ea p p l i c a t i o ns y s t e m i ns o m er e a l mu s i n gt h e t e c h n o l o g yo f c o m p o n e n t b a s e dd e v e l o p m e n t i nt h i s p a p e r , f i r s t l y , t h eb a s i cc o n c e p t sa n dc l a s s i f ya b o u tc o m p o n e n t ,a r e d i s c u s s e d ,a n dc o m p a r et h r e ek i n d so fm a i n l yt e c h n o l o g i e so fc o m p o n e n t ,s u c ha s c o r b a 、c o m d c o m 、j 2 e e s e c o n d l y , t h ep a p e ra n a l y s e s i nd e t a i l st h e m a n a g e m e n to fc o m p o n e n tr e p o s i t o r i e s ,a n ds t u d yt h eb a s i cd e m a n da n dm a i n l y f u n c t i o no f c o m p o n e n tr e p o s i t o r i e s ,a n d i n t r o d u c es e v e r a l c o m p o n e n t r e t r i e v e m e t h o d s w h a t sm o r e ,t h e p a p e r s t u d i e s s e v e r a ln o t e d c o m p o n e n tr e p o s i t o r i e s , i n c l u d eo f t h e i rc o m p o n e n tm o d e l i nc h a p t e rt h r e e ,c o m p o n e n tr e p o s i t o r i e sa n de n v i r o n m e n ta l ed i s c u s s e d ,a n d i n c l u d ec b s e c b d i tm a i n l yd i s c u s s e dt h ed e v e l o p m e n te n g i n e e ro fc b s e c b d w h i c hr e l a t e dw i t h d e v e l o p m e n te n v i r o n m e n t ,a n dh o wt o r e a l i z e s y s t e m i n c b s e c b d i n c h a p t e rf o u r , t h ea p p l i c a t i o ni n t h ed o m a i no fg i so fc b s e c b da r e d i s c u s s e di nt h i s c h a p t e r , w h i c hm a i n l ya n a l y s e sh o wt or e a l i z et h ew e b g i so f w u h a n1 1 s eo f t h e c o m p o n e n to f m a p x t r e m e l a s t l y ,c o n c l u s i o na n de x p e c t a t i o na r ed i s c u s s e di nt h ee n do f t h i s p a p e r k e y w o r d s :c o m p o n e n t ,f a c e ,c o m p o n e n tr e p o s i t o r i e s ,g i s 武汉理丁大学硕士学位论文 1 1 引言 第1 章绪论 随着计算机制造业突飞猛进的发展,硬件技术及硬件性能的提高速度总是快 于软件,著名的摩尔定律说明了硬件的发展速度,但考察一下软件开发的速度, 可以发现软件开发的速度一直远远落后于硬件的速度。实际上业内人士一直没有 停止过对软件开发思想的探索,只不过快速地对软件开发的需求掩盖了软件开发 思想的进步。 软件的应用领域也发生了根本的变化,模式从单机模式、c s 模式一直到现 在的网络计算,特别是网络计算带领软件产业进入了一个新的时代,以电子商务 为代表的技术潮流正将大到企业计算、小到个人数字代理的各种应用,在世界范 围内联结起来,软件制造业正面临着一些新的课题,如复杂的分布环境、灵活的 应用模式、广泛的包容性等,传统的软件设计思想己远远不够。 在这种背景下,软件构件技术应运而生,并逐渐迅速发展。不同于面向对 象技术强调对个体的抽象,构件则更推广了对象封装的内涵,侧重于复杂系统中 组成部分的协调关系,强调实体在环境中的存在形式,并形成一个专门的技术领 域。而解决诸如此类问题的最佳方法是采用软件复用的方法和构件化进行软件开 发。 1 2 本文的研究内容与现状 1 2 1 构件技术的发展现状 在1 9 6 8 年的n a t o ( 北大西洋公约组织) 软件工程会议上,m c i l r o y 在论 文“大量生产的软件构件”中第一次提出了软件重用的概念,认为软件重用的基 础是软构件( s o r w a r ec o m p o n e n t ) ,可以通过建立可复用的软构件库促进大规模 软件的开发。从此以后软件构件化技术,由于软件重用的需要而迅速发展。为 使软件像硬件样能通过标准的组件来组装,人们开始从系统级和应用级上研究 构成软件的规范化标准。 武汉理工大学硕士学位论文 近年来,构件技术发展迅速,已形成三个主要流派,分别是i b m 的 c o r b a 、s u n 的j 2 e e 平台和m i c r o s o f t 的c o m d c o m 。目前,在理论上,学 术界与产业界也已经提出了许多构件模型,有代表性的理论模型包括r e b o o t 模型( 刻面模型) 、3 c 模型、青鸟模型等。 在基于构件的软件开发方面。当今,虽然软件业已经存在大量的基于构件的 开发技术的概念、方法和工具,但还没有完全迁移到c b d 软件开发范型。一个 主要原因足缺少一套成熟的c b d 开发方法学,至今尚未完全解决的包括有如卜 关键问题1 2 j : 1 必须建立一个完善的c b d 概念框架,用数学方法定义构件相关概念的形 式化模型,既要尽可能简单,又要足以描述已有的构件基本概念和开发技术。 2 必须有切实可行的构件描述方法和技术。在构件概念框架基础上,为构 件开发者建立相互交流的特殊语言,例如u m l 的图形化描述技术和c o r b ai d l 的文本描述技术,理想的描述技术可以提供系统的一致性约束和正确性验证。 3 要为c b d 的开发流程建立一个合理的过程模型,特别要研究如何为扮演 不同角色的开发者分配相应的任务,例如软件体系结构设计师负责软件构架设计 的详细职责和结果验收标准。 4 要有支持描述技术和过程模型的辅助开发工具,至少需要具备开发构件、 实现应用系统和生成文档的工具。理想的开发工具还包括关键系统特征的验证工 具。 1 ,2 2 本文的研究内容和目的 本文针对上述中的一些问题进行了论述,研究内容主要有: 1 构件技术 本文介绍了构件的定义及基本特征,并比较了几种主流的构件技术,包括 c o r b a 、c o m d c o m 、j 2 e e 三种著名的构件技术,分析了它们各自的优缺点,也对 构件的分类进行了研究,并给出了一种索引方法的分类法。 2 构件库模型及其实例 构件库是基于构件开发环境研究的基础在这方面,本文对构件库的管理技 术进行了详细的分析,并对其基本受求、主要功能进行了研究,介绍了几种常用 武汉理工大学硕十学位论文 的构件检索方法。另外,本文还给出了几个著名的构件库系统,并研究了他们的 构件模型。 3 基于构件的软件丌发方法 基于构件的软件开发( c b s e c b d ) 是基于构件环境研究的目的。本文在深入 研究了构件库及环境的同时,对c b s e c b d 技术也进行了分析。文章研究了 c b s e c b d 的开发工程,并与构件开发环境紧密联系起来,研究了在c b s e c b d 过程中,如何应用构件开发环境,来实现构件的分类、维护、检索、更新、添加、 删除等技术,也对c b d 与传统的软件开发方法进行了比较。 4 在g t s 领域使用基于构件的开发方法来实现w 曲g i s 的技术 如何在一个领域中进行基于构件的开发方法,是当前软件工程的一个最重要 研究方向之一。本文将基于构件的软件开发方法应用在地理信息系统( a i s ) 领域, 利用m a p x t r e m e 等构件在g i s 构件环境里实现了武汉网络地理信息系统 ( w e b g i s ) 。最后本文给出了总结和展望。 本文的目的主要是以软构件技术和构件库模型为基础,研究基于软构件的开 发支撑环境,其中包含构件库及其管理模型,以及实现构件的分类、维护、检索、 更新、添加、删除等技术,同时还研究了基于构件的软件开发方法,并以武汉 w e b g i s 的实现为例予,研究了如何在g i s 构件环境中使用m a p x t r e m e 构件来开 发软件系统。 武汉理工大学硕士学位论文 第2 章软构件与构件库技术研究 2 1 构件技术 2 1 1 构件的定义及基本特征 1 构件的定义 一般认为,构件是指语义完整、语法正确和有可复用价值的单位软件,是软 件复用过程中可以明确辩识的有机构成成分;结构上,它是语义描述、通讯接口 和实现代码的复合体。它具有相对独立性、互换性和功能性的特征,即软件构件 不依存于某一个系统,它可以被相同的构件所替换,并且具有实际的功能意义。 早期的构件主要指可复用的程序代码,一般称为代码件。这个时期的软件生产考 虑的主要问题是如何充分利用已有的源程序代码、子程序库和类库来提高软件开 发的效率。现在构件的范围扩大了,包括分析件、设计件、代码件、测试件等多 种类型。本文主要研究的还是针对代码件的构件技术。 近年来,随着分布式对象、i n t e m e t 、j a v a 等技术以及基于构件的软件开发 技术的发展,对构件的认识产生了新的看法,出现了若干新的软件构件的定义, 代表性的有如下几种p j : ( 1 ) 欧洲面向对象编程( e c 0 0 p ) 会议的定义:软件构件是一个具有规范接 口和确定的上下文依赖的组装单元。软件构件能够被独立部署和被第三方组装。 ( 2 ) s z y p e r s k i 等的定义:软件构件是可单独生产、获取、部署的二进制单元, 它们之间可以相互作用构成一个功能系统( f u n c t i o n i n ys y s t e m ) 。 f 3 ) 卡内基梅隆大学软件工程研究所的定义:软件构件是一个不透明的 ( o p a q u e ) 的功能实现;能被第三方组装;符合一个构件模型。 ( 4 ) g u i j u nw a n g 等( 美国波音公司) :构件是一个带有契约化接口和显式上 下文依赖的组装单元,它能被独立发布并且可以被第三方组装。 ( 5 ) d e s m o n d 等的定义:软件构件是一个可以独立交付的软件单元,封装了 设计和实现的内容,并向外提供接口,通过接口与其它构件组装成更大的整体。 ( 6 ) m i c h a e l 等的定义:构件代表一个白包含的实体,能够向其环境输出功能 并可通过定义明确的开放接口从环境输入功能。 ( 7 ) f r a n z 等的定义:构件由一个动态变化的对象集合组成,这些对象既可 武汉理1 人学硕士学侥论文 以在构件的内部也可以是其接口的一部分。构件之间可以直接交互,也可以通过 独立的对象进行胶合。 ( 8 ) m i c r o s o f tc o r p o r a t i o n 的定义:构件是一个通过接口向外界提供服务的软 件包。 以上定义的共同要素是:软件构件是单独开发并具有特定功能的软件单元, 用于与其他构件及支撑环境组装成应用系统。这一共同要素反映了构件的三个基 本特征: ( 1 ) 单元特征:构件不是一个完整的应用,多个构件可以通过组装构造一个 应用: ( 2 ) 复用特征:构件支持对象意义上的封装、多态和继承,它可以跨越地址 空间、网络、语言。操作系统的异构环境下被调用或与其它构件协同工作; ( 3 ) 商品特征:构件是预制的知识服务,需要封装。由构件的特点可以看出, 它是实现分布式计算的基础单元口 4 1 o 2 构件的基本特征 构件沿袭了对象的封装特性,但同时并不局限在一个对象,其内部可以封装 一个或多个类、原型对象甚至过程,结构是灵活的。它主要有以下四个基本特征: ( 1 ) 构件是可独立配置的单元,因此构件必须自包容。 ( 2 ) 构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界 没有机会或没必要知道构件内部的实现细节。 ( 3 ) 构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规 范,可以与环境交互。 ( 4 ) 构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当 与自身副本区别,在任何环境中,最多仅有特定构件的一份副本。 从以上四个属性可以看出,构件突出了自包容和被包容的特性,这也是在软 件工厂的软件开发生产线上作为零件的必要特征。 2 1 2 几种主流的构件技术 1 公共对象请求代理体系结构( c o r b a ) 面向对象方法是软件构件技术的基础。为了真f 实现软件构件化,还必须解 决分布式计算环境下对象之间的互操作问题。由上述构件的基本特征有被包容的 特性,所以要求构件问必须能互操作,而且这些构件也允许分布式地放置在网上 异构环境下的不同结点上。 c o r b a ( c o m m o no b j e c tr e q u e s t b r o k e r a r c h i t e c t u r e ) 是由对象管理集 a ( t h e 武汉理工人学硕士学位论文 o b j e c tm a n a g e m e n tg r o u p ) 提出的一个分布式环境下跨平台、跨语言的对象管理 规范。c o r b a 最关键的有三个部分一对象界面、对象实现和对象请求代理。对 象界面用一种通用的界面定义语言描述了对象所要完成的功能以及对象的属性, 对象实现则采用某种方法某种语言实现对象晃面所定义的对象,同一个对象界面 可以有不同的对象实现方法。对象请求代理则在对象请求和对象实现之间架起了 一座桥梁。用户对对象的请求是用对象界面的方式来描述的,然后再向对象请求 代理提出对象请求,对象请求代理根据用户的对象请求从对象实现中选取一个合 适的对象实现供用户使用。对于用户来说,它根本不知道对象实现到底是在网络 的哪个位置上,也不知道调用的是哪个对象实现。 2 构件对象模型c o m 和d c o m 1 9 9 3 年,微软公司提出了构件对象模型( c o m ) 。它定义了一种创建、使用 和扩展基于组件模型的应用标准,它在动态的跨进程的意义上扩展了面向对象技 术的特点,如封装、多态、复用等。此技术已相当成熟,微软公司为w i n d o w s 和w i n d o w sn t 开发的应用软件几乎都是基于c o m 的。早期的软件多在单机上 运行,后来对c o m 进行了扩展,允许访问其它机器上的对象。c o m 包括两个 元素:c o m 接口和在c o m 接口间注册和传递消息的一组机制。从应用的观点 看,“重点不在于c o m 对象如何被实现,仅在于这样一个事实:对象具有在系 统中注册的接口,且对象使用构件系统和其他c o m 对象通信”【5 】。 分布式构件对象模型( d c o m ) 是微软在1 9 9 6 年提出的,它是c o m 的分 布式扩展,使之适应网络环境的需要,从而使得采用构件技术构建网络应用系统 成为可能。除了c o m ,d c o m 以外,微软还为开发分布式企业级应用软件提出 了很多在w i n d o w sn t 服务器上的服务,如微软作业服务( m t s ) 、微软因特网 信息服务( s ) 、动态服务页面( a s p ) 、微软消息查询服务( m s m q ) 等【6 】。 有人曾将d c o m 和c o r b a 从程序设计结构、远程调用结构以及通信协议 结构三个层次上进行了比较。虽然在基础原理和结构上有很多相近之处,但是在 具体作法上还是有很大差异。也有人对d c o m 和c o r b a 各自的优势和不足进 行过评论。认为d c o m 有较强的工具和系统的支持,另外由于有些功能已嵌入 在操作系统中( 特别w i n d o w s n t ) ,所以在降低化费上有优势。但是d c o m 过 多地依赖微软的操作系统平台,因而对异构网络环境,在兼容性方面会有不少问 题。而正相反,c o r b a 在支持多种平台和多种语言上具有优势,而且有比较广 泛的独立刀:发商和用户及业界的支持。此外c o r b a 所要用的对象概念以及强调 网络透明等在技术上也比较成熟。当然,c o r b a 的不足之处是具有的支持工具 不如d c o m 的那么多,另外在不同的开发商提供的c o r b a 实现之问的兼容性 方面还有不少问题。但事物在不断发展,d c o m 和c o r b a 都会设法在改进自 己的不足。 6 武汉理工大学硕士学位论文 3 j a v a 和j a v a 2 环境平台企业版j 2 e e j 2 e e 是一个基于j a v a 的、适合服务器端构件体系结构的、结合了j a v a e n t e r p r i s ea p i 的完整的企业级应用系统开发平台或中间件体系结构,它通过提 供一组应用组件和运行时环境来构造可伸缩的企业应用。它是一种利用j a v a2 平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系 结构。j 2 e e 技术以核心j a v a 平台或j a v a2 平台的标准版j 2 s e 为基础,并且巩 固了标准版j 2 s e 中的许多优点,例如”编写一次、到处运行”的特性、方便存取 数据库的j d b ca p i 、c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安全模 式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t s a p i 、j s p ( j a v a s e r v e r p a g e s ) 以及x m l 技术的全面支持。 按照此模型组成的应用系统至少分为三层。第一层是客户层,可以采用一般 的例览器或特制的客户软件。从服务器下载的a p p l e t 可以带有j a v ab e a n s 一 起在客户端执行。为了避免由于不同厂商提供的浏览器中虚拟机的差异,还专门 提供了虚拟机软插件,作到程序的语义一致。为了保证安全,客户分防火墙内外 两层,外层客户只能从服务器进入,而内层客户允许使用r m i 、i i o p 等直接访 问e j b 第二层是中间层,即业务逻辑层。其中有两个包容器,一个是w e b 包容器, 另一个是e j b 包容器。s e r v l e t s j a v a 服务器页面( j s p ) 技术使人机界面的开 发变得非常容易,而s e r v l e t s 则方便为a p p l e t 等客户程序提供服务。简单的业务 逻辑由开发人员编写业务b e a n s ,而复杂的业务逻辑则由e j b 完成。 第三层是企业的信息系统。第二层的构件通过j d b c ( 访问关系数据库) , j n d i ( j a v a 名子目录接口) ,j m s ( j a v a 消息服务) ,j a v am a i l ( 发送和接收信 件) ,j a v a i d l ( 与c o r b a 构件接口) 访问第三层企业的信息系统。为了访问 遗传系统,第三层可以与传统的应用软件、e r p 等建立联系【”。 2 1 3 构件的分类 可复用构件应放在构件库中,一个构件库可能包含成千上万个构件,对构件 库中构件的合理分类和组织,将有助于软件开发人员从构件库中找到他所需要的 构件。构件分类所提出的方法可以分为三大类:图书馆和信息科学方法、人工智 能方法、以及超文本系统。目前,绝大部分研究工作建议使用图书馆科学方法进 行构件分类。 下图2 1 给出了源于图书馆科学索引方法的一种分类方法,“受限的索引 词汇( c o n t r o l l e di n d e x i n gv o c a b u l a r i e s ) ”限, n t 可以用来对一个对象( 或构件1 分类 武汉理丁大学硕士学位论文 的术语或语法,“不受限的索引词汇( u n c o n t r o l l e di n d e x i n gv o c a b u l a r i e s ) ”则对描述 的性质没有限制8 1 。 零引词忙 受限的 不受限 分类关键字从正文中抽取出不从正文中抽取出 法 法 图2 1一种索引方法的分类法 来的术语 从构件分类模式来说,大多数软件可归为如下的三类: 1 刻面分类( f a c e t e dc l a s s i f i c a t i o n ) 在分析领域时,可以标识出一组基本的描述特征。这些特征,称为刻面,根 据其重要性进行排序并与构件相联系。刻面可以描述构件执行的功能、被操作的 数据、构件应用的语境或任意其他特征。刻面分类方法将关键词置于特定的语境 中,从而避免了关键词的杂乱无章。而且它通过从不同视角( 刻面) 来观察要分 类的项,从而导致了更加精确和准确的分类。多数专为构件的检索而设计的工具 都采用这种方法。n a t o ( 北大西洋公约组织) 标准推荐在构件库中采用刻面分 类模式( f a c e t e dc l a s s i f i c a t i o ns c h e m e ) ,对构件的分类使用一组 刻面,刻面术语1 , 也称为描述符( d e s c r i p t o r s ) ,它们按下面的规则组合起来: ( 1 ) 刻面( f a c e t ) 是一个单词或短语的固定集合,用于描述构件的某个方面或 视角( v i e w p o i n t ) 。 ( 2 ) 刻面术语( f a c e tt e r m ) 是来自构件库特定刻面术语列表中的单词或短语。 在新库的初始阶段,刻面术语个数迅速增长,此时构件库小组将逐渐熟悉用户首 选的( p r e f e r r e d ) 术语。但是刻面术语不久后必须要保持稳定,此后只是偶尔加入 新的术语。 ( 3 ) 对每个特定构件的分类可以使用任意数量的刻面一术语对,即每个刻面 可以m 现任意多次( 包括零次) 。但是出于性能的考虑,对于“对象”( o b j e c t ) 或“功 语 语 带 无 浯 一 一 耥龄题题 来雠翅牺 一tl|_ 词词义同 ,l 武汉理t 大学硕士学位论文 能”( f u n c t i o n ) 亥l j 面应至少出现一个术语。 刻面的数量应比较少( 一般是五到十个,最多可达到十五个) 。每个刻面应 该认真选择,对于用户来说是清晰和无二义的,但不要求不同刻面之间相互独立, 也不必要应用到每个构件上。 2 枚举分类( e n u m e r a t e dc l a s s i f i c a t i o n ) 这种分类法通过定义一个层次结构来描述构件,在该层次上也定义了构件的 类以及不同层次的子类。实际的构件被罗列在枚举层次结构的任何路径的最低 层。 枚举分类模式的层次结构使得它易于理解和使用。然而,在建立层次之前, 必须进行领域工程以获得在层次中适当的实体的足够信息。 3 属性一值分类( a t t r i b u t e - - v a l u ec l a s s i f i c a t i o n ) 为领域中的所有构件定义一组属性,然后相应的值被以和刻面分类方法非常 相似的方式赋给这些属性,事实上,属性一值分类方法和刻面分类方法是类似的, 它们得主要区别如下: ( 1 ) 对可使用的属性数量没有限制; ( 2 ) 属性没有优先级; ( 3 ) 不使用同义词词典功能。 基于对上面分类技术的实验研究,f r a k e s 和p o l e 指出没有明显“最好”的技术 和“没有某种方法比别的方法在查找效果上更适度” 9 】。对复用库有效的分类模 式的开发仍有许多工作要做。 2 2 构件库技术 2 2 1 构件库概述 软件工程的目标是致力于提高软件生产效率和软件质量,摆脱手工作坊式的 开发方式。而基于构件的软件开发正是为了摆脱这种软件生产开发方式的全新的 软件开发模式。它的出发点是应用系统的开发以已有的工作为基础,充分利用已 有系统的开发中所积累的经验进行新的开发。这样软件开发重点就可以集中于应 用系统中的特有构成成分即软件构件上。但是软件构件只有在数量上达到了一定 的规模才能真正满足软件复用和软件开发的需求,因此必须有一个强有力的工作 来对这些数量庞大的软件构件进行管理。构件库作为一种支持软件复用的基础设 胞,它提供对软件构件进行描述、分类、存储和检索等功能【1 0 】。 在软件技术的发展过程中,出现过各种构件库,其中主要有: 武汉理工大学硕士学位论文 1 予程序和类库 2 领域专用构件库 领域专用构件库用于存储和管理某一特定领域构件的构件库。例如,a d a 软 件库【1 存储的是可复用的a d a 源代码。 3 软件资产库 8 0 年代末研究人员认为软件开发过程中分析、设计、编码和测试阶段一切 有复用价值的软件成分都可以称为构件,构件也被称为软件资产 1 2 】,软件资产库 用于存储这些广义范围的软件构件。 4 构件检索系统 检索构件和获得构件是构件库的重要功能。构件检索系统是支持可复用软件 构件分类和检索的自动化工具。构件搜索引擎是近年来c m u s e i ( 美国卡内基梅 隆大学软件工程研究所) 的s e a c o r d 等人研究和开发的一种构件检索系统,能够在 i n t e m e t 上自动寻找j a v a b e a n s 、a c t i v e x 、c o r b a 、e j b 等类型的构件,获得构 件的u r l 等相关信息,并且为它建立索引 1 ”。 2 2 2 构件库的管理技术 构件库管理系统( c o m p o n e n tb a s em a n a g e m e n ts y s t e m - - c b m s ) 是为构件库 的建立、使用和维护而配置的应用软件。通过构件库存储构件,提供可重用的软 件资源。c b m s 管理构件库,它建立在操作系统的基础上,对构件库进行统一的管 理和控制。用户使用的各种构件库管理命令利用构件,控制构件的执行。通过构 件库管理系统使用各类构件将更加方便。另外构件库管理系统还承担着构件库的 维护工作,保证构件库的安全性和完整性。构件库由支持构件运行和管理的构件 库框架和构件字典组成。 1 基本要求 建立构件库管理系统类似数据库管理系统,它提供一套构件库管理语言,如 构件定义语言( c o m p o n e n t d e f i n i t i o n l a n u a g e c d l ) 和构件操纵语占 ( c o m p o n e n tm a n i p u l a t el a n g u a g e c m l ) - 等来实现对构件库的一般管理和特殊管 理。对构件库管理系统的基本要求包括以下几个方面【1 4 】: ( 1 ) 构件库定义功能 对构件库的结构进行描述;构件库完整性的定义;安全保密定义( 如用户口令、 级别、存取权限) ;存取路径的定义。这些定义存储在数据字典f 亦称为系统工程目 录) 中,是构件库管理系统运行的基本依据。 武汉理工大学硕士学位论文 但) 构件存取功能 提供用户对构件的基本操纵功能,实现对构件库中构件的检索、插入、修改 和删除。一个好的c b m s 应该提供功能强且易学易用的构件操纵语言( c m l ) 、方 便的操作方式和较高的数据存取率。 ( 3 ) 构件库运行管理功能 这是c b m s 运行时的核心部分,包括构件提取、构件识别、构件执行、构件 库内部的维护( 如索引、构件字典的自动维护) 等等。所有构件库的操作都要在这 些控制程序的统一管理下进行,以保证系统的正确运行和构件库的正确有效。 ( 4 ) 构件组织、存储和管理功能 c b m s 要分门别类的组织和管理各类构件,要确定以何种结构和存储方式在 存储级上组织这些构件,如何实现构件之间的联系。构件组织和存储的基本目标 是提高存储空间利用率,选择合适的存取方法提高存取效率。构件库的建立和维 护与数据库类似,包括构件库的初始建立、构件库的转储和恢复、构件库的重组 织与重构造以及性能监测分析等功能。 ( 5 ) 构件库的建立和维护 与数据库类似,包括构件库的初始建立、构件库的转储和恢复、构件库的重 组织与重构造以及性能监测分析等功能。 ( 6 ) 支持构件组合构件 是由对象发展而来,具有高度的封装性和继承性,因而具有强大的组合功能。 构件的组合是构件的新的研究内容,在这里就不再介绍了。 2 主要功能 构件库管理系统的主要功能有: ( 1 ) 构件的分类存储( 即添加构件) 根据构件库的分类模型将入库的构件储存在构件库中。 ( 2 ) 构件检索 从构件库中检索出满足用户要求或接近用户要求的构件。 ( 3 ) 构件库浏览 浏览库中的全部或部分构件。 h ) 删除构件 将不再使用的构件从构件库中删去。 f 5 ) 构件使用情况评价 根据用户使用和检索构件的反馈意见,对构件作出评价,为进一步的改进提 供依据。如构件库采用里面分类方法,则还要提供呈面和术语空间的创建和维护 武汉理工大学硕士学位论文 功能,即根据需要对术语空间进行创建、增加、删除、修改等操作。通常仅在建 库时才创建和修改呈面的定义。 3 构件库中构件的检索方法 构件的描述和检索是构件库管理系统的两个最主要的关键技术,它们将直接 影响到构件库检索的查准率( p r e c i s i o n ) 、查全率( r e c a l l ) 和效率( e f f i c i e n t ) 。 下面简单介绍j l 种常用的构件检索方法。 “1 规约匹配 基于有序的谓词逻辑的匹配,通过谓词演算公式进行精确匹配,通过逻辑 连接符和逻辑量词进行部分精确匹配。该方法基于形式化的构件规约,排除了正 文和描述子检索的编码二义性,具有良好的理论背景,通常能够保证构件的正确 性和构件与需求的匹配。由于该方法依赖于规约语言的表达能力,虽然会降低查 准率,但往往有很高的查全率。虽然目前还没有相关报告,但可以预见该方法与 基于规约的系统组装【1 5 1 的结合。a m i l i 等人使用关系规约和“精化”偏序关系 来组织和检索构件【1 6 】;c h e n 1 7 】等人提出了使用抽象数据类型的代数规约及其之 间的“实现”偏序关系、通过从代码中直接抽取基调( s i g n a t u r e ) 3 l l 行为公理 ( b e h a v i o r a la x i o m ) 进行构件检索,并设想了相应的构件证明系统”】。 ( 2 ) 特征( s i g n a t u r e ) 匹配 通过接口的定义进行匹配,适用于函数之类的构件。 ( 3 ) 术语轮廓匹配 基于构件编目描述语言的匹配,将每一个构件的编目描述作为该构件的一 个特征矢量,通过测算矢量的距离进行匹配。 ( 3 ) 行为采样匹配 基于构件测试的匹配,根据测试结果相同的概率进行匹配。 2 2 3构件库系统 构件库作为软件复用的基础设施,成为近十几年来软件复用的研究热点和重 点,国内外学术界对其进行了比较深入的研究。目前,在理论上,学术界与产业 界已经出现了不少构件库系统和原型,它们都基于一些共同的观念,同时,他们 之间也存在一定的差异,主要表现在各个构件库采用的技术以及处理的构件类型 和模型等方面。为了进一步理解构件库技术的研究现状,以下简要介绍以下三种 构件库系统。 1 r e b o o t 构件库系统 武汉理工大学硕士学位论文 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 基于面向对象技术的 复用) 是欧盟信息技术计划e s p r i t 中的一个项目,目前是研究、开发及推广复 用驱动和面向对象的软件技术。它是国际上比较著名的构件库系统,包括一个存 储可复用构件的构件库和一组产生、认证、插入、提取、评价和适配可复用构件 的工具 1 。它主要采用了刻面模型来构建系统。该模型是基于己有软构件的一种 刻面分类和检索模型,从各个角度,即刻面( f a c e t ) 亥l j 画软构件属性。它对领域进 行分析,并得到一组基本的描叙特征,这些特征叫做呈面。呈面可以描述构件执 行的功能、所操做的数据、构件应用的周境或任何其他特征。通常呈面描述限制 在不超过7 或8 个呈面,一个构件通常包括以下呈面: ( 1 ) 抽象( a b s t r a c t i o n ) :它是构件概念的抽象性描述。 ( 2 ) 依赖( d e p e n d e n c y ) :它描述构件与外界的依赖关系。 ( 3 ) 操作( o p e r a t i o n ) :它是构件所提供的操作的描述。 ( 4 ) 操作对象( o p e r a n d ) :它描述操作的对象。 2 c o d e b r o k e r c o d e b r o k e r 是美国c o l o r a d o 大学所开发的一个构件库模型,其特色是构件库 与源程序编辑工具实现无缝集成,为用户提供主动查询服务b 0 1 。c o d e b r o k e r 存储 的构件是j a v a 的类和方法,辅助j a v a 程序员的开发。 3 青鸟构件库管理系统( j b c l m s ) j b c l m s 是一个基于i n t e m e t 的软件资产管理系统,它可以存储和管理广义 的构件。它是国家“九五”重点攻关项目一“软件工程环境( 青鸟c a s e ) 工业 化生产技术及系统的研究开发”中的核心组成部分之一。系统采用数据库管理系 统存储构件描述系统,文件系统存储构件实体。而且它提供基于数据仓库技术的 构件反馈机制,为用户选取构件提供辅助分析。另外,它是以三个视角( 形态、 层次和表示) 和九个方面定义构件模型。 ( 1 ) 概念:对构件功能的抽象描述。 ( 2 ) 操作规约:用来指称构件对外提供的、可被请求的服务。 ( 3 ) 接口:给出了构件的对外行为描述。 ( 4 ) 类型:用于定义“什么值可用作为操作参数”。 ( 5 ) 实现体:这是构件的具体实现部分,是实际完成被请求服务的系统。 武汉理工大学硕士学位论文 ( 6 ) 构件复合:构件通过复合组成系统。 ( 7 ) 构件性质:指明构件的形态、层次和表示。 ( 8 ) 构件注释:描述和构件库相关的其他性质。 ( 9 ) 构件语景:描述构件的软、硬件使用环境和实现依赖。 青鸟构件模型更多地关心构件的易理解性、封装性及间关系,通过给构件 提供明确的对外接口实现服务提供者和其服务请求者的分离,更多地关心构件及 其使用者间的交互,特别是对构件使用者有意义的部分。青鸟构件库系统以青鸟 构件模型为基础,采用以刻面分类为主、多种分类模式相结合的方法对构件分类 索引,支持多种构件查询方式的组合使用。 2 2 4 构件库的发展趋势 构件库是支持基于构件的软件开发的基础设施。对于软件开发人员来说一方 面需要又一个构件发布的场所用以发布自己开发的构件,另一方面需要在软件开 发过程中尽快检索到自己所需要的构件,这两方面都需要有一个功能完善强大的 构件库的支持。构件复用的构成中需要一个实用有效的工具来支持构件管理、存 储和检索1 饥。 随着w w w 和i n t e m e t 技术的发展,出现了x m l 、u d d i 、w e bs e r v i c e s l 2 1 l 等技术,“软件即服务”的思想使w e b 和i n t e r n e t 构成了新的计算机环境和系统模 型,为构件库技术的研究提供了新的技术手段和方案。复用技术和w e b 技术的 不断发展为构件库技术指出了新的发展核心,还可以从以下几个方面进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年消防工程维护保养合同(1篇)
- 土石方临时用地防尘抑尘方案
- 湘教版八年级下册第三节 新疆维吾尔自治区的地理概况与区域开发教案及反思
- 企业技术岗招聘方案
- 企业车辆调度管理方案
- 2026年智能物流配送方案报告
- COX-2-IN-61-生命科学试剂-MCE
- Clausenidin-生命科学试剂-MCE
- 国家事业单位招聘2025国家信息中心面向社会招聘拟聘人员笔试历年参考题库典型考点附带答案详解
- 公益灾后经济恢复指南
- 酒店明住宿清单(水单)
- 遥感概论-遥感图像的增强
- 外科学椎间盘突出症
- 传感器技术与应用-说课
- GB/T 13816-1992焊接接头脉动拉伸疲劳试验方法
- 碳捕集、利用与封存技术课件
- 新生儿听力筛查(共29张)课件
- (精心整理)数学史知识点及答案
- GB 5749-2022 生活饮用水卫生标准
- 《国家电网公司十八项电网反事故措施(试行)》实施细则
- 场地平整土方工程量实训指导书
评论
0/150
提交评论