已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息丁程人学硕j 。学位论文 摘要 随着软件系统规模的不断扩大,软件开发中存在着很多重复性环节,直接影响了软件 的开发效率与开发质量。c b s e c b d 是一种软件开发新方式,它是在一定构件模型的支持 下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件 系统的过程,有效地提高了软件开发的效率和质量。 本文以构件组装机制与方法为核心,开展了基于c s p 的构件组装研究,探讨了构件组 装行为及其形式语义问题。首先引入原子构件与复合构件的概念,给出了构件模型的规约 化定义;借鉴程序设计基本结构与软件体系结构的思想,对顺序、选择、循环和接口绑定 四种构件组装机制进行了分析与研究;根据功能选择的技术思路,提出面向组装研究的一 个构件组装三级模型,并进行了图形与文本规约;最后,运用c s p 中踪迹树的方法对复合 构件端口和行为的规约推导算法进行了形式化描述,并分析了构件组装行为,完成了相应 的规约推导。 基于c s p 的构件组装研究,对构件组装行为和构件自动组装的研究具有一定的理论参 考价值。 关键字:软件复用;构件组装;形式语义;c s p ;踪迹树;形式化分析 第v 页 信息t 程人学硕1 学位论文 a b s t r a c t a st h es i z ea n dc o m p l e x i t yo fs o f t w a r ei n c r e a s e ,t h e r ea r em a n yr e p e a t e dp r o c e s s e st h a t a f f e c te f f b c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t c b s e c b d ,ap r o c e s so fc r e a t i n g e f f i c i e n ta p p l i c a t i o ns y s t e mb yr e u s eo fo n eo rm o r es o f t w a r ec o m p o n e n t si nr e u s a b l es o f t w a r e c o m p o n e n tl i b r a r y , i san e ws t y l eo fs o f t w a r ed e v e l o p m e n tt h a ti m p r o v e ss o f t w a r ed e v e l o p m e n t e f f i c i e n c ya n dq u a l i t y t h i sp a p e rp r o p o s e sar e s e a r c ho nc o m p o n e n tc o m p o s i t i o na n dd i s c u s s e sb e h a v i o ra n d s p e c i f i c a t i o no fc o m p o n e n tc e n t e r e do nt h em e c h a n i s ma n dm e t h o d so fc o m p o n e n tc o m p o s i t i o n b yf o r m a lm e t h o d s f i r s t l y , i ti m p o r t st h ec o n c e p t so fa t o mc o m p o n e n ta n dc o m p o u n d c o m p o n e n ta n dp r e s e n t sas p e c i f i c a t i o nd e f i n i t i o no fc o m p o n e n tm o d e l b a s e do ns t u d i e so n b a s i cs t r u c t u r eo fs o f t w a r ep r o g r a m m i n gd e s i g na n ds o f t w a r ea r c h i t e c t u r e ,f o u rd i f f e r e n tt y p e so f c o m p o n e n tc o m p o s i t i o nm e c h a n i s m s i e s e q u e n t i a l ,s e l e c t e d ,c i r c u l a t i v ea n di n t e r f a c eb i n d i n g , a r ea n a l y z e da n ds t u d i e d t h e nat h r e e l e v e lc o m p o n e n tm o d e li ss e tf o r t ha n ds p e c i f i e db yg r a p h a n dt e x ts p e c i f i c a t i o nc o n f o r m i n gt oat e c h n i c a lw a yo ff u n c t i o ns e l e c t i o n f i n a l l y , af o r m a l d e s c r i p t i o no fas p e c i f i c a t i o nd e d u c t i o na l g o r i t h mo nc o m p o u n dc o m p o n e n ti n t e r f a c ea n d b e h a v i o ri ss e tf o r t h ,b e h a v i o r so fc o m p o n e n tc o m p o s i t i o na r ea n a l y z e da n dc o r r e s p o n d i n g d e d u c t i o n so fs p e c i f i c a t i o na r ec o m p l e t e d b a s e do nc s pf o r m a ls e m a n t i c ,t h er e s e a r c ho nc o m p o n e n tc o m p o s i t i o nh a sm e a n i n g f u l v a l u eo ft h e o r e t i c a lr e f e r e n c et or e s e a r c ho nb e h a v i o ro fc o m p o n e n tc o m p o s i t i o na n da u t o m a t i c c o m p o n e n tc o m p o s i t i o n k e y w o r d s :s o f t w a r er e u s e ,c o m p o n e n tc o m p o s i t i o n ,f o r m a ls e m a n t i c ,c s p ,t r a c et r e e ,f o r m a l a n a l y s i s 第v i 页 信息t 程大学硕i 学位论文 图目录 图2 - 1 实现软件复用的关键因素6 图2 2 接口绑定1 1 图2 - 3 组装图文编辑构件n o t e b o o k 1 2 图4 一l 构件组装三级模型3 0 第1 i i 页 信息t 程人学硕1 学位论文 表l 表2 表目录 原子构件规约模型b n f 描述 复合构件规约模型b n f 描述2 8 第1 v 页 论文原创性声明和使用授权 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了本文中特别加以标注和致谢中所罗列 的内容外,论文中不包含其它人已经发表或撰写过的研究成果;也不包 含为获得信息工程大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确 的说明并表示了谢意。 本人完全了解信息工程大学电子技术学院有关保留和使用学位论 文的规定,即:学院有权保留论文的复印件,允许查阅和借阅论文;可 以公布论文的全部或部分内容;可以采用影印、缩印或其它手段保存论 文。涉密论文按保密规定执行。本论文取得的研究成果归学院所有,学 院对该研究成果享有处置权。 本人签名:了习互一 日期2 酊z 。 撕戳:宣礴 慨沙幺纱 信息t 程人学硕i 学位论文 第一章绪论 作为一种软件开发新方式,c b s e c b d 采用类似于“零部件组装”的集成组装式软件生 产方式,它把零件、生产线和装配运行的概念运用在软件产业中,彻底打破了手工作坊式 的软件丌发模式。 1 1 研究背景及意义 随着软件系统规模的不断扩大,软件开发中存在着很多重复性的劳动,直接影响了软 件的开发效率与开发质量。基于构件的软件工程( c o m p o n e n t b a s e ds o t t w a r ee n g i n e e r i n g , c b s e ) 或基于构件的开发( 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 b s e c b d 开发活动中,将构件作为主要研究对象,以构件的制作、管理、组装以 及与之相关的一系列活动为作为研究内容。由于构件的开发大都采用成熟的技术标准进行 开发,并切有完善的技术支持,采用c b d 方式,还有助于改善软件质量,软件的灵活性 和标准化程度也能得到提高。其中,构件组装技术是c b s e c b d 的核心技术,构件必须经 过组装才能形成应用系统,实现构件的价值。 基于采用组装的方式构造应用系统,虽然大大提高了软件开发速度,但这种开发方法 也带来了许多新的问题。例如,一个应用系统中的多个构件可能是由不同设计者在不同时 间开发的,构件设计和开发是相互独立的,于是产生的效果就是,构件作为一个独立模块 运行时十分简单,功能也很明确,但将它们组装到一起时却出现了大量错误。在教研室2 1 1 0 科研项目构件库管理系统的开发中,这个问题就显现的非常突出。在构件开发和对口 间的复用中,由于不同的人对构件和组装方式的语义有着不同的理解,因此难以做到对程 序开发工作进行明确的认识。 为了解决在组装中存在的这些问题,目前对构件组装技术的研究主要从以下两方面展 开: ( 1 ) 软件体系结构与构件描述的研究 通过软件体系结构描述语言的研究,分析系统中构件间的交互关系。通过对构件的描 述,可以清晰构件在应用程序或系统中的位置和作用,对组装起到指导作用。 ( 2 ) 构件组装工具的研究 从计算机工程与技术的角度出发,在c b s e c b d 领域,设计研制基于软件复用库的应 第l 页 信息t 程大学硕l 学位论文 用系统辅助开发工具,主要针对构件组装的具体实施展开研究。 目前,国内外很多学者和研究机构对面向体系结构的构件组装进行了研究,提出了 些构件描述语言和构件组装模型,例如:d a r w i n 、u n i c o n 、r a p i d e 、w r i g h t 、c 2 描述语 言及r e b o o t 模型、a l o a f 模型、青鸟模型等,为c b s e c b d 提供了一定的理论与技术 支持。但也存在着一些问题急待解决,比如在构件组装过程中,要求用户对构件信息具有 全面的了解和掌握,用户参与度过高,构件自动组装的程度与理论上的自动化还相差过远。 如何降低用户在构件组装过程中的参与度,从构件行为及其形式语义的角度系统全面 地分析描述构件组装行为,已成为面向体系结构的构件组装研究方面亟需解决的一个重要 问题。 形式化方法的一个重要研究内容是形式规约,即具有精确语义的形式化语言书写的程 序功能描述,它是论证程序是否正确的依据。用形式化方法开发软件,被当今计算机界誉 为克服“软件危机”、提高软件可靠性和生产效率的革命性途径,是实现软件自动化的关 键。运用形式化方法对构件组装展开研究,将对构件组装方法具有一定的理论指导意义, 为构件组装中组装结果的分析提供技术支持。 1 2 本文的主要研究内容 本文围绕着构件组装技术,运用形式化方法,从形式规约对构件组装机制和构件描述 方法展开研究,主要研究内容如下: ( 1 ) 在软件体系机构与程序设计基本结构的理论基础上,对顺序、选择、循环和接口 绑定四类构件组装机制进行分析与研究。 ( 2 ) 基于功能对构件模型进行分析和研究,提出面向组装研究的一个以功能为核心的 构件抽象模型,借助对构件模型与组装机制的研究,在对构件抽象模型进行规约的基础上, 提出一个由原子构件逐层构造应用系统的多极构件组装模型,并运用c s p 等理论、方法, 对构件的接口和行为进行规约。 ( 3 1 运用形式化方法对构件组装进行分析,对构件规约推导方法进行总结运用c s p 中 踪迹树的方法对复合构件端口和行为的规约推导算法进行分析。 1 3 本文组织结构 本文共分为五章: 第一章,绪论。从全局出发,给出论文的出发点,阐明构件技术以及基于构件的软件 开发的重要性,指出本文研究的必要性。 第二章,相关技术。重点阐述c b s e c b d 的相关理论、方法和技术,从中明确研究方 第2 页 信息t 程人学硕j 学位论文 向、研究内容和研究重点。首先简单介绍构件技术的发展简史,从中可以看出基于构件的 软件丌发在促进软件产业发展方面的重要性。其次对构件的相关概念、构件描述模型、构 件形式化方法以及学术界和产业界的现状进行介绍。 第三章,简要介绍本文研究所需的谓词逻辑、集合论以及c s p 的相关理论,为构件组 装模型与行为的研究提供形式语义理论基础。 第四章,对构件进行深入分析和研究,引入原子构件与复合构件的概念,提出以功能 为核心的构件模型,运用谓词逻辑、集合论以及c s p ,对其进行形式化规约。利用c s p 形 式语义对构件组装行为进行规约,明确地指出了端口之间的连接信息,利用踪迹树方法对 复合构件的端口与行为进行了规约推导。 第五章,总结全文,对进一步的研究工作进行展望。 第3 页 信息t 程大学硕上学位论文 第二章相关技术 本文阐述了软件复用与构件技术,叙述了常见的构件模型,分析了构件组装机制,简 要介绍了构件描述语言。 2 1软件复用与构件技术 在软件开发过程中,复用技术是避免软件重复开发,提高软件总体质量的解决方案。 通过复用技术,可以提高软件开发的效率和水平。在这个过程中,基于构件技术的软件复 用是复用过程中的主要技术形式。 2 1 i 软件复用的概念 软件复用是利用以往为复用而设计的软件部件,创建或集成软件应用程序和系统的过 程【6 j 。根据这个定义,软件复用包括两个方面: ( 1 ) 生产制作为复用而设计的软件部件,这些软部件不仅仅表现为代码,它还可以是: 分析、设计、测试数据、原型、计划、文档、模板、框架等等; ( 2 ) 系统地使用这些软件部件作为构件,来构造新的应用程序或软件系统。 软件复用的核心思想就是利用以前开发的软件构件来解决应用软件的开发问题。这些 可复用的构件包括对象类、框架或者软件体系结构等等。但要真正理解软件复用的概念, 还应该将它同其它的重复使用的行为区分开来。在软件演化的过程中,重复使用的行为可 能发生在三个维上【1 】: ( 1 ) 时间维:使用以前的软件版本作为新版本的基础,加入新的功能,适应新需求, 即软件维护; ( 2 ) 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于 新平台,即软件移植; ( 3 ) 应用维:将某软件( 或其中的构件) 用于其它应用系统中,新系统具有不同功能和用 途,即真正的软件复用。 以上发生在三个维上的行为虽都重复使用了已有的软件,但是,真正的复用是为了支 持软件在应用维的演化。所以,使用为复用而开发的软件( 构件) ,这样才能更快、更好地 开发新的应用系统。 自1 9 6 8 年n a t o 软件工程会议上,m a l l o r y 在大量生产的软件构件论文中提出复 用的概念以来,近十年来,面向对象技术出现并逐步成为主流,为软件复用提供了基本的 技术支持,软件复用研究重新成为热点,被视为解决软件危机、提高软件生产效率和质量 的现实可行的途径。 软件复用可分为三个层次:知识复用;方法和标准的复用;软件成分的复用。前两个 第4 页 信息t 程大学顼十学位论文 复用层次属于知识工程研究的范畴。软件成分的复用才是软件工程研究的范畴。 软件复用可以从多个角度进行考裂1 2 】: ( 1 ) 根据复用的对象,可以分为产品复用和过程复用。其中基于构件的复用是产品复 用的主要形式,也是当j j 复用研究的焦点。产品复用指复用已有的软件构件。通过构件集 成( 组装) 得到新系统。过程复用指复用已有的软件开发过程,使用可复用的应用生成器来 自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适应于一 些特殊的应用领域。产品复用是目前现实的、主流的途径。 ( 2 ) 根据对可复用信息进行复用的方式,又可以分为黑盒复用和白盒复用1 9 】。黑盒复用 指对已有构件不需作任何修改,直接进行复用,是理想的复用方式。白盒复用指已有构件 并不能完全符合用户的需求,需要根据用户需求进行适应性修改后才使用。而在大多数应 用的组装过程中。构件适应性修改是必需的。 软件复用中有三个基本要素。第一,必须有可以复用的对象。第二,所复用的对象必 须是有用的。第三,复用者需要知道如何去使用被复用的对象。软件复用还包括两个相关 的过程:可复用软件( 构件) 的开发( d e v e l o p m e n tf o rr e u s e ) 和基本可复用软件( 构件) 的应用 系统构造( 集成和组装) ( d e v e l o p m e n t w i t h r e u s e ) 。只有明确以上几点,才能在软件开发中真 正发挥出复用的优势。 2 1 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 ) 、软 件构架( s o f t w a r ea r c h i t e c t u r e ) 、领域工程( d o m a i ne n g i n e e r i n g1 、软件再工程( s o f t w a r e r e e n g i n e e r i n g ) 、开放系统( o p e ns y s t e m ) ,软件过程( s o f t w a r ep r o c e s s ) ,c a s e 技术和各种非 技术因素,它们互相联系、互相影响,共同影响软件复用的实现f 1 1 ( 图2 - 1 ) 。 软件构件技术是软件复用技术的前提,处于核心地位。构件技术包括构件与构架的获 取、构件标准化与构件描述、构件的分类储存与检索、构件组装技术。 领域工程则是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它 覆盖了开发可复用软件构件的所有活动。 。 软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起来,将现存系统 重新构造为新的形式。 软件构架是对系统整体结构设计的刻画,包括全局组织与控制结构,构件间通讯、同 步和数据访问的协议,设计元素间的功能分配,物理设计,设计元素集成,伸缩性和性能, 设计选择等。 第5 页 信息t 程大学硕l 。学位论文 软 件 过 程 领域工矛擎 l 软什再t 程ll 构件框架技术ii 开放系统技术 鍪篓h 垂篓h 鍪羹h 兰兰 c a s e 技术 非 技 术 因 素 图2 一l 实现软件复用的关键因素 开放系统技术是在系统的开发中使用接口标准,同时使用符合接口标准的实现。当前 以解决异构环境中的互操作为目标的分布对象技术是开放系统技术中的主流技术。该技术 使得符合接口标准的构件可以方便地以“即插即用”的方式组装到系统中,实现黑盒复用。 在基于复用的软件开发中,软件构架可以作为一种大粒度的、抽象级别较高的软件构 架进行复用,而且软件构架还为构件的组装提供了基础和上下文,对于成功的复用具有非 常重要的意义。 其中包括三个主要的阶段:领域分析、领域设计和领域实现。可复用的软件构件包括: 领域模型、领域构架、领域特定的语言、代码生成器和代码构件。 c a s e 技术和各种非技术因素是在面向复用的软件开发中,对可复用构件的抽取、描 述、分类和存储;在基于复用的软件开发中,对可复用构件的检索、提取、组装及度量等。 非技术因素包括机构组织、管理方法、开发人员的知识更新、知识产权等。 2 1 3 软件构件的概念 软件构件是指应用系统中可以明确辨识的构成成分,包括源代码、需求、系统和软件 的需求规约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他开发活动有 用的信息。早期的研究人员主要关注源程序代码的复用,将软件构件理解成为某种可复用 的程序代码片断,现在一般它们称为代码件。代码件的表现形式有:子程序,程序包,模 板等i s 。 到目前为止,业界对构件并没有一个统一的定义,其中具有代表性的包括 4 1 : 1 9 9 6 年s c o o p 会议上提出的定义:软件构件是一个具有规范接口和确定的上下文依 赖的组装单元,软件构件能够被独立部署和被第三方组装【6 j 。 s z y p e r s k i 在1 9 9 8 年给出的定义:软件构件是可单独生产、获取、部署的二进制单元, 它们之间可以互相作用构成一个功能系统1 9 】。 c m u s e i 的f e l i xb a c h m a n 等人在2 0 0 0 年5 月的一份关于基于构件的软件工程的报告 中给出的定义:构件是一个不透明的功能实现,能够被第三方组装,符合一个构件模型【l 0 1 。 第6 页 信息t 程大学硕l 一学位论文 o m g ( o b j e e tm a n a g e rg r o u p ) 的定义:构件是一个物理的、可替换的系统组成部分,它 包装了实现体且提供了对一组接口的实现方法j 。 杨芙清院士【9 】认为:构件是软件的构成元素,具有一定的功能和结构,并符合一定的标 准,可以完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口对外提供服务。 一般而言,构件是软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语 境有明显依赖关系、可独立部署、可组装的软件实体。广义上讲,构件可以是数据,也可 以是被封装的对象类、软件构架、文档、测试用例等。 所有这些构件定义都从不同角度、不同层次描述了构件的一些基本特征。总之,一个 构件可以看作是一个独立的模块,它要提供能做什么和如何通过一个公共接口使用它的信 息,但要隐藏内部工作机制【6 】。接口体现了构件的功能行为和交互机制。 2 1 4 构件技术的研究内容 构件技术作为软件复用的核心技术,研究内容非常广泛。软件开发研究人员不仅仅要 对软件构件的制作、管理和组装进行研究,还要研究与这些活动相关的一些辅助的技术, 内容包括七个方面【l 】: ( 1 ) 构件获取的研究:有目的的构件生产和从己有系统挖掘提取构件。 ( 2 ) 构件模型的研究:研究构件的本质特征及构架间的关系。 ( 3 ) 构件描述语言的研究:以构件模型为基础,解决构件的精确描述、理解及组装问 题。 ( 4 ) 构件类型信息说明的研究:包括构件功能类型、目标对象、源对象、中间对象、 系统类型、活动类型和应用类型等。 ( 5 ) 构件的实现说明及配置特征的研究:包括接口信息及使用方法说明、核心算法说 明、实现语言、开发方法、运算环境、构件版本号、制作时间、关联构件和参考构件等。 ( 6 ) 构件分类与检索的研究:研究构件分类策略、组织模式及检索策略,建立构件库 系统,支持构件的有效管理。 ( 7 ) 构件复合组装的研究:在构件模型的基础上研究构件组装机制,包括源代码级的 组装和基于构件对象互操作性的运行级组装。 2 2 构件模型 软件复用技术已经在软件的开发中给软件业带来了多方面的益处,推动了软件标准 化,大大缩减了软件开发的时间和资源,为软件业开辟了一条捷径。规范的构件描述和表 示是进行良好复用的基础。 构件模型是对构件本质特征及构件间关系的抽象描述。构件模型关注构件的接1 :3 ,封 装构件的实现细节,是构件组装的依据和保证,并为构件的不同生产者和使用者提供了一 个为大家所接受的一致性描述l l ”。 第7 页 仁息丁程人学硕卜学位论文 2 2 13 c 概念模型 3 c 模型 1 4 , 16 】由l a t o u r 等人提出,是一个在学术界普遍认同的具有指导性作用的构件 模型。该模型从概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同方面束描述构件: ( 1 ) 概念,用于描述构件的功能,概念是关于“构件做什么”的抽象描述。 ( 2 ) 内容,描述构件怎样去完成概念所描述的功能,内容是概念的具体实现。 ( 3 ) 语境,描述构件和外围环境在概念和内容级的关系,迸一步可分为: 概念级语境描述构件间接口和语义方面的关系; 操作级语境刻画构件中被操作数据的特征( 如类型和操作) ; 实现级语境苗述构件间在实现方面的依赖关系。 2 2 2r e b o o t 模型 r e b o o t 模型【l7 l 是一个基于已有软件构件的刻面分类和检索模型,从若干个刻面的综 合角度来刻画一个构件,将构件的描述术语空间划分成不同的刻面,有利于构件的查询检 索。一组典型的刻面可能包括:对象、功能、算法、类型、语言和环境。在对一个构件进行 分类时,不一定所有的刻面都出现。刻面术语具有同义词关系,一组同义词表达一个概念, 术语空间由这些术语构成。具体到r e b o o t 项目中提出了4 个刻面:依赖、抽象、操作 和操作对象。 2 2 3 青鸟模型 北京大学软件工程研究所对软件构件技术进行了比较深入和有效的研究工作。青鸟模 型( j b c o m ) t 1 8 】以三个视角( 形态、层次和表示) 、九个方面来描述构件模型。分别是: ( 1 ) 概念:对构件功能的抽象描述。 操作规约:指构件对外提供的、可被请求的服务。 ( 3 ) 接1 :3 :给出了构件的对外行为描述。 ( 4 ) 类型:用于定义“什么值可用作操作参数”。 ( 5 ) 实现体:构件的具体实现体,是实际完成被请求服务的系统。 ( 6 ) 构件复合:构件通过复合组成系统。 ( 7 ) 构件性质:指明构件的形态、层次和表示。 ( 8 ) 构件注释:描述和构件库相关的其他性质。 ( 9 1 构件语境:描述构件的软、硬件使用环境和实现依赖。 青鸟构件模型更多的关心构件的理解性、封装性,通过给构件提供明确的对外接1 3 实 现服务提供者同服务请求者之间的分离,更多的关心构件及其使用者之间的交互,特别是 对构件使用者有意义的部分。 从上述模型可以看出以往对复用的研究侧重于功能复用,模型侧重于构件功能以及构 件功能接口相关的内部和外部接口交互的描述。但是要使软件开发真正地走上工程化和产 第8 页 信息t 程大学硕1 :学位论文 业化道路,那么各个领域都应该可以实现复用。不周的领域有各自的特点,必然导致对复 用的要求不仅仅是功能,针对领域特点还会有相应的性能要求。 2 2 4 构件互操作模型 一个标准的构件互操作模型应保证用不同的语言编写、存储在不同位置、运行在不同 平台、与不同空间的构件可以一起工作、共享数据。互操作标准对于把不同来源的构件转 变成为可运行的应用和系统是必要的。 目前有三个关于构件规约、互操作和分布式计算的事实上的标准。 ( 1 ) 对象管理组织( o m g ) 的公共对象请求代理体系结构因特网互操作协议 ( c o r b a i i o p ) :c o r b a 对象是用不同的语言编写的,可运行在多个分布平台。 ( 2 ) 微软的构件对象模型分布式构件对象模型( c o m d c o m ) :a c t i v e x 控件可以用不 同的语言编写,并运行在w i n d o w s 的环境里。 ( 3 ) j a v ab e a n e j b :j a v ab e a n 用j a v a 语言编写并运行于所有支持j a v a 虚拟机的环 境里。 这些模型的关键技术提供了对各种功能模块进行构件化处理以及在此基础上进行功 能复用。 2 3 构件组装机制 构件组装的本质1 是,在构件之间建立关联,根据这种关联,协调它们的行为,把它 们组织成为一个有机的整体。构件组装机制研究的就是这种关联,即构件的连接方式和组 装方式。 2 3 1 构件连接与构件组装 构件要实现组装,必须首先解决构件之间的连接问题,其次才解决构件之间的组装问 题。构件连接解决的是构件之间的通讯调用问题,而构件组装解决的是构件之间的逻辑关 系问题。 ( 1 ) 构件连接 在基于构件的软件开发中,构件通常以二进制的形式储存在构件库以备复用,构件间 必须采用一定的连接机制迸行连接。这种连接方式使构件间的连接方式就变得灵活,增强 了系统动态配置的功能,并且系统在运行过程中增加的构件或更替构件,不会影响系统的 正常运行。 ( 2 ) 构件组装 构件组装过程即是利用现有的构件加入到一个框架中,然后将所加入的构件利用事件 进行连接的过程。根据s z y p e r s k i 描述,构件组装( c o m p o s i t i o n ) 是指在不修改部分( 构件) 的 前提下把部分组装成一个整体( 复合构件) 【1 9 1 。在本文中,- 可以将构件组装理解为将所需的 第9 页 信息t 程大学硕1 1 学位论文 构件按一定机制相互连接,或者将它们与当前开发项目中的软件系统相连接,最终形成新 的目标软件。 2 3 2 服务连接和消息连接 构件间的连接方式分为服务连接和消息连接两种方式: ( 1 ) 服务连接 服务连接指的是一个构件提供某项服务,其它构件请求和应用该项服务,并且在该项 服务执行完毕之后,请求构件才能继续执行。服务连接体现了间紧密耦合的关系,服务请 求必须存在对应的服务提供,服务请求和提供具有同步关系,在服务的请求与提供交互中, 信息能够在交互的双方之间双向流动。 ( 2 ) 消息连接 消息连接指的是一个构件因其自身内部状态发生变化而向外界发出通知消息,宣告自 己的变化信息,对该消息感兴趣的构件可自行响应和处理该消息。消息连接反映实体松散 藕合的关系,一个通知消息可能不存在对应的响应行为。并且消息通知和响应具有异步关 系,消息通知者不等待消息响应者执行。在消息的通知与响应交互中,信息只能由发送者 向接受者单向传递。这种消息的通知和响应模式是构件之间交互的另一种常见模式,例如 数据库系统。 2 3 3 接口绑定与接口组装 接口是构件与外界交互的端口,构件通过接口互相连接。在构件组装中,有两种接口 连接方式: ( 1 ) 接口绑定 接口绑定【2 ”建立复合构件外部接1 3 和内部接口的对应关系。图2 2 ( 1 ) 中,复合构件c 由构件a 和b 经一定方式连接而成。a 的接口i a 绑定到c 的接1 3i c a ,表示复合构件c 的接口l e a 就是其内部原子构件a 的接口i a 。如果一个复合构件的外部接口只与一个内部 接口进行绑定,则它的型构( s i g n a t u r e ) 、交互协议同于该外部接1 3 。 如果多个内部构件的服务请求接口型构相同,则它们能够绑定到一个复合构件的外部 接1 :3 ,表示它们都需要请求该外部功能。图2 - 2 ( 2 ) 中,构件a 和b 具有两个型构相同的 请求外部功能的接口i a 与i b ,它们绑定到复合构件c 的接口i c 。该种情况,是接口组装 的特例。 第l o 页 信息t 程大学硕十学位论文 ( 1 ) 对一的接口绑定( 2 ) 多对一的接口绑定 图2 2 接口绑定 与一对一的接口绑定不同,i c 的型构与i a 和i b 的相同,但接口i c 的交互协议却不同 于i a 和i b ,因为i a 中元素在活动的时候,可能穿插i b 中元素的活动,它们都反映到i c 中, 反之亦然。但是,i a 中元素的活动和i b 中元素的活动不是任意穿插的,它受到a ,b 连接 成为一个有机整体的制约1 2 2 】。 ( 2 ) 接口组装 接1 3 组装的思想源于插头插座式体系结构2 4 , 2 5 1 。插头插座式体系结构把接1 3 中关系紧 密的功能元素组织成组,并封装成为服务,使得接口中直接包含的内容减少,降低接口连 接的规模。并且只在两个对偶的服务之间进行连接,易于检查连接的正确性。而接口组装 把多个功能紧密藕合的内部接口组装成一个外部接口,封装为功能更加复杂和抽象的服 务。从而减少了复合构件接口的数目,同样能够降低接口连接的规模,并且提高构件组装 的抽象级别,方便大粒度构件组装。 接口组装的时候,不管两个接口的型构是否相同,以及它们是否都为服务请求接口, 两个接口即能包括请求服务的元素,又能包括提供服务的元素,复合接口的型构是它们型 构的并集田】。 通常的软件构件组装,遵循计算机硬件的组装方式,即构件通过对偶的接1 :3 进行连接, 或者遵循软件体系结构的思想,过连接件进行连接。但在如图2 3 所示的图文编辑器的构 造中,t x t e d i t o r 和i m g e d i t o r 两个构件之间既无接口连接,也无连接件连接,而是按照功 能选择关系,即二者不能同时活动,两个构件组合成为一个有机整体,构成一个功能复杂 的复合构件。通过下面简单的例子,可以体现在构件组装中进行接口组装的好处。 举例:有文本编辑构件t x t e d i t o r 和图形编辑构件i m g e d i t o r ,分别通过t x t 和i m g 两 个接口,输入文本信息和图形信息,提供文本和图形编辑服务,生成一个可以插入图形的文 字编辑工具。( 图2 - 3 ) 第1 1 页 信息t 程大学硕i 。学位论文 ( 1 ) 接口绑定( 2 ) 接口组装 图2 - 3 组装图文编辑构件n o t e b o o k 图2 - 3 ( 1 ) 在构件组装的时候,两个内部接口t e 、i e 绑定到复合构件n o t e b o o k 的两个 外部接口t x t 、i m g 。运用n o t e b o o k 构件与其它构件进行组装的时候,组装人员必须区分 和掌握t x t ,i m g 两个接口,根据实际情况加以应用。图2 - 3 ( 1 ) 中,复合构件端口和内部 构件端口之间的实线连接表示端口之间的绑定关系。 图2 - 3 ( 2 ) 在构件组装的同时,进行接口组装。t e ,i e 两个接口合成一个接口t x t i m g 。 t x t i m g 接口既能接收t x t e d i t o r 信息,又能接收i m g e d i t o r 信息,并且也可以接收添加有文 本信息的图形信息,相应进行文字或图形编辑。构件组装时,构件组装人员不必对这三种 情况进行区分,故能方便构件组装,提高组装的抽象级别。 2 4 1 软件体系结构描述分类 2 4 构件描述语言 目前对于体系结构的描述可以分成两类。第一种就是把现有的形式化方法应用到体系 结构的设计中。第二种就是开发体系结构描述语言,用于替代非形式化的方框和线条图。 ( 1 ) 形式化方法。对于体系结构中特定的状态的解决方法,使应用通用的形式化方法 对体系结构和风格进行建模和分析。其最大的特点即是可以为系统的关键属性提供严格, 正确的分析基础 ( 2 ) 纯结构化的体系结构描述语言。又称( a r c h i t e c t u r ed e s c 唧t i o nl a n g u a g e ,a d l ) 。这 些语言使用符号标记把系统分解成构件和连接器,并且说明了这些元素如何连接在一起构 成一个配置。 2 4 2 软件体系结构形式化描述方法 为了精确描述软件体系结构,a d l 首先应有一个形式化理论基础,如p e t r i 网、状态 图、z 语言、c s p 等。有了形式化理论基础,才能对所描述的系统进行分析和验证。本文 中使用的是基于w r i g h t 的软件体系结构形式化描述。 根据结构配置方式把a d l 分为:隐式配置语言( i m p l i c i tc o n f i g u r a t i o nl a n g u a g e s ) ,嵌 第1 2 页 信息t 程大学硕1 学位论文 入式配置语言( i n l i n ec o n f i g u r a t i o nl a n g u a g e s ) 和显式配置语言( e x p l i c i tc o n f i g u r a t i o n l a n g u a g e s ) t 2 5 i 。其中显式配置语言把组件和连接件从结构配置中独立出来,如w r i g h t 等, 这类是专门针对软件系统结构而设计的,是真正意义上的a d l 。根据a d l 研究的范围, 将它们归为如下3 类: ( 1 ) 研究软件体系结构配置结构的描述语言; ( 2 ) 研究软件体系结构实例的描述语言; ( 3 ) 研究软件体系结构风格的描述语言。 在本文中,研究的着重点就是第三类描述语言针对软件体系结构风格的描述语 言。这一类a d l 描述系统使用了哪类体系结构风格及该体系结构风格的含义,由于体系 结构风格的重要性,这一类描述语言研究比较多,典型的有w r i g h t 等。 w r i g h t 作为一种体系结构描述语言,它是根据构件、连接器和配置等基本体系结构 的抽象而构造的。w r i g h t 为这些元素提供明晰的符号,它把构件形式化为计算,把连接 器形式化为交互模式,可以用于定义体系结构的风格。一种风格定义了配置可以共享的属 性集合,这些属性可以包括一个公共的词汇集合约束集。在w r i g h t 中,通过声明一系 列构件和连接器的类型,引入了公共的词汇集,并且使用声明类型进行实例化说明。 2 4 3w r i g h t 描述语言 w r i g h t 2 6 , 2 7 1 是r o b e r ta l l e n 等开发的体系结构描述语言。它的形式语义基础是通信 顺序进程c s p ( c o m m u n i c a t i o ns e q u e n c ep r o c e s s ) 。 w r i g h t 2 8 l 运用c s p 并对其进行定扩充,描述构件端口的交互行为和它的计算行 为,描述连接件的交互协议和角色规约。w r i g h t 是根据构件、连接器和配置等基本体系 结构的抽象而构造的。w r i g h t 提供显示、独立的连接件规约和支持任意复杂连接件的规 约。w r i g h t 定义连接件和构件的实例,在相应的端口和角色之间建立连接( a r a c h m e n t ) , 从而得到绑定机制( b i n d i n g ) 支持系统的层次构造。w r i g h t 语言是根据构件、连接器和配 置等基本体系结构的抽象而构造的。 w r i g h t 的显著特点是不仅支持单个构件的规约和分析,而且支持体系结构风格的 规约和分析。在w r i g h t 中,体系结构风格术语通过构件和连接件类型进行定义,体系 结构风格的属性,如拓扑逻辑结构方面的限定通过相关约束( c o n s t r a i n t s ) 机制进行表达。此 外,w r i g h t 提供了大量的体系结构静态分析机制,借助体系结构的c s p 形式规约,能 够进行端口、角色连接的兼容性检测、端口与构件计算行为的一致性检测、角色与粘接( g l u e ) 规约一致性的检测、系统死锁分析等,从而在体系结构开发阶段,能够及时发现其中的错 误,提升体系结构设计的质量,降低系统开发的风险。 第1 3 页 信息t 程人学硕1 。学位论文 2 5 本章小结 本章对本文研究内容所涉及的相关技术做出了全面详细的阐述。从软件复用的角度入 手,展开了对基于构件的软件复用、构件模型、构件组装机制与构件描述语言的探讨。并 在构件组装机制的研究过程中,参照功能连接的思想,总结归纳了四种构件组装机制,为 下一步的构件组装模型研究奠定了基础。 第1 4 页 信息工程大学硕上学位论文 第三章构件形式语义理论基础 形式化方法( f o r m a lm e t h o d ) 的基本含义是借助数学的方法来研究计算机科学中的有关 问题。软件开发的全过程中,从需求分析、规格说明、没计、编程、系统集成、测试、文 档生成直至维护的各个阶段,凡是采用严格的数学语言、具有精确的数学语义的方法称为 形式化方法f 4 ”。这样的形式化方法提供了一个框架,人们可以在该框架中以系统的方式刻 画、开发和验证系统口0 】。 构件技术需要研究不同构件之间的互操作性与可复用能力,采用建立在类别代数理论 基础上的抽象数据类型形式方法形式语义理论与方法,是一个基本途径。本章主要对 构件研究涉及的形式语义理论基础进行简要介绍。 3 1 谓词逻辑基础 一阶谓词逻辑,简称谓词逻辑,通过引入谓词、函词、量词,来对命题逻辑中的原子 命题进行了进一步的分解和细化【3 0 l 。 首先对谓词公式中出现的元素进行说明【3 0 】: ( 1 ) 域:任何科学理论都有它的研究对象,这些研究对象构成的一个非空集合称为论 域,以d 来表示。命题中描述个体的部分成为个体词。个体词可以为论域中某一确定的个 体,前者称为个体常元,后者称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 类风湿关节炎慢病管理
- 新生儿糖尿病的护理课件
- 高三化学一轮复习 第五章 《化工生产中的重要非金属元素》 专题讲解 气体的制备、净化和收集 课件
- 巧用绳课件教学课件
- 2-1-3 碳酸钠与碳酸氢钠 课件 高一上学期化学人教版(2019)必修第一册
- 吉林省2024七年级数学上册第1章有理数阶段综合训练范围1.6~1.8课件新版华东师大版
- 低压装表接电安全
- 报任安书公开课教案
- 家居建材客服合同范本
- 幼儿园卫生清洁工劳动合同
- 经济师考试人力资源管理高级经济实务试卷及解答参考(2025年)
- AARRR漏斗思维模型
- 体育二年级上册 安全地进行游戏(教案)
- 2025年湖南省各地高三高考全真模拟考试化学试题含解析
- You Raise Me Up二部合唱简谱
- DB34T∕ 3177-2018 公路水运工程预应力张拉有效应力检测指南
- 吉祥物的设计 课件 2024-2025学年人教版(2024)初中美术七年级上册
- 中图版2024-2025学年七年级地理上学期期中练习卷含答案
- 高考倒计时200天动员会高三年级主任发言稿
- “四史”(改革开放史)学习通超星期末考试答案章节答案2024年
- 云服务器租赁合同三篇
评论
0/150
提交评论