已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)调用框架组合软件模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 过程方法和面向对象方法是最具影响的两种软件方法。基于对象技术的组件技术 对提高软件的可复用性、可扩展性、适应性、可维护性等问题的解决提供了技术基础。 组合软件工程为组合软件的开发提供了工程规范上的支持。 调用框架模型是一种基于接口连接的组合软件模型,遵循组合软件工程规范,制 定了组件规范( 编写及描述) 、组合规范( 构造及描述) ,提供了组件描述器、组合描 述器、组合运行管理器、组合运行器、组件管理器、组合管理器等模型框架工具。 组件是组合软件的构建单位,属于应用范畴而非框架模型范畴,同时受框架模型 的规约和管理。组合是组件集成的结果,客观上表现为接口链的集合。接口链是由组 件实例接口集、接口关系集和一个虚拟接口组成的链状结构。虚拟接口是对接口链的 标识,通过虚拟接口操作整个接口链。模型框架工具为组合软件开发提供了支撑环境。 调用框架模型采用组件描述与组件实现相分离的策略,两者之间没有严格的顺序 关系。同时,组合的构建仅仅使用组件描述信息,从而使组合的构建与组件的实现之 间也没有严格的顺序关系。组件的实现相当于组合软件的物理开发过程,组合的构建 相当于组合软件的逻辑开发过程。组件与组合的并行开发使基于调用框架的组合软件 具有并行的开发能力。 作为一种组合软件参考模型,调用框架模型提供了组合软件开发所需的基本概念、 规范和框架工具,具有模型结构基本完整,概念、规范、操作相对简单及并行开发能 力等特点。通过编制组件样例,构造组合样例,对组合样例进行运行测试,结果证明 该模型的研制思想和方法是正确的并且可行的,基本达到了模型设计的目的。 关键词:软件模型,调用框架,组件,组合软件 华中科技大学硕士学位论文 a b s t r a c t t h ep r o c e d u r e - o r i e n t e da n dt h eo b j e c t - o r i e n t e da r et w oi m p o r t a n ts o r w a r em e t h o d s c o m p o n e n tt e c h n o l o g y b a s e do n o b j e c tt e c h n o l o g yp r o v i d e st e c h n o l o g i c a l b a s i sf o r r e s o l v i n g q u e s t i o n s o fi m p r o v i n gs o f t w a r e s r e u s a b i l i t y , e x t e n s i b i l i t y , a d a p t a b i l i t y a n d m a i n t a i n a b i l i t ye t c c o m p o n e n t s o f t w a r e e n g i n e e r i n gp r o v i d e sh e l p s o n e n g i n e e r i n g c r i t e r i o nf o r d e v e l o p i n gc o m p o n e n t s o f t w a r e i n v o k ef r a m e w o r km o d e li sac o m p o n e n ts o w c e a r em o d e lb a s e do ni n t e r f a c e c o n n e c t i o n ,w h i c hc o n f o r m s t o c o m p o n e n ts o r w a r ee n g i n e e r i n g c r i t e r i o n , e s t a b l i s h e s c o m p o n e n t sc o d ea n dd e s c r i p t i o nc r i t e r i o n sa n da s s e m b l y sc o n s t r u c t i o na n dd e s c r i p t i o n c r i t e r i o n s ,a n dp r o v i d e s s o m ef r a m e w o r kt o o l s ,i n c l u d i n gc o m p o n e n ta n da s s e m b l y d e s c r i p t i o nt o o l s ,a s s e m b l y s r u nt o o la n dr u nm a n a g e m e n tt o o l ,a n dc o m p o n e n ta n d a s s e m b l ym a n a g e m e n t t o o l se t c c o m p o n e n t i st h ec o n s t i t u t i o n a lu n i to fc o m p o n e n ts o l , w a r e , w h i c hb e l o n g s t o a p p l i c a t i o nc a t e g o r yr a t h e r t h a nf r a m e w o r km o d e lc a t e g o r y , b u ti ti s p r e s c r i b e d a n d m a n a g e db y f r a m e w o r k m o d e l a s s e m b l y i st h er e s u l to f a s s e m b l i n gc o m p o n e n t sa n d i nf a c t i t p r e s e n t sa ni n t e r f a c el i n k a g e ss e t i n t e r f a c el i n k a g ei s al i n ks t r u c t u r em a d eu po fa c o m p o n e n t i n s t a n c ei n t e r f a c e ss e t ,a ni n t e r f a c er e l a t i o n ss e ta n dav i r t u a li n t e r f a c e av i r t u a l i n t e r f a c ei si d e n t i f i c a t i o nt oa ni n t e r f a c el i n k a g e ,a n dt h ew h o l el i n k a g ec a nb em a n i p u l a t e d b yi t m o d e l f r a m e w o r kt o o l sp r o v i d es u p p o r te n v i r o n m e n tf o rd e v e l o p i n gc o m p o n e n t s o f t w a r e i n v o k ef r a m e w o r k m o d e l a d o p t s t h e s t r a t e g y o f d e s c r i b i n gc o m p o n e n t a n d i m p l e m e n t i n gc o m p o n e n td i v i d e d l y , a n dt h e yh a v en o tf i r ms e q u e n c e a tt h es a r n et i m e , c o n s t r u c t i n ga s s e m b l yo n l y u s e sc o m p o n e n t s d e s c r i p t i o ni n f o r m a t i o n ,s ot h a ti th a sn o tf i r m s e q u e n c ew i t hi m p l e m e n t i n gc o m p o n e n t i m p l e m e n t i n gc o m p o n e n t i se q u a lt oc o m p o n e n t s o f t w a r e sp h y s i c a ld e v e l o p m e n tp r o c e s s ,a n dc o n s t r u c t i n ga s s e m b l ye q u a l sc o m p o n e n t s o f t w a r e sl o g i c a ld e v e l o p m e n tp r o c e s s 。c o m p o n e n ta n da s s e m b l y sp a r a l l e ld e v e l o p m e n t m a k e sc o m p o n e n ts o f t w a r eb a s e do nt h ef r a m e w o r km o d e lh o l dp a r a l l e ld e v e l o p m e n t a b i l i t y a sac o m p o n e n ts o f t w a r er e f e r e n c em o d e l ,i n v o k ef r a m e w o r km o d e lp r o v i d e st h e b a s i cc o n c e p t s c r i t e r i o n sa n df r a m e w o r kt o o l st h a ta r en e e d e db yc o m p o n e n ts o f t w a r e s f i 华中科技大学硕士学位论文 d e v e l o p m e n t s ,a n d h o l d st h ec h a r a c t e r i s t i c so fb a s i c a l l yi n t e g r a t e dm o d e ls t r u c t u r e , r e l a t i v e l ys i m p l ec o n c e p t s ,c r i t e r i o n sa n do p e r a t i o n sa n dp a r a l l e ld e v e l o p m e n ta b i l i t ye t c b y m a k i n gc o m p o n e n ts a m p l e s ,c o n s t r u c t i n ga s s e m b l ys a m p l e s ,t e s t i n ga n dr u n n i n ga s s e m b l y s a m p l e s ,t h er e s u l t sp r o v e st h em o d e l ss t u d yi d e aa n d m e t h o d sa r er i g h ta n df e a s i b l e ,a n d t h em o d e l b a s i c a l l yr e a c h e s i t sd e s i g np u r p o s e s k e y w o r d s :s o f t w a r em o d e l ,i n v o k ef r a m e w o r k ,c o m p o n e n t ,c o m p o n e n ts o f t w a r e 一 【i 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个入和集体, 均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:菇氢书刻 日期:卯牛年夸月,日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密囱。 ( 请在以上方框内打“4 ”) 学位论文作者签名:孝恕粥岁j 日期:孑一印年牛月印目 指导教师虢仫彩珐 指导教师签名:厂d 吖f 。、 日期:勿¥年v 月多夕日 华中科技大学硕士学位论文 1 绪论 自从软件行业出现以来,软件的可复用性、可扩展性、适应性、可维护性等问题 就被提了出来,但是由于软件的本质复杂性和软件工程方法的限制,并没有得到很好 的解决。面向对象技术和组件技术的出现为这些问题的解决提供了技术务件。 1 1 课题背景 一般观点认为,为现实生活中的应用问题构建高质量的软件是困难的。实际上, 软件开发任务可以说是人类所从事的最复杂的构建任务之一,这主要是由于软件具有 数量巨大的构成要素以及要素之间具有复杂的交互方法,同时其还具有灵活性。无论 采用何种模型和技术这一观点都是成立的。复杂性是显而易见的,软件包含大量的组 件并且存在着很多交互行为。基于这样的基本点,软件工程的主要作用就是提供新的 模型和先进的技术使这一复杂性更容易得到处理f l i 。软件工程是计算机学科中一个年 轻且充满活力的研究领域吐自2 0 世纪6 0 年代束以来,人们为了克服“软件危机” 在这一领域做了大量的工作,逐渐形成比较系统的软件开发理论、技术和方法 3 4 1 。它 们在软件开发实践中发挥了重要作用。到目前为止,人们已经提出了大量的软件工程 方法,在不同程度上降低了软件开发的复杂性,使软件开发人员更容易地建造新的系 统。 组合软件代表了新一代软件技术发展的未来【5 】。追根溯源,由软件模块组件组合 软件的思想早在7 0 年代就已提出了l “。但由于传统的软件系统结构的局限性,以过程 为中心设计的功能模块,其扩充和复用能力差,对模块进行应用重组的困难很大。从 8 0 年代开始的面向对象技术的研究,使组合软件重新萌发了新的活力【7 】。面向对象的 软件,以数据为中心设计,对象类除具有模块的封装性和类屑特性外,还具有继承特 性,极大地提高了类的可扩充和可复用能力。面向对象研究的一大贡献在于改变了传 统软件系统的结构,而正是这种结构,可使软件用组合构造的方法生成,这与组合软 件的要求是相适应刚m 。 从理论上来讲,组合软件工程具有优于传统软件工程的地方,基于对象的组件也 有更好的可扩充性和可复用性,组合软件具有更好的适应性和可维护性,但是为什么 在软件开发中仍然是传统软件方法占主导地位,实际中很少有真正的组合软件在运行 9 1 7 这些与组合软件工程的不完善,缺乏辅助开发工具,通用组件和领域组件开发具 有难度,组件集成比较困难以及传统技术的不断完善和广泛应用等原因有关。最终形 l 华中科技大学硕士学位论文 成了组合理论与传统理论的折中方案,即为了提高软件的复用能力,开发些通用组 件,但是这些组件却是作为种服务请求或实例嵌入到代码中,通过指针或接口对其 方法或属性进行访问,如c o m 、c o r b a 、e j b 及各种控件、插件等。在传统软件集 成中也糅合了组合理论,软件系统把系统的某些部分分离出来放入动态链接库( d l l 或s o ) 中,以便于软件的更新和升级,但是这些动态链接库的使用却是被硬编码到代 码中的,虽然这使软件在一定程度上具有可扩展性和可复用性,却没有达到真正的组 合效果。 在华中电力通信调度局和大亚湾核电站应急指挥系统项目中,包含网络文件传输 功能。网络文件传输涉及文件读写、压缩、加密、网络传输等功能,但是并不是所有 的传输软件都需要所有的这些功能。同时为了提高数据的处理速度,需要对数据进行 流水线处理。为了动态地生成合适的软件,可以把每个功能封装成为个适宜组合的 组件,通过组合不同的组件实现适应需求的软件,而不需编写新的代码,同时组件可 以被其他的系统完全复用。根据该思想和遵循组合软件理论,建立了一个组合软件参, 考模型调用框架模型,该模型除了可以用组件动态地组合形成应用外,还允许组 件并发运行。 1 2 国内外研究现状 软件工程是采用工程的概念、原理、技术和方法来开发和维护软件,把经过考验 证明是正确的管理技术与能得到的最好的技术方法结合起来进行软件开发【3 叫。软件工 程的发展对软件开发具有重要的影响,其指导和规范软件开发行为。软件开发参考模 型是软件工程的实铆化,是对软件工程的具体支撑,如在第2 章讲到的s c o p 、i p 、 a g e n t 等都是组合软件开发的参考模型。下面讲述目前软件工程的发展概况。 软件工程包括3 个要素:方法、工具和过程。软件工程方法为软件开发提出了“如 何做”的技术;软件工具为软件工程方法提供了自动的或半自动的软件支撵环境:过 程则是将方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。 1 2 1 软件工程方法 软件工程方法是软件工程学科的核心内容。从6 0 年代末以来,出现了许多软件工 程方法,其中最具影响的是结构化方法、面向对象方法t 1 0 1 ”。近来出现的软件工程方 法,基本上都是基于面向对象方法的扩展。 1 结构化方法 结构化方法有狭义和广义的定义,其狭义的定义是指在程序设计中不使用g o t o 2 华中科技大学硕士学位论文 语句,仅使用w h i l e 和i f 等控制语句,并且在设计时采用自顶向下的方法。广义上讲, 结构化方法是指任何包括结构设计的软件开发技术。结构化设计技术可以使程序被分 解为不同的模块和过程,在编写各个模块时不需要了解其它模块的内部细节,从而可 采用自顶向下和逐步求精的方法。逐步求精策略是一个迭代的过程,在每一步迭代的 步骤中,待解的大问题被分解为一些子问题而分别处理,最后所有子问胚的解加在一 起,通过简单的控制结构而组成原始问题的解。因此,结构化方法处理软件复杂性的 办法主要是将要解决的问题一步步地分解,直到每个小问题足够简单,而且易于处理。 采用结构化方法可以说是在软件工程发展中具有里程碑的意义,因为这是从无序的软 件开发方法中走出的第一步。不过,去除g o t o 语句后,在程序设计语言中,还是存 在些其它固有的易出错的结构元素和方法,如指针、动态内存分配、并行处理、递 归、中断等。更迸一步讲,逐步求精的方法不能提供解决一个具体问题的系统的策略 或方法。有时,对于某些问题不存在一个自顶向下的方法。结构化程序设计方法对小 规模的程序是一种有效的方法,但将它推广至大规模的系统开发中往往会失效,开发 人员无法使用这一个方法来很方便地重用以前程序的可重用成份。这一方法也不支持 信息隐蔽机制。 2 面向对象方法 对象技术的关键概念是对象、消息、类。 对象:一个对象是有关现实世界的对象或概念的可执行的软件表示。 消息:在对象之间提供一种通用的通讯方法。 类:定义类似对象的模板,提供现实世界中对象特性的抽象。 对象是软件模块化的一种新的单位,它代替了基于功能分解方法中的所谓“模块” 等传统的技术。对象将数据和过程封装在一起,这同传统的方法中将数据和过程分别 对待和处理形成了鲜明的对比。建模成为面向对象软件设计的中心活动,对象代表现 实世界中真实对象的结构和交互作用,对这些对象的行为的表示的收集构成商业软件 系统。对象之间的交互行为通过发送所谓“消息”来实现,一个消息实际上是使一个 特定的对象执行一系列过程的行为的请求。在面向对象术语中,有时称为“方法”。 消息类似于传统程序设计语言中的函数调用,二者的主要区别是函数调用中所执行的 函数是一个单一、公共的实现,而对消息的响应可以不同回答,这要根据具体对象的 方法是如何实现的。类是对一系列类似对象集的一个通用定义。类的主要作用是确定 对于一个对象所应施加的变量和方法。类表现了对于事物的抽象的逻辑过程,抽象是 3 华中科技大学硕士学位论文 人们理解事物和软件设计的关键过程。 对象技术中关键机制包括:封装、多态和继承。 封装:一种将相关数据和过程封装在一起的机制。 多态:提供一种对同一消息可以有不同响应的能力。 继承:一种在通用类和特殊类之间散布信息的机制。 以上三种机制是上面提到的三个核心概念的自然映射,即对象支持封装、消息支 持多态、类支持继承。封装机制支持和扩展了已被证明非常有价值的信息隐敝原则。 信息隐敝之所以非常有意义,是因为防止软件局部的改变而影响全局。概念上讲,不 仅应封装数据和过程,而且应将数据和过程的具体细节完全隐藏起来,这样可以让开 发人员以后改变数据或过程而不影响与其它对象的交互作用。从实践上讲,可以通过 将变量声明为私有的,使它对于对象外部是不可见的。多态机制相对于传统的执行逻 辑有很多好处:它可以使程序更短,减少了最终程序的大小和复杂性;执行起来更快, 因为多态机制在编译时已将相应的过程代码定位而不是像传统的方法在运行时,通过 实时的逻辑判断去选择所希望的过程代码 多态机制使加入或去除某些过程更加灵活, 而不必去重写判断逻辑。继承机制允许子类直接使用其父类的方法,或重载其中某些 方法。以上三种机制是对象技术的基本特性,换言之,一个语言或开发环境当且仅当 它实现了以上三种机制时可以称其为面向对象的。 对象技术主要有以下三个优势。第一,提高了软件的生产率,主要是通过重用己 定义的类的逻辑来体现。其次,改善了质量,这是由于面向对象程序的结构相对简单, 并且提供了更多的单元测试的机会。第三,良好的适应性,这是由于改交个别的对象 的结构和行为不会影响到系统中其它的对象。总之,面向对象的方法,通过使用继承 和重载等机制可以非常自然地体现人类的两个基本的认知过程:一般化和特殊化,这 对处理软件复杂性非常有益。 1 2 2 软件工程方法之比较 下面从对问题领域和需求反映的全面和直接程度、方法描述的一致性和完整性、 对系统变化的适应和支持能力、对软件复用的支持能力等方面,对最具影响的两种软 件工程方法结构化方法和面向对象方法进行比较分析,以揭示这两种方法的内在 规律以及它们之间的差异。 1 对问题领域和需求反映的全面和直接程度 4 华中科技大学硕士学位论文 任何开发方法处理的对象都是问题域和系统需求,方法所形成的系统模型也是对 问题域和系统需求的反映,但在反映问题域和系统需求的直接和全面性方面,方法之 间的差异很大。所以,对问题域和系统需求反映的直接和全面程度就成为判断方法优 劣的一个重要准则。一般要求在描述系统模型时,能够尽量地使用人们日常习惯的, 并与问题域相一致的概念、术语和系统成分,所使用的方法应该能够全面准确地反映 问题领域。 ( 1 ) 结构化方法 结构化方法采用数据流图和数据字典作为新系统逻辑模型的描述工具,并以数据 和信息的处理转换作为方法的主线。数据处理观点认为:软件是数据和信息的加工处 理系统,软件的作用就是把数据源通过多环节的加工处理,变换成为用户所需的信息。 软件的功能是通过对数据的加工处理过程表现出来的。基于这种观点,结构化方法把 对数据和信息处理转换过程作为方法的主线,并且始终围绕着如何把数据源加工转换 成为最终信息这个中心来构架整个方法体系。结构化分析中运用的数据流图就是用来 反映数据的加工变换过程;结构化设计阶段的系统结构图,也是构造出多个数据处理 的系统模块,每一个模块有输入的数据、对数据处理过程和处理的输出结果,系统通 过多个模块的有序调用运行,把数据源加工处理成为最终所需要的输出信息。数据处 理观点是在面向对象方法出现之前,人们认识软件的基本观点,结构化方法正是从数 据处理观点出发构建方法体系,是本方法能够被普遍接受的主要原因。但是,数据处 理观点割裂了功能和数据的整体性,是对客观事物的分化和间接的反映。功能和数据 是客观事物共同特征,功能反映事物的职能和作用,是事物外在的动态特征;而数据 是对事物的固有特性、状态的描述,反映事物的静态特征。功能和数据应该被统纳在 事物体之中。结构化方法则把事物的功能和数据作为两类虽有联系,但更多是相互独 立两个方面来认识和对待,而且把重心放在了事物的功能特征方面,采用结构化方法 进行需求分析时,用户和系统开发人员所考虑的重要问题是软件应该具有哪些功能和 性能。结构化方法运用的数掘流分析,也是从数据处理和变换角度反映系统的功能。 因此,结构化分析实际上是基础于功能分析法。这种把事物的整体性强硬地分割开来 的数据处理观,既削弱了对事物的整体认识和把握,另外也增加了分析和设计工作的 复杂性。 ( 2 ) 面向对象方法 面向对象方法中的对象就是客观世界中的各种事物在系统中的反映。对象与客观 事物对应,反映事物的属性和与它事物之间的联系,服务或方法反映事物的动态特征。 5 华中科技大学硕士学位论文 所以对象是对客观事物的直接、全面的放映。而且在面向对象方法中,采用封装机制 保证了对象的相对独立性。 2 方法描述的一致性和完整性 开发方法应该形成规范的、一致的、完整的描述体系,并具有连贯性和衔接性, 而不应该在各阶段中彼此无关、非衔接和不一致的。 ( 1 ) 结构化方法 结构化方法虽然形成了相对完整的描述体系,但该方法的描述体系缺乏连贯性和 一致性。结构化方法在分析阶段使用数据流图和数据字典,在设计阶段使用系统结构 图、h i p o 、判定表、判定树等。数据流图和软件结构图是两种完全不同的描述体系 一个反映数据流和数据的加工变换过程,另一个则反映软件模块的结构和模块相互之 间的数据传送关系和模块的内部流程,所以不具有连贯性和一致性。用结构化方法在 分析阶段得出用数据流图描述的逻辑模型,而到了设计阶段,又必须把分析的数据流 图转换为系统的软件结构图和i p o 图以及结构化英语或判定树。这样一方面给开发人 员描述文档和模型带来了困难,同时也使各阶段形成的文档的一致性难以得到保证。 ( 2 ) 面向对象方法 面向对象方法具有更好的描述一致性和完整性。面向对象方法中的系统模型是逐 步建立的,在分析阶段建立问题域对象模型,到了设计阶段,在问题域对象模型的基 础上,扩充系统的人机界面对象模型、数据处理对象模型和系统接口对象模型。这四 个对象模型采用统一的描述规则,从四个不同方面反映系统的逻辑结构,由它们形成 完整的系统对象模型。 3 对系统变化的适应和支持能力 需求不断变化是软件的本质特征。软件所服务的业务过程是不断变化的,软件需 求也应该随之变化。在软件开发过程中,因为用户对软件的理解,技术因素变化以及 软件投入经费的变化等原因都可能引起软件需求的变化。不同的软件开发方法所描述 的系统需求模型对软件变化表现和反应能力是不相同的。是否支持需求变化就成为判 断开发方法优劣的一个很重要的标准。 ( 1 ) 结构化方法 结构化方法基础于功能分解法,对需求变化的适应性不好。每一个数据加工都体 现着一个系统所具有的功能。有人对功能、接口、数据和对象四个要素在需求变化的 6 华中科技大学硕士学位论文 稳定性作过研究,结论是功能是在需求变化过程中最容易发生变化要素,稳定性最差。 结构化方法把功能作为分析的切入点和模型的关键要素,当然难以保证系统的稳定性。 ( 2 ) 面向对象方法 面向对象方法对需求变化的适应能力最强。首先,面向对象方法用对象作为系统 模型的构成要素,而对象是变化过程最稳定的要素。另外,面向对象方法有一整套封 装、继承、多态性等机制,能够保证对需求变化的快速反应。例如,封装机制能够保 证把对象的内部细节隐含在对象内部,对象内容的变化,只要接口不改变,这种改变 将不会影响到其他对象。封装机制减少了变化所引起的连带变化,提高了系统的稳定 性。 4 对复用的支持能力 在软件业高度膨胀和发展的今天,开发的系统能够被重复利用对提高软件开发效 率,降低开发成本具有十分重要的意义。复用有不同的层次,子程序的复用、程序的 复用、设计方案的复用、系统模型的复用、设计思想的复用等。复用与软件开发方法 有直接关系,不同的方法对复用支持的程度和能力是不一样的。 ( 1 ) 结构化方法 结构化方法对软件重用的支持能力不强。应该讲模块化思想本身是为了提高软件 的重用性,在软件结构设计中把一些可以复用的功能划归到同一模块中,这些模块就 可以被不同的模块所调用,但是这种复用方式的局限性很大。一方面在一个系统中可 被复用的模块数总是有限的,另一方面由于软硬件环境的限制,在不同系统之间模块 一般不能被重复使用。结构化方法除了在相同支撑软件环境下,可以做到模块复用外, 不同系统之问模块一般不能被重复使用。 ( 2 ) 面向对象方法 对软件重用的支持是面向对象方法的主要优点。面向对象方法在软件构件一级提 供重用性支持,并提供了继承、封装、多态性等一整套完备的重用性支持机制,通过 这些机制可以十分方便地实现软件的重用。 通过比较可以看出,面向对象方法在多个方面都优于结构化方法,这是近十几年 来面向对象方法能够流行的主要原因。 1 2 3 组合软件工程 组合软件代表了新代软件技术发展的未柬。m i c r o s o f t 的o l e 成n 文档复合的一 华中科技大学硕士学位论文 种标准,有近2 0 0 家软件开发商支持: b m ) g l a p p l e 联手刀= 发的标准o p e r t d o c ,为各种 组台软件提供交叉平台。8 0 年代发展c a s e 环境,并未从根本上解决软件工程问题,软 件开发缺乏技术规范,软件模块复用率低下。组合软件技术为解决这些难点提供了可 能,可以大幅度提高软件生产的效率。追根溯源,由软件模块组件组合软件的思想早 在上世纪7 0 年代就已提出了。函数就是一种组件,函数通过参数适应不同应用需求的 变化。a d a 语言的模块p a c k a g e 也是一种组件,内部实现细节掩藏,模块通过界面规定 进行连接和组装。p a c k a g e 还提供类属机制( g e n e r i c ) ,使模块可以通过类属参数,适 应不同应用需求的变化。但由于传统的软件系统结构的局限性,以过程为中心设计的 功能模块,其扩充和复用能力差,对模块进行应用重组的困难很大。 从8 0 年代开始的面向对象技术的研究,使组合软件重新萌发了新的活力。面向对 象的软件,以数据为中心设计,对象类( c l a s s ) 除具有模块的封装性和类属特性外, 还具有继承特性,极大地提高了类的可扩充和可复用能力。与传统的功能模块比较, 对象类的优点是:易于理解,具有完整的语义特征;易于扩充和修改,具有较高的通 用性和可适应性:易于构造组装,具有规范的外部接口。面向对象研究的一大贡献在 于改变了传统软件系统的结构,而正是这种结构,可使软件用组合构造的方法生成, 这与组合软件的要求是相适应的。 传统的软件工程瀑布模型将软件生命周期划分为需求分析、软件设计、软件编码、 软件测试和软件运行维护等六个阶段,这些阶段间具有明显的顺序性和依赖性,开发 过程是严格的下导式,而确认过程则是严格的追溯式。后一阶段出现问题,要从前一 阶段的重新确认入手解决,有的从需求分析潜伏下来的问题要到软件产品形成后才暴 露,而解决问题的过程则是瀑布式的不断反复,不仅造成大量人力、物力、时间上的 消耗,更有可能给应用系统带来意想不到的严重后果。用传统的瀑布型方法开发的应 用系统可维护性和可复用性很差,系统很难扩充或变更以适应用户需求的变化,而这 种变化在当今市场竞争环境下是经常发生的。 组合软件工程是一种新的软件工程开发模型和方法【1 2 。3 1 ,它改变了传统的软件系 统的过程结构和软件工程开发方法,基于对象技术【1 4 ”】,使得应用软件系统可以由对 象模块经组合构造装配而成1 6 】,具有良好的可维护性和软件资源的可复用性【1 7 - 1 8 , 组 合软件工程的三要素是:企业建摸、应用装配和模块组件,l 。 企业建模是组合软件工程的重要一步,进行面向对象分析,建立企业应用系统的 对象模型和过程控制,然后据此选择已有的或重新定义的对象模块组件,进行应用集 成的组合装配。应用系统集成框架是为组合软件工程提供开发规范、信息集成和共享 华中科技大学硕士学位论文 资源的工具环境系统。它不仅是工具的集成,而且是对象模块组件和部件的集成。由 于企业建模与对象组件或部件装配之间并没有固定约束的顺序关系,它们可以是并发 进行工作的区别于传统软件工程生命周期开发过程的严格顺序性,组合软件工程又 可叫做并行软件工程。 组合软件工程可以克服传统软件工程方法的缺点,是当今软件工程技术发展的主 流。其突出优点是: 1 实现了应用软件系统的柔性制造。应用软件系统是根据企业对象建模的结果, 由预制的或重新定义的对象模块组合装配而成的,旦企业环境和用户需求发生变化 时,部分对象模块可以进行扩充和再定义,整个系统可以重新组合装配【2 0 1 。 2 实现了应用软件系统的规模开发,大大提高软件开发效率。各种对象模块按照 层次结构形成领域框架,子领域框架等【2 ”。一个应用领域的应用系统开发由该领域的 集成框架支持,与传统软件工程方法相比,可将该领域每个企业的应用系统开发减少 一半甚至2 3 的工作量。 3 提高了应用软件系统的开发质量。因为用于组装应甩软件系统的各个对象模块 和集成框架都是符合规范标准且经过严格测试过的,具有一整套支持组合软件工程的 工具和质量保证体系,这就保证了开发出的应用软件系统的质量。 1 3 课题主要研究工作 概括来讲,调用框架模型为用户建立了一个开发组合软件的框架。用户开发新的 组件或者使用已经存在的组件构造组合,并通过组合运行管理器访问组合,组合内部 关系由组合运行管理器对用户屏蔽,从而通过组合的调整来实现不同的应用。 具体研究内容如下: 1 分析和研究已有的组件工业化标准、组件描述方法、组件集成技术、组合软件 参考模型等; 2 整体描述调用框架模型的体系结构,制定组件编写和描述规范,制定组合构造 和描述规范,描述模型框架的组合运行管理器的工作原理; 3 根据对调用框架模型的描述,提供模型框架工具( 为组合软件开发提供环境支 撑) 的实现及组件基( 为不同组件的集成提供共同的基础) 的实现; 4 利用模型框架工具对开发的测试组件进行组合测试,并运行组合,验证模型设 计的正确性和可行性。 9 华中科技大学硕士学位论文 = ;= = = = = = = ;= = = t = = = = = = = = = ! = = = = = ;= = = = ! 一一! 一= 2 组件及组合软件 概念约定:组件组装、集成、装配、组合均指相同的概念,都是把若干组件通过 一定的关系联系起来。组合既是名词又是动词,作为名词时的组合( a s s e m b l y ) 是指 组件通过集成后形成的结果,作为动词时的组合( a s s e m b l e ) 是指组件的集成操作。 组件和构件在该文中具有相同的概念。 2 1 组件技术 随着计算系统的发展,构造软件的新范型被开发出来,原来的一些有关算法计算 的环节被一些交互对象所代替。先介绍一下分布式对象【2 2 - 2 a ,然后说明组件技术【2 4 ) 。 1 分布式对象 经典的对象是一些自我包含的实体,它封装相关的数据以及在此数据集上的操作 行为。一个对象所支持的操作( 通常称为“方法”) 是依赖对象的内部状态的。对象 技术提供了一种清晰的方法将一组相关的数据和操作同系统中其它的部分区别开来, 为系统构造和维护带来方便。虽然常规的对象存在于单独的程序内,一般不作为独立 的实体而存在。而分布式对象可以认为是扩展了的对象,它可以作为一种独立存在的 实体,并可以被其它的对象远程存取。一个健壮的分布式系统允许由不同的语言所编 写和不同的编译器编译的对象之间通讯,这是通过标准的消息传递协议来实现的,这 类对象框架实现了分布式对象之间操作的高层透明性。 。 分布式对象由于可以通过模块化的软件来标识可互换的部件,这样为构造软件的 方法带来了重大的变革。一些先进的体系结构允许最终用户加入新的组件,并可对应 用程序做客户化工作。被设计为可以自我管理的分布式对象是一类应用程序员很容易 使用的组件。自我管理的分布式对象负责管理和自己相关的资源、在网络中的行为、 以及和其它对象之间的交互。这些能力是通过分布式对象框架赋予相关的对象的,其 中主要的机制是通过中间件来完成对象之间的通讯,并为一个对象提供相关的资源池 ( 在对象中止存在时,会自动释放这些资源) 。例如a c t i v e x 就是一种这样自我管理的 对象,d c o m 中间件来完成远程对象之间的交互以及处理资源分配。 2 组件 软件组件是可执行的软件的一个物理封装,它有定义良好的接口。存在两种工程 方面的动力来实施基于组件的系统,第一,重用性,即利用现有的组件来实现功能更 华中科技大学硕士学位论文 强大的系统。第二,可扩展性,基于组件设计的系统,更容易维护,维护相对局部化, 而很少波及系统中其它的组件。组件是可以自我管理的、独立的、系统的有效部件, 并且可以工作在多种环境下。这种部件甚至可以不是一个对象,a c t i v e x 控件( 微软公 司的定义:一个独立组件以一种标准的方法完成常用的任务) 就是一个这样的例子。 组件技术提供一种快速的应用程序开发能力。并为用户提供高级的客户化技术方法。 这样导致应用程序相对容易调整,并且学习起来也较容易。一般来说,组件是加入高 级自我管理能力的分布式对象,这些分布式对象依赖于健壮的分布式模型以保证对象 的位嚣和代码实现的透明性。组件可以包含多个分布式或本地的对象,它们经常被用 来完成一些集中性或安全方面的操作,例如,一个w e b 页上提供的一个功能可以经由 j a v a s c r i p t 转移至一个组件,用以来保证应用程序的逻辑完整或者是因为将操作移至功 能更强大的服务器上来完成。设计组件要考虑的一些问题:一个组件的接口界面是开 发人员首要考虑的。由于组件是被设计成用于不同的系统之中,并且无论在何种上下 文背景下均可提供可靠的服务,设计者必须提供清晰台q 标识组件的功能并提供调用这 些功能的方法。另一个要考虑的问题是组件的粒度,由于组件之间的通讯是费时的, 并且会占用系统的资源,所以典型的方法将组件尽量设计的大一些,但较大的组件也 会使接口变得相对复杂,修改代码时也会带来更多的影响。在设计时,可以应用内聚 性和耦合性原理,来达到折中的效果。总之,从处理软件复杂性的角度看,组件技术 将软件开发过程中一些明显共性的特性抽象出来,成为构造软件系统的基本要素,它 可由第三方厂商来开发和生产,可以大大减少开发时间并提高可靠性。 2 2 组件的工业化标准 目前大量提供的公共组件一般都支持异地访问机制,具有分布能力。支持客户访 问异地分布对象的核一t l , 机帝4 称为对象请求代理o r b ( o b j e c tr e q u e s t b r o k e r ) 。o r b 处 于分布对象技术的核心位置。目前分布式对象技术大致可分为3 种不同的工业标准。 第1 种是m i c r o s o f t 提出的c o m ( c o m p o n e n to b j e c tm o d e l ) d c o m ( d i s t r i b u t e d c o m ) f 2 5 。 ,第2 种是o m g 提出的c o r b a ( c o m m o n o b j e c t r e q u e s t b r o k e r a r c h i t e c t u r e ) ( 2 8 - 3 0 1 ,第3 种则是由s u n 公司推出的e j b ( e n t e r p r i s e j a v a b e a n ) 1 3 1 - 3 3 。在这3 种标准 中,c o m d c o m 和c o r b a 更为流行,越来越多的分布式技术都是根据这2 种分布 式核心技术加以演进而产生的,e j b 也不例外。 2 2 1c o m d c o m c o m 是一种平台无关的、分布式的、基于对象的标准,用来构造可以交互的二进 华中科技大学硕士学位论文 = = = = = = = = = = = = = = = = = = = = = = = = ;= = = 一= : 制软件组件。它没有规定编写组件采用的语言、结构、实现细节等,而是规定了对象 模型和编写的要求,这些要求允许c o m 对象和其它c o m 对象进行交互,这些对象可 以在同一个进程中,也可以在不同的进程中,甚至在不同机器上。c o m 对象可以用不 同的语言编写,结构可以不同。c o m 对语言的唯一要求是可以创建指针结构,显式或 隐式地通过指针调用函数。c o m 定义了c o m 对象的特性,通常情况下,一个软件对 象由数据和操作函数组成。c o m 对象的数据只能通过一个或多个相关的函数集( 接口) 来访问,并且只能通过接口指针来访问接口方法。此外,c o m 定义了几个基本接口, 提供所有基于c o m 的技术通用的函数。它也提供了几个所有组件需要的a p i 函数。 定义了在分布式环境下对象如何协同,并增加了安全特性帮助提供系统和组件的完整 性。d c o m 是对本地c o m 的扩展。本地c o m 规定接口的使用者需驻留在该接口的 提供程序所在的同一台计算机上并在其上执行。d c o m 允许接口的使用者不再需要驻 留在执行接口提供程序所在的同一台计算机上。d c o m 建立在对分布式计算环境d c e 的远程调用r p c 的扩展上,如图2l 所示。为了在异种网络间实现数据传输,它采用 了d c er p c 的n d r ( n e t w o r kd a t ar e p r e s e n t a t i o n ) 格式来进行数据分组和传输,还 采用了d c er p c 的安全机制来进行数据的安全认证和一致性检查。 c o c r e 图2 1d c o m 体系结构 d c o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家开放大学电大《知识产权法》机考终结性模拟题题库及答案
- 2026年社区社会组织孵化服务真题(附答案)
- 智能摄影测量学导论
- 2026 年秋季开学 强健体魄心智 赋能青春成长之路
- 内蒙古兴安盟2026届高三下学期第二次模拟考试物理试卷(含答案)
- 2026年秋季高三提前开学第一课 高考冲刺家长会
- 2025-2026学年江苏省扬州市高二(下)期末数学试卷(含答案)
- 2026年秋季高中历史开学第一课 学科思想方法教学设计
- 2026中国医疗废物高温高压灭菌设备研发领域市场需求供给研究及投资评估规划报告
- 2026中国食品加工及包装行业市场深度调研与竞争格局及发展前景研究报告
- 2025-2030美国社区银行倒闭潮成因分析与区域性金融风险预警报告
- 2026年江苏省高考地理试卷(含答案及解析)
- 关于成立医学装备管理委员会的通知
- 金属冶炼负责人安管人员培训
- SHT+3413-2019+石油化工石油气管道阻火器选用检验及验收标准
- 联想集团的人力资源管理实践
- 韩玉军-国际商务-课件
- 有机电子学课件
- 新概念二-第29课课件
- 病机十九条新解
- 2023年评审准则版机动车检验机构质量手册
评论
0/150
提交评论