




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 中间件技术中间件技术 Middleware technology 第四章第四章面向对象中间件ODP面向对象中间件ODP 赖永炫博士 厦门大学软件学院 2009.09 2 内容内容 ?面向对象的技术和方法论 ?开放分布式参考模型ODP 3 面向对象的技术和方法论面向对象的技术和方法论 ?软件危机 ?结构化程序设计 ?软件工程 ?面向对象技术 4 软件危机软件危机 ?software crisis:落后的软件生产方式无法满 足迅速增长的计算机软件需求,从而导致软件 开发与维护过程中出现一系列严重问题的现象 。 ?IBM公司开发OS/360系统,共有4000多个 模块,约100万条指令,投入5000人年,耗资 数亿美元,结果还是延期交付。在交付使用后 的系统中仍发现大量(2000个以上)的错误 。 5 软件危机软件危机 软件危机主要表现在以下几个方面: ?软件系统急剧膨胀 ?软件的复杂程度呈指数上升 ?软件的可靠性不能控制 ?几乎不可能的软件管理和维护 6 解决软件危机的途径解决软件危机的途径 ?62年美国金星探测器水手2号卫星失败 ?程序是什么?软件是什么?怎样保证程序的绝 对可靠? ?一场对程序本质的研究导致goto 之争 从理论上无法证明基于任意赋值、任意goto 的程序是正确的。 程序测试只能证明程序有错,不能证明程序 无错。 ?出路 结构化程序程序设计 7 结构化程序设计结构化程序设计 ?取消goto! 只允许顺序、分支、循环三种结 构组成结构化程序。 ?每一种结构只能一个入口,一个出口。 ?设计重于编码,分析重于设计。 ?自顶向下,逐步求精。 ?易编程、易维护、提高了软件开发效率和质量 8 结构化程序设计结构化程序设计 程序块 条件 真 假 入口 出口 程 序 块 程 序 块 循环体 表达式 真 假 程序块 9 解决软件危机的途径软件工程解决软件危机的途径软件工程 ?1968年在德国召开的NATO(North Atlantic Treaty Organization ,北大西洋公约组织)会 议上首次提出了“软件工程”概念,希望用工程 化的原则和方法来克服软件危机 ?鉴于手工作坊式的开发与硬件不成比例,以及结构化 的成功经验 以工程化的方法开发软件。 ?为设计、制造软件产品,要定出规程、规范和标准, 有了规范和标准,就可以制造用于设计、开发、管理 、测试软件的工具 10 软件工程时代软件工程时代 ?软件开发应该是一种组织良好、管理严密、各 类人员协同配合而共同完成的工程项目。 ?必须充分吸收和借鉴人类长期以来从事各种工 程项目所积累的行之有效的原理、概念、技术 和方法,特别要吸收几十年来计算机硬件工业 的发展经验。 ?既要有技术措施(方法和工具),又要有组织 管理措施。 11 生命周期方法学瀑布模型生命周期方法学瀑布模型 需求分析 概要设计 详细设计 使用、维护 编码、测试 需求分析报告,计划书 概要设计说明书 详细设计说明书 源代码、测试报告 用户手册,维护报告 软件 程序文档 从时间角度对软件开发和维护的复杂问题进行分解 可行性研究 退役 可行性研究报告 12 计算机辅助软件工程CASE计算机辅助软件工程CASE ?软件工程 规范 每一阶段工具 结构编辑器 由算法描述 自动生成源代码 文档自动生成工具 工程进度管理工具 ?工具箱、开发平台 13 传统方法学的缺点传统方法学的缺点 ?软件生产率的提高不能满足用户需求 ?没有很好地解决软件重用问题 ?软件仍然很难维护 ?软件往往不能真正满足用户需要 开发人员不能理解用户需求,开发的软件与 用户预期的系统不一致。 开发的系统不能适应用户需求的不断变化。 14 问题的原因问题的原因 ?结构化技术的弱点 围绕处理过程进行分解,不适应应用功能变化。 把处理分解为子处理的工作带有任意性。 把数据和操作作为分离的实体,潜在的具有可重用 价值的软件由于和具体应用环境密不可分,失去重 用价值。 ?僵化的瀑布模型 某些系统需求是模糊的(特别是一些应用系统) 项目参加人员存在沟通问题。 预期定义的需求就可能是过时的。 15 软件工程新途径 快速原型法软件工程新途径 快速原型法 ?用交互的、快速建立起来的原型代替形式的、僵硬的 (不可修改的)规格说明,用户通过在计算机上实际 运行和试用原型系统向开发者提供真实的反馈信息。 ?高度迭代的动态方法 开发、修改系统运行原型系统 修改意见 16 快速原型法快速原型法 ?快速作出一个原型,让用户作出评审后逐步扩 充、完善,得到目标系统。 ?开发阶段不严格评审,允许需求、设计编码、 试运行同时进行。各阶段可以反复。 ?原型法基于: 快速开发的CASE工具 软件复用技术成果 软件工程环境的集成化 17 快速原型法快速原型法 ?区分两类不同的软件系统 ?需求比较稳定,可预先定义(火箭发射跟 踪系统,操作系统)。 生命周期方法学仍然适用。 ?模糊的或随时间变化的系统,运行后还可 能对系统进行修改(商业、行政管理) 需要一种进行反复试探的技术快速原型法 18 统一过程UP统一过程UP ?The Unified Software Development Process or Unified Processis a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). ?The Elaboration, Construction and Transition phases are divided into a series of timeboxed iterations. Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release. 19 Diagram illustrating how the relative emphasis of different disciplines changes over the course of the project 20 面向对象技术面向对象技术 ?把数据和操作封装在一起。一个程序由各个对 象组成,程序的执行就是对象相互作用的结果 ?面向对象的封装、抽象、继承等天然地符合软 件工程所要求的软件的局部性、概括性、易维 护、可重用、易扩充等性能。 21 组件技术组件技术 ?基于组件的软件开发来自于面向对象的程序设 计理论,但又是这一理论的延伸和发展。 ?组件技术是以二进制级提供规格化的软件组件 ,并以图标等可视方式提供组件。 ?由于能直观地理解组件的功能与作用,就有可 能使以用户为主导的应用软件开发引向成功。 22 组件技术组件技术 ?软件开发的组件技术给软件业带来很大冲击, 它使应用程序的开发方式发生了重大变化,它 使面向对象技术得到了推广与应用。 ?在软件开发中,以前那种程序编码工作将大大 减少,程序员的工作将集中在挑选组件和利用 组件上。 23 面向对象技术的基本概念面向对象技术的基本概念 ?面向对象人类认识周围世界的观点 ?现实世界中对象有两个共同的特点: 状态(静态的属性) 如一台空调机,有自己的重量、尺寸、颜色 、摆放位置、是开机还是关机等。 行为(动态的功能) 如空调机的开机、关机、制冷、制热、定时 、摆风等。我们可以通过遥控器向空调发出 指令,让它执行某项功能。 24 面向对象技术的基本概念面向对象技术的基本概念 ?面向对象技术就是以要解决的问题领域中所涉及到的 各种对象为主要考虑因素 ?计算机世界中的对象是现实世界对象的模型化,所以 它也应该具有状态和行为 ?在计算机程序环境中: 对象的状态 属性 变量 对象的行为 方法 代码 ?因此,解空间中的对象是由描述该对象属性的数据以 及可以施加于这些数据上的操作(方法代码)所组成 25 对象实例对象实例 ?建立一个“电梯”对象。 电梯对象的属性有:电梯编号、最大载重量、空间 大小、电梯门的当前状态(开或关)、电梯当前所 在楼层等 电梯对象的方法(电梯对象所具有的功能)开门、 关门、上升、下降、停靠、检测载重量等 ?在计算机中,一个对象与另一个对象区分: 对象的属性取值不同 26 对象与类对象与类 计算机世界 实体 对象 类 创 建 现实世界 概念世界 抽象类 抽 象 定义类 对应 27 Lower Representational Gap 28 类与对象类与对象 ?类是对象的抽象及描述,它是具有统一属性和方法的 一类对象的统一描述体,是用来定义某类对象共有属 性和方法的模板。 ?类是用来创建对象实例的模板,它包含了该类对象的 属性声明和方法定义。类是一个型,而对象则是这个 型的一个实例。 ?在面向对象程序中,类是静态概念,而对象则是一个 动态概念,因为只有在运行时才为对象分配空间,对 象才真正存在。 29 封装封装 ?封装使得对象内部成为一个结构完整 、可自我管理、自我平衡、高度集中 的整体 ?对外则是一个功能明确、接口单一、 可在各种合适的环境下都能独立工作 的有机单元 ?对象的接口就是它的公共属性及方法 ?软件芯片 接口 实现 30 类的继承类的继承 ?如果类“A”是一个已存在的类,我们定义一个 新的类“B”,并声明它继承类“A”。对于A、B 两个类,我们称A为父类,B为子类。 ?子类继承父类意味着: 子类继承了父类所有非私有的属性和方法 凡是从父类继承下来的属性,子类就不用再 做说明 凡是从父类继承下来的方法,子类就无须重 新编码 31 多态多态 ?封装产生了一种多态(Polymorphism)的效果 ?用抽象类类型的引用来引用对象,但真正引用的是从 抽象类派生的类的具体实例。 ?因此,当我们通过抽象引用概念性地要求对象做什么 时,将得到不同的行为 ?具体行为取决于派生对象的具体类型,同一个调用能 够获得很多不同形态的行为: 讲师告诉学生“去下一个听讲座的教室”,但是根据学生类型 的不同,他们会采取不同的行为,这就是多态的具体形式 32 类库及类的继承类库及类的继承 ?系统都会提供大量的类供程序员使用 ?系统通常以类库形式将这些类按不同的专题加 以组织,便于用户使用 ?在Delphi,VB等开发环境中,系统还以组件板 的形式提供可视化的类库 33 面向对象的重要方法面向对象的重要方法 ?抽象 ?封装封装 ?层次层次 34 抽象抽象 ?抽象(Abstraction)的结果反映出事物的重要 的本质和显著的特征,言外之意是忽略那些次 要的、非本质的和分散注意力的特征。抽象的 过程强调被抽象事物的重要共性,而忽略不重 要的差异 ?在面向对象方法中,抽象活动主要抽取事物的 结构特征和行为特征,两方面特征是有机的整 体。 35 ?在概念上,面向对象的方法最核心的抽象 内容是对象(Object)。 ?准确地讲,对象是一个具有明确边界和唯 一标识的、封装了行为和状态的实体。 36 封装封装 ?封装将对象特征的实现方式(包括相关的 设计决定)隐藏在一个公共接口之后的黑 盒之中 ?对于和某对象沟通的其他对象而言,只需 了解它的消息接口,即可顺利地与该对象 进行沟通 37 ?1 对象内部的状态被保护起来,不会被与该 对象沟通的对象直接篡改; ?2 对象内部特征的变化不会改变与其他对象 的沟通方式,即封装为面向对象系统带来 一种叫做“多态”(Polymorphism)的能力 ,即呈现在一个接口后面的多种实施形态 ,不会影响接口的使用方式。 封装的作用封装的作用 38 ?封装使得系统具有更明显的高内聚、低耦合特征 ,进而使整个系统的构架变得更加具有延展性 ?概念上,接口是封装原则的准确描述手段。接口 用于声明类或者构件能够提供的服务。所谓服务 就是响应消息的能力。 39 层次层次 ?层次(Hierarchy)的基本含义是不同级别的抽 象组成一个树形的结构。 ?层次的种类是多种多样的,可以是集合的层次、 类属的层次、包含的层次、继承的层次、分区的 层次、专业化的层次等等。 40 ?简单地讲,层次就是一个描述分类的结构。层 次的典型例子是生物中的门、纲、属、种、科 等。注意,层次化的思维活动建立在抽象思维 活动的基础之上。 ?在某种意义上,不同的层次反映了抽象主体关 注被抽象客体的概括程度。 层次层次 41 ?层次的本质目的是表述并使用事物之间的相似性 ,同时事物之间的区别可以显著暴露 ?不同层次之间的描述不存在重复和冗余,而是自 上而下的重复使用。 ?在得到必要的技术支撑之后,层次概念带来的直 接价值是提升事物特征描述的可复用能力。 42 附:面向对象的一统天下附:面向对象的一统天下 ?编程语言和平台篇编程语言和平台篇 Java、.NET和C+ 无疑仍是编程语言中的王者,各自占据擅长 的市场。Java 在大规模企业级应用中翻手为云,.NET在中小企 业信息化市场上呼风唤雨,C+宝刀不老、在内核级开发和嵌入 式软件应用上独擅胜场。PHP等Web专用的脚本语言,没有想象 中那么风光。毕竟面向公众的Web应用,在整个IT市场中未见 得占到多大的份额。企事业单位信息化进程日渐深入,IT正在成 为基础设施,更架构化的Java和.NET,以及更底层化的C+,一 占企业市场,一占移动市场,不算出奇。 2008中国软件开发者大调查 2008中国软件开发者大调查2008中国软件开发者大调查 43 小结小结 ?面向对象的方法是以一种更为直观的方法分析 和构造系统,它将整个系统抽象并模型化,让 人们能更好地了解整个系统,使得在设计时就 能发现其中可能存在的问题。 ?在面向对象的开发方法中,数据与相关的功能 是相互捆绑在一起的,更能有效的表示系统中 相对独立的对象。 44 小结小结 ?面向对象的特点:继承,封装,多态 ?面向对象的重要方法:抽象,封装,层次。 ?面向对象的技术在软件系统开发过程中可以用 于分析,设计和实现等几个方面。 45 开放分布式处理参考模型开放分布式处理参考模型 Referenced Model ofOpen Distributed Processing 46 概念概念 ?开放分布式处理参考模型(Referenced Model of Open Distributed Processing, RM-ODP) 是一种标准,规定了使用于开放式分布处理领 域内的其他标准确必须遵循的参考模型 ?创建一个面向应用的参考模型来对付分布的应 用,它能使应用之间实现互通和互操作 ODP is ISOs standardisation effort for distributed processing. ODP is a set of standards produced by ISO/IEC and ITU-T. ODP is the ISO/IEC set of standards 10746, and ITU-Ts X.900. International Organization for Standardization国际标准化组织 International Electrotechnical Commission国际电工委员会 International Telecommunications Union 国际电信同盟 47 ?ODP标准的组成 1、观点 Viwepoint 2、透明性 Transparencies 48 观点观点 ?观点把对于一个系统的说明分成若干个 不同的侧面。每个观点对同一个分布式 系统的某个不同侧面进行描述。 ?ODP viewpoints provide a framework for specifying ODP systems. ?The viewpoints of ODP-RM have two main uses: firstly, as a framework to specify other ODP component standards; and secondly, ODP viewpoints are a useful framework for system development, whether the system is an ODP system or not. 49 观点观点 ?企业观点Enterprise viewpoint: ?信息观点Information viewpoint: ?计算观点Computational viewpoint: ?工程观点Engineering viewpoint: ?技术观点Technology viewpoint: 50 ?Enterprise viewpoint: focuses on the purpose, scope, and policies of a system. It provides the context and overall environment within which the system will be built, and therefore constraints, and obligations that must apply in all other viewpoints. Purpose, scope, roles, policies, activities, environment contract, communities, federation 51 ?Information viewpoint: focuses on the information and associated processing of a system. The information viewpoint uses schemata to specify the way that information may be transformed. 52 ?Computational viewpoint: provides functional decomposition of a system into objects that interact at interfaces. These objects will provide natural lines along which a system may be partitioned for distribution. 53 ?Engineering viewpoint:focuses on the deployment aspects of a system. In contrast to the computational viewpoint which merely implicitly enables distribution, distribution is explicit in the engineering viewpoint. 54 ?Technology viewpoint:details specific technologies, both hardware and software which will be used to implement a system. The technology viewpoint fills in specifics for particular implementations of a system. 55 观点的联系观点的联系 56 57 透明性透明性Transparencies ?透明性屏蔽了由系统的分布所带来 的复杂性 ?The basis of ODPs ease of use is that programmers and end users should not need to be concerned with the nature and means of distribution. ?In other words, programming and use of a distributed application appears exactly the same as if the application were not distributed at all. 58 透明性透明性 ?访问透明性access transparency; ?位置透明性location transparency; ?迁移透明性migration transparency; ?失败透明性failure transparency; ?重定位透明性relocation transparency; ?复制透明性replication transparency; ?持久透明性persistence transparency; ?事务处理透明性transaction transparency. 59 透明性透明性Transparencies ?From the end users point of view, transparencies determine how they see the system, or more precisely, what they dont see of the system. ?It provides the same kind of masking users from technical details that do not concern users to access and utilize a service. ?You should note that not all ODP transparencies might be relevant to a particular application. 60 ODP功能 FunctionsODP功能 Functions ?While ODP transparencies provide insight into what a distributed system looks like, ODP functions provide some building blocks to assemble ODP systems. 61 功能组成功能组成 ?The ODP functions are categorized into four groups: ?管理功能管理功能 management functions; ?协作功能协作功能 coordination functions; ?仓库功能仓库功能 repository functions; ?安全功能安全功能 security functions. 62 Management functionsManagement functions ?node management function; ?capsule management function; ?cluster management function; ?object management function. 63 CoordinationCoordination Functions ?event notification function; ?checkpoint and recovery function; ?deactivation and reactivation function; ?group function; ?replication function; ?migration function; ?engineering interface reference tracking function; ?transaction function; ?ACID transaction function. 64 Repository Functions Repository Functions ?storage function; ?information organization function; ?rel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民航安全技术管理专业教学标准(高等职业教育专科)2025修订
- 2025年中国聚合丁苯橡胶(SSBR)行业市场全景分析及前景机遇研判报告
- 心理咨询案例培训课件
- 中国飞行模拟器行业市场发展现状及前景趋势与投资分析研究报告(2024-2030)
- 全自动凝胶成像系统行业深度研究分析报告(2024-2030版)
- 法治大培训课件
- 2025年中国芜菁种植行业市场运行现状及投资战略研究报告
- 中试总结报告范文
- 2025年 无锡市工会社会工作者招聘考试笔试试题附答案
- 2025年 聊城东昌府区事业单位青人才引进考试试题附答案
- 2025年江苏高考政治试卷真题解读及答案讲解课件
- 2025上半年山东高速集团有限公司社会招聘211人笔试参考题库附带答案详解析集合
- 病媒生物防制,整改措施
- Q∕SY 1769-2014 油气井常规钢丝作业技术规范
- 正常分娩护理查房
- 部编版八年级历史(下)全册教案
- 2022年人教版二年级数学(下册)期末试卷及答案(汇编)
- JIS G3125-2021 高级耐大气腐蚀轧制钢材
- (完整版)学生课堂学习自我评价表
- 梁俊娇税收筹划课后思考题
- DTLDTC带式输送机工艺流程图
评论
0/150
提交评论