《组件技术概述精品文稿.ppt》由会员分享,可在线阅读,更多相关《组件技术概述精品文稿.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、组件技术概述第1页,本讲稿共19页本部分授课目的本部分授课目的n n组件技术的基本原理组件技术的基本原理n n几种主要的组件技术几种主要的组件技术 COM/DCOM,CORBA,EJB,SOA,n n其它相关技术其它相关技术n n教材和授课方式教材和授课方式n n参考资料参考资料第2页,本讲稿共19页软件复用(软件复用(软件复用(软件复用(Software Reuse)组件技术产生的宏观背景组件技术产生的宏观背景组件技术产生的宏观背景组件技术产生的宏观背景n n起源:起源:19681968年年NATONATO(北大西洋公约组织)软件工(北大西洋公约组织)软件工程会议上程会议上McIlroyMc
2、Ilroy的论文的论文“大量生产的软件构件大量生产的软件构件”n n社会分工及软件产业的分工社会分工及软件产业的分工表现方面:表现方面:1.1.时间维:使用以前的软件版本作为新版本的基础,加入时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。新功能,适应新需求,即软件维护。2.2.平台维:以某平台上的软件为基础,修改其和运行平平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于新平台,即软件移植。台相关的部分,使其运行于新平台,即软件移植。3.3.应用维:将某软件应用维:将某软件(或其中构件或其中构件)用于其它应用系统中,用于其它应用系统中,新系
3、统具有不同功能和用途,即真正的软件复用。新系统具有不同功能和用途,即真正的软件复用。(真正复用)(真正复用)第3页,本讲稿共19页软件复用的自然产生n n应用系统中通常包含应用系统中通常包含三类成分三类成分:通用基本构件:通用基本构件:是特定于计是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素、领域算机系统的构成成分,如基本的数据结构、用户界面元素、领域无关的一般性功能等,它们可以存在于各种应用系统中;无关的一般性功能等,它们可以存在于各种应用系统中;领域领域共性构件:共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的是应用系统所属领域的共性构成成分,它们存在于该领域的
4、各个应用系统中;各个应用系统中;应用专用构件:应用专用构件:是每个应用系统的特有构成是每个应用系统的特有构成成分。成分。n n应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。n n软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切统的开发不再采用一切“从零开始从零开始”的模式,而是以已有的工作为基础,的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、充分利用过去应用系统开发中积累的知识和经验
5、,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。应用的特有构成成分。第4页,本讲稿共19页软件复用的关键因素n n前提:必须有可以复用的对象;所复用的对象必须是有用的;复用者需前提:必须有可以复用的对象;所复用的对象必须是有用的;复用者需要知道如何去使用被复用的对象。要知道如何去使用被复用的对象。n n两个关键过程:可复用软件两个关键过程:可复用软件(构件构件)的开发的开发(Development for(Development for Reuse)Reuse),基于可复用软件,
6、基于可复用软件(构件构件)的应用系统构造的应用系统构造(集成和组装集成和组装)n n实现软件复用的关键技术因素主要包括:软件构件技术实现软件复用的关键技术因素主要包括:软件构件技术(Software(Software Component Technology)Component Technology)、领域工程、领域工程(Domain Engineering)(Domain Engineering)、软件构架、软件构架(Software Architecture)(Software Architecture)、软件再工程、软件再工程(Software(Software Reengineerin
7、g)Reengineering)、开放系统、开放系统(Open System)(Open System)、软件过程、软件过程(Software Process)(Software Process)、CASECASE等。等。n n众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入
8、的经济考虑;标准化问题等等。的经济考虑;标准化问题等等。第5页,本讲稿共19页软件复用的分类n n依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用。n n黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。n n白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用。n n多数应用的组装过程中,构件的适应性修改是必须的。第6页,本讲稿共19页软件开发过程中的可复用成分n n整个开发过程的中间结果、过程本身及最终结果,均可复整个开发过程的中间结果、过程本身及最终结果,均可复整个开发过程的中间结果、过程本身及最终结果,均可复整个开
9、发过程的中间结果、过程本身及最终结果,均可复用用用用n n代码级别代码级别代码级别代码级别 代码拷贝、粘贴,子程序和函数库,类,类库(不强调代码拷贝、粘贴,子程序和函数库,类,类库(不强调代码拷贝、粘贴,子程序和函数库,类,类库(不强调代码拷贝、粘贴,子程序和函数库,类,类库(不强调关系),开源代码等关系),开源代码等关系),开源代码等关系),开源代码等n n设计级别设计级别设计级别设计级别 类层次(类库,强调类之间的关系)、设计模式(设类层次(类库,强调类之间的关系)、设计模式(设类层次(类库,强调类之间的关系)、设计模式(设类层次(类库,强调类之间的关系)、设计模式(设计思想)、设计框架(
10、设计结果)计思想)、设计框架(设计结果)计思想)、设计框架(设计结果)计思想)、设计框架(设计结果)软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:构件,连接件,构件,连接件,构件,连接件,构件,连接件,风格)、架构(软件体系结构)风格)、架构(软件体系结构)风格)、架构(软件体系结构)风格)、架构(软件体系结构)(Design Patterns,Frameworks,(Design Patterns,Frameworks,Architecture Style,Component,Architecture Styl
11、e,Component,Connector)Connector)第7页,本讲稿共19页n n分析级别分析级别 分析模式分析模式n n需求级别需求级别 用例(用例(use cases模式)模式)n n测试环节测试环节 测试用例测试用例n n子系统级别(组件)子系统级别(组件)一个独立或相对独立的系统或子系统,体现一个独立或相对独立的系统或子系统,体现为组件形式为组件形式.体系结构中的构件可以是组件,但组件不一体系结构中的构件可以是组件,但组件不一定是构件,构件可以是程序模块,组件强调定是构件,构件可以是程序模块,组件强调标准的组成形式标准的组成形式第8页,本讲稿共19页软件集成软件集成(Soft
12、ware Integration)n n数据集成、应用系统(程序)集成数据集成、应用系统(程序)集成n n实施软件复用的一种手段实施软件复用的一种手段n n组件技术是其基础组件技术是其基础n n已经成为软件生产的一种主要方式已经成为软件生产的一种主要方式第9页,本讲稿共19页组件技术产生的微观背景n n从微观角度,组件技术是在不同的需求背景下产生的.n n不同的需求背景,产生了不同的组件技术,这些不同的组件技术有共性,也有各自所强调的目标。n n随后给出的只是几个方面的问题,并不完整、全面,组件技术是为了解决这些问题而产生的。第10页,本讲稿共19页(一)软件的构成形式问题(一)软件的构成形式
13、问题 早期的软件体现为:早期的软件体现为:独立的整体性系统(铁独立的整体性系统(铁桶式程序桶式程序),一般是由同一团队、同一种编,一般是由同一团队、同一种编程语言开发的,在同一机器运行。程语言开发的,在同一机器运行。这样形式的软件,面临的这样形式的软件,面临的主要问题是:不易主要问题是:不易于维护于维护。为了适应变化的需求,。为了适应变化的需求,发布前集成发布前集成了广泛的应用特性(考虑完整),升级难,了广泛的应用特性(考虑完整),升级难,不易复用(部分功能无法提供给其它软件系不易复用(部分功能无法提供给其它软件系统)统)直接后果是:延迟新方法、新技术的应用直接后果是:延迟新方法、新技术的应用
14、.第11页,本讲稿共19页模块A模块B模块C模块D编译后以整体形式发布编译后以整体形式发布给用户给用户版本升级时,用户需要重版本升级时,用户需要重新安装新版本,完整取代新安装新版本,完整取代原有版本原有版本例如:模块例如:模块B变动变动即使很好地采用了结构化方法,也难以解决版本升级等即使很好地采用了结构化方法,也难以解决版本升级等问题;开发周期长,维护费用高,扩展功能风险大等等。问题;开发周期长,维护费用高,扩展功能风险大等等。虽然,现在很少有这样的程序了,但体现在一个子系统虽然,现在很少有这样的程序了,但体现在一个子系统虽然,现在很少有这样的程序了,但体现在一个子系统虽然,现在很少有这样的程
15、序了,但体现在一个子系统的设计、实现过程中,仍是比较普遍现象的设计、实现过程中,仍是比较普遍现象的设计、实现过程中,仍是比较普遍现象的设计、实现过程中,仍是比较普遍现象.第12页,本讲稿共19页问题一的解决思路及关键问题一的解决思路及关键模块A模块B模块C模块D四个模块分别编译,相对四个模块分别编译,相对独立地交给用户;模块之独立地交给用户;模块之间的调用仍然存在;版本间的调用仍然存在;版本更新时,用户只需获得某更新时,用户只需获得某一新版本的模块。一新版本的模块。模块B同一计算机系统内,有两个系统同一计算机系统内,有两个系统S1和和S2都使用模块都使用模块B,版本更新后,版本更新后,S1可使
16、用可使用B提供的功能,提供的功能,s2可以继续使可以继续使用用B原有的功能。原有的功能。可行性的关键是:能够动态组装可行性的关键是:能够动态组装第13页,本讲稿共19页(二)网络资源的合理利用问题(二)网络资源的合理利用问题n n新技术的产生和发展(冲击)新技术的产生和发展(冲击)软件开发方式必须改变软件开发方式必须改变 硬件性能价格比的提高硬件性能价格比的提高(软件成本压力)(软件成本压力)网络计算技术(分布式计算技术)网络计算技术(分布式计算技术)Internet的突起及基于的突起及基于Web的软件应用需的软件应用需求求 群体生产力的提高群体生产力的提高 越来越多的可用资源越来越多的可用资
17、源 资源共享资源共享第14页,本讲稿共19页问题二的解决思路及关键问题二的解决思路及关键模块A模块B模块C模块DWebWebWebWeb组成一个系统的不同模块,可以在网络的不同计算机系统系统中,组成一个系统的不同模块,可以在网络的不同计算机系统系统中,对系统的用户来说,他不需要关心组成该系统的各模块的位置,对系统的用户来说,他不需要关心组成该系统的各模块的位置,对于任何一个模块来说,也不需要知道它所对于任何一个模块来说,也不需要知道它所“调用调用”的模块位置,的模块位置,被调用模块也不需要知道调用者位置。调用了谁,被谁调用均不被调用模块也不需要知道调用者位置。调用了谁,被谁调用均不需要知道(位
18、置透明)需要知道(位置透明)可行性的关键是:可行性的关键是:“资源资源”的存在形式、访问方法的存在形式、访问方法第15页,本讲稿共19页(三)面向对象范型自身问题(三)面向对象范型自身问题n n面向对象范型的不足面向对象范型的不足ClinetObjectServerObjectrequestresponseClinet的实现紧紧依赖于的实现紧紧依赖于Server的实现的实现使用与实现的分离体现在一个类的实现中,当使用与实现的分离体现在一个类的实现中,当然,也可以进一步体现在一个包(子系统)中。然,也可以进一步体现在一个包(子系统)中。第16页,本讲稿共19页问题三的解决思路及关键n n使用和实
19、现的进一步分离(下面仅仅是一种方案)使用和实现的进一步分离(下面仅仅是一种方案)ClinetObjectCommonObjectrequestresponseServerObjectreqquestresponse所有对象均把请求提交给所有对象均把请求提交给Common对象,对象,Common对象负责查对象负责查找能完成请求的找能完成请求的Server对象,并把请求转交给对象,并把请求转交给Server对象,对象,Server对象完成后的结果通过对象完成后的结果通过Common对象转交给对象转交给Client对象。能对象。能实现请求的实现请求的Server可以有多个,可以有多个,Client对
20、对Server的使用与的使用与Server的实的实现分离。现分离。关键:关键:CommonObject的设计及利用的设计及利用第17页,本讲稿共19页与可复用的软件模块比较与可复用的软件模块比较模块,设计时概念模块,设计时概念模块,设计时概念模块,设计时概念构件,构件,构件,构件,ComponentComponent,与组件的英文单词相同,与组件的英文单词相同,与组件的英文单词相同,与组件的英文单词相同,但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设计时概念计时概念计时概念
21、计时概念.国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。组件,运行时概念组件,运行时概念组件,运行时概念组件,运行时概念n n二进制形式的组件能有效的嵌入其它开发商的组件、二进制形式的组件能有效的嵌入其它开发商的组件、二进制形式的组件能有效的嵌入其它开发商的组件、二进制形式的组件能有效的嵌入其它开发商的组件、应用系统中应用系统中应用系统中应用系统中第18页,本讲稿共19页主要组件技术主要组件技术n nMicrosoft COM/DCOM,COM+n nOMG CORBAn nSUN JavaBeans;EJBn nMicrosoft .NETn nSOA (Web Services)第19页,本讲稿共19页