组件技术04578.ppt
《组件技术04578.ppt》由会员分享,可在线阅读,更多相关《组件技术04578.ppt(62页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、组件技术组件技术潘爱民北京大学计算机研究所2002-9-13http:/ 的比重,加强的比重,加强PatternsPatterns部分的比部分的比重重还有将来吗还有将来吗vv动机:加强基础加强基础展示最新软件技术展示最新软件技术提高软件设计能力提高软件设计能力vv课程的风格计算机科学的本质计算机科学的本质vv计算机的定义计算机的定义 冯冯-诺伊曼定义:诺伊曼定义:define a computer as a device define a computer as a device that accepts data,processes data,stores data,that accepts
2、 data,processes data,stores data,and produces output.and produces output.指令流处理方式指令流处理方式vv本质:本质:动态动态 计算计算 静态静态 存储存储软件领域的发展软件领域的发展vv程序设计方法的发展vv软件需求的变化vv软件环境的变化vv软件开发模式的变化程序设计方法的发展程序设计方法的发展vv功能分解法 计算任务vv结构化程序设计 以数据为中心vv面向对象程序设计 以对象为中心vv组件程序设计 以组件为中心综合使用软件需求的变化软件需求的变化vv计算vv实用vv管理(MIS)vv分布式系统软件环境的变化软件环境的
3、变化单任务多任务文字界面图形界面单线程多线程平台相关跨平台单机(本地)网络(分布式)单一语言多种语言软件开发模式软件开发模式机器码高级语言和脚本代码OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+other inforstructures+经验发展变化的结果发展变化的结果vv软件学科的形成软件学科的形成vv不变因素:不变因素:计算机的基本运作模式计算机的基本运作模式vv探求新的计算模型探求新的计算模型 量子计算量子计算 软件学科怎么办?软件学科怎么办?生物信息学生物信息学(?)(?)回顾软件学科回顾软件学科10多
4、年来的变化多年来的变化vv软件的产生过程:原始代码原始代码-编译编译-Link-Link-终代码、脚本终代码、脚本 混合混合vv软件的分发过程:文档、说明书、自动安装工具、培训、升级文档、说明书、自动安装工具、培训、升级vv软件工程:需求需求-分析分析-设计设计-code-test-code-test-使用使用vv对象技术和组件技术的不断普及,与大环境发展相结合对象技术对象技术vv用一种新的思路来看待问题1010多年的发展证明了多年的发展证明了OOOO符合软件的规律符合软件的规律对象技术的发展需要开发工具和开发语言的支持对象技术的发展需要开发工具和开发语言的支持vv三大特性:封装性、继承性、多
5、态性vv两种思想Object-BasedObject-BasedObject-OrientedObject-Oriented组件技术组件技术vv组件技术适合于现代的软件环境软件更新快、规模大、强调协作等软件更新快、规模大、强调协作等组件的概念、软件组件的概念、软件ICICvv组件的可独立发布性要求“接口与实现分离”vv组件infrastructure,组件体系COMCOM、CORBACORBA(和(和JavaJava)vv中间件(middleware)市场国内的状况国内的状况vv在对象技术和组件技术方面,国内落后vv问题:好的技术没能及时引进来好的技术没能及时引进来(怎么引进来怎么引进来?)?
6、)缺乏好的教材、技术杂志、技术书籍缺乏好的教材、技术杂志、技术书籍(?)(?)缺乏良好的教育环境和工业环境缺乏良好的教育环境和工业环境基础基础vv编译过程,程序产生的过程回归回归“冯冯-诺伊曼诺伊曼”模型模型vvC+之必要性:最能反映对象技术、组件技术的核心概念最能反映对象技术、组件技术的核心概念存在的问题:存在的问题:vv缺乏好的书籍缺乏好的书籍(?)(?)vv国内的应用领域不够广泛国内的应用领域不够广泛(?)(?)概念:类、对象概念:类、对象vv类是定义,它封装了状态和操作vv对象是实例,它反映了具体的事物vv对象由类来定义vv一个对象可以与多个具有继承关系的类相联系概念:组件概念:组件v
7、v定义:可独立发布的二进制单元vv有的地方称作“package”vv容易混淆:服务器服务器(server)server)、对象、对象vv例如:COMCOM组件、组件、Java AppletJava Applet概念:概念:reuse(重用、复用)(重用、复用)vv软件设计的目标vv不同形式的reusevv不同层次的reusevv例子:类库、中间件类库、中间件概念:接口与实现分离概念:接口与实现分离vvInterface and implementationvv对象技术和组件技术都强调vv接口是对象或者组件的通信协议vv实现是对象或者组件的内部细节vv接口的发布vv客户只关心接口概念:概念:de
8、couplevv去耦vv尽可能地消除软件之间或者软件的不同部分之间的联系vv是软件设计的重要手段,也是目标vv不同层次上的decouple概念:多态性概念:多态性(polymorphism)vv对象技术中的重要概念vv以一致的方式来看待不同的事物vv在C+中,通过继承和虚成员函数来实现vv运行时刻绑定:runtime binding区分两个词:区分两个词:overload vs.overrideoverload vs.overridevv在组件技术中,通过接口来体现概念:概念:modulevv模块vv不同层次上有不同的定义vv在Windows和Linux中,指可独立装载的二进制代码单元vv有些
9、操作与模块相关概念:模板概念:模板(template)vv函数模板和类模板vv抽象层次更高vv泛型技术(generic programming)vv已纳入C+标准之中vv例子:STLSTL、ATLATL概念:概念:C/S和多层结构和多层结构vv这是指软件的结构vvC/S是基础vv多层结构具有较好的灵活性和可扩展性vv多层结构与基于组件的系统相结合vv变种:B/SB/S概念:其他概念:其他vv现代软件的发展形成了很多重要的概念vv掌握这些概念对于提高自己的软件理解水平非常重要vv防止混淆和滥用概念软件形式软件形式vv单机软件整体发布整体发布vvClient/Server软件简单的网络应用简单的网
10、络应用vv分布式软件软件发展面临的问题软件发展面临的问题vv软件的复杂度增加代码开发管理代码开发管理vv软件升级和更新牵一而发动全身?牵一而发动全身?vv分布式软件的发布和配置用户需要培训,程序员和设计人员更需要用户需要培训,程序员和设计人员更需要软件发展面临的问题软件发展面临的问题(续续)vvCustom-made versus standard software如何平衡?如何平衡?vv依赖于全才开发人员软件层次划分软件层次划分vv软件的可扩展性用户可定制、脚本支持用户可定制、脚本支持vv与标准接轨如如Web Web B/SB/S软件发展趋势软件发展趋势vv组件软件、软件组件中间件市场已经形
11、成中间件市场已经形成vv软件基础设施的重要性经验和成果的重用经验和成果的重用vv软件的可重用性要求重用粒度不同重用粒度不同vvAPI的多样化vv软件方案(solution),consulting市场组件软件组件软件vv部分升级补丁补丁缩短软件的更新周期缩短软件的更新周期vv增加了异构软件的可能标准接口、标准规范、标准协议标准接口、标准规范、标准协议vv动态组合,提高软件生产力vv符合现代软件的发展要求软件组件软件组件vv关键:接口设计接口不变性接口不变性接口可扩展性接口可扩展性vv对基础设施的依赖COMCOM、CORBACORBA、.vv内部独立设计、独立开发vv独立发布、独立测试基础设施:组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组件 技术 04578
限制150内