logo资料库

面向对象方法课程内容背诵3.0.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
一、RUP 部分 01、重点补充: 补充性规格说明中的万金油部分: A、目标 本文档描述了 xxxx 系统的需求,列举了用例模型中不能描述的需求,它与用例 模型 共同描述了 xxx 系统的完备需求集 B、 适用范围 只能定义 xxx 系统的非功能性需求 C、参考 无 D、功能:多个终端操作,比如银行系统的手机 app 端、微信小程序以及电 脑端(这里与用例模型中的功能有差别) E、 可用性:兼容的系统为 windows10\windows7 F、 可靠性:系统应保证全天候不停机的工作,不能司机 G、性能:该系统应能在任意时间同时支持 xxx 个用户同时访问,该系统终端响应 延迟时间不能超过 1s H、保障性 无 I、 安全性:保证用户信息不能对外泄露 001、分析机制万金油: A、永久性机制:粒度(文件的大小)、持续时间、检索机制(数据库文件数字索引、 文字索引等) B、安全性机制:比如每天修改密码的次数限制 C、性能机制:并发数目、响应时间 D、异常处理:异常的优先级特征 1、 封装概念的理解 封装指的是向调用者隐藏了实现,也叫信息隐蔽,把对象的全部属性和全部服务结 合在一起,形成一个不可分割的独立单位,尽可能的隐蔽对象的内部细节。封装具 有一个接口用来实现这个对象的类的外部访问。封装的目的是使对象的使用者和设 计者分开,使用者不必知道行为的实际内部行为,只需用设计者提供的消息来访问 该对象。举例:司机没有必要为了开车了解以汽油作为燃料的内燃机引擎的工作原 理。 2、 需求是什么(帮助理解 不要求背诵) 1 是什么?  提供一种与客户在系统功能方面进行沟通并达成共识的方式  使开发者能够更准确的理解系统的需求  确定系统的边界  提供了对迭代过程中技术内容进行计划的基础  为系统开发的成本估计提供一个基础  定出系统与用户之间交互的接口 2 产出?
目前理解的是需求模型,需求模型中包括词汇表和补充说明,这两个属于 需求模型中的需求文档。 需求模型包括了用例模型(包括了系统的所有用例)、词汇表(针对整个系统)、 补充说明(针对整个系统) 3、 需求模型的表示方法,重点是用例的描述 需求模型是对需求结果的描述,也是对目标系统是什么样子的理解,即:用当 前的理解模拟表示目标系统。 需求模型通常通过三个部分进行刻画,分别是用例模型、术语表以及补充规格 说明。 A、用例模型描述了系统将要做什么事情,强调了功能性需求,用例模型中主 要包括两个主要的概念,分别是参与者和用例。此后,在定义一个用例的 时候需要遵循以下的规格说明:a、用例名称 b、简要描述 c、事件流 d、 关系 e、动态图 f、用例图 g、特殊需求 h、前置条件 i、后置条件 j、 其他图。 B、 术语表为所有模型定义了通用的术语,并且包括对所需系统的文本描述 C、补充规格说明:包括不与特定的用例相关的需求,是对用例模型的重要补 充,例如非功能性需求。 4、 术语表-理解为主 词汇表中定义并解释了问题中的专有名词,比如 词汇表定义了选课系统中的核心 概念(词汇:课程 解释:学校提供的课程;词汇:开设课程 解释:一个学期中学校 开设的课程等等) 5、 补充说明-理解为主 包括了系统的功能、可用性、稳定性、性能、可维护性以及设计约束。 6、 架构(软件体系结构)概念的理解 1 架构给出了一组关于目标系统构造过程中具有重要影响的决策,属于高层设计 2 这类决策涉及确认需求、技术选型、制定技术规格说明、系统分解等方面。 3 分解方案包括:选择组成系统的结构化元素以及他们之间的交互协议或规则; 用这些元素的合作刻画的行为,并试图讲这些行为和结构元素组合成较大的软 件元素,指导进行这种组合的体系架构风格 4 能够从多个不同视角体现目标系统的构成,可供包括客户、用户以及各类开发 人员在内的目标系统的利益相关者之间进行交流 5 架构包括一组约束设计和构造的设计决策、规则或模式。选择或给定范围,明 确设计的方向 6 架构是对系统的一组初始约束,这些约束是最重要的。他们构成了软件设计的 重要决策,架构为设计提供了框架,可视为战略设计 7 去除了不必要的创造性,因为设计的目的是为了匹配架构框架,离代码越近, 创造性就越被限制(因为架构限制了设计,设计限制了编码),创造性可以被用 于改进质量和性能等地方 8 类比办公楼、住宅
7、 架构的表示方法或表示形式 (正确!) 软件架构模型推荐的表示方法是“4+1”视图表示。 4+1 视图指的是: 1 逻辑视图:描述如何实现系统内部的功能 2 过程视图:描述系统的并发性,并处理这些线程之间的通信和同步 3 实现视图:描述系统代码构建组织和实现模块之间的依赖关系 4 部署视图:描述系统的物理位置 5 用例视图:描述系统的功能、需求,找出用例、执行者 ---------------------------------------------------------------------------- 注意:构架和架构都是 Architecture,也就是他们的意思是一样的 ---------------------------------------------------------------------------- 8、 架构机制概念的理解 1 架构机制是关于通用标准、策略和实践的战略决策,是针对标准化的主题的实 现。每个开发人员应该以同样的方式使用这些概念,并且复用相同的机制来执 行操作 2 每个架构机制代表一个经常遇到的问题以及对应的通用解决方案。对比设计模 式:架构机制代表的是大的基本问题的解决方案。 3 根据抽象度的不同分为三大类,分析机制、设计机制以及实现机制 A. 分析机制,指的是捕获一种与实现无关的解决方案的关键方面。它的作用 是用于在分析过程中向设计人员提供复杂行为的简短表示,从而减少分析 的复杂性并提高分析的一致性。 B. 设计机制,指的是如何对现有的设计元素进行整合,从而更新设计模型。 C. 实现机制,指的是实现软件系统。 9、 架构分析过程中使用分析机制的原因---不作重点,便于理解 1 在架构分析时,使用分析机制可以在不考虑实现的情况下用简短的方式描述或 表达领域无关的部分,减少分析的复杂性,提高分析的一致性 2 分析机制可以简单的理解为 非功能性需求所对应的软件技术问题。 补充:记住几个万能的分析机制,永久性分析机制(常见特征---容量(数量)、持续 时间、检索频率(比如 5 分钟之内只允许查找 3 次)、检索机制(比如数字索引或者 符号索引)、粒度(存储数据的单位的大小,比如不能超过 3MB)) ;并发机制(特征: 并发数量(同一时间允许的最大访问量)) ; 安全性(特征:账户修改次数(每天不超 过 3 次)) 10、 分析机制的描述方法(表示形式):分析机制由名字和特征来描述。 补充:分析机制的说明分为四个步骤: 1 将所有分析机制收集在一张列表上 2 画一张类和分析机制图(该类不是分析类) 3 确定分析机制的特性 4 使用协作建模(协作建模会得到协作图,根据协作图和确定的分析机制说明分析
类的限定的分析机制) 11、 用例实现的基本含义 1 描述如何在设计模型内部使用协作对象来实现一个特定的用例,用例实现将用 例模型中的用例和设计模型中的类和关系连接到一起,用例实现制订了为了实 现每个用例必须构建哪些类 2 在 UML 中,用例实现用版型化的协作表示。协作的表示符号是一个包含协作 名字的椭圆。椭圆代表的协作与对应用例之间 用 实现关系表示。 3 设计模型中的用例实现能够追溯到用例模型中的一个用例。从用例实现到其所 实现的用例,用一个实现关系进行连接。 补充理解:(设计模型通过分析和设计得到,分析过程中的用例实现从大的方面看 就是设计模型中的一部分,因此用例实现得到的内容是包含在设计模型中的) 12、 用例分析的基本过程 D、补充用例说明 E、 通过从用例中查找类,将用例行为分配给类,从而对每一个用例实现。 F、 对每一个得到的分析类,说明职责、属性和关联,限定分析机制 G、统一分析类 H、检查点 13、 设计元素的主要形式 设计元素的主要形式分为 设计类 和 子系统。 14、 注意 RUP 课件每一部分最后的问题 二、组件部分其他主要概念 1、 接口 接口是有序排列的一组函数指针,可以简单理解为一组函数,每一个接口相当于该 组件对外的一个窗口(或者对外提供的一种服务/承诺) 2、 中间件 中间件需要具备以下四种条件(是一种软件) A、中间件介于操作系统之上,应用软件之下,负责网络通信 B、 具有统一的规范的接口 C、能够完成一种或几种与领域无关功能的功能。 D、与编程语言无关 举例:CORBA 中的 ORB 就是一个中间件,它是连接对象、应用程序、 CORBA 服 务、 CORBA 工具集的核心,把各元素分离,是 CORBA 实现分布式软件集成,即 插即用功能的核心。EJB 容器也是一个中间件,它根据组件部署描述,插入所需要 的服务,加载 EJB 组件并管理其运行,可创建 Home 类,实现 EJB 提供者定义的 home 接口,并生成 home 桩,供客户端与 home 对话。中间件独立于操作系统和软硬件 平台及软件,与具体的编程语言无关。
3、 什么是架构模式? 架构模式表示了对软件系统的一个基础结构组织大纲。它提供了一个预定义的子系 统,详细说明了他们的职责,并且包括了他们之间关系的规则和指南。 ---------------------------------------------------------------------------- 注意:架构和框架是不一样的,在课程中没有详细介绍框架 ---------------------------------------------------------------------------- 4、 设计框架和设计模式 A、设计模式:可以简单的理解为一个对偶,一个设计模式是针对一类经常遇到的、 领域无关的、典型的设计问题,给出相对好的解决方法,这样的方法是经过许 多实践所验证的,并具有比较好的设计理念,每个设计模式都有其使用的场合, 属于过程复用。 B、 设计框架:属于表现形式方面,通常是由领域相关的一组类以及这组类之间的 关系构成,往往包括抽象类,也可能包括一些接口以及对这些接口的实现或部 分实现,属于包括代码复用在内的结果复用。 核心: 设计框架:领域相关、属于包括代码复用在内的结果复用 设计模式:领域无关,属于过程复用。 三、EJB 部分 1、 构造 EJB 组件(Bean 组件)的一般过程 ( 1) 编写提供业务方法的类,Bean 类及其相关接口 2) 编写两个接口:home 接口和组件业务接口(远程接口) 3) 编写 XML 部署描述文件,名字为 ejb-jar.xml,告诉服务器如何管理 4) 将 Bean 接口和部署描述文件放在一个 ejb-jar 文件中,该文件可能包含多个 Bean 但描述文件只有一个。 5) 用服务器开发商提供的工具将 Bean 部署到服务器上) 2、 (EJB)部署文件的主要内容 EJB 部署文件是 EJB 的说明文件,EJB 容器按照部署文件管理 EJB,它是标准的 XML 文件,其中包括: 1) 告诉容器自己是什么(什么是组件业务接口、什么是 home 接口、什么是 Bean 类),能做什么,如何管理
2) 向 EJB 申请所需要的服务,以及以何种形式提供服务 3) 定义环境变量和运行时参数 3、 EJB 容器能够生成哪些类?能自动产生那些种类的对象? EJB 容器能够自动生成的类有: 1) EJBObject 类:实现组件业务接口 2) EJBObject 桩类:实现组件业务接口,并知道如何与 EJBObject 类的对象联系 3) Home 类:实现 Home 接口 4) Home 桩类:实现 Home 接口,并知道如何与 Home 对象联系。 5) Context 类:上下文对象完成若干领域无关工作 自动生成上述的类后,EJB 容器会自动产生上述类的对象。 4、 EJB 容器能够自动生成类的基本原理(应该 EJB 容器的含义和作用?) 1) EJB 容器根据接口自动生成 EJBObject 类,实现方法由 EJB 容器提供商决定,规 范只规定容器生成这个对象及其相应的桩。 2) EJB 容器还能自动创建 Home 类,实现 EJB 提供者定义的 Home 接口,并产生 Home 桩类,供客户端和 Home 对话 5、 什么是 EJB 容器回调函数?其作用是什么(有哪些)? Bean 类中的组件种类接口中的函数就是回调函数。他的作用是精准控制 EJB 中 Bean 类对象的生命周期。比如应用程序使用会话 Bean 时,对某些特定实例,可能需要 精确控制对象的创建和销毁等,会话 Bean 在创建时可能需要执行一些数据库初始 化操作,销毁时关闭一些数据库连接,通过回调函数,程序就能精确控制 Bean 生 命周期的每个阶段,而 EJB 容器将在生命阶段的适当阶段对其进行调用。 四、CORBA 部分 1、 Stub、Skeleton 概念你的理解 A. B. stub 全称是客户桩,客户桩 stub 有 IDL 编译器在客户端生成,它是客户端的 代理,负责与客户端进行交互,获取客户端的用户请求,并将请求放入对象请 求代理 ORB 中。 Skeleton 是服务器框架,服务器框架 Skeleton 由 IDL 编译器在服务器端生成, 是服务器的代理,负责接收对象请求代理 ORB 中的远端用户请求,并将该请 求映射到服务器中的实现,得到返回结果后,将结果返回 ORB 中,ORB 再将 结果返回给客户桩 stub 最后客户桩 stub 将结果返回客户端 ( 下面的说法没错 但是不易于背诵 1) 客户桩 Stub 是编译时确定的接口,位于客户对象的本地,接收客户的请求,对 客户而言相当于远程对象,客户桩向 ORB 提交请求,提供了桩类型激发所需的 定义和其他与 CORBA 提供商有关的信息,客户桩激发请求使用一套例程,不 同的 ORB 有不同的客户桩,每种语言映射都提供客户桩编程接口。 2) 服务器框架 Skeleton,分为动态和静态,针对执行对象代表了远程客户,可以 在本地调用执行对象服务并与 ORB 通信,框架把 ORB 的调用映射到所需的特 定实现上,提供 BOA 与各个操作方法的连接。 获得方法:使用 IDL 描述文件,通过 IDL 编译器产生。) 2、 代理模式
首先,CORBA 使用的是远程代理。 代理模式的定义是: 为其他对象提供一个代理以控制对这个对象的访问 其次,基本的代理模式及其主要的几种体现形式属于”静态代理”,即设计时,代理 角色需要知道是哪个类或哪类目标对象的代理。并且代理角色和目标对象共同实现 同一个接口。它的缺点是 a、接口发生变化的时候,代理角色及其目标类均需要发 生变化;b、在一些应用背景下,同一个目标对象的代理角色可能会有很多。 以下是代理模式主要的几种体现形式: 1) 远程代理 为位于不同进程空间的远程目标对象提供进程内的代表对象。 2) 虚拟代理 目标对象占用资源较大,代理负责目标对象的管理,包括资源占用、释放 的时机。 3) Copy-on-write 代理 虚拟代理的一种,copy 的目的是为了 paste,仅 copy 而不 paste 就没必要 占用剪切板后缓存资源。 4) 保护代理(访问控制代理) 对类的基本访问控制机制的扩展,用另一个类(代理类)完成。 5) 其他代理 本质上是分离,把一个类的核心工作与附加工作分离开,附加工作由代理 完成,代理负责一个类的核心工作进行修饰或补充。 最后,一些解释型程序设计语言,基于其动态性质及机制,支持“动态代理”,并提供 一些细节略有不同的框架支持手段。例如:JDK。 3、 IDL 编译器的作用 IDL 编译器可以生成编程语言相关的文件,利用接口的 IDL 描述生成。 1) 客户桩文件 stub:把某个对象类型的 IDL 操作定义映射到例程 2) 头文件 head:桩文件和框架文件都用头文件来定义结构和常量。 3) 服务器框架文件 Skeleton:服务器应用程序用 Skeleton 把客户机操作映射到服 务器实现的方法上。通常是源代码形式。 4、 IDL 编译器能够自动产生输出结果的基本原理(产生 stub 和 Skeleton) 由于 IDL 中包含了数据类型、操作对象以及一些请求的参数和返回值的定义, 因此在通过编译器时,再客户端就生成了 stub 文件,包含着客户的请求相关信息, 同时在服务器端生成了 skeleton 服务器框架文件,stub 和 skeleton 之间进行通信。 Skeleton 是一个抽象类,在 skeleton 接收到了对应的 stub 的请求后,它会创建一 个子类,程序员就是在这个子类中完成的具体实现方法。 5、 构造 CORBA 组件的一般过程(使用 IDL 构建 CORBA) 1) 服务器向 ORB 部署,将自己的信息注册 2) 客户端经 IDL 编译器生成 stub 桩 3) Stub 桩在 ORB 的名字管理器上找到服务器的位置 4) 服务器经 IDL 编译器生成 Skeleton 代表服务器与客户端交互 5) Stub 代理客户端,Skeleton 代表服务器在 ORB 上进行交互,客户端的请求经由 stub 交给 Skeleton,Skeleton 在服务器上得到结果后再交给 stub 桩,再有 stub 交给客户端。
五、COM 部分 1、 规范主要内容:结构方面如何规范的(COM 规范的主要内容) 可理解为编程约束或建议,一个程序的整体结构应该是什么样子的约束或建议 COM 组件由接口部分和实现部分组成。 1) 接口部分:有若干接口,每个接口必须继承 Iunknown 接口,每个组件有一个 标识符 ID 并且每一个组件中的接口都有一个自己唯一的 ID,相当于当前组件对 外的某一个方面的承诺,一个接口包含一组函数,这些函数共同代表当前组件 具有的某一个方面的能力,从程序的角度,一个接口相当于一个数组,每个元 素是一个指向函数的指针,这种形式类似于 C++实现约束时所采用的虚函数表 的结构。此外,接口部分要满足接口不变性的要求,每个接口一旦发布就不允 许在改变。 2) 实现部分:需要实现接口部分的每一个接口里面的每一个函数。不约束如何实 现,即怎么实现都可以,实现部分相当于 private。 综上,COM 组件中的实现部分没有进行约束,所以整个规范只针对接口部分。 2、 IUnknown 接口(包括三个函数)的目的作用 1)QueryInterface:对组件的接口进行查询,可以查询接口是否存在,并进一步获得 该接口。组件接口使用的原则是“先确认,后使用”,组件使用前必须确认具有所需 的服务。利用 QueryInterface 函数可以支持组件的动态连接。 2)AddRef 和 Release:通过计数器完成引用计数的功能,通过引用计数可以知道组 件是否有客户。当组件的所有引用计数为 0 时,表示已经没有客户,可以移除该组 件 3、 构造 COM 组件的一般过程(利用动态链接库) 1) 定义各业务接口,每个接口都能继承 Iunknown 接口 2) 为每个组件和接口分配一个唯一的标识符 3) 实现各业务接口的功能 4) 定义类厂接口并分配唯一的标识符(此接口继承自 IClassFactory 接口) 5) 实现类厂接口以实现动态生成组件 6) 编写 DLL,在 DLL 函数中有注册组件到注册表的函数,取消注册的函数,与类 厂相连的函数。 4、 工厂方法及工厂接口(类厂接口)的作用 {工厂方法是设计模式的一种,属于创建型模式,他的作用是定义一个用于创建对象 的接口,让子类决定哪一个类实例化,工厂方法使一个类的实例化延迟到其子类(子 类指的是该类的工厂类,该工厂类是工厂方法定义的子类)。}工厂接口(类厂接口) 的作用是创建组件的标准接口,客户可以通过类厂组件创建其他组件。工厂方法中 工厂(类厂)的唯一作用就是创建组件。 5、 动态连接的含义,COM 如何支持动态连接? A、动态链接指的是组件能够动态的被调用和释放,即能够在应用程序的运行 过程中动态使用,不是在发布应用程序的时候就把组件和应用放在一起, 而是分离的,只有程序运行的时候,组件和程序才会有机的结合在一起。 B、 COM 组件利用 QueryInterface 函数支持动态连接,它的含义是客户程序 C 查询组件 S 的某个接口 Ix 的根本意图是试图获得一个支持 Ix 接口的实现 体而不是简单地查看有没有。此外,COM 通过使用动态链接库来支持组 件的动态调用和释放,动态链接库能够在客户调用组件的某个接口时,将
分享到:
收藏