收藏 分享(赏)

组件技术概述.ppt

上传人:yjrm16270 文档编号:7990739 上传时间:2019-06-02 格式:PPT 页数:19 大小:447KB
下载 相关 举报
组件技术概述.ppt_第1页
第1页 / 共19页
组件技术概述.ppt_第2页
第2页 / 共19页
组件技术概述.ppt_第3页
第3页 / 共19页
组件技术概述.ppt_第4页
第4页 / 共19页
组件技术概述.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、组件技术 ( Component Based Technology ),张家晨软件工程研究室,本部分授课目的,组件技术的基本原理 几种主要的组件技术COM/DCOM, CORBA, EJB, SOA, 其它相关技术 教材和授课方式 参考资料,软件复用(Software Reuse) 组件技术产生的宏观背景,起源:1968年NATO(北大西洋公约组织)软件工程会议上McIlroy的论文“大量生产的软件构件” 社会分工及软件产业的分工 表现方面: 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于

2、新平台,即软件移植。 应用维:将某软件(或其中构件)用于其它应用系统中,新系统具有不同功能和用途,即真正的软件复用。(真正复用),软件复用的自然产生,应用系统中通常包含三类成分:通用基本构件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素、领域无关的一般性功能等,它们可以存在于各种应用系统中;领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;应用专用构件:是每个应用系统的特有构成成分。 应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切“从零开始”的模式,而

3、是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。,软件复用的关键因素,前提:必须有可以复用的对象;所复用的对象必须是有用的;复用者需要知道如何去使用被复用的对象。 两个关键过程:可复用软件(构件)的开发(Development for Reuse),基于可复用软件(构件)的应用系统构造(集成和组装) 实现软件复用的关键技术因素主要包括:软件构件技术(Software Component Technology)、领域工程(Domain Engineering)、软件构架(Soft

4、ware Architecture)、软件再工程(Software Reengineering)、开放系统(Open System)、软件过程(Software Process)、CASE等。 众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等等。,软件复用的分类,依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用。 黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。 白盒复用指已有构件并不能完全

5、符合用户需求,需要根据用户需求进行适应性修改后才可使用。 多数应用的组装过程中,构件的适应性修改是必须的。,软件开发过程中的可复用成分,整个开发过程的中间结果、过程本身及最终结果,均可复用 代码级别代码拷贝、粘贴,子程序和函数库,类,类库(不强调关系),开源代码等 设计级别类层次(类库,强调类之间的关系)、设计模式(设计思想)、设计框架(设计结果)软件体系结构风格(软件体系结构: 构件,连接件,风格)、架构(软件体系结构)(Design Patterns, Frameworks, Architecture Style, Component, Connector),分析级别 分析模式 需求级别

6、用例(use cases模式) 测试环节 测试用例子系统级别(组件)一个独立或相对独立的系统或子系统,体现为组件形式.体系结构中的构件可以是组件,但组件不一定是构件,构件可以是程序模块,组件强调标准的组成形式,软件集成(Software Integration),数据集成、应用系统(程序)集成 实施软件复用的一种手段 组件技术是其基础 已经成为软件生产的一种主要方式,组件技术产生的微观背景,从微观角度,组件技术是在不同的需求背景下产生的. 不同的需求背景,产生了不同的组件技术,这些不同的组件技术有共性,也有各自所强调的目标。 随后给出的只是几个方面的问题,并不完整、全面,组件技术是为了解决这些

7、问题而产生的。,(一)软件的构成形式问题,早期的软件体现为:独立的整体性系统(铁桶式程序),一般是由同一团队、同一种编程语言开发的,在同一机器运行。这样形式的软件,面临的主要问题是:不易于维护。为了适应变化的需求,发布前集成了广泛的应用特性(考虑完整),升级难,不易复用(部分功能无法提供给其它软件系统)直接后果是:延迟新方法、新技术的应用.,编译后以整体形式发布给用户 版本升级时,用户需要重新安装新版本,完整取代原有版本 例如:模块B变动,即使很好地采用了结构化方法,也难以解决版本升级等问题;开发周期长,维护费用高,扩展功能风险大等等。,虽然,现在很少有这样的程序了,但体现在一个子系统的设计、

8、实现过程中,仍是比较普遍现象.,问题一的解决思路及关键,模块A,模块B,模块C,模块D,四个模块分别编译,相对独立地交给用户;模块之间的调用仍然存在;版本更新时,用户只需获得某一新版本的模块。,模块B,同一计算机系统内,有两个系统S1和S2都使用模块B,版本更新后,S1可使用B提供的功能,s2可以继续使用B原有的功能。 可行性的关键是:能够动态组装,(二)网络资源的合理利用问题,新技术的产生和发展(冲击)软件开发方式必须改变硬件性能价格比的提高 (软件成本压力)网络计算技术(分布式计算技术)Internet的突起及基于Web的软件应用需求群体生产力的提高越来越多的可用资源资源共享,问题二的解决

9、思路及关键,组成一个系统的不同模块,可以在网络的不同计算机系统系统中,对系统的用户来说,他不需要关心组成该系统的各模块的位置,对于任何一个模块来说,也不需要知道它所“调用”的模块位置,被调用模块也不需要知道调用者位置。调用了谁,被谁调用均不需要知道(位置透明) 可行性的关键是:“资源”的存在形式、访问方法,(三)面向对象范型自身问题,面向对象范型的不足,Clinet的实现紧紧依赖于Server的实现 使用与实现的分离体现在一个类的实现中,当然,也可以进一步体现在一个包(子系统)中。,问题三的解决思路及关键,使用和实现的进一步分离(下面仅仅是一种方案),所有对象均把请求提交给Common对象,C

10、ommon对象负责查找能完成请求的Server对象,并把请求转交给Server对象,Server对象完成后的结果通过Common对象转交给Client对象。能实现请求的Server可以有多个,Client对Server的使用与Server的实现分离。 关键:CommonObject的设计及利用,与可复用的软件模块比较,模块,设计时概念 构件,Component,与组件的英文单词相同,但我们把它作为软件体系结构的组成部分,是设计时概念. 国内有些院校、期刊文章把我们所说的组件称为构件,注意按照上下文进行界定。组件,运行时概念 二进制形式的组件能有效的嵌入其它开发商的组件、应用系统中,主要组件技术,Microsoft COM/DCOM ,COM+ OMG CORBA SUN JavaBeans; EJB Microsoft .NET SOA (Web Services),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报