组件技术概述.ppt

上传人:s****8 文档编号:67324910 上传时间:2022-12-24 格式:PPT 页数:19 大小:447KB
返回 下载 相关 举报
组件技术概述.ppt_第1页
第1页 / 共19页
组件技术概述.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《组件技术概述.ppt》由会员分享,可在线阅读,更多相关《组件技术概述.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、组件技术组件技术(Component Based Technology Component Based Technology)张家晨张家晨软件工程研究室软件工程研究室本部分授课目的本部分授课目的n n组件技术的基本原理组件技术的基本原理n n几种主要的组件技术几种主要的组件技术 COM/DCOM,CORBA,EJB,SOA,n n其它相关技术其它相关技术n n教材和授课方式教材和授课方式n n参考资料参考资料软件复软件复用(用(Software Reuse)组件技术产生的宏观背景组件技术产生的宏观背景n n起源:起源:19681968年年NATONATO(北大西洋公约组织)软件(北大西洋公约组

2、织)软件工程会议上工程会议上McIlroyMcIlroy的论文的论文“大量生产的软件构件大量生产的软件构件”n n社会分工及软件产业的分工社会分工及软件产业的分工表现方面:表现方面:1.1.时间维:使用以前的软件版本作为新版本的基础,时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。加入新功能,适应新需求,即软件维护。2.2.平台维:以某平台上的软件为基础,修改其和运平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于新平台,即软件行平台相关的部分,使其运行于新平台,即软件移植。移植。3.3.应用维:将某软件应用维:将某软件(或其中构件或其中构件

3、)用于其它应用系用于其它应用系统中,新系统具有不同功能和用途,即真正的软统中,新系统具有不同功能和用途,即真正的软件复用。(真正复用)件复用。(真正复用)软件复用的自然产生n n应用系统中通常包含应用系统中通常包含三类成分三类成分:通用基本构件:通用基本构件:是特定于是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素、计算机系统的构成成分,如基本的数据结构、用户界面元素、领域无关的一般性功能等,它们可以存在于各种应用系统中;领域无关的一般性功能等,它们可以存在于各种应用系统中;领域共性构件:领域共性构件:是应用系统所属领域的共性构成成分,它是应用系统所属领域的共性构成成分,它们存在于

4、该领域的各个应用系统中;们存在于该领域的各个应用系统中;应用专用构件:应用专用构件:是每是每个应用系统的特有构成成分。个应用系统的特有构成成分。n n应用系统开发中的重复劳动主要在于前两类构成成分的重复应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。开发。n n软件复用是在软件开发中避免重复劳动的解决方案,其出发软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切点是应用系统的开发不再采用一切“从零开始从零开始”的模式,而的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需

5、求分析结果、设计方案、源代码、测的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。构成成分。软件复用的关键因素n n前提:必须有可以复用的对象;所复用的对象必须是有用的;前提:必须有可以复用的对象;所复用的对象必须是有用的;复用者需要知道如何去使用被复用的对象。复用者需要知道如何去使用被复用的对象。n n两个关键过程:可复用软件两个关键过程:可复用软件(构件构件)的开发的开发(Development(Development for Reuse)for Reuse),基于可复用软件

6、,基于可复用软件(构件构件)的应用系统构造的应用系统构造(集成集成和组装和组装)n n实现软件复用的关键技术因素主要包括:软件构件技术实现软件复用的关键技术因素主要包括:软件构件技术(Software Component Technology)(Software Component Technology)、领域工程、领域工程(Domain Engineering)(Domain Engineering)、软件构架、软件构架(Software(Software Architecture)Architecture)、软件再工程、软件再工程(Software Reengineering)(Softw

7、are Reengineering)、开放系统、开放系统(Open System)(Open System)、软件过程、软件过程(Software(Software Process)Process)、CASECASE等。等。n n众多的非技术因素,如:机构组织如何适应复用的需求;管众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题守商业

8、秘密的问题;复用前期投入的经济考虑;标准化问题等等。等等。软件复用的分类n n依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用。n n黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。n n白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用。n n多数应用的组装过程中,构件的适应性修改是必须的。软件开发过程中的可复用成分n n整个开发过程的中间结果、过程本身及最终结果,整个开发过程的中间结果、过程本身及最终结果,整个开发过程的中间结果、过程本身及最终结果,整个开发过程的中间结果、过程本身及最终结果,均可复用均可复用均可复

9、用均可复用n n代码级别代码级别代码级别代码级别 代码拷贝、粘贴,子程序和函数库,类,类库(不代码拷贝、粘贴,子程序和函数库,类,类库(不代码拷贝、粘贴,子程序和函数库,类,类库(不代码拷贝、粘贴,子程序和函数库,类,类库(不强调关系),开源代码等强调关系),开源代码等强调关系),开源代码等强调关系),开源代码等n n设计级别设计级别设计级别设计级别 类层次(类库,强调类之间的关系)、设计模式类层次(类库,强调类之间的关系)、设计模式类层次(类库,强调类之间的关系)、设计模式类层次(类库,强调类之间的关系)、设计模式(设计思想)、设计框架(设计结果)(设计思想)、设计框架(设计结果)(设计思想

10、)、设计框架(设计结果)(设计思想)、设计框架(设计结果)软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:软件体系结构风格(软件体系结构:构件,连接件,构件,连接件,构件,连接件,构件,连接件,风格)、架构(软件体系结构)风格)、架构(软件体系结构)风格)、架构(软件体系结构)风格)、架构(软件体系结构)(Design Patterns,Frameworks,(Design Patterns,Frameworks,Architecture Style,Component,Architecture Style,Component,Connector

11、)Connector)n n分析级别分析级别 分析模式分析模式n n需求级别需求级别 用例(用例(use cases模式)模式)n n测试环节测试环节 测试用例测试用例n n子系统级别(组件)子系统级别(组件)一个独立或相对独立的系统或子系统,体现一个独立或相对独立的系统或子系统,体现为组件形式为组件形式.体系结构中的构件可以是组件,但组件不一体系结构中的构件可以是组件,但组件不一定是构件,构件可以是程序模块,组件强调定是构件,构件可以是程序模块,组件强调标准的组成形式标准的组成形式软件集成软件集成(Software Integration)n n数据集成、应用系统(程序)集成数据集成、应用系

