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