计算机软件组件技术的发展课件_第1页
计算机软件组件技术的发展课件_第2页
计算机软件组件技术的发展课件_第3页
计算机软件组件技术的发展课件_第4页
计算机软件组件技术的发展课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

组件技术组件技术1计算机科学的本质计算机的定义冯-诺伊曼定义:defineacomputerasadevicethatacceptsdata,processesdata,storesdata,andproducesoutput.指令流处理方式本质:动态——计算静态——存储计算机科学的本质计算机的定义2软件领域的发展程序设计方法的发展软件需求的变化软件环境的变化软件开发模式的变化软件领域的发展程序设计方法的发展3程序设计方法的发展功能分解法——计算任务结构化程序设计——以数据为中心面向对象程序设计——以对象为中心组件程序设计——以组件为中心综合使用程序设计方法的发展功能分解法——计算任务综4软件需求的变化计算实用管理(MIS)分布式系统软件需求的变化计算实用管理(MIS)分布式系统5软件环境的变化单任务多任务文字界面图形界面单线程多线程平台相关跨平台单机(本地)网络(分布式)单一语言多种语言软件环境的变化单任务多任务文字界面图形界面单线程多线程平台相6软件开发模式机器码高级语言和脚本代码OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinforstructures+经验软件开发模式机器码高级语言OS+Compiler+E7发展变化的结果软件学科的形成不变因素:计算机的基本运作模式探求新的计算模型量子计算——软件学科怎么办?生物信息学(?)发展变化的结果软件学科的形成8回顾软件学科10多年来的变化软件的产生过程:原始代码->编译->Link->终代码、脚本—混合软件的分发过程:文档、说明书、自动安装工具、培训、升级软件工程:需求-〉分析-〉设计-〉code->test->使用对象技术和组件技术的不断普及,与大环境发展相结合回顾软件学科10多年来的变化软件的产生过程:9对象技术用一种新的思路来看待问题10多年的发展证明了OO符合软件的规律对象技术的发展需要开发工具和开发语言的支持三大特性:封装性、继承性、多态性两种思想Object-BasedObject-Oriented对象技术用一种新的思路来看待问题10组件技术组件技术适合于现代的软件环境软件更新快、规模大、强调协作等组件的概念、软件IC组件的可独立发布性要求“接口与实现分离”组件infrastructure,组件体系COM、CORBA(和Java)中间件(middleware)市场组件技术组件技术适合于现代的软件环境11国内的状况在对象技术和组件技术方面,国内落后问题:好的技术没能及时引进来(怎么引进来?)缺乏好的教材、技术杂志、技术书籍(?)缺乏良好的教育环境和工业环境国内的状况在对象技术和组件技术方面,国内落后12基础编译过程,程序产生的过程回归“冯-诺伊曼”模型C++之必要性:最能反映对象技术、组件技术的核心概念存在的问题:缺乏好的书籍(?)国内的应用领域不够广泛(?)基础编译过程,程序产生的过程13概念:类、对象类是定义,它封装了状态和操作对象是实例,它反映了具体的事物对象由类来定义一个对象可以与多个具有继承关系的类相联系概念:类、对象类是定义,它封装了状态和操作对象由类来定义14概念:组件定义:可独立发布的二进制单元有的地方称作“package”容易混淆:服务器(server)、对象例如:COM组件、JavaApplet概念:组件定义:可独立发布的二进制单元容易混淆:例如:15概念:reuse(重用、复用)软件设计的目标不同形式的reuse不同层次的reuse例子:类库、中间件概念:reuse(重用、复用)软件设计的目标不同形式的reu16概念:接口与实现分离Interfaceandimplementation对象技术和组件技术都强调接口是对象或者组件的通信协议实现是对象或者组件的内部细节接口的发布客户只关心接口概念:接口与实现分离Interfaceandimplem17概念:decouple去耦尽可能地消除软件之间或者软件的不同部分之间的联系是软件设计的重要手段,也是目标不同层次上的decouple概念:decouple去耦是软件设计的重要手段,也是目标不同18概念:多态性(polymorphism)对象技术中的重要概念以一致的方式来看待不同的事物在C++中,通过继承和虚成员函数来实现运行时刻绑定:runtimebinding区分两个词:overloadvs.override在组件技术中,通过接口来体现概念:多态性(polymorphism)对象技术中的重要概念19概念:module模块不同层次上有不同的定义在Windows和Linux中,指可独立装载的二进制代码单元有些操作与模块相关概念:module模块在Windows和Linux中,指可独20概念:模板(template)函数模板和类模板抽象层次更高泛型技术(genericprogramming)已纳入C++标准之中例子:STL、ATL概念:模板(template)函数模板和类模板已纳入C++标21概念:C/S和多层结构这是指软件的结构C/S是基础多层结构具有较好的灵活性和可扩展性多层结构与基于组件的系统相结合变种:B/S概念:C/S和多层结构这是指软件的结构多层结构与基于组件的系22概念:其他现代软件的发展形成了很多重要的概念掌握这些概念对于提高自己的软件理解水平非常重要防止混淆和滥用概念概念:其他现代软件的发展形成了很多重要的概念23软件形式单机软件整体发布Client/Server软件简单的网络应用分布式软件软件形式单机软件24软件发展面临的问题软件的复杂度增加代码开发管理软件升级和更新牵一而发动全身?分布式软件的发布和配置用户需要培训,程序员和设计人员更需要软件发展面临的问题软件的复杂度增加25软件发展面临的问题(续)Custom-madeversusstandardsoftware如何平衡?依赖于全才开发人员软件层次划分软件的可扩展性用户可定制、脚本支持与标准接轨如Web——〉B/S软件发展面临的问题(续)Custom-madeversus26软件发展趋势组件软件、软件组件中间件市场已经形成软件基础设施的重要性经验和成果的重用软件的可重用性要求重用粒度不同API的多样化软件方案(solution),consulting市场软件发展趋势组件软件、软件组件27组件软件部分升级补丁缩短软件的更新周期增加了异构软件的可能标准接口、标准规范、标准协议动态组合,提高软件生产力符合现代软件的发展要求组件软件部分升级28软件组件关键:接口设计接口不变性接口可扩展性对基础设施的依赖COM、CORBA、...内部独立设计、独立开发独立发布、独立测试软件组件关键:接口设计29基础设施:组件体系COM(ComponentObjectModel)93年发布,脱胎于MS的OLE规范+实现CORBA(CommonObjectRequestBrokerArchitecture)91年第1版,OMG(ObjectManagementGroup)规范+实现基础设施:组件体系COM(ComponentObject30COM:组件对象模型建立在二进制层次上的标准许多概念与C++的特征相似,如vtable程序与程序之间的通信建立在此基础上COM规范平台无关定义了大量的标准接口用于各种用途COM实现平台相关Windows实现了规范要求以及许多辅助功能COM:组件对象模型建立在二进制层次上的标准31COM特性语言无关规范和实现都是语言无关的进程透明——〉位置透明inprocserver、out-of-procserver可重用性多线程特性可扩展性COM特性语言无关32COM:接口COM接口IID:128位整数接口定义语言COMIDL对应于C++中由纯虚函数组成的类单继承,基接口:IUnknownCOM接口特性:接口不变性继承性多态性——运行时刻的多态性COM:接口COM接口33COM:对象COM对象CLSID实现多个接口COM对象特性:身份确定封装可重用COM:对象COM对象COM对象特性:34COM:组件COM对象的载体包含多个COM对象进程内组件DLLExportEntrys进程外组件IPC:RPC/LPCCOM:组件COM对象的载体35COM:进程内组件InprocserverExportEntrysCOM:进程内组件Inprocserver36COM:进程外组件Out-of-procserverCOM:进程外组件Out-of-procserver37COM:远程组件remoteserverCOM:远程组件remoteserver38COM:组件信息发布注册表发布组件的信息、对象的信息、接口的信息等注册工具和配置工具Regsvr32.exe.reg自注册-RegServerDCOMCNFG.EXEMTSExplorer、活动目录COM:组件信息发布注册表39COM:创建COM对象对象的创建过程………………(略)COM:创建COM对象对象的创建过程40COM:COM对象管理客户使用规则,控制对象生命周期COM实现优化各种辅助手段组件类别componentcategoryMTS和COM+COM:COM对象管理客户使用规则,控制对象生命周期41COM:COM体系基本的功能扩展功能连接点结构化存储名字服务自动化其他COM+COM:COM体系基本的功能42COM:COM+建立在COM的基础上,COM的自然延伸Services事件服务队列服务事务服务负载平衡其他COM:COM+建立在COM的基础上,COM的自然延伸43COM:应用OLEActiveXcontrol脚本功能扩展OLEDBADSIASP其他COM:应用OLE44COM:分布式应用COM/COM+为基于Windows的分布式应用提供了基础设施TransactionSecurityOLEDBWeb集成ActiveDirectory管理功能COM:分布式应用COM/COM+为基于Windows的分布45演讲完毕,谢谢观看!演讲完毕,谢谢观看!46组件技术组件技术47计算机科学的本质计算机的定义冯-诺伊曼定义:defineacomputerasadevicethatacceptsdata,processesdata,storesdata,andproducesoutput.指令流处理方式本质:动态——计算静态——存储计算机科学的本质计算机的定义48软件领域的发展程序设计方法的发展软件需求的变化软件环境的变化软件开发模式的变化软件领域的发展程序设计方法的发展49程序设计方法的发展功能分解法——计算任务结构化程序设计——以数据为中心面向对象程序设计——以对象为中心组件程序设计——以组件为中心综合使用程序设计方法的发展功能分解法——计算任务综50软件需求的变化计算实用管理(MIS)分布式系统软件需求的变化计算实用管理(MIS)分布式系统51软件环境的变化单任务多任务文字界面图形界面单线程多线程平台相关跨平台单机(本地)网络(分布式)单一语言多种语言软件环境的变化单任务多任务文字界面图形界面单线程多线程平台相52软件开发模式机器码高级语言和脚本代码OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinforstructures+经验软件开发模式机器码高级语言OS+Compiler+E53发展变化的结果软件学科的形成不变因素:计算机的基本运作模式探求新的计算模型量子计算——软件学科怎么办?生物信息学(?)发展变化的结果软件学科的形成54回顾软件学科10多年来的变化软件的产生过程:原始代码->编译->Link->终代码、脚本—混合软件的分发过程:文档、说明书、自动安装工具、培训、升级软件工程:需求-〉分析-〉设计-〉code->test->使用对象技术和组件技术的不断普及,与大环境发展相结合回顾软件学科10多年来的变化软件的产生过程:55对象技术用一种新的思路来看待问题10多年的发展证明了OO符合软件的规律对象技术的发展需要开发工具和开发语言的支持三大特性:封装性、继承性、多态性两种思想Object-BasedObject-Oriented对象技术用一种新的思路来看待问题56组件技术组件技术适合于现代的软件环境软件更新快、规模大、强调协作等组件的概念、软件IC组件的可独立发布性要求“接口与实现分离”组件infrastructure,组件体系COM、CORBA(和Java)中间件(middleware)市场组件技术组件技术适合于现代的软件环境57国内的状况在对象技术和组件技术方面,国内落后问题:好的技术没能及时引进来(怎么引进来?)缺乏好的教材、技术杂志、技术书籍(?)缺乏良好的教育环境和工业环境国内的状况在对象技术和组件技术方面,国内落后58基础编译过程,程序产生的过程回归“冯-诺伊曼”模型C++之必要性:最能反映对象技术、组件技术的核心概念存在的问题:缺乏好的书籍(?)国内的应用领域不够广泛(?)基础编译过程,程序产生的过程59概念:类、对象类是定义,它封装了状态和操作对象是实例,它反映了具体的事物对象由类来定义一个对象可以与多个具有继承关系的类相联系概念:类、对象类是定义,它封装了状态和操作对象由类来定义60概念:组件定义:可独立发布的二进制单元有的地方称作“package”容易混淆:服务器(server)、对象例如:COM组件、JavaApplet概念:组件定义:可独立发布的二进制单元容易混淆:例如:61概念:reuse(重用、复用)软件设计的目标不同形式的reuse不同层次的reuse例子:类库、中间件概念:reuse(重用、复用)软件设计的目标不同形式的reu62概念:接口与实现分离Interfaceandimplementation对象技术和组件技术都强调接口是对象或者组件的通信协议实现是对象或者组件的内部细节接口的发布客户只关心接口概念:接口与实现分离Interfaceandimplem63概念:decouple去耦尽可能地消除软件之间或者软件的不同部分之间的联系是软件设计的重要手段,也是目标不同层次上的decouple概念:decouple去耦是软件设计的重要手段,也是目标不同64概念:多态性(polymorphism)对象技术中的重要概念以一致的方式来看待不同的事物在C++中,通过继承和虚成员函数来实现运行时刻绑定:runtimebinding区分两个词:overloadvs.override在组件技术中,通过接口来体现概念:多态性(polymorphism)对象技术中的重要概念65概念:module模块不同层次上有不同的定义在Windows和Linux中,指可独立装载的二进制代码单元有些操作与模块相关概念:module模块在Windows和Linux中,指可独66概念:模板(template)函数模板和类模板抽象层次更高泛型技术(genericprogramming)已纳入C++标准之中例子:STL、ATL概念:模板(template)函数模板和类模板已纳入C++标67概念:C/S和多层结构这是指软件的结构C/S是基础多层结构具有较好的灵活性和可扩展性多层结构与基于组件的系统相结合变种:B/S概念:C/S和多层结构这是指软件的结构多层结构与基于组件的系68概念:其他现代软件的发展形成了很多重要的概念掌握这些概念对于提高自己的软件理解水平非常重要防止混淆和滥用概念概念:其他现代软件的发展形成了很多重要的概念69软件形式单机软件整体发布Client/Server软件简单的网络应用分布式软件软件形式单机软件70软件发展面临的问题软件的复杂度增加代码开发管理软件升级和更新牵一而发动全身?分布式软件的发布和配置用户需要培训,程序员和设计人员更需要软件发展面临的问题软件的复杂度增加71软件发展面临的问题(续)Custom-madeversusstandardsoftware如何平衡?依赖于全才开发人员软件层次划分软件的可扩展性用户可定制、脚本支持与标准接轨如Web——〉B/S软件发展面临的问题(续)Custom-madeversus72软件发展趋势组件软件、软件组件中间件市场已经形成软件基础设施的重要性经验和成果的重用软件的可重用性要求重用粒度不同API的多样化软件方案(solution),consulting市场软件发展趋势组件软件、软件组件73组件软件部分升级补丁缩短软件的更新周期增加了异构软件的可能标准接口、标准规范、标准协议动态组合,提高软件生产力符合现代软件的发展要求组件软件部分升级74软件组件关键:接口设计接口不变性接口可扩展性对基础设施的依赖COM、CORBA、...内部独立设计、独立开发独立发布、独立测试软件组件关键:接口设计75基础设施:组件体系COM(ComponentObjectModel)93年发布,脱胎于MS的OLE规范+实现CORBA(CommonObjectRequestBrokerArchitecture)91年第1版,OMG(ObjectManagementGroup)规范+实现基础设施:组件体系COM(ComponentObject76COM:组件对象模型建立在二进制层次上的标准许多概念与C++的特征相似,如vtable程序与程序之间的通信建立在此基础上COM规范平台无关定义了大量的标准接口用于各种用途COM实现平台相关Windows实现了规范要求以及许多辅助功能COM:组件对象模型建立在二进制层次上的标准77COM特性语言无关规范和实现都是语言无关的进程透明——〉位置透明inprocserver、out-of-procserver可重用性多线程特性可扩展性COM特性语言无关78COM:接口COM接口IID:128位整数接口定义语言COMIDL对应于C++中由纯虚函数组成的类单继承,基接口:IUnknownCOM接口特性:接口不变性继承性多态性——运行时刻的多态性COM:接口COM接口79COM:对象COM对象CLSID实现多个接口COM对象特性:身份确定封装可重用COM:对象COM对象COM对象特性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论