(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf_第1页
(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf_第2页
(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf_第3页
(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf_第4页
(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机应用技术专业论文)包含非功能特征描述的构件建模技术.pdf.pdf 免费下载

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

文档简介

硕f :学f 妒论文 摘要 基于构件的软件开发方法( 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 ) 提 高了软件生产效率和质量,同益成为软件开发的主流范型,是软件开发实现工程 化、自动化从而解决软件危机的现实可行途径。软件构件模型、构件查询匹配和 构件组装是基于构件的软件开发方法研究的主要内容。本文对这三个方面的相关 技术知识进行了分析和研究。主要工作如下: 1 简要介绍构件模型的相关概念,分析了几个主流的构件模型,指出了其 中的不足;介绍了构件的功能匹配,包括基于基调的匹配和基于规约的匹配;研 究了构件组装技术,简介了白盒组装、黑盒组装和灰盒组装。 2 以3 c 模型为指导,提出了一种基于插头插座体系结构的包含非功能特征 权值描述的构件模型( c o m p o n e n tm o d e lw i t hn o n f u n c t i o n a lf e a t u r e sw e i g h t , c m n w ) 。首先给出了构件模型的定义,分析了它的性质和优点:高层抽象,与 具体的实现细节无关,在规约描述层次上支持构件的集成,并支持系统的层次化 分解,而且强化了一般构件模型所忽略的非功能特性方面的描述。然后以该构件 模型为基础,定义了相应的构件功能匹配和非功能匹配。最后描述了顺序组装、 选择组装、并行组装、重复组装这四种原子组装操作方式下c m n w 构件模型接 口的连接绑定规则。 3 以网上商店系统为例,具体阐述了基于c m n w 模型的构件制作的方法、 构件匹配的过程以及构件组装的实现,说明了c m n w 模型的实用性。 关键词:非功能特征;软件构件;构件模型;构件匹配;构件组装 包含1 f 功能特征描述的构什建模技术 a b s t r a c t c b s d ( 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 ) i m p r o v e st h ee f f i c i e n c ya n d q u a l i t yo fs o f t w a r ea n dh a sb e c o m et h em a i nm o d e lo f s o f t w a r ed e v e l o p m e n ts i n c ei t p r o v i d e sar e a l i s t i cm e t h o dt os o l v es o f t w a r ec r i s i sb ya c h i v i n gt h ee n g i n e e r i n g , a u t o m a t i o no fs o f t e r w a r ed e v e l o p m e n t m o s tr e s e a r c h e so fc b s da r ec o n c e r n e d a b o u ts o f t w a r ec o m p o n e n tm o d e l ,c o m p o n e n tm a t c h i n ga n dc o m p o n e n tc o m p o s i t i o n i n t h i sp a p e r ,s o m et e c h n i q u e sc o n c e r n i n ga r o u n dt h er e f e r e dt h r e ea s p e c t sa r e a n a l y z e d t h em a i nw o r k s a r ea sf o l l o w s : 1 a f t e rb r i e f l yi n t r o d u c i n gt h ec o n c e p to fc o m p o n e tm o d e l ,s e r v e r a lm a i n c o m p o n e n tm o d e l sa r ea n a l y z e da n ds o m e w e a kp o i n t s a r ep r o p o s e d f u n c t i o n m a t c h i n gt e h c h i n q u e si n c l u d i n gb a s e d o n s i g n a t u r ea n ds p e c i f i c a t i o n o n e sa r e i n t r o d u c e d w h e r e a f t e r ,c o m p o s i t i o nt e c h n i q u e s s u c ha s w h i t e - b o x ,b l a c k b o x , g r e y b o xc o m p o s i t i o na r es t u d i e d 2 g u i d e db yt h e3 cm o d e l ,ac o m p o n e n tm o d e lw i t hn o n - f u n c t i o n a lf e a t u r e s w e i g h tb a s e do nt h ep l u g s o c k e t a r c h i t e c t u r ei sp r o p o s e d f i r s t l y ,i td e f i n e st h e c o m p o n e n tm o d e la n da n a l y z e s i t sm e l i o r i t ya n dc h a r a c t e r s :h i g hl e v e la b s t r a c t , i n d e p e n d e n to fi m p l e m e n t a t i o n ,s u p p o r t i n gc o m p o n e n tc o m p o s t i o ni ns p e c i f i c a t i o n l e v e l ,s u p p o r t i n gt h e h i e r a r c h i c d e c o m p o s i t i o n o f s y s t e m a n di m p r o v i n gt h e d e s c r i p t i o no fn o n - f u n c t i o n a lf e a t u r e s s e c o n d l y ,b a s e do nc m n w t h ec o m p o n e n t f u n t i o nm a t c h i n ga n dn o n - f u n c t i o nm a t c h i n ga r eg i v e n f i n a l l y ,t h ei n t e r f a c el i n k r u l e so fc m n wu n d e rt h ef o u rb a s i cc o m p o n e n tc o m p o s i t i o np a t t e r n s :s e r i a l c o m p o s i t i o n ,a l t e r n a t i v ec o m p o s i t i o n ,p a r a l l e lc o m p o s i t i o na n dr e p e a tc o m p o s i t i o n a r ed e s c r i b e d 3 i nt h ee s t o r ep r o j e c tt h ep r o c e s so fc o m p o n e n ti m p l e m e n t a t i o n ,c o m p o s i t i o n a n dm a t c h i n gb a s e do nc m n wa r eg i v e n ,w h i c hi n d i c a t e st h ef e a s i b i l i t yo ft h e c m n wm o d e l k e yw o r d s :n o n - f u n c t i o n a lf e a t u r e s ;s o f t w a r ec o m p o n e n t ;c o m p o n e n tm o d e l ; c o m p o n e n tm a t c h i n g ;c o m p o n e n tc o m p o s t i o n ! 1 1 硕一f :学化论文 插图索引 2 1d c o m 通信示意图1o 2 2c o b r a 体系结构1 2 2 3 理想的构件模型1 3 3 1 服务的对偶性和层次化分解一2 8 3 2 顺序组装3 l 3 3 选择组装3 3 3 4 并行组装3 5 3 5 重复组装3 6 4 1 网上商店系统用例图4 4 4 2 基本业务对象之间的关系4 4 4 3m v c 模式流程图4 6 v i 图图图图图图图图图图图 包含1 卜功能特钿f 描述的构f ,| :建模技术 附表索引 表2 1 三种构件模型c o m ,e j b ,c o r b a 的对比1 2 表2 2 各种匹配规约的方法1 7 表4 1c a t e g o r y 表4 5 表4 2p r o d u c t 表4 5 表4 c a t e g o r y p r o d u c t 表商品类别和商品之间l :n 的关系表4 5 v n 包含1 卜功能特征描述的f 勾f , :建摸技术 湖南大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 吼彬7 月 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文 被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇 编本学位论文。 本学位论文属于 l 、保密口,在年解密后适用本授权书。 2 、不保密囹。 ( 请在以上相应方框内打“ ) 作者签名绠罐 日期:獬7 月彦日 剥磁名豸么缸醐:脓7 月多日 硕十学位论文 1 1 选题背景 第1 章绪论 用传统开发方式从代码级做起的软件,经历了大量重复性的需求分析、设计、 编码、测试、维护工作,生产周期长、软件复用性差。而大型企业级应用软件面 临着诸如开发周期长、开发费用高,实施费用超支和工期延长等问题日益突出。 更加可怕的是,随着企业的环境和需求的不断变化,系统刚刚开发好就面临着被 淘汰的窘境,造成了软件工程的灾难。 基于构件的软件开发方法( 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 ) 是指复用已有的软件构件,组装软件系统的方法。通过高效的构件式开发, 能够提高软件的生产效率和产品质量。 早在l9 6 8 年的n a t o 软件工程会议上,m c l l r o y 就提出了软件构件、构件 工厂的概念。然而,由于技术方面和非技术方面的种种因素,软件构件技术却 一直发展缓慢。至今对构件和构件开发方法仍然没有统一的定义和标准。其中技 术上的不成熟是一个主要原因。近十几年来,面向对象技术出现并逐步成为主流 技术,为软件构件技术提供了基本的技术支持。软件构件技术己重新成为软件工 程领域的研究热点,被认为是解决软件危机、提高软件生产效率和质量的现实可 行的途径1 2 】。 但是目前基于构件的开发方法仍然还处于理论研究阶段,构件模型和开发方 法尚无统一标准。构件模型是整个c b s d 的理论基础,一个好的形式化描述的 构件模型对构件的组装、构件库的设计、构件检索来说都十分重要。而目前构件 模型多采用非形式化或半形式化方法描述,存在矛盾、二义性、含糊性及抽象层 次混乱等问题。构件模型的形式化描述尚不成熟,缺乏对构件模型的简单而准确 的形式化语义描述。 构件的检索和组装对基于构件系统的开发是至关重要的。尽管有不少学者提 出了可行的构件检索的算法,但距离实际大规模高效应用还十分遥远。在构件匹 配方面,精确匹配很难达到,而各种模糊匹配算法的准确率仍然不能够令人满意。 构件组装是基于构件的软件开发的核心,目前c o m d c o m 、c o r b a 、 j a v a b e a n e j b 等技术已经实现并应用了构件组装技术,但仍然不能完全做到跨平 台、语言无关,并且不能通用。而构件组装的模型也没有成熟和完整的成果。 构件的建模是c b s d 的基础,对它的研究不仅对促进软件产业的发展具有 十分重要的研究价值,也推进了新的开发方法的研究与实践,有重大的理论与实 包含1 f 功能特征描述的构件建模技术 践意义。 1 2 国内外研究现状 c b s d 主要通过已有构件来组装软件系统,与传统的软件开发方式相比有着 许多优点:提高了软件重用效率,保护了已有的投资:开发人员可以摆脱编程的 细节,将更多的注意力放在业务规则上去,有利于开发更符合用户需求的软件系 统;c b s d 支持即插即用,所开发的系统方便维护和升级:降低了对开发人员的 要求,大大节省开发成本;构件的来源非常广泛,可以缩短开发周期,提高开发 效率。可以说c b s d 是影响整个软件产业的关键技术之一,是解决i n t e r n e t 环境 下的软件危机及实现软件产业工业化生产最主要的途径。 当前,对构件技术的研究已经取得了相当的成果。在学术界有公认的指导性 构件理论模型3 c 模型,该模型由构件的三个不同方面的描述组成,即概念 ( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) p j 。另外比较有代表性的模型有 d a r w i n ”1 ,w r i g h t 等。w r i g h t 的特点是对体系结构模式中的构件和连接器的抽象 行为进行形式化的描述。w r i g h t 可以将显式的、独立于实现的连接构件类型作为 交互模式,并用基于c s p ( 通讯顺序进程) 的表示法来表示构件的抽象行为,它支 持对规约的一致性和完整性进行静态的检查。d a r w i n 模型中构件包括接口、绑定 和配置几部分描述成分,其中接口定义为构件提供和需求服务的集合,通过构件 实例化的声明和提供与需求服务之间的绑定实现构件配置。由于构件提供和需求 的服务存在差别,d a r w i n 模型中连接器的类型是非对称的。 在业界也出现了一些实用的技术模型,如m i c r o s o f t 的c o m d c o m 技术, o m g 的c o r b a 体系结构,s u n 的j a v a b e a n e j b 。c o m d c o m 组件模型定义了组 件和它们的客户之间互相作用的方式。它使得构件和客户端无需任何中介构件就 能相互联系,客户进程通过接口直接调用构件中的方法,而无需了解其功能实现 的内部细节,最终以精练程序语言把构件集成到系统中,从而有效降低了开发难 度,加快了开发进度。c o r b a 模型的主要特点包括:基于分布对象计算、操作 的透明性、位置透明性、状态相关性、可以集成遗留应用系统等。它使一种语言 中型的软件构件模型,可以跨越不同的网络、不同的机器和不同的操作系统,实 现分布对象之问的互操作,极大的方便了大型软件的开发和集成。j a v a b e a n e j b 构件对组装环境具有较强的适应能力。通过主对象对组装环境的感知,协调内部 对象做出反应,改变接口状态以适应环境。在必要时,可依靠外部驱动对象的引 入,进一步增强对环境的适应能力。实现了从分析设计到实现的平滑过渡。将构 件内部对象划分成实现用户功能的对象集和用于组装的对象集加以实现,符合分 析和设计原则。最大限度地利用成熟的o o 技术。从构件的分析、设计和实现都 可借助已有的比较成熟的面向对象技术。这三种技术已经成为事实上的行业标 2 硕十学位论文 准,有大量的应用和实践。 我国在构件技术的应用上也是走在国际前沿。早在19 9 7 年,由北京大学主持 的国家重大科技攻关项目“青鸟工程中,采用软件构件技术开发的“青鸟i i 型 系统通过了技术鉴定。青鸟构件模型从三个不同的、相互正交的视角来看待构 件,每个具体的构件都是形态、层次和表示构成的三维空间中的一个点。在青鸟 构件模型中从九个方面来描述构件,即概念、操作规约、接口、类型、实现体、 构件复合、构件性质、构件注释、构件语境。青鸟构件模型是一个具有面向对象 风格的模型,也是一个研究中的模型【6 1 。 在业界,国内较成功的基于构件的解决方案有普元的e o s 中间件平台。e o s 是基于j 2 e e 平台、采用面向构件技术实现企业级应用开发、运行、管理、监控、 维护的中间件平台。它将j 2 e e 体系规范、构件技术、x m l 技术和可视化开发技 术起来,为基于j 2 e e 平台之上的应用提供了面向构件的应用架构,通过图形化 的构件单元作为应用系统的基本组成元素,促进企业级应用系统的开发。 1 3 研究内容 基于构件的软件工程是指用装配可重用软件构件的方法来构造应用程序。它 包含了系统分析、构造、维护和扩展的各个方面,在这些方面中都是以构件方法 为核心的。基于构件的软件工程的主要目标是通过集成构件来开发系统、开发可 复用的构件及通过定制和替换构件为维护和更新系统等提供支持。它的基本宗旨 是软件系统可以通过选择构件,在一个定义良好的软件架构内进行构件组装以生 成系统。它不同于传统的方法,如系统开发一切从零开始。商业构件可以由不同 的开发者使用不同的语言在不同的平台下进行开发。商业构件可以从构件库中选 取、检验,经过组装、部署以形成目标系统。 构件技术研究的内容主要有:构件获取、构件模型、构件描述语言、构件分 类及检索、构件组装、标准化等。其中,软件构件模型、构件库技术、软件构件 组装技术是当前基于构件的软件开发的三大研究热点。这个三大技术基本涵盖了 整个基于构件的软件开发流程。因此本文的研究也基本以这三个方面的内容为基 本点。 本文研究工作主要包括了以下几个方面的内容: ( 1 ) 基本知识概述。 简单介绍了构件技术一些基本知识,并着重对构件的概念以及形式化开发的 内容进行了概括。 详细分析了3 c 理论构件模型,对比了c o m d c o m 、j a v a b e a n e j b 、c o r b a 三个主流的实践模型的优缺点。对构件库中的核心技术构件匹配做了重点阐述, 简介了的构件组装技术。 3 包含非功能特征描述的构什建模技术 ( 2 ) 构件模型的定义。 当前构件模型研究的热点主要集中与功能特征,而非功能特征往往被过于忽 视,因此,本文根据理想构件模型的特点,提出了基于插头插座软件体系结构的 带非功能特征权值描述的构件模型,定义了功能接口描述和非功能权值描述的具 体内容,并提出了基于该模型的构件匹配方法和以及在四种构件原子组装操作中 的接口连接绑定的规则。 ( 3 ) 构件模型实现。 以构件模型的理论为基础,用具体的实例说明了构件的制作,构件的匹配和 构件的组装过程,证明了该构件模型的实用性。 1 4 论文结构 本论文接下来的内容将安排如下: 第2 章简单介绍了构件技术一些基本知识,并着重对构件的概念、构件模型、 构件匹配、构件组装以及形式化开发的内容进行了详述。 第3 章是本文的主要内容,对构件模型做了详细阐述。首先从分析了软件体 系结构、构件接口设计以及构件的非功能特征,然后给出了构件模型的具体定义, 最后在该构件模型的基础上提出了相应的构件匹配的定义和构件组装中接口连 接绑定的方法。 第4 章以作者参与的网上商店系统项目为例,从构件的制作、构件的匹配和 构件的组装三方面具体说明了构件模型的实现。 最后总结全文,给出了今后的研究方向和进一步的工作展望。 4 硕+ 学位论文 2 1 引言 第2 章构件技术概述 软件复用是在软件开发中使用已有资源避免重复劳动的的解决方案,可以提 高软件开放的效率和质量。当前软件复用是软件工程研究的热点,被视为解决软 件危机、提高软件生产效率和质量的现实可行的途径。 随着信息产业的蓬勃发展,软件系统越来越趋于大型化与复杂化,对软件生 产也要求越来越严格,标准化、规模化和节约化势在必行。个人手工作坊式的生 产模式已经不能适应当前软件生产的需求,必须向社会化的专业分工协作生产陌 生转化,即软件生产的工业化。但是目前,目前软件生产的工业化程度还比较低, 不能对好的程序进行持续不断的复用。为此,业界对软件复用的进行了几十年的 研究,并逐步形成了利用软件构件技术来实现软件复用的共识。基于构件的软件 开发方法( 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 集软件重用、分布式 对象、c a s e 和企业级应用程序开发的等技术为一体,以软件架构为蓝图,以可 重用软件构件为组装块,支持组装式软件重用,是提高软件生产效率和产品质量、 缩短产品交付时间的有效途径之一1 7 1 。 2 2 软件构件的概念 软件构件( c o m p o n e n t ) 的概念共生于软件复用。早在1 9 6 8 年,在北大西洋 公约组织( n a t o ) 会议上就提出了软件复用的概念,在这次会议上,m c l l r o y 提 出了软件构件、构件工厂等概念【l j 。 尽管软件构件的概念诞生已久,但一直以来人们对它的认识却不尽相同。 2 0 世纪7 0 8 0 年代,软件构件主要指可复用的程序代码片段,称之为代码件, 通常包括源程序代码、程序库、类库等等。 到2 0 世纪9 0 年代,软件构件应当包括分析件、设计件、代码件、测试件等 多种类型这一观念被普遍认同。由于软件复用的多样性,又将其分为产品复用和 过程复用哺】。随之产生了许多新的概念,如设计模式、框架以及软件体系结构等。 但是,对软件构件基本属性的深入探讨却仍主要是围绕代码件展开。 1 9 9 5 年,w i l lt r a c z 提出,构件应具有以下属性p j :有用性( u s e f u l n e s s ) , 构件必须提供有用的功能;可用性( u s a b i l i t y ) ,构件必须易于理解和使用;质量 ( q u a l i t y ) ,构件及其变形必须能正确工作;适应性( a d a p t a b i l i t y ) ,构件应该易于 包含1 卜功能特征描述的构什建模技术 通过参数化等方式在不同语境中进行配置;可移植性( p o r t a b i l i t y ) ,构件应能在 不同硬件运行平台和软件环境中进行工作。 近年来,随着分布式对象、i n t e r n e t 、j a v a 、c l i e n t s e r v e r 等技术以及基于 构件的软件开发技术的发展,人们对构件的认识又产生了新的变化,出现了若干 新的软件构件的定义: ( 1 ) 软件构件是可单独生产、获取、部署的二进制单元,它们之间可以互相 作用构成一个功能系统( f u n c t i o n i n gs y s t e m ) 1 0 1 ; ( 2 ) 软件构件是一个不透明( o p a q u e ) 的功能实现,能被第三方组装,符合一 个构件模型【1 1 1 ; ( 3 ) 构件是一个带有契约化接1 2 1 和显式上下文依赖的组装单元,它能被独立 发布并且可以被第三方组装【1 2 1 ; ( 4 ) 构件代表一个自包含的实体,能够向其环境输出功能并可通过定义明确 的开放接口从环境输入功能【1 3 1 ; ( 5 ) 构件由一个动态变化的对象集合组成,这些对象既可以在构件的内部也 可以是其接口的一部分。构件之间可以直接交互,也可以通过独立的对 象进行胶合【1 4 1 : ( 6 ) 构件是一个通过接口向外界提供服务的软件包【1 5 】。 上述定义的共同要素是:软件构件是一个功能单元、符合构件模型( 或具有规 范接口) 、允许不同构件开发商开发的构件进行组装。这些因素说明了构件应具 备的几个基本特征【7 】: ( 1 ) 复用( r e u s a b i l i t y ) :复用是软件构件最基本的性质,只有可以被复用的构 件才有其存在的价值;同时为了提高软件系统的开发速度和质量,只有 容易被复用的构件才有其应用的需求。因此,复用包含可复用性和易复 用性两层含义。 ( 2 ) 封装( e n c a p s u l i z a b i l i t y ) :软件封装可以对外界隐藏设计和实现细节,仅 通过接口与外界交换信息。以接口和接口定义语言为主要内容的构件交 互机制实现了描述与实现的分离。对于构件,封装应该满足构件内部的 功能实现是紧藕合的,构件之间的关系是松藕合的,这可以保证构件功 能复用的完整性和构件开发以及交付的独立性。 ( 3 ) 组装( c o m p o s i t a b i l i t y ) :构件通过组装可以形成更大的实体,组装是实施 复用的手段。这点与传统的复用技术有着显著的区别。 ( 4 ) 定制( c u s t o m i z a b i l i t y ) :定制是指构件在组装过程中随组装环境的不同而 作出自适应调整,其过程大致分为识别( i d e n t i f y ) 组装环境和作出相应的 调整,包括调整内部结构或外部接口的状态,完成与其他构件或应用框 架融合。定制是构件组装必不可少的步骤。 6 硕十学位论文 ( 5 ) 自治性( a u t o n o m y ) :构件必须能够独立分布和独立运行,它是内含识别 其属性、存取方法和事件等信息的黑盒。类似特征是构件独立性、构件 的自包含。 ( 6 ) 粗粒度( c o s r eg r a n u l a r i t y ) :构件应该是代表一定商业服务功能,是企业 级应用系统的一个有效部件。 ( 7 ) 集成特征( i n t e g r a t i o nc h a r a c t e r ) :在一定的软件体系结构( 环境或语境) 下, 将异构的软件构件无缝地结合起来,集成有动态绑定和静态组装。 ( 8 ) 接口连接机制:以契约性接口和外部环境相连接,接口是对构件外部特 征的唯一抽象。 2 3 构件技术研究的内容 构件技术研究的主要内容有f 1 6 】: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系: ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装 问题; ( 4 ) 构件分类及检索:研究构件分类策略、组织模式及检索方法,建立构件 库系统,支持构件的有效管理; ( 5 ) 构件组装:在构件模型的基础上研究构件组装机制,包括源代码级的组 装和基于构件对象互操作性的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化等。 其中构件模型和构件组装是目前构件技术研究的重点和热点,也是本文研究 的主要内容。 2 3 1 构件模型 基于构件的软件开发( 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 流程的基础, 对构件检索匹配和构件组装来说是至关重要的。构件模型应该是对构件本质特征 的抽象描述。 构件模型的描述即构件规约。g u s t a v ob o b e 1 7 】等人认为良好的构件规约是 基于构件的软件开发的基础。目前构件规约大都集中在语法规约方面,采用自然 语言作为主要描述语言。用自然语言书写的系统规格说明,可能存在矛盾、二义 性、含糊性及抽象层次混乱等问题【1 8 】。为了解决这些问题,在软件开发过程中, 特别是安全性至关重要的系统中常采用形式化方法对系统进行规约。因此,构件 模型必须以形式化方式描述构件的结构、语义和非功能特征,这样有利于分析和 7 包含非功能特征描述的构什建横技术 评价构件行为和性能的依据【1 9 l ,目前文献中能够进行精确语义定义的构件模型 包括3 c 模型【2 0 1 、c b d e c 模型【1 9 】等。但它们注重从构件存储、检索、适配和组 装等操作进行语义描述,而对如何表达可变语义以使构件具备较高的适应性则缺 乏深入刻画。如果构件只能表达确定的语义,那么它就无法通过语义的可变性来 调整自身行为以适应不同的业务需求,其存在的意义也大为降低。目前对构件模 型提出了各种各样的表示方法,如文献 2 1 】提出的面向方面的方法,文献 【2 2 ,2 3 ,2 4 ,2 5 1 提出的基于体系结构的方法等等。另外在工业界也出现了实用的工 程实践模型,如m i c r o s o f t 的c o m d c o m 、o m g 的c o r b a ,s u n 的e j b 等等, 但仍没有一个通用的表示方法,缺乏一个标准2 6 , 2 7 】。 构件模型一般规定了构件接口的结构以及构件与软件架构、构件与构件之间 的交互机制,构件模型通常还提供创建和实现构件的指导原则。一般而言,构件 模型的建立要考虑如下因素 6 , 2 8 1 : ( 1 ) 表达能力。构件模型要能够充分代表它所描述的构件,而且不应该仅仅 作为构件的抽象,构件模型还要能描述构件间复杂的关系,支持构件的 复合等操作; ( 2 ) 简单性。构件模型要对构件的创建和构件的复用提供指导,所以它必须 易于掌握和理解; ( 3 ) 语言无关性。即不依赖于任一特定的构件描述语言; ( 4 ) 可伸缩性。即要能表示不同粒度水平的构件; ( 5 ) 一致性和完备性。所谓一致性是对内而言的,它要求构件作为一个封装 体必须具有一致的对外接口、一致的组成结构以及一致的交互方式。完 备性是指不存在模型所不能描述的构件( 特定于领域以及采用的方法 学) ; ( 6 ) 可扩展性。模型的可扩展性是指在保持模型本身的一致性和完备性的前 提下,模型可以随着应用需求的增长而演化。因为实际应用中,需求的 变化和增长是很正常的,所以对模型可扩展性要求是必需的。 当然,对构件模型的要求不只上面这些,比如构件模型在应用于特定领域的 工程复用实践中时,就要具备该领域内的很强的实用性。此外,构件模型的建立 还与软件开发的方法学有关,因为不同的方法学中的构件具有不同的特点,构件 众多属性中为复用所关注的也会大不相同。 近年来,对构件模型的研究取得了不少进展,在学术研究和工程实践当中都 提出不少方案。下面简要介绍其中几种: 1 3 c 模型 3 c 模型是关于构件模型的一个指导性模型,该模型由构件的三个不同方面 的描述组成,即概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 3 1 : 8 硕十学位论文 ( 1 ) 概念:是关于“构件做什么”的抽象描述,可以通过概念去理解构件的 功能。概念包括接口规约和语义描述两个部分,语义描述和每个操作相 关联,表示操作完成的功能,也包括对操作的约束条件。 ( 2 ) 内容:概念的具体实现,描述构件如何完成概念所刻划的功能,如算法、 结构等。 ( 3 ) 语境:描述构件和外围环境在概念级和内容级的关系。语境刻划构件的 应用环境,为构件的选用和适应性修改提供指导。语境是构件中最复杂 的特征描述,进一步可以分为:概念语境( c o n c e p t u a lc o n t e x t ) ,描述构 件间接口和语义方面的关系;操作语境( o p e r a t i o n a lc o n t e x t ) ,刻划构件 中被操作数据的特征;实现语境( i m p l e m e n t a t i o nc o n t e x t ) ,描述构件间 在实现方面的依赖关系,如构件的执行顺序等等。 3 c 模型给出了构件模型必须包含的一些内容,但因为抽象程度较高,缺乏 具体易懂的描述,所以其本身并不适合应用于工程实践,仅仅具有一定的宏观指 导意义。 2 c o m d c o m c o m 2 9 】是m i c r o s o f t 公司提出的一种构件对象模型,它提供了构件之间的 接口标准,也引入了面向对象的思想,还包括语言无关性、对进程的透明性和可 重用性等一些特点。c o m 由一组规范和一个系统级的实现库所组成。规范部分 定义了构件和构件之间通信的机制,这些规范不依赖于任何特定的语言和操作系 统,因此只要按照该规范,任何语言都可以使用。c o m 库在m i c r o s o f tw i n d o w s 操作系统环境下,以动态链接库的形式存在,一般在操作系统层次上实现。c o m 库的主要功能是在注册表中查找本地服务器以及实现客户和服务器端对象的创 建过程。 c o m 构件是一种二进制标准的构件技术,它实现简单、比较实用。在空间 方面,接口编译以后生成的二进制代码的结构要满足一定的内存结构,它不依赖 于任何语言。正是通过这种统一的二进制代码结构不同语言之间的互操作和代 码的共享才能得以实现。在时问方面,c o m 在接口与实现之问应建立一种弱的、 松散的藕合在必要时这种弱的荆合能通过接口找到其相应的实现,并且在不影 响所有客户使用的前提下可以将编译好的二进制代码中的一个接口实现换为另 一种接口实现从而将客户和构件本身真正地分开这有利于以后版本升级和维 护。c o m 构件的主要特点如下【3 0 , 3 1 j : c o m 是通过d l l 机制实现对构件生命期的管理的。d l l 是构件的一个实现 服务器,当要使用某个构件时,客户通过w i n 3 2 的标准函数 h i s t a n c e l o a d l i b r a r y 将实现构件的d l l 一调入内存,然后通过调用标准函数 f a r p r o c g e t p r o c a d d r e s s 得到函数实现的地址,就可以将构件的指针与构件的 9 包含- f 功能特征描述的构什建模技术 实现( 在刚调入的d l l 一中) 联系起来,从而完成指针与实现的松散藕合的要求。 另外,d l l 与装载它的e x e 被分配在同一个进程的地址空间,这一技术减少了 实现上的很多麻烦客户多次装载的某个d l l 在内存中只保留一个拷贝,这一技 术节省了内存空间。 分布式构件对象模型d c o m 则是c o m 的扩展,它可以支持不同计算机上 构件对象与客户程序之间或者构件对象之间的相互通信,而这些计算机是可以跨 网络的。 图2 。1d c o m 通信示意图 由于c o m 是一个二进制标准,而任何语言都要被翻译成二进制机器代码才 能最后执行,所以,c o m 可以作为各种高级语言的互操作的中问桥梁;按c o m 标准实现的软件也可以被所有的语言环境所共享,这种机制还会给软件开发带来 诸多好处。但是,实现这种技术的二进制代码是依赖于机器的,不能满足移动计 算的要求。另外,c o m 是由m i c r o s o f t 公司推出的构件接口标准,原则上讲这些 构件可以建立在任何环境下,但现有的c o m 构件大多都依赖于m i c r o s o f t 环境, 在u n i x 、m a c i n t o s h 等操作系统环境下可复用的构件还很少。因此,很难在其它 操作系统平台下实现二进制代码共享。 3 j a v a b e a n e j b j a v a b e a n 是为了解决平台依赖性而提出来的一种软件构件技术,而这种平 台依赖性问题对进一步提高软件复用性是至关重要的。 j a v a 本身是独立于平台,适宜用于i n t e r n e t 环境,易于构造b s 结构的软件。 j a v a b e a n 是利用j a v a 特殊的b y t e c o d e 机制推出的解决平台依赖性问题的构件接 口标准,是在目标代码级的复用技术。j a v a b e a n 提供的标准接口为在目标代码 级的动态组装、版本升级、维护提供了保证一些相应的可视化工具也为方便、有 l o 硕十学位论文 效地定制j a v a b e a n 和建立应用程序提供了方便。j a v a b e a n 有以下主要特征【3 2 j : ( 1 ) 非平台依赖性。j a v a b e a n 币l j 用b y t e c o d e 机制生成可以在任何环境下直接 执行的代码,这一点为在当今的i n t e r n e t 环境下开发可共享的软件成份和 解决移动计算问题提供了独有的、不依赖于平台的软件开发环境。 ( 2 ) 属性管理。属性的类型分为一般属性、索引属性、依附属性和约束属性, 通过标准的命名约定来定义它们相应的访问方法,使j a v a b e a n a p i 能用统 一的方式对属性进行管理。 ( 3 ) 内省功能。是一种将构件的内部结构展现给外部的机制。开发者只需要 对构件的属性、方法和事件的命名和类型符号遵守一个约定。通过标准 的j a v a b e a na p i 就可了解到b e a n 的任何内部信息。 j a v a b e a n 的事件处理模型是基于现存的a w t 事件处理模型的。它决定b e a n 如何对它自身状态的变化做出反应,以及如何将这些变化传递给应用程序和其它 b e a n 。j a v a b e a na p i 通过将一个事件接收器注册到该事件上完成外部对事件的定 制。j a v a b e a n 的其它服务主要是利用j a v a b e a n 提供的标准接口实现的,这里不 再赘述。 e j b ( e n t e r p r i s ej a v a b e a n ) 并不是j a v a b e a n 的简单扩展。e j b 规范为基于构件 事务性、分布式对象系统定义了个体系结构。e j b 构件不同与j a v a b e a n ,它包 含一定的业务规则,运行在服务器端。j a v a b e a n 重点描述构件的属性,而e j b 则侧重于定义系统的服务框架模型。 j a v a b e a n e j b 存在的问题:j a v a b e a n e j b 主要解决了平台依赖性和可视化 构件的一些问题,但它只提供了在j a v a 环境下的目标代码共享机制,在不同语 言之间的互操作功能还是很弱的。增强j a v a b e a n e j b 与其它构件技之间的互操 作是j a v a b e a n e j b 今后发展的一个主要课题。 4 c o r b a c o r b a 3 3 】是由o m g 组织l9 9 0 年首次提出的,主要为了解决分布式、异构 的软件和硬件环境下对象之间的互操作问题,c o r b a 具有以下特点: c o r b a 将传统的面向对象模型和分布式问题的对象计算模型有机地结合起 来了。对象是分布式计算模型中理想的节点描述模块,既可以是客户,也可以是 服务器,这些对象可以自由地分布于计算机网络上。通过c o r b a ,对象可网络 透明地相互访问,c o r b a 屏蔽了位置信息和计算机的软硬件环境,建立了一个 统一的分布式软件开发平台。 c o r b a 是一种以i d l ( i n t e r f a c ed e f i n el a n g u a g e ) 为桥梁、基于o r b ( o b j e c t r e q u i r e db r o k e r ) 中间件的构件技术。它以i d l 为标准,与实现构件接口的语言、 软件和硬件平台无关。o r b 是一种中间代理机制,分离了构件的接口和实现。 服务对象实现以后,就将其接口登记在c o r b a 代理中,客户对象按照代理中的 包含1 卜功能特征描述的构件建模技术 接口描述访问服务对象,而不用关心服务对象使用什么语言,在什么地方,在什 么软硬件环境下实现。可以把o r b 比作软件总线。应用程序可以根据需要,按 照标准( 接口) 插到o r b 总线上。客户和服务器可以是不同计算机、不同操作系 统、用不同语言实现的软件实体。o r b 完全屏蔽了软硬件平台、网络环境和编 程语言。 图2 2c o b r a 体系结构 c o r b a 是作为国际标准,有广阔的发展前景。但c o r b a 目前还存在着一 些问题:一个c o r b a 构件的实现是依赖于其实现软、硬件环境的。c o r b a 构 件一旦实现,尽管它们之间可以实现无缝的互操

温馨提示

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

评论

0/150

提交评论