




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 m a s t e r st h e s i s 摘要 基于构件的开发( 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 ) 或基于构 件的软件工程( c o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g ,简称c b s e ) 是一种软 件开发新范型,它是在一定构件模型的支持下,复用构件库中的一个或多个软 件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。由于以分 布式对象为基础的构件实现技术日趋成熟,c b d 已经成为现今软件复用实践 的研究热点,被认为是最具潜力的软件工程发展方向之一。 构件复用的独到之处是把构件原封不动地插入应用系统,然而实践证明, “原样”( a s i s ) 复用在大多数情况下是不现实的,因为第三方构件往往不能直 接组装到应用程序中,应用程序的构建者需要修改构件以满足系统的需要。面 向对象和基于构件的软件开发方法的广泛使用,在使用第三方构件时出现了越 来越多的问题,特别要求对第三方构件适配的支持。适配对基于构件的软件系 统的成功与否是至关重要的。应该说,只有当应用开发者能够适配构件时,构 件才体现其复用的价值。 对主动接口( a c t i v ei n t e r f a c e ) 的研究发现,构件可以提供一个专为适配而 建立的接口,这是适配的关键。主动接口的开发使得某些任务可以自动执行, 减少与用户的交互。主动接口使得工具的使用变得更简单。本文针对软件复用 中构件不符合应用程序需求的问题,使用主动接口技术,辅以其他构件适配技 术,提出了一种可适配构件的模型( a d a p t a b l e c o m p o n e n t ) ,帮助构件开发者设 计出易于适配的构件。具体内容如下: ( 1 ) 提出了新的构件适配技术; 本论文的研究工作受软件工程国家重点实验室开放研究基金( s k l s e i m 0 1 8 ) 和湖北 省重点科技攻关项目( 2 0 0 3 a a l 0 1 c 2 6 ) 支持。 硕士学位论文 m a s t e r st h e s i s 在研究主动接口和二进制构件适配( b i n a r yc o m p o n e n ta d a p t a t i o n ,简称 b c a ) 技术的基础上,取二者之长,提出了两种技术结合的方法,降低构件适 配的耦合度,提高构件的重用性和透明性,保持了构件良好的封装性。 ( 2 ) 提出了基于主动接口的可适配构件模型; 构件开发者应该明确他们不可能创建出符合所有需要的构件,所以必须寻 找使构件能应需而变的方法。对主动接口的研究发现,构件可以通过主动接口 来灵活地应对不可预见的局面。因此,将主动接口机制与构件模型结合研究, 提出了一种易适配构件模型。 ( 3 ) 研究了设计可适配构件的方法论。 本文提出可适配构件模型的同时,也提出了设计可适配构件的设计方法论 来支持可适配软构件的创建。 关键词:主动接口;适配:可适配构件 a b s t r a c t 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 ) f o c u s e so nb u i l d i n gl a r g e s o f t w a r e s y s t e m sb yi n t e g r a t i n gp r e v i o u s l y e x i s t i n g s o f t w a r e c o m p o n e n t s b y e n h a n c i n g t h e f l e x i b i l i t y a n d m a i n t a i n a b i l i t y o f s y s t e m s ,t h i sa p p r o a c h c a n p o t e n t i a l l yb eu s e d t or e d u c es o f t w a r ed e v e l o p m e n tc o s t s ,a s s e m b l es y s t e m sr a p i d l y , a n dr e d u c et h e s p i r a l i n g m a i n t e n a n c eb u r d e na s s o c i a t e dw i t ht h es u p p o r ta n d u p g r a d eo f1 a 唱es y s t e m s a t t h ef o u n d a t i o no ft h i sa p p r o a c hi st h ea s s u m p t i o nt h a t c e r t a i n p a r t so fl a r g e s o f t w a r e s y s t e m sr e a p p e a rw i t hs u f f i c i e n tr e g u l a r i t y t h a t c o m m o n p a r t ss h o u l db ew r i t t e no n c e ,r a t h e rt h a nm a n yt i m e s ,a n dt h a tc o m m o n s y s t e m ss h o u l db ea s s e m b l e dt h r o u g hr e u s er a t h e rt h a nr e w r i t t e no v e ra n do v e r c b s de m b o d i e st h e ”b u y , d o n tb u i l d ”p h i l o s o p h ye s p o u s e db yf r e db r o o k s c b s di sa l s or e f e r r e dt oa sc o m p o n e n t - b a s e ds o f t w a r ee n g i n e e r i n g ( c b s e ) b e c a u s ei n d i v i d u a lc o m p o n e n t sa r ew r i t t e nt om e e td i f f e r e n tr e q u i r e m e n t s ,a n d a r eb a s e do n d i f f e r i n ga s s u m p t i o n sa b o u tt h e i rc o n t e x t ,c o m p o n e n t so f t e nm u s tb e a d a p t e dw h e n u s e di nan e w s y s t e m ,c o m p o n e n t sm u s tb ea d a p t e db a s e do nr u l e s t h a te n s u r ec o n f l i c t sa m o n g c o m p o n e n t s a r em i n i m i z e d t h e d e v e l o p m e n t o fa c t i v ei n t e r f a c e st h a t a u t o n o m o u s l yp e r t o r r n t a s k s m i n i m i z i n gt h ei n t e r a c t i o nw i t ht h eu s e r ;t h ei n t e r f a c e sh a v et h eg r e a tr e s p o n s i b i l i t y o fm a k i n gt h ea c c e s se a s i e r , i tm a k e s u s i n gc o m p o n e n t sa c c e p t a b l ea n de a s y t h ec o n s t r u c t i o no fs o f t w a r e s y s t e m s f r o m p r e e x i s t i n g , i n d e p e n d e n t l y d e v e l o p e ds o f t w a r ec o m p o n e n tw i l lo n l yo c c u rw h e nt h ec o m p o n e n t ss u i t st h e n e e d s t oi n c r e a s ec o m p o n e n tr e u s e ,w et r yt o d e v e l o pan e wc o m p o n e n tm o d e l t h a tc a n e a s i l y b e a d a p t e d ,c a l l e da d a p t a b l e c o m p o n e n t ,w h i c hu s e sa c t i v e 硕士学位论文 m a s t e r st h e s i s i n t e r f a c e sa st h e a d a p tm e c h a n i s m ,a n dh e l pc o m p o n e n td e v e l o p e r t o d e s i g n a d a p t a b l ec o m p o n e n t k e y w o r d s :a c t i v ei n t e r f a c e ;c o m p o n e n ta d a p t a t i o n ;a d a p t a b l ec o m p o n e n t 硕士学位论文 m a s t e r st h e s i s 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究 工作所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和 集体,均已在文中以明确方式标明。本声明的法律结果由本人承担。 作者签名:杓日月霞日期:即。r 午6 月j 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有 关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位 论文。 作者签名:干勿l 嗍事 日期:。r 年b 月j 日 导师签名: 日期:年月日 本人已经认真阅读“c a m s 高校学位论文全文数据库发布章程”,同意将本 人的学位沧文提交“c a l i s 高校学位论文全文数据库”中全文发布,并可按“章 程7 7 中的规定享受相关权益。回童迨塞握趸亘进厦! 旦圭生;旦二生;旦三生 蕉查! 作者签名:芹切旧板 日期:西年b 月j 日 导师签名: 日期:年月 日 第一章绪论 本章第一节介绍了谭怒背景,分析了构件复用中所遇到瓣翘惩r 指出构件 适配的必要性;第二节分析了基于构件开发以及构件模型的翻g l u t - 研究概况; 第三节提出本文所要研究的内容;簋蹬节指如论文的结构概要。 1 1 课题背景 1 1 1 成品构件的复用问题 在过去三十年中,软件生产率一直稳步增长,但仍不足以满足社会对软件 产业的需求。为了解决这一问题,科技人员在软件工程和人工智能领域进行了 深入的研究。近几年来,人们开始认识到,要真正实现软件的工监化生产方式, 保证软件生产的高效率和高质量,软件复用是一条现实可行的途径。 北大毒鸟简单整理了攥行复用瓣组织和复用者遇到的难翘i 4 目: ( 1 ) 系统开发者缺乏软件复用的观念。 ( 2 ) 制作和整理埘复周构圣l = 霜要增加额外的投资。 ( 3 ) 构件不易理解和学习。 ( 4 ) 缺乏有效的构件库。 ( 5 ) 缺乏足够选用豹:| 旬件或者 每 孛的质量不佳。 ( 6 ) 构件不完垒符合需求时,不容易修改。 ( 7 ) 构 牛紧寮依赖其原有开发平螽,难以在其他平台上使用。 ( 8 ) 构件依赖于某一程序语言,无法与其他语言的构件集成。 ( 9 ) 复用别人制作的构件有心理上的障碍( n o ti n v e n t e dh e r e 和n o ti n v e r t ! e d t h e r e 综合症) 。 ( 1 0 ) 与软件复用有关的版权问题、合同问题和成本分配问磁。 ( 1 1 ) 缺乏理解、修改和组装构件的支持工具。 ( 1 2 ) 复用的收益难于估计和度量。 硕士学位论文 m a s t e r st h e s i s 其中的2 5 6 7 8 几点表明对高质量的可复用构件存在着很大的需求,构件 复用的独到之处是把构件原封不动地插入应用系统,然而实践证明,“原样” f a s 。i s ) 复用在大多数情况下是不现实的,第三方构件往往不完全符合应用程序 的具体需求。应用程序的构建者需要修改构件以满足系统的需要,这就要求程 序开发者对构件进行适配。 为此,一个重要的研究课题,就是能否找到一种构件集成标准或结构,为 不同开发商提供的构件,能方便地组装,尽管这方面的探索延续不断,如m m 和美国卡内基梅隆大学( c a r n e g i e m e l l o nu n i v e r s i t y ,简称c m u ) 专家联合提出 的高级体系结构( h i g h l e v e la r c h i t e c t u r e ,简称h l a ) ,但至今尚无公认和广 为采纳的标准出现。 1 - 1 2 课题的目的和意义 本课题的研究是在湖北省科技攻关重大项目( 2 0 0 3 a a l 0 1 c 2 6 ) “基于构件 的软件开发平台的研究”中,根据我国软件产业发展的需要,着重研究构件模 型、构件库( 构件分类与检索) 以及构件集成组装等方面的问题,为软件行业 向工业化生产方式发展作了一定的研究。 在构件集成组装的过程中发现,在开发构件的时候应考虑如何使构件易于 适配,这是基于构件的软件开发方法的重要组成部分。因此,本课题从构件适 配技术出发,将组装时的适配提前到开发时的适配当中来,提出一种开发易适 配构件的构件模型,指导构件设计者设计出容易适配的构件,为构件使用者提 供适配的机制,从而简化应用程序开发者的工作,以实现真正的“即插即用”。 1 2 国内外研究概况 1 2 1 基于构件开发概况 c b d 提供了一种自底向上的,基于预先定制包装好的类属元素( 构件) 来构 造应用系统的途径。当前,软件构件技术已成为研究的热点,其研究内容包括 构件标准和模型、构件的生产和获取、构件的规约和描述、构件的分类和组织、 硕士学位论文 m a s t e r st h e s i s 构件的检索和组装、基于构件的价格分析,以及软件体系结构、软件复用支持 工具和管理手段、基于复用的软件开发过程等方面。研究工作有很大进展和众 多成果,而且还出现了一些产业构件标准,如m i c r o s o f t 的o l e - - c o m 、o m g 的c o r b a c c m 等。这标志着软件复用已进入蓬勃发展的时期。由于构件的 种类繁多,形态各异,因此很难建立一个能够描述所有类型构件而又支持制作 和组装的构件模型。一般来说特定的构件模型只能用于描述特定类型的构件。 在构件开发领域,许多研究认为,构件应该设计地易于扩展,构件适配机 制可以在设计时植入构件中。目前的研究包括为扩展设计( d e s i g n f o r e x t e n s i o n ) ,适应性编程( a d a p t i v ep r o g r a m m i n g ) 4 1 等。l i e b e r h e r r 在他的d e m e t e r 工 程中,提出了适应性编程的概念,创建对象间复杂的交互概念,以提高程序的 可扩展性。它的目标不是专门针对构件适配的,但是非常清楚,使用d e m e t e r 开发的构件更容易适配。这更加证明了适配机制应预先植入构件中1 4 】。 有多种可变性机制能够实现构件的可变性。典型的可变性机制有:继承 ( i n h e r i t a n c e ) :在变化点上创建指定抽象类型或抽象类的子类型或子类;扩 展和扩展点( e x t e n s i o n sa n de x t e n s i o n sp o i n t s ) :可以在用例和对象构件中的变 化点上附加变体:以及参数化和使用等等。其中,继承机制的变化点是虚拟操 作,变体类型是子类,可以在保留其它操作的同时指定并增加可选择的操作。 设计级的继承更有用,可以在抽象类的接口中定义抽象操作及其规约,在继承 它的子类中重新定义抽象操作,给出其实现方法,用此方法可以实现类的可变 性。但是要注意的是,继承降低了类的封装性,它向其子类打开丁类的内部。 如果子类的设计者滥用父类的属性和操作,会降低父类的封装性能 7 】。 1 2 2 国内9 1 、关于构件模型的研究 构件模型是构件本质特征及构件间关系的抽象描述l “。构件的本质特征是 构件与软件复用相关的那些特征,包括三部分:一是构件对外提供的服务:二 是构件实体内部的实现策略,包括构件实体的实现语言或开发环境,构件实体 内部哪些部分可以直接复用,哪些部分需要复用者加以实现等;三是构件需要 外界提供的服务,这一部分和构件间的关系描述反映了构件的组装信息。 随着构件技术的发展,在学术界和产业界出现了多种构件模型。3 c 模型 1 硕士学位论文 m a s t e r st h e s i s 是一个指导性构件属性模型,它包括概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境 ( c o n t e x t ) 三个不同方面的内容,但3 c 模型只适用于小规模复用,缺乏形式 化定义和易懂的描述,因此仅有定的宏观指导意义1 7 l :r e b o o t 模型是基于 已有构件的一种刻面分类和检索模型,从各个角度即刻面( f a c e t s ) 来刻画软 件构件属性【”,北京大学青鸟工程使用了刻面方法定义构件,即一种3 个视角 ( 形态、层次和表示) 和9 个方面( 概念、操作、规约、接口、类型、实现体、 构件复合、性质和语境) 的构件模型1 4 引,它的主要问题是没有提出语义问题, 缺乏形式化定义以及与具体的实现技术密切相关:有代表性的实现级工业标准 构件模型有c o r b a 、c o m d c o m 和e n t e r p r i s ej a v a b e a n ,三足鼎立构成竞争 与互操作并存的格局,它们都是通过属性、功能接口和依赖关系三个部分来描 述,但这种工业级的构件模型不是面向问题域的,而且关于构件模型的描述往 往是非形式化的、不精确的:北京航空大学在面向对象模型的基础上提出了一 种可扩展的o o 构件模型,它由四部分组成:内部成员部分、对外接口部分、 协作构件部分、构件连接部分,比较完整地描述了构件的特征及构件之间的协 作关系i 6 1 。 不论是指导性构件模型3 c ,还是主流的工业标准构件模型c o r b a 、 c o m d c o m 和e n t e r p r i s ej a v a b e a n ,都没有考虑到构件适配,因此开发出的构 件不容易修改。 从构件标准化角度,希望能找到种更高抽象和更开放的构件模型,这样 就有可能将不同标准的构件方便地组装起来。目前绝大多数的构件技术尽管都 是基于面向对象技术的,但是尚未找到一种更高层次的开放构件模型( o c m ) , 所以在研究构件标准化的同时,可以探索新的o c m 作为构件标准的基础;同 时,允许各种技术模型继续百花齐放。 1 2 3 构件适配技术研究概况 基于构件开发的过程中要提取符合需要的构件,构件往往不完全满足需 要,这时就只能找到功能最相近的构件,并对它进行修改。构件适配是构件使 用者为了在特定的应用系统中使用而改变构件的过程。面向对象和基于构件的 软件开发方法的广泛使用,在使用第三方构件时出现了越来越多的问题,特别 4 要求对第三方构件适配的支持。适配对基于构件的软件系统的成功与否是至关 重要的。应该说,只有当应用程序开发者能够适配构件时,构件才体现其复用 的价值。 构件适配主要解决的问题如下: ( 1 ) 构件的语义不匹配问题,即构件的功能和行为不完全满足需求: ( 2 ) 即使构件功能符合要求,构件接口也有可能语法不匹配: ( 3 ) 构件的结构不相容问题,许多构件在设计阶段,并没有预先考虑将来构 件组成时如何保证结构相容,结果各有各潜在的假设,造成组合的困难,这些 不相容反映在几个方面:对底层支持设施的假设不同、控制模型的不相容、数 据模型不兼容、通信协议不一致,对构造过程的假设不一致。因此,需要预先 考虑结构上的相容性。 因为大部分适配者都不是构件设计者,所以适配是件非常困难的工作【2 7 3 4 1 3 6 。构件适配的困难在于构件的规格说明无法精确定义构件逻辑,构件的制 作者无法预测全部的可能使用环境。目前国际上对构件适配技术的研究主要 有:主动接口技术、继承法、黑盒法、b c a ( k e l l e r 9 8 1 ) 、叠印( j a n b o s c h ) 、 调和( g l e n ns m i t h 9 8 1 ) 等。j a nb o s c h 针对传统适配技术( 如复制粘贴、继 承法、包裹法) 对构件适配的透明性、黑盒性、可配置性、可复用性等方面的 支持能力差的特点,提出了叠印技术,在可复用构件中加入预编译的、可配置 的功能;对构件接口、构件组装和构件监控三种类型的适配给出了叠印适配的 方案| 1 4 j 。h e i n e m a n 在文献1 1 5 中提出了一种设计自适应软构件的框架a d a p t , 其中使用了主动接口,指出了主动接口机制能够帮助设计复用度高的构件;这 种框架使得构件开发者能够开发易于适配的构件,使构件使用者获得适配的机 制。g l e n ns m i t h 在文献 1 6 】中给出了一种异构环境下开发的构件的适配方法: 调和技术( c o n c i l i a t i o n ) 。调和是一种半自动的适配技术,能标识结构、行为不 匹配的问题,作者给出了c o m 的类库( t y p el i b r a r y ) 调和器( c o n c i l i a t o r ) 如何使用c o r b a 的接口库( i n t e r f a c e r e p o s i t o r y ) 实现c o m 类库的接口的具 体过程a b r a c c i a l i 在文献【3 7 】中给出了适配构件的形式化方法,包括:构件接 口的行为描述;表达适配器规约的表达;从高级规约生成具体适配器的全自动 过程。c a m p b e l l 在文献【2 6 】描述了一种可适配的构件,解释了a d a p t a b l e s 硕士学位论文 m a s t e r st h e s i s c o m p o n e n t 的概念和起因,给出表述a d a p t a b l ec o m p o n e n t 的可选的机制,并 给出其创建过程( 从单一用途构件抽象;统一类似的已有构件) 。 关于构件适配目前在国内的研究还非常少。2 0 0 1 年,大连理工大学计算机 科学系的迟忠先等人在一种基于多a g e n t 适配器的组合软件建模方法一文 中,介绍了一种构件的装配方法,采用多个a g e n t 型适配器,创建一种高弹性的 复用机制,并提出了基于多a g e n t 型适配器的建模方案【1 1 ”。2 0 0 2 年,迟忠先 等人在一种基于多a g e n t 适配器的构件重用方法中,首先提出一种构件适 应方法通过为构件外挂适配器来解决构件重用中的“接口匹配、消息 处理、状态监控和环境模拟”等问题并采用多a g e n t 适配器来建立一个可适应 机制然后讨论基于这种多a g e n t 适配器的构件适应技术的体系结构和建模方 法【1 8 】。 1 3 本文的主要研究内容和目标 对主动接口的研究发现,构件可以提供一个专为适配而建立的接口,这是 适配的关键。本文针对软件复用中构件不符合应用程序需求的问题,使用主动 接口技术,辅以其他构件适配技术,创建了一种可适配构件的模型 ( a d a p t a b l e c o m p o n e n t ) ,帮助构件开发者设计出易于适配的构件。具体内容如 下: ( 1 ) 提出了主动接口b c a 构件适配技术: 在研究主动接口和b c a 技术的基础上,取二者之长,提出了两种技术结 合的方法,降低构件适配的耦合度,提高构件的重用性和透明性,保持了构件 良好的封装性。 ( 2 ) 初步提出基于主动接口的可适配构件模型; 构件开发者应该明确他们不可能创建出符合所有需要的构件,所以必须寻 找使构件能应需而变的方法。对主动接口的研究发现,构件可以通过主动接口 来灵活地应对不可预见的局面。因此,将主动接口机制与构件模型结合研究, 提出了一种易适配构件模型。 ( 3 ) 对设计可适配构件的方法论的研究。 本文提出可适配构件模型的同时,也提出了设计可适配构件的设计方法论 来支持可适配软构件的创建。 1 4 论文结构概要 第一章为绪论,介绍本研究课题的背景和意义,论文的主要研究内容和目 标 第二章是本文的理论基础章节。本文的研究基础是构件模型与构件适配问 题。一方面,阐明了构件标准化对于构件复用的意义,介绍了构件模型的现有 发展状况,讨论了构件模型在构件标准化中的作用,从而进一步揭示本文研究 构件模型的目的和意义;另一方面,从技术角度,介绍了两种构件适配技术, 主动接口技术和b c a 技术,并在此基础上提出了一种新的适配技术:主动接 口b c a 技术。 第三章是本文的核心章节,是本课题的主要工作。依据构件适配技术,从 模型设计原则,模型层次结构等方面描述可适配的构件模型,并给出根据模型 进行构件开发的具体步骤。主要考虑构件适配,这是本模型的关键所在。 第四章给出了设计可适配构件的总体结构图,并根据可适配构件模型设计 了一个具体的构件,结合对此构件的适配分析了可适配构件模型的有效性。 第五章对全文进行了总结,并对进一步的工作进行了展望。 硕士学位论文 m a s t e r + st h e s i s 第二章可适配构件模型理论基础 2 1 构件与构件复用问题 构件标准化是解决构件复用问题的有效途径。本节介绍了构件的定义和分 类,构件标准化对于解决构件复用问题的重要性。 2 1 1 什么是构件 一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是 软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实 现代码的复合体。简单地说,构件是具有一定的功能,能够独立工作或能同其 它构件装配起来协调工作的程序体f 3 9 】。 构件是一组封装的、规范的、可重用的软件模块,是组织系统的基本单位。 其中构件的封装性有两层含义: ( 1 ) 指数据和操作的封装; ( 2 ) 指没有操作下的数据属性的封装。( 这种封装可以认为是数据和操作 封装的一种特例,即操作为空的特殊封装) 。 像a d a 的p a c k a g e 、s m a l l t a l k 的o b j e c t 、c + + 的c l a s s 和数据类型都属于构 件范畴,但是,操作集合、过程、函数即使可以重用也不能成为一个构件。 如果把软件系统看作是构件的集合,那么从构件的外部形态看,构建一个 系统的构件可以分为5 类【3 9 j : ( 1 ) 独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次 检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如, 数据库管理系统和操作系统等。 ( 2 ) 有限制的构件。有限制的构件提供了接口,指出了使用的条件和前 提,这种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测 试。例如,各种面向对象程序设计语言中的基础类库等。 ( 3 ) 适应性构件。适应性构件进行了包装或使用了接口技术,把不兼容 硕士学位论文 m a s t e r st h e s i s 型、资源冲突等进行了处理,可以直接使用,这种构件可毗不加修改地使用在 各种环境中,例如a c t i v e x 等。 ( 4 ) 装配的构件。装配的构件在安装时,已经装配在操作系统、数据库 管理系统或信息系统不同层次上,使用胶水代码( b l u ec o d e ) 就可以进行连接 使用。目前一些软件商提供的大多数软件产品都属这一类。 ( 5 ) 可修改的构件。可修改的构件可以进行版本替换。如果对原构件修 改错误、增加新功能,可以利用熏新“包装”或写接口来实现构件的替换。这 种构件在应用系统开发中使用得比较多。 2 1 2 构件复用问题与构件标准化 构件的复用常遇到许多困难:( 1 ) 成品构件库没有包含明显可识别的构件; ( 2 ) 构件粒度不是太粗就是太细;( 3 ) 构件没有提供正好符合需求的功能;( 4 ) 成品构件的专用化和集成遇到非预期的复杂性;( 5 ) 用来寻找、了解和评估构 件的代价比从头写一个还高1 8 “”。 构件复用问题的一个解决方法是推进构件的标准化。构件标准化,有利构 件的复用,推动基于构件软件工程( c b s e ) 和基于构件开发( c b d ) 的健康 发展,这个方向必须坚持。构件系统的建立是为促进复用,应用的开发不再需 要都从头开发,而是可以通过构件的组装,要做到这一点,能组装的构件必需 采用相容的模型和标准,这正是构件标准化要解决的问题。 构件模型表达了构件是如何结构的,以及构件间如何完成相互交互和组装 成可运行的系统,因此构件的标准化,实际上就是要选择统的构件模型。构 件应充分的模型化,对构件的行为模型有良好的定义,但目前的许多构件技术 都缺乏一个合适的模型,大多数构件模型对构件的界面缺乏合适的描述信息, 许多构件对构件的目的、a p i 以及功能语义都缺乏说明,因此非常需要对构件 有标准的说明信息格式。例如,对j a v a b e a n s 来说,构件原始作者提供的构件 信息可通过内省机制( i n t r o s p e c t i o n ) 收集到一部分,但常缺乏对这些信息的语 义描述,许多信息包含在非形式化的文档中,并未包含在可执行的代码中:另 外,有些源代码的结构化注解内包含一定的信息,但需要专门的工具( 如 j a v a d o c ) 把它们抽取出来,以可存取方式存储起来。 o 硕士学位论文 m a s t e r st h e s i s 2 2 构件模型 2 2 1 构件模型的概念 构件模型是为开发者定义软件构件而建立的体系结构和a p i ( a p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ) 集,使开发者可通过软件构件的动态组合来建立应用 系统【3 。构件模型由构件与容器两种主要成份构成。构件是具有可重用特性的 基本软件部件。容器用于存放和安排构件,实现构件间的交互。容器也可以作 为另一个容器的构件使用。 构件模型建立在构件及其运行环境的基础上,它们之间必须满足特定的一 组要求,以便约束构件接口的性质,使得构件的接口能够被公共使用,从而保 证在构件之间,为使用这些构件的应用软件和构件所运作于其上的应用环境提 供一定级别的互操作性。 构件模型接口也可以不同方式定义。一些构件模型接口以语言无关方式定 义,然而其他模型却是语言相关的。语言相关、平台相关以及通信协议相关只 是一些构件模型接口规范风格的几个示例。 2 2 2 构件模型与规格说明 如何精确描述构件的接口和功能,这是基于构件开发的必需。当前的一些 方法主要表现在语法级,如c o r b a 的界面定义语言( i d l ) ,为精确描述, 还需要语义级的补充,如界面元素的功能,相互关系、使用场合和质量属性等。 构件复用中常不易找到可以匹配的构件,这多半归于缺乏完整和清楚的界 面说明,因此许多研究集中在如何合理对构件做出规范说明,当前的方法主要 足语法级的,一个有用的说明,还应包括界面元素的语义信息以及它们的相互 关系。使用场合和质量属性,因此,j u nh a n 提出,一个完整的构件界面描述 应包含下面四个方面 1 1 】: ( 1 ) i n t e r f a c es i g n a t u r e 这是界面说明的基础,表示构件的功能,它由性 质、操作和事件组成,性质是构件外部用户或其它构件可观察的属性,通过它 们可以了解和影响一个构件的行为,一个常见的例子,是借此实现构件的客户 1 0 硕士学位论文 m a s t e r st h e s i s 化和调整使用配置,操作表征与外界的交互作用,通过事件,还可实现反应控 制,这一部分基本上还是语法级的,可采用类似i d l 的形式。 ( 2 ) i n t e r f a c ec o n s t r a i n t s这反映了界面的语义,如属性的值范围限制, 操作的前置和后置条件,它也可用来规定界面元素问的相互关系,如一个操作 只有在某一性质落在指定范围内才可调用,一个操作必需在另一方个操作调用 后马上调用等。明显的语义规定,对说明构件非常重要,它们精确反映了一个 构件的能力,用户必需把握这些约束,才能使构件的行为符合预期。 ( 3 ) i n t e r f a c ep a c k a g i n ga n dc o n f i g u r a t i o n s 这反映了构件在不同情景场 合使用时,可具有不同的作用和角色,一个构件在不同情景下可具备不同的界 面配置。通常,构件设计者在构造时可能已经考虑多种使用情景。 ( 4 ) q u a l i t y a t t r i b u t e s 这是构件的非功能性质,质量属性规定,如安 全性、性能和可靠性对构件的使用十分重要,但这方面过去研究不多,这里有 两个问题要研究,一是如何量化质量属性,另一是如何分析质量属性在特定场 合下对周围系统的影响。 2 2 3 现有构件模型的分类 ( 1 ) 构件描述分类的模型 此类模型试图以一种综合的方式来描述构件,使得构件易于为用户所理解 易于在库中被有效,高效地分类,存储和检索。代表性的工作有r e b o o t , j b c l ,a l o a f 。 此类模型需要描述所有关于构件的必要信息,包括:所有对用户查找、理 解、选择、适应性修改及使用构件有帮助的信息;所有对构件库管理者分类和 管理构件及构件间关系有帮助的信息;构件的其它属性,包括:生产者,版本, 使用情况,反馈意见,知识产权控制等。 ( 2 ) 构件规约组装的模型 此类模型试图描述构件的功能规约:构件对外提供什么功能,构件需要外界 为它提供什么功能,构件被用于什么语境等等。此类模型描述构件自勺功能和行 为规约,并通过配置这些规约来刻划系统。 在用法上,我们使用此类模型来规约构件,并在设计级上组装构件,这正 1 1 是当前i d l ,c d l 和a d l 研究的目的。代表性的工作有指导性模型3 c ,为此 类模型提供了框架。 ( 3 ) 构件实现的模型 此类模型试图帮助人们决定如何用某种程序设计语言或以某种可执行单 元的形式来实现构建,也称基础设施模型。无论如何,构件必须被实现为某种 直接可用的形式,因此,此类模型具有非常重要的地位,主要的代表工作有, 微软的c o m d c o m ,o m g 的c o r b a c c m ,s u n 公司的j a v a b e a n s 和e n t e r p r i s e j a v a b e a n s 1 4 5 1 。 本课题的可适配构件模型是在遵从指导性构件模型3 c 的基础上,更着重 于描述构件的可适应性修改而提出的。 2 3 构件适配技术 本节介绍了一些现有的构件适配技术,并对这些技术进行了比较,从而找 到适配技术与构件开发技术的结合点,最后还讨论了体系结构在构件适配中所 扮演的角色。 2 3 1 主动接口技术 构件接口是由一组端口( p o r t s ) 组成的【1 9 】,每个端口表示构件和外部环境 的交互点。一个端口可以非常简单,如过程调用:也可以表示更为复杂的界面, 如必须以某种顺序调用的一组过程调用。构件是一个可以进行主动计算的实 体,构件接口并不仅是对构件可调用的方法的一个语法描述。构件接口定义的 机制包括:可被外界调用的方法、可接收或发送的事件、复杂的访问协议等。 在构件之间改变事件交互的一种方法是添加能够截取事件的接口,为了提高本 身的可扩展性,构件应该提供这样的接口。端口与一系列方法相关,所以每个 方法请求也就是一个端口请求。端口请求对外部事件的响应分为两个阶段: b e f o r e p a h s e 和a f t e r - p a h s e 。其中,b e f o r e p a h s e 发生在构件根据外部请求执行 任何步骤之前;a f t e r - p a h s e 发生在构件根据外部请求完成所有操作后。 什么是主动接口? h e i n e m a n 在文献【1 5 】中将其比喻为细胞膜,如同细胞膜 1 , 硕士学位论文 m a s t e r st h e s i s 允许或阻止物质进入细胞一样,在执行成员函数的过程中,主动接口决定是否 响应方法调用。当其他程序调用此构件的某个方法时,由主动接口决定是否响 应调用方的请求操作,构件的主动接口可以通过程序做出响应。内部构件接口 由私有和保护类型的方法所组成,这些私有的内部方法可以支持主动接口。在 构件上加上主动接口的方法既保持了构件原有的一致性,又扩展了构件功能。 主动接口允许用户定义的调用方法在任何阶段被调用,这样可以扩大、替 换甚至是取消方法请求。另外,主动接口机制只适合于在标准的接口边界适配 构件的行为。构件设计者可以创建特殊端口来对采取的构件适配方法进行策略 性判断阻4 ”,即创建专为适配的接口。这样就扩展了构件的接口,这是适配的 关键。 与主动接口相关的一个概念是获取语义信息的仲裁机制,根据文献 1 5 】中 构件仲裁者的定义,构件仲裁者对构件语义信息进行体系结构层次的建模,并 具有获取语义信息的机制。构件的a d l 规约描述构件的不变部分和可变部分, 并提供适配的指导,描述应用程序开发者编写的新代码,如何集成到构件中。 在规约中,可以参照函数来检索语义信息。这些函数是仲裁机制的组成部分, 当仲裁者要求提供语义信息时,执行这些函数。对构件的适配在体系结构层次 进行定义,然后转换为低一级语言的描述。 每个构件具有一个构件仲裁者,仲裁者具有响应主动接口的回调函数。构 件和它的仲裁者是分离开来的,这样可以降低原始构件的复杂性,构件没有涉 及访问或获取语义信息。也允许程序开发者重用这个通用的机制来适配它们的 行为。仲裁者和构件通过一个适配端口进行交互,当构件需要做出决定时,可 以询问相关的构件仲裁者来调用任何特定的由程序开发者决定的策略,假如没 有另外定义策略,构件设有默认的行为。仲裁者获取这些信息然后根据构件的 体系结构描述执行操作。 2 3 2 b c a 技术 b c a ( b i n a r yc o m p o n e n ta d a p t a t i o n ) 方法m 3 03 2 3 3 1 允许构件在程序运行中 以字节码的形式被适配,也就是说,程序开发者可以对类和接口添加方法和字 1 3 硕士学位论文 m a s t e r 。st h e s i s 段,可以重新命名方法、重新实现方法,改变类型层次等。而完成这些,不需 要对构件的源代码进行访问。 b c a 方法是通过一个具体模型b c a 系统实现的,如图1 所示。b c a 系统 的结构非常简单,是集成在j a v a 虚拟机中的( b c a 系统目前是基于j a v a 实 现的) 。通过修改j a 、,a 构件新建一个d e l t a 文件说明i o l 。d e l t a 文件包含了对类 所作的修改,如添加或保留接口、方法或方法引用。还可以改变一个构件的超 类。一旦一个构件被适配,其它引用这个适配构件的类必须重新编译。类装载 器( c l a s sl o a d e r ) 合并了原构件的字节码流。类文件和其它的字节码存储于字 节码d e l t a 文件中。 j a v a 虚拟机j v m ( j a v a v i r t u a lm a c h i n e ) 是可运行j a v a 代码的假想计算机, 是j a v a 实现平台无关性的基础。只要根据j v m 规格描述将解释器移植到特定 的计算机上,就能保证经过编译的任何j a v a 代码能够在该系统上运行。装载代 码的工作由类装载器完成,类装载器负责装入运行一个程序需要的所有代码, 包括程序代码中的类所集成的类和被其调用的类。当装入了所有类之后,解释 器便可确定整个可执行程序的内存布局。解释器为符号引用与特定的地址空问 建立对应关系及查询表【3 1 1 。 构件被传入b c a 系统之后就进行构件适配。类装载器读取类文件并解析 文件的代码,构造内部数据结构来表示这个类。在j v m 的标准实现方法中, 内部表示方法会被传送到校验器。b c a 中,装载器将数据结构传送到修改部 件,修改部件会实现对类的修改。如何修改是在d e l t a 文件中已经定义好的, 是由修改器读入的。以适配说明的格式定义修改部分,并编译成字节码的形式, 这样在装载时可以提高运行速度。 修改之后,修改后的类传送到字节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 转让居间协议合同(标准版)
- 通风设备智能控制-洞察及研究
- 2025贵州毕节威宁自治县“特岗计划”教师招聘选岗及签约考试备考试题及答案解析
- 苏教版小学三年级下册数学学校教育协调计划
- 确保工期的航空维修技术组织措施
- 地基基础工程质量通病及防治措施
- 2025年旅游地产行业前景分析及投资机遇研究报告
- 六年级劳技上册教师授课计划
- 2025年太阳能发电站行业当前竞争格局与未来发展趋势分析报告
- 2025年液晶显示模组行业前景分析及投资机遇研究报告
- JC-T 2586-2021 装饰混凝土防护材料
- DZ∕T 0227-2010 地质岩心钻探规程(正式版)
- 临床医学工程-题库
- SYT 0452-2021 石油天然气金属管道焊接工艺评定-PDF解密
- 屋顶分布式光伏发电项目EPC总承包工程招投标书范本
- 2000-2015年考研英语一真题及详细解析
- 体检中心礼仪培训课件
- 独立基础教学课件
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 会计从业资格基础知识汇总
- 项目干系人管理评估
评论
0/150
提交评论