高级软件工程01(概述、DOT与对象模型).ppt_第1页
高级软件工程01(概述、DOT与对象模型).ppt_第2页
高级软件工程01(概述、DOT与对象模型).ppt_第3页
高级软件工程01(概述、DOT与对象模型).ppt_第4页
高级软件工程01(概述、DOT与对象模型).ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

高级软件工程,北京大学计算机科学与技术系 硕士研究生课程,主讲教师:王千祥,课 程 介 绍,1、概述(1学时) 课程内容设置背景与依据 2、软件构件(分布式对象)模型(20学时) (1)CORBA(11) (2)COM(9) 3、软件体系结构(12学时) (1)体系结构(6) (2)OMA (3) (3)DNA (3) 4、软件建模(开发过程与结果)(15学时) (1)use case(3) (2)class (6) (3)sequence (6),一、授课内容与方式,5、其它话题(6学时) (1)软件复用 领域工程、应用工程、再工程 (2)工程管理(CMM) . . .,二、实习内容与方式 分成两组,每人分别针对不同的领域,利用CORBA 或者DCOM开发一个小系统,鼓励多人协作开发。,三、成绩计算方法 1、自学材料,提交反馈意见与报告。 20分 2、开发实习,提交程序及文档。 30分 3、期末笔试,提交答卷。 50分,四、参考文献 1、 OMG,The Common Object Request Broker: Architecture and Specification,v2.31,1999.10。 2、潘爱民,COM原理与应用,清华大学出版社, 1999年11月。 3、 Mary Shaw, David Garlan, Software Architecture, Prentice Hall, 1996。 4、 OMG,Unified Modeling Language Specification, v1.3,1999年6月。,1、4可以从 或者 下载 2、3可以从书店购买。,5、邵维忠,杨芙清,面向对象的系统分析,清华大学出 版社,1999年。 6、王立福,张世琨,朱冰,软件工程,北京大学出版社, 1997年。 7、周之英,现代软件工程,科学出版社,1999年9月。 8、Thomas J.Mowbray, William A.Ruh, INSIDE CORBA, ADDISON-WESLEY,1997。 9、Ivar Jacobson, Grady Booch, James Rumbaugh,“Unified Software Developing Process”,Addison-Wesley, 1999.9。 10、Mark C. Paulk,Bill Curtis,Mary Beth Chrissis,Charles V. Weber,Capability Maturity Model for Software, Version 1.1,CMU/SEI-93-TR-024,1993。,今日作业:在 课程内容 侧重点 授课方式 等方面提出建设性建议 并阐述理由 提交方式:电子邮件,TO:,第一章 概 述,1、软件发展现状 2、软件发展趋势 3、现有软件标准 4、软件工程研究范围的扩展,1、软件发展现状 (1)已经存在大量正在运行的软件 金融、电信、航空航天等 (2)软件的应用范围不断扩大 商务、交通、家电等,“无处不在的软件” (3)软件的规模与复杂性持续增加 越来越多的知识正在由软件进行显式表达 (4)出现了大量与软件相关的标准 (3)的需求 (5)软件危机仍然存在(软件脱节) 1968-2000,2、软件发展趋势 (1)遗留软件将继续发挥作用 (2)软件应用范围将继续扩大,成为信息社会的物理设施 (3)网络化软件将是发展重点 (4)软件的可靠性与安全性日趋重要 (5)工业化生产是必由之路,3、与软件相关的各种标准 (1)网络协议:ISO/OSI vs TCP/IP (2)软件构件:CORBA vs COM (3)建模语言:UML (4)数据访问:ODBC (5)工程管理:CMM vs ISO(9001-3,15504),4、软件工程研究范围的扩展 软件工程: “确立并使用正确的工程原理和方法, 以便能够经济地获得可靠而有效的软件”。 Friedrich I. Bauer 原则 (形式化、模块化等) 方法与技术(过程及结果表示) 开发方法(结果描述为主): 结构化方法 面向对象方法 开发模型(过程描述为主): 瀑布模型 渐进(增量)模型 螺旋模型 喷泉模型 工具,高级软件工程: 以传统软件工程研究内容为基础, 以面向对象技术、网络计算技术、软件复用技术为核心 以CORBA、COM、UML标准等为主要参考 讨论、研究软件开发过程中需要关注的新焦点 新概念(原理): 软件构件 体系结构 新方法(技术): 过程与结果 软件复用与 工程管理,分布计算技术,软件复用技术,传统软件工程,高级软件工程,概念与原理 方法与技术 工具与环境,第二章 软件构件,本章 以分布对象为核心 结合 CORBA与 COM 介绍 运行级大粒度构件 的 概念与原理,什么是软件构件 构件 是 系统中可以明确辨识的构成成分 软件构件 是 软件系统中 具有一定意义的 独立构成成分 可复用软件构件 是 可以被多个软件系统所复用的、 具有 独立功能的软件系统构成成分 构件 是可以被直接复用的软件实体 由构件接口与构件实现两部分组成,构件分类: 纵向: 系统级构件 应用构件 共性 面向领域 横向: 界面构件(控件) 业务构件 数据访问构件 本课程重点关注: 应用构件 业务构件 这样的构件与 分布对象技术中的构件(分布对象)概念 完全吻合,本 章 内 容 一、分布对象技术发展过程 二、CORBA 三、COM 四、不同实现技术的比较,一、分布对象技术发展过程 程序 = 算法 + 数据结构 软件 = 程序 + 文档 模块化是软件的规模与复杂性 发展到一定程度时产生的必然结果 关注焦点的不同,形成了不同的技术: 数据与操作的封装 面向对象技术 利用网络计算环境 分布计算技术 利用已经开发出的代码 软件复用技术,不论哪种技术 模块形式及模块之间的协作方式是关键问题 面向对象技术: 对象 对象之间的关联 分布计算技术: 不同节点上的运行程序 及程序之间的通讯 软件复用技术: 软件构件 软件构件的组装,从运行时刻不同模块所处的进程考虑, 两个模块之间存在如下三种关系: 同一进程内部: 子程序 共享变量 同一机器的不同进程: 操作系统提供进程间通讯 不同机器上: 消息传递:TCP/IP 远程过程调用:RPC(DCE) 模块化继续发展的结果之一即为 分布对象,分布对象技术是 面向对象技术 分布式计算(网络计算)技术 软件复用技术 的结合 三者具有内在的一致性:自治、协作,分布对象技术的核心: 分布对象模型,以及分布对象间的互操作 分布对象技术的实现: OMG的CORBA 微软的DCOM,二、CORBA,本 节 内 容 1、OMG与CORBA 2、CORBA对象模型 3、CORBA概述 4、IDL 5、ORB接口 6、IR 7、POA 8、举例 (9、CCM),1、OMG与CORBA (1)OMG(); 成立于1989年4月 固定成员很少 不做开发:OMG不写任何代码 致力于利用现有的技术进行应用系统的集成 目前已经拥有超过1000个的成员: 包括软件厂商、系统集成商以及最终用户,OMG与CORBA,总线,(2)如何使分布对象互操作 计算机硬件中的模块及互联方式:,OMG与CORBA,Object Services,Application Interfaces,Domain Interfaces,Common Facilities,OMG与CORBA,OMA:Object Management Architecture,OMG发布的与CORBA相关的规范 1、ORB CORBA: Common Object Request Broker Architecture and Specification 2、Object Services CORBAservices: Common Object Services Specification. 3、Common Facilities CORBAfacilities: Common Facilities Architecture,本章介绍CORBA的主要内容 其它规范的部分内容将在第三章中进行介绍,OMG与CORBA,CORBA规范(2.3.1)内容 第一部分:CORBA CORE 第一章:对象模型,描述CORBA环境中的计算模型 第二章:CORBA 综述,描述ORB结构,以及接口、实现信息 第三章:OMG IDL 词法与语义,描述 OMG IDL,IDL被用于 描述客户对象调用、对象实现提供的接口 第四章:ORB 接口,定义ORB中不依赖于对象适配器的功能接口 第五章:值类型语义,描述通过值传送对象的语义。 第六章:抽象接口语义,解释一种抽象接口,它提供了延迟至 运行时刻决定对象由引用还是由值传送。,OMG与CORBA,第七章:动态调用接口(DII), 客户端接口, 允许动态创建并发出对象的请求。 第八章:动态骨架接口(DSI), 服务器端接口,可以从ORB 向对象实现发出请求, 该实现体不具有它所实现对象 类型的编译知识。 第九章: Any Values的动态管理,描述动态Any Values 的接口。 第十章:接口池,描述ORB的一个组成部分,它管理并提供对 对象定义集合的访问。 第十一章:可移植对象适配器(POA),定义一组IDL接口, 实现体用它们访问ORB功能。,OMG与CORBA,第二部分:CORBA 互操作 第十二章:互操作综述 第十三章: ORB 互操作体系结构 第十四章:建立ORB间互操作的桥 第十五章: General Inter-ORB Protocol(GIOP) 第十六章: DCE ESIOP - Environment-Specific Inter-ORB Protocol (ESIOP),OMG与CORBA,第三部分:CORBA 协作 第十七章:协作体系结构 第十八章: Mapping: COM and CORBA 第十九章: Mapping: OLE Automation and CORBA 第二十章:与非CORBA 系统互操作 第二十一章: Interceptors,OMG与CORBA,第一章:CORBA对象模型 第二章:CORBA 综述 第三章:OMG IDL 第四章:ORB 接口 第五章:值类型语义 第六章:抽象接口语义 第七章:动态调用接口 第八章:动态骨架接口 第九章: Any Values的动态管理 第十章:接口池 第十一章:可移植对象适配器(POA),本节主要讲述内容,应用程序具体开发步骤,2、CORBA对象模型(概念),客户,对象 (执行服务),以 客户/服务器模式 为 对象间互操作模型,CORBA对象模型,请求,对象实现 对象系统的实现执行请求服务所需的计算活动 这些活动可以包括计算请求的结果和更新系统状态 在这个过程中可能发出其它请求 实现模型包括两部分:执行模型和构造模型 执行模型描述如何执行服务 构造模型描述如何定义服务,(1)对象 符合传统对象的语义,具有封装、继承、多态等特点。 “对象 是 可标识的封装实体, 提供 客户可以请求的一个或多个 服务”。,CORBA对象模型,(2)请求(request) 客户通过发出请求来请求服务。 “从客户的初始化开始,至与该初始化因果相关的最后一个 事件之间的全部因果相关的事件序列”。 最后一个事件可能为: 客户从服务器接收到与请求相关的最后响应。 服务器在单向请求的情况下处理完相关操作。 与请求相关的事件序列因失败而终止。 与请求相关的信息包括: 操作 目标对象 零个或多个(实际)参数 以及可选的请求环境,CORBA对象模型,值(Value) 任何可以作为合法请求(实)参数的皆可以是值。 尤其是,一个值是一个OMG IDL数据类型的一个实例。 对象引用(object reference) 对象引用是可靠地指示一个特定对象的值。 特别地,每次在请求中使用引用时,对象引用将标识相 同的对象(受到某些空间和时间的实际限制)。 对象可以由多个不同的对象引用指示。,CORBA对象模型,(3)类型(type) 类型是与一个定义在一组实体之上的谓词(结果为布尔 型的单参数数学函数)相关联的可标识实体。如果谓词对于 某个实体为真, 那么该实体满足类型。 满足类型的实体称为类型的成员。 类型用于在签名(signature,基调、函数头)中对可 能的参数进行约束、特征化可能的返回结果。 对象类型(object type)是成员为对象引用的类型。,CORBA对象模型,(4)操作(operation) 一个操作是一个指示不可分割原语的可标识实体,该原语 是可以被请求的服务体。请求一个操作的活动被称为调用 ( invoking ,唤起)操作。 一个操作是由操作标识符标识的。 操作有一个描述请求参数合法值和返回值的签名。 签名包括: 请求该操作时所需参数的规定 操作结果的规定 请求操作所引发例外处理的规定和它们附带的参数类型 可能影响请求的其它环境信息规定 客户预期从请求操作获得的执行语义指示,CORBA对象模型,操作签名的一般形式为: oneway(param1,.,paramL) raises(except1,.,exceptN)context(name1,.,nameM) 其中: 可选的oneway关键字指示对该操作的请求预期获得最佳效果 语义;如果操作成功返回结果,则默认语义是只有一次,如 果返回例外处理,则默认语义是最多一次。 是返回结果的类型 为接口中的操作提供名称 操作所需的操作参数;它们以修饰符in、out或inout标记, 目的是指示信息流的方向(相对于执行请求的对象) 可选的raises表达式指示可以引发的用户定义例外处理,它们 用于终止对该操作的请求;如果没有提供这样的表达式,那么 不会引发任何用户定义的例外处理 可选的context表达式指示将对对象实现有效的请求环境信息; 没有其它信息需要与请求一起传送。,CORBA对象模型,(5)接口(interface) “接口

温馨提示

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

评论

0/150

提交评论