12、统(程序)集成n n实施软件复用的一种手段实施软件复用的一种手段n n组件技术是其基础组件技术是其基础n n已经成为软件生产的一种主要方式已经成为软件生产的一种主要方式组件技术产生的微观背景n n从微观角度,组件技术是在不同的需求背景下产生的.n n不同的需求背景,产生了不同的组件技术,这些不同的组件技术有共性,也有各自所强调的目标。n n随后给出的只是几个方面的问题,并不完整、全面,组件技术是为了解决这些问题而产生的。(一)软件的构成形式问题(一)软件的构成形式问题 早期的软件体现为:早期的软件体现为:独立的整体性系统(铁独立的整体性系统(铁桶式程序桶式程序),一般是由同一团队、同一种编,一

13、般是由同一团队、同一种编程语言开发的,在同一机器运行。程语言开发的,在同一机器运行。这样形式的软件,面临的这样形式的软件,面临的主要问题是:不易主要问题是:不易于维护于维护。为了适应变化的需求,。为了适应变化的需求,发布前集成发布前集成了广泛的应用特性(考虑完整),升级难,了广泛的应用特性(考虑完整),升级难,不易复用(部分功能无法提供给其它软件系不易复用(部分功能无法提供给其它软件系统)统)直接后果是:延迟新方法、新技术的应用直接后果是:延迟新方法、新技术的应用.模块A模块B模块C模块D编译后以整体形式发布编译后以整体形式发布给用户给用户版本升级时,用户需要版本升级时,用户需要重新安装新版本

14、,完整重新安装新版本,完整取代原有版本取代原有版本例如:模块例如:模块B变动变动即使很好地采用了结构化方法,也难以解决版即使很好地采用了结构化方法,也难以解决版本升级等问题;开发周期长,维护费用高,扩本升级等问题;开发周期长,维护费用高,扩展功能风险大等等。展功能风险大等等。虽然,现在很少有这样的程序了,但体现在一个子虽然,现在很少有这样的程序了,但体现在一个子虽然,现在很少有这样的程序了,但体现在一个子虽然,现在很少有这样的程序了,但体现在一个子系统的设计、实现过程中,仍是比较普遍现象系统的设计、实现过程中,仍是比较普遍现象系统的设计、实现过程中,仍是比较普遍现象系统的设计、实现过程中,仍是

15、比较普遍现象.问题一的解决思路及关键问题一的解决思路及关键模块A模块B模块C模块D四个模块分别编译,相四个模块分别编译,相对独立地交给用户;模对独立地交给用户;模块之间的调用仍然存在;块之间的调用仍然存在;版本更新时,用户只需版本更新时,用户只需获得某一新版本的模块。获得某一新版本的模块。模块B同一计算机系统内,有两个系统同一计算机系统内,有两个系统S1和和S2都使用模都使用模块块B,版本更新后,版本更新后,S1可使用可使用B提供的功能,提供的功能,s2可以继续使用可以继续使用B原有的功能。原有的功能。可行性的关键是:能够动态组装可行性的关键是:能够动态组装(二)网络资源的合理利用问题(二)网

16、络资源的合理利用问题n n新技术的产生和发展(冲击)新技术的产生和发展(冲击)软件开发方式必须改变软件开发方式必须改变 硬件性能价格比的提高硬件性能价格比的提高(软件成本压力)(软件成本压力)网络计算技术(分布式计算技术)网络计算技术(分布式计算技术)Internet的突起及基于的突起及基于Web的软件应用需的软件应用需求求 群体生产力的提高群体生产力的提高 越来越多的可用资源越来越多的可用资源 资源共享资源共享问题二的解决思路及关键问题二的解决思路及关键模块A模块B模块C模块DWebWebWebWeb组成一个系统的不同模块,可以在网络的不同计算机系组成一个系统的不同模块,可以在网络的不同计算

17、机系统系统中,对系统的用户来说,他不需要关心组成该系统系统中,对系统的用户来说,他不需要关心组成该系统的各模块的位置,对于任何一个模块来说,也不需要统的各模块的位置,对于任何一个模块来说,也不需要知道它所知道它所“调用调用”的模块位置,被调用模块也不需要知的模块位置,被调用模块也不需要知道调用者位置。调用了谁,被谁调用均不需要知道(位道调用者位置。调用了谁,被谁调用均不需要知道(位置透明)置透明)可行性的关键是:可行性的关键是:“资源资源”的存在形式、访问方法的存在形式、访问方法(三)面向对象范型自身问题(三)面向对象范型自身问题n n面向对象范型的不足面向对象范型的不足ClinetObjec

18、tServerObjectrequestresponseClinet的实现紧紧依赖于的实现紧紧依赖于Server的实现的实现使用与实现的分离体现在一个类的实现中,使用与实现的分离体现在一个类的实现中,当然,也可以进一步体现在一个包(子系统)当然,也可以进一步体现在一个包(子系统)中。中。问题三的解决思路及关键n n使用和实现的进一步分离(下面仅仅是一种方案)使用和实现的进一步分离(下面仅仅是一种方案)ClinetObjectCommonObjectrequestresponseServerObjectreqquestresponse所有对象均把请求提交给所有对象均把请求提交给Common对象,

19、对象,Common对象对象负责查找能完成请求的负责查找能完成请求的Server对象,并把请求转交给对象,并把请求转交给Server对象,对象,Server对象完成后的结果通过对象完成后的结果通过Common对象转交给对象转交给Client对象。能实现请求的对象。能实现请求的Server可以有多可以有多个,个,Client对对Server的使用与的使用与Server的实现分离。的实现分离。关键:关键:CommonObject的设计及利用的设计及利用与可复与可复用的软用的软件模块比较件模块比较模块,设计时概念模块,设计时概念模块,设计时概念模块,设计时概念构件,构件,构件,构件,Component

20、Component,与组件的英文单词相同,与组件的英文单词相同,与组件的英文单词相同,与组件的英文单词相同,但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设但我们把它作为软件体系结构的组成部分,是设计时概念计时概念计时概念计时概念.国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说国内有些院校、期刊文章把我们所说的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。的组件称为构件,注意按照上下文进行界定。组件,运行时概念组件,运行时概念组件,运行时概念组件,运行时概念n n二进制形式的组件能有效的嵌入其它开发商的二进制形式的组件能有效的嵌入其它开发商的二进制形式的组件能有效的嵌入其它开发商的二进制形式的组件能有效的嵌入其它开发商的组件、应用系统中组件、应用系统中组件、应用系统中组件、应用系统中主要组件技术主要组件技术 Microsoft COM/DCOM,COM+OMG CORBA SUN JavaBeans;EJBn nMicrosoft .NETn nSOA (Web Services)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