面向对象的设计方法全解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OOA、OOD、OOP阶段间反复迭代
基于UML的OOD概述
分析模型:顶层架构图、用例与用例图、领域概念模型。 设计模型:体系结构图(包图)、交互图、类图、状态图、
活动图等。
任务:
①针对分析模型用例,设计用UML交互图表示的实现方
案。 ②设计技术支撑设施。非业务需求的一部分,但却为多 种业务需求的实现提供公共服务,如:数据的持久存储 服务、安全控制服务、远程访问服务等。 ③设计用户界面。 ④针对分析模型中的领域概念模型,以及第(2)、第(3) 两个步骤引进的新类,完整、精确地确定每个类的属 性、操作,完整地标示类之间的关系。
3 设计用户界面
用户界面设计的策略和步骤:
① ②
③
④ ⑤
⑥
熟悉用户并对用户分类。 按用户类别分析用户工作流程与习惯。 设计并优化命令系统。 设计用户界面的各种细节。 增加用户界面专用的类与对象。 利用快速原型演示,改进界面设计。为人机交互部 分构造原型,是界面设计的基本技术之一。
4 精化设计模型
2 设计技术支撑方案——数据持久存储服务
目的:将目标软件系统中依赖于系统运行环境的数 据存取部分与其它部分相分离。 数据持久存储服务的设计包括:
定义数据格式 定义数据存取操作
2 设计技术支撑方案——并发与同步控制服务
目的:将目标软件系统中依赖于系统运行环境的并 发与同步控制部分和其他部分相分离。 功能:进程/线程的定义与启动、终止、状态查询、 同步点设置及其在同步点的信息交换等。
面向对象的设计方法
1. 设计用例实现方案 2. 设计技术支撑方案 3. 设计用户界面 4. 精化设计模型
Hale Waihona Puke Baidu述
OOA、OOD模型过渡平滑
分析以问题为中心,设计面向计算机实现。 OOD使得从问题空间到解空间的变换直观合理。 OOD更自然地遵循抽象、信息隐藏、模块化原则。 OOD完成信息和处理的双重模块化。
1 设计用例实现方案——构造交互图
用例描述中,事件流中的事件直接对应于交互图中的消息, 事件的顺序体现为交互图中的时序… 用分离的交互图分别表示事件流和每个备选事件流 顺序图的布局规则: 协作图的布局规则:
1 设计用例实现方案——精化类图
利用交互图精化分析模型中的类图
交互图中,对每个类的对象都规定了它必须响应的消息(对应
①
②
③
④
简单消息:以一种简单、抽象的函数表示对象之间的信息传递,不考虑通信过程 的内部细节。简单消息在UML顺序图中用普通的有向箭头表示。 同步消息:消息源发出消息后必须等待消息处理过程完毕并返回处理结果后,消 息源才可继续执行后续操作。前面所述的自调用消息应该是同步的。一般来讲同 步消息的表示图元与简单消息相同,这表明UML在缺省情形下认为简单消息即为 同步消息。 异步消息:消息源发出消息后不必等待消息处理过程的返回,即可继续执行自己 的后续操作。异步消息主要用于描述实时系统中的并发行为。异步消息在UML顺 序图中用一种特别的单向箭头表示。 返回消息: 表示前面发送的消息的处理过程完结之后的返回结果。返回消息应该 是同步的。在许多情况下,可以隐藏返回消息,但也可显式标出返回消息以示强 调。返回消息用虚线有向箭头表示,
实体类:表示目标软件系统中具有持久意义的信息项及其操作。 控制类:完成用例任务的责任承担者,协调、控制其它类共同完
成用例规定的功能或行为。 提取方法:
一般执行者与用例之间的一种通信连接对应一个边界类; 实体类主要来源于领域概念模型,在用例描述中也有; 一般而言,一个用例通常对应一个控制类,也可能多个用例共享一个控制 类或不设独立控制类的情况。
类的操作)以及对象之间的消息传递通道(对应类间的连接关 系) 。 方法/操作:原则上,每个类都应有一个操作来响应交互图中 指向其对象的那条消息。设计人员应尽量使用已有操作来响 应新消息,并尽量使用已存在的连接路径作为消息传递通道。
属性:类的操作完成消息响应责任的能力来源于两方面的知
识:类本身具有的信息(属性),其它类的协助。
设计过程:
1 设计用例实现方案
用例实现方案用交互图描述,交互图包括:顺序图、协作图 顺序图:描述对象之间动态的交互关系,着重表现对象间消息传递的 时间顺序。例:下页图
元素:对象、时间、生命线、生命终结、活跃期、消息(序号、条件表达 式)、迭代标记*、描述信息等。 UML消息的四种类型:
精化的任务:
① ② ③ ④ ⑤
以顶层架构图为基础,精化目标软件系统的体 系结构。 精化类之间的关系。 精化类的属性和操作。 针对具有明显状态转换特征的类,设计状态图。 (画图) 针对比较复杂的类方法,设计活动图。 (画图)
4 精化设计模型——精化体系结构
目的:寻找一种理想的包划分方案,使得每个包中直接包含 的类的数量规模适中,包的边界清晰、自然,并且包间的耦 合度较低。 类间耦合:从高到低 :继承关系、构成关系、聚合关系、 关联关系、依赖关系、两个类的对象受同一执行者变化的影 响。 包的合并和分拆的目标:强内聚,松耦合 完全排除包间的依赖关系既无必要,也不合理。但是以下原 则要尽量遵守:
2 设计技术支撑方案
应用功能往往都需要一组技术支撑机制为其提供服 务。 技术支撑方案是整个目标软件系统中全局性的公共 技术平台。 技术支撑方案应具有良好的稳定性、开放性、可扩 充性。 技术支撑方案的设计一方面取决于目标软件系统对 公共技术服务的需求,另一方面取决于设计人员对 软件技术手段的把握和选取。
协作图:描述相互合作的对象间的交互关系和链接关系,强调交互对 象间的静态链接关系。例:见下页图
元素:对象、链接、消息
1 设计用例实现方案
1 设计用例实现方案——提取边界类、实体
类和控制类
边界类:用于描述目标软件系统与外部环境间的交互,功能:
① ② ③
界面控制:包括输入数据的格式及内容转换,输出结果的呈现,软件运行 过程中界面的变化与切换等。 外部接口:实现目标软件系统与外部系统或外部设备之间的信息交流和互 操作。主要关注跨越目标软件系统边界的通信协议。 环境隔离:将目标软件系统与操作系统、数据库管理系统、应用服务器中 间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件系 统的其余部分尽可能地独立于环境软件。