

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 面向对象设计 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 第9章 面对对象设计面对对象的设计原则 系统设计 对象设计 设计模式 rup的设计活动 rup的实现活动 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造
2、的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 9.1 面对对象的设计概念及原则1、有关概念面对对象设计将面对对象分析创建的分析模型变换 为设计模型,它将作为软件构造的蓝图。但由于面对对 象分析与设计活动是一个迭代与演化的过程,概念与表 示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成, 这些任务形成
3、过程式软件的基本结构。面对对象方法把 问题域作为一系列相互作用的对象,在此基础上构造出 基于对象的软件系统结构。 面对对象设计包括系统设计和对象设计。系统设计 包括如何把整个系统分解为子系统、子系统的软硬件布 局等策略性决策;对象设计是依据详细的实现策略,对 分析模型进行扩充。通过系统设计和对象设计产生设计 模型,是进一步完成系统实现的基础。下表列出了分析 模型与设计模型的区分:西安交通高校 刘海岩 2 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设
4、计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 分析模型 设计模型 概念模型,回避了实现问题; 物理模型,是实现蓝图 ; 对设计是通用的; 针对特定的实现; 对类型有3种构造型; 对类型有任意数量的构造型 (依靠于实现语言); 不太形式化 ; 比较形式化; 开发费用较低; 开发费用较高; 层数少; 层数多; 动态的; 动态的(特殊关注时序); 勾画系统的设计轮廓; 进行系统设计; 主要通过研讨会等方式创建; 设计模型和实现模型需双向 开发; 可能不需要在整个
5、生命周期 在整个生命周期内都应当维护 内都做维护;西安交通高校 刘海岩 3 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 2、oo设计原则(1)封装 是将一个完整的概念组成一个独立的单元,然后通过 一个名字来引用它。在oo系统的较高层次,将一些相关 的应用问题封装在一
6、个子系统中,对子系统的访问是通过 访问子系统的接口实现的;在较低的层次将详细对象的属 性和操作封装在一个对象类中,通过类的接口访问其属性。 (2)抽象 oo方法不仅支持过程抽象还支持数据抽象。类封装了 数据和操作数据的方法,类是一种包含过程抽象的数据抽 象,它对外供应的公共数据接口构成了类的规格说明(类 的协议)。使用者无需知道类中的详细操作是如何实现的, 无需了解内部数据的详细表现方式,只要搞清它的规格说 明,就可通过接口定义的操作访问类的数据。西安交通高校 刘海岩 4 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演
7、化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 (3)信息隐藏 信息隐藏是通过对象的封装实现的。类的结构分别 了接口和实现,对于类的使用者来说,属性的表示和操 作的实现都是隐藏的。 (4)强内聚 服务内聚: 一个服 务完成且仅完成一个功能。 类内聚: 一个类的属性和操作全部都是完成某个 任务所必需的,其中不包括无用的属性和操作。 层内聚: 把向用户或高层供应相关服务的功能放 在一起,而将其
8、他内容排解在外。为了保证适当的层内 聚,往往有严格的层次结构,高层能够访问低层的服务, 而低层却不能访问高层的服务(下图描述了这种关系)。 以下的相关服务可以放在同一层:计算服务、消息 或数据传输服务、数据存储服务、管理平安服务、用户 交互服务、访问操作系统服务、硬件交互服务等。 西安交通高校 刘海岩 5 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系
9、列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 处理应用协议 用户界面 处理连接应用规律 处理包访问操作 系统 访问数 据库 网络通信 传输和接收 应用程序的典型层次 通信系统中的简化层次 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。
10、 面对对象设计包括系统设计 层向外界供应服务的过程和方法通常称为应用编程 接口(application programming interface, api)。api的 规格说明必需描述高层用来访问服务的协议,还要描述 每个服务的语义和副作用。层内聚的优点如下: 替换高层模块对低层模块没有影响。 可以用等价的层替换低层,但必需复制该层全部的 api,这样高层才不受影响。 其他有关传统方法中的功能内聚、通信内聚、挨次 内聚、时间内聚等概念及提高内聚的原则在oo设计中 仍旧适用。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分
11、析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 (5)弱耦合 oo设计中,耦合主要指不同对象(包括类、包) 之间相互关联的程度,假如一个对象过多地依靠于其 它对象来完成自己的工作,不仅使系统的可理解性下 降,还会增加测试、修改的难度,同时降低了类的可 复用性和可移植性。但对象不行能完全孤立,当两个 对象必需相互联系时,只通过类的公共接口实现耦合, 不应当依靠于类的
12、详细实现细节。 设计时尽量削减对象之间发送的消息数(meyer建 议的少接口),削减消息中的参数个数(小接口), 对象之间以明显和直接的方式通信,削减通信的简单 程度(显式的接口)。传统方法中有关降低耦合的原 则在oo方法中仍旧适用。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系
13、统结构。 面对对象设计包括系统设计 (6)可复用 为了提高工作效率、削减错误、降低成本,就要充分考 虑软件的复用性。复用有两个方面的含义:一是尽量使用已 有的类,包括开发环境供应的类库和已有的相像类。二是创 建新类时考虑将来的可复用性。 类有三种复用方式: 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节 就可用适当的构造函数创建需要的实例,然后向所创建的实 例发送适当的消息,启动相应的服务,完成需要的任务。 设计一个可复用性好的类是一件很困难的事情,因 为, 类供应的服务太多,会增加接口的简单度,降低类的可理解 性;供应的服务太少,则可能会降低复用性。在设计时,需 要依据详细的应用
14、环境和以往的阅历来综合考虑,设计出合 适的类构件。西安交通高校 刘海岩 9 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 继承复用当已有的类构件不能通过实例复用满意要求时,可以 通过继承复用对已有的类构件进行修改,使它满意要求。 在设计时,关键是要设计一个合理的、具有
15、肯定深度的 类构件的继承层次结构。每个子类在继承父类的属性和 服务的基础上,加入少量的新属性和新服务,这样做的 好处是父子类的耦合度比较适当,接口简洁,易于理解。 多态复用 多态是一种特性,这种特性使得一个属性或变量在不 同的时期可以表示不同的对象。利用多态性可以使对象 的对外接口更加一般化,系统运行时,依据接收消息的 对象类型,由多态机制启动正确的方法,响应一个一般 化的消息。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计
16、方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 例如消失下列状况: 操作与数据结构大小有关。 操作与外部设备特性有关。 实现算法将来可能会改进。为了克服与表示方法、数据结构或硬件特点相关的操 作给复用带来的困难,可以设计一个基类把与上述操作有 关的服务定义为纯虚函数,然后在复用时先派生出一个新 类,在新类中重新定义上述操作的算法。 设计一个可复用的软件比设计一个一般软件的代价要 高,但随着这些软件被复用的次数的次数的增加,分摊到 它的设计和实现成本就会降低。
17、西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 (7)简洁化设计 一个软件60%的工作量是维护工作。为了便于维护, 现代软件工程越来越重视软件的简洁和易于理解。做好 以下几点: 设计简洁的类。避开定义太多的属性和服务。一个 类的职责要清楚,易于理解
18、也有助于复用。 使用简洁的协议。对象之间的关联是通过消息触发 的,消息过于简单,说明对象之间的耦合程度太紧,不 利于维护。 设计结果简洁明白。设计结果(如文档)描述用词 精确、清楚、简单理解。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 9.2
19、 系统设计和传统设计的目的相同,是为实现系统需求而对软件 体系结构进行的设计。系统设计过程包括以下活动: 划分分析模型为子系统。 标识问题的并发性。 选择软件体系结构的风格并安排子系统处处理器。 设计用户界面。 选择实现数据管理的基本策略。 标识全局资源及访问它们所需的掌握机制。 为系统定义合适的掌握流机制。 考虑边界条件。 评审并考虑权衡。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这
20、些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 1、划分分析模型以定义类、关系和行为 的内聚集合,将这些设计元 素包装为子系统。 定义子系统时应当遵循以下标准: 子系统应当具有定义良好的接口,通过接口和系统 的其余部分通信。 除了少数的“通信类”,在子系统中的类只和该子 系统中的其他类协作。 子系统的数量不应太多。 子系统可以内部划分以降低简单性。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过
21、程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 当两个子系统相互通信时,可建立客户/服务器(c/s) 结构或对等结构(p2p)。在c/s结构中,每个子系统只担当 一个由客户端或服务器端隐含的角色,服务只是单向地从 服务器端流向客户端;在p2p结构中,服务可以双向流淌。 在划分子系统时,往往进行分层设计。系统的每一层 包含一个或多个子系统,表示了完成系统功能所需的功能 性的不同抽象层次。抽象级别由
22、与其相关的处理对用户的 可见程度来确定。(如ppt第6页应用程序的典型层次结 构)。 buschmann及其同事提出以下分层设计方法: 建立分层的标准。即打算子系统将如何被组合成层 次的体系结构。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 确
23、定层的数量。太多使系统简单,太少降低子系统的功 能独立性。 命名层并将子系统安排到某个层。确信同层的子系统间 的通信以及和其他层的子系统间的通信遵循软件体系结 构设计思想。 定义每个层的接口。 精化子系统以建立每个层的类结构。 定义层间通信的消息模型。 评审层设计以保证层间的耦合度最小。 迭代以精化分层设计。 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面
24、对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 2、并发性与基于体系结构风格的子系统安排当系统有很多并发行为时,要划分任务,简化并发 行为的设计与编码。一个任务指系统中的一个过程,有 时就是进程的同义词。并发任务可通过检查每个对象的 状态图而定义,假如大事和变换流指明在任意时刻只有 单个对象是活跃的,则是一个掌握线程。即使一个对象 向另一个对象发送消息,只要第一个对象等待响应,控 制线程就连续。假如第一个对象不等待,则掌握线程分 叉。 oo系统中的任务是通过孤立掌握线程而设计的。例 如当safehome系统正在监控其传感器时,它也
25、可以拨号 到监控站以检验连接。涉及这两个行为的对象(传感器、 监控站)是同时活跃的,每个对象参加一个独立的掌握 线程并被定义为独立的任务。假如监控和拨号活动挨次 地发生,则只设计单个任务。西安交通高校 刘海岩 17 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 对象-
26、行为模型对分析类间或子系统间的并发性提 供了支持。假如类和子系统不是同时活动的,则不需 要并发处理,它们可以实现在同一个处理器硬件上; 假如类和子系统必需异步地或同时作用于大事, 则被 视为并发的。这时有两种选择:安排每个子系统到各 自独立的处理器;安排子系统到同一处理器并通过操 作系统特性供应并发支持。 分布式系统中, 软件体系结构风格对系统分布方 案具有打算性的影响。选择体系结构风格应考虑以下 因素: 西安交通高校 刘海岩 面对对象设计将面对对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面对对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的全都性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面对对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面对对象设计包括系统设计 依据被开发系统的特点:如系统类型、用户需求、 系统规模、使用方式等; 网络协议:不同的网络协议支持不同的体系结构风 格; 可用的软件产品:包括网络软件、os、dbms、现 有的数据服务器等; 成本及其他:购置硬件及软件成本、新开发软件成 本、系统的安装与维护成本。此外,如开发人员对所选 择体系结构风格下实现技术的娴熟程度及开发期限等。 依据以上因素选择合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区发展新质生产力的实践模式
- 新质生产力覆盖的十四大行业
- 2025年骨科手术并发症处理技巧考核答案及解析
- 2025年心血管疾病影像学检查模拟考试答案及解析
- 2025年神经病学病例分析与诊断能力测试卷答案及解析
- 2025年心血管内科危重病例急救应急演练答案及解析
- 2025年眼科常见疾病临床诊疗考核试卷答案及解析
- 2025年康复医学评估与康复方案设计考试卷答案及解析
- 2025年神经科学综合知识测试模拟试卷答案及解析
- 2025年放射肿瘤科治疗方案设计案例答案及解析
- 水的电离和溶液的pH课件上学期高二化学人教版选择性必修1
- 设计概论-第一章-导论课件
- 野天鹅-童话故事课件
- 2017-2018学年新人教B版高中数学必修1全册教案
- 新媒体营销与运营完整全套教学课件
- “三通一平”工程施工标准合同
- 玉米联合收获机械
- 新行政诉讼法
- 医学人文与叙事课件
- 三年级美术上册《魔幻颜色》课件
- 部编版一年级上册语文全册优秀课件
评论
0/150
提交评论