第11章 面向对象设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计内容
面向对象模型设计一般包括四个方面的 面向对象模型设计一般包括四个方面的 模型 内容: 内容: 一、问题域部分:进一步修改、完善、补充; 进一步修改、完善、补充; 二、人机交互部分; 人机交互部分; 三、任务管理部分; 任务管理部分; 四、数据管理部分。
OOA向OOD的演进 向 的演进
主题层 类-&-对象层 结构层 属性层 服务层 问题域 部分 人机交 互部分 任务管 理部分 数据管 理部分
第11 章 面向对象的软件设计
举例:
第12 章 面向对象软件实现
12.1 面向对象软件实现 面向对象实现阶段的主要任务: 选择合适的面向对象的编程语言与开发环境; 基于选定的语言和开发环境编码实现详细设计 中所得到的对象、算法、公式和规则等; 将编写好的各个类代码模块根据类的相互关系 集成; 对软件进行测试和调试,完成各个部分和整个 系统。
面向对象分析模型
对面向对象分析的扩充
Hale Waihona Puke Baidu
面向对象设计模型
OOA向OOD的演进图
人机交互部分
人机接口部件的最基本对象是窗口, 主要的窗口类型包括 窗口类型包括: 主要的窗口类型包括:
安全/登录窗口 登录窗口。 ① 安全 登录窗口。 启动窗口。启动窗口主要完成: ② 启动窗口。启动窗口主要完成:
对象的创建和初始化; 对象的创建和初始化 系统管理功能; 系统管理功能 外设的激活与关闭。 外设的激活与关闭
第11 章 面向对象的软件设计
11.1 面向对象软件设计概述
11.1.1 面向对象设计准则 –模块化 –抽象 –信息隐蔽 –低耦合 –高内聚 –可重用
启发式规则
简单清晰、深度适当。 简单清晰、深度适当。
单位
演出公司
客户
单位客户
个体客户
第11 章 面向对象的软件设计
11.1.2 面向对象设计的过程 1.系统设计 (1)首先进行系统架构设计,使系统具有良好 的稳定性、开放性和可扩充性 (2)如果系统复杂,应将系统划分为若干个子 系统 (3)给系统分配处理机和任务 (4)根据数据结构、文件和数据库选择实现数 据存储的基本策略 (5)标识全局资源和确定控制访问这些资源的 机制
4.面向对象的单元测试 (1)类层测试 (2)对象集群层测试 5.面向对象的集成测试 对类间协作进行测试 (1)基于线程的测试 把响应系统的一个输入或一个事件所需要的那些类集成 起来。分别集成并测试每个线程。 (2)基于使用的测试 先测试独立类,再测试使用独立类的下一个层次的类 (称为依赖类) 6.面向对象的确认测试 检查用户可见的动作和用户可识别的输出。 根据动态模型和描述系统行为的脚本来设计确认测试用例。
3.面向对象编程的测试
将测试的目光集中在: 将测试的目光集中在: 类功能的实现 面向对象程序风格 主要体现为以下两个方面(假设编程使用C++语言): 主要体现为以下两个方面(假设编程使用C++语言): C++语言 数据成员是否满足数据封装的要求; 数据成员是否满足数据封装的要求; 类是否实现了要求的功能。 类是否实现了要求的功能。
< < la y e r> > A'
< < la ye r> > C
第11 章 面向对象的软件设计
2.子系统划分 设计准则: 子系统应具有良好的接口,通过接口和系统的 其他部分通信; 除了少数的“通信类”外,子系统中的类应只 和该子系统中的其他类协作; 子系统的数量不宜太多; 可以在子系统内部再次划分,以降低复杂度。
12.2程序设计语言 1.面向对象语言的技术特点 (1)支持类与对象概念的机制 (2)实现整体/部分结构的机制 (3)实现一般/特殊结构的机制 (4)对于实现属性和服务的机制 (5)类型检查 (6)类库 (7)效率 (8)持久保存对象 (9)参数化类 (10)开发环境
2.面向对象语言的选择 (1)可复用性 (2)类库和开发环境 (3)其他因素
7.面向对象的系统测试
–检测软件的整体行为表现 。 检测软件的整体行为表现
OOT的视角扩大到包括复审分析和 OOT的视角扩大到包括复审分析和 设计模型,此外, 设计模型,此外,测试的焦点从过程构 模块)移向了类。 件(模块)移向了类。
面向对象的软件维护
OO方法可提高软件维护效率的重要 OO方法可提高软件维护效率的重要 原因是: 原因是: 由于程序与问题域一致, 由于程序与问题域一致,各个阶段的表 示一致,从而大大降低了理解的程度。 示一致,从而大大降低了理解的程度。 将系统中最容易变化的因素(功能) 将系统中最容易变化的因素(功能)作 为对象的服务而封装在对象的内部, 为对象的服务而封装在对象的内部,对 象的封装性使一个对象的修改对其他影 响也小,从而避免了波动效应。 响也小,从而避免了波动效应
12.3 程序设计风格 1.提高可重用性 (1)提高方法的内聚 (2)减小方法的规模 (3)保持方法的一致性 (4)把策略与实现分开 (5)全面覆盖 (6) 尽量不使用全局信息 (7)利用继承机制
2.提高可扩充性 (1)封装实现策略 (2)不要用一个方法遍历多条关联链 (3)避免使用多分支语句 (4)精心确定公有方法 3.提高健壮性 (1)预防用户的操作错误 (2)检查参数的合法性 (3)不要预先确定限制条件 (4)先测试后优化
第11 章 面向对象的软件设计
2.详细设计 (1)细化、补充类的属性和操作 (2)设计类操作的实现算法 (3)优化数据访问路径 (4)实现外部交互式的控制 (5)调整类结构,增加继承性 (6)设计类之间的关联的实现方式 (7)确定对象属性的精确表示 (8)把类和关联打包归纳到模块中
第11 章 面向对象的软件设计
1. 2. 3. 4. 5. 6. 7.
面向对象分析的测试 面向对象设计的测试 面向对象编程的测试 面向对象的单元测试 面向对象的集成测试 面向对象的确认测试 面向对象的系统测试
1.面向对象分析的测试 重点在其完整性和冗余性。 重点在其完整性和冗余性。 2.面向对象设计的测试 建议针对功能的实现和重用以及对 OOA结果的拓展,应从如下三方面考虑: 结果的拓展,应从如下三方面考虑: 结果的拓展 (1)对认定的类的测试; )对认定的类的测试; (2)对构造的类层次结构的测试; )对构造的类层次结构的测试; (3)对类库的支持的测试。 )对类库的支持的测试。
业务功能窗口。 ③ 业务功能窗口。 大多数面向对象的用户界面的设计都是事 件驱动的。 件驱动的。
GUI准则 准则
1. 一致性 2. 减少步骤 3. 及时提供反馈信息 4. 提供撤消命令 5. 无须记忆 6. 易学 7. 富有吸引力
任务管理设计
确定必须同时动作的对象 找出相互排斥的对象 设计任务管理子系统: 设计任务管理子系统:确定各类任务并把任务分
例:订单处理系统
第11 章 面向对象的软件设计
2.部署图 部署图描述了处理器、设备和软件构件运行时 的体系结构。 (1)结点:是某种计算资源的物理对象,包括计 算机、设备(如打印机、通信设备)等 (2) 连接:连接用一条直线表示,它指出结点之间 存在着某种通信路径,并指出通过哪条通信路径 可使这些结点间交换对象或发送消息
第11章 面向对象的软件设计
(3)避免循环依赖
< < l a y e r> > A < < l a y e r> > B1
< < la y e r> > A
< < l a y e r> > B
< < la ye r> > B
< < l a y e r> > C
< < l a y e r> > A1
第11 章 面向对象的软件设计
11.2.2 物理体系结构建模 用构件图和部署图来描述系统的物理体系结构 1.构件图 构件图就是描述构件类及其它们之间的关系。 (1)构件间的依赖关系:依赖关系,用来表示 一个构件需要另一些构件才能有完整的定义。 (2)接口:是一个构件提供给其他构件的一组 操作
第11 章 面向对象的软件设计
11.2 系统设计
6.2.1逻辑体系架构设计 1.层次模式分析 (1)分层模式 表示层:图形用户界面、窗口 等。 应用逻辑层:管理业务过程的 任务和规则。 对象存储层:持久化存储机制, 例如,文件系统、数据库等。
第11 章 面向对象的软件设计
(2)设计要求 层与层之间的耦合应尽可能地松散; 级别相同、职责类似的元素应该被组织到同一 层中; 复杂的模块应被继续分解为粒度更细的层或子 系统; 应尽量将可能发生变化的元素封装到一层中; 每一层应当只调用下一层提供的功能服务,而 不能跨层调用; 一层绝不能使用上一层提供的功能服务,即不 能在层与层之间造成双向依赖。
配给适当的硬件或软件去执行
1. 确定事件驱动型任务(一些与硬件设
备通讯的任务) 备通讯的任务) 隔激发的事件) 隔激发的事件)
2. 确定时钟驱动型任务(以固定时间间
3. 确定优先任务 4. 确定关键任务 5. 确定协调任务
数据管理设计
数据管理部件提供了在数据管理系统 中存储和检索对象的基本结构。 中存储和检索对象的基本结构。 数据管理方法 方法有 数据管理方法有: 1. 关系数据库管理系统 ( RDBMS ) 2. 面向对象数据库管理系统 面向对象数据库管理系统(OODBMS)
面向对象测试
对面向对象软件的测试可分为下列 四个层次进行: 层次进行 四个层次进行:
1. 算法层 2. 类层(方法与属性之间的相互作用) 类层(方法与属性之间的相互作用) 3. 主题层(类-&-对象之间的相互作用) 主题层( 对象之间的相互作用) 对象之间的相互作用 4. 系统层
面向对象测试步骤
第11 章 面向对象的软件设计
本章学习内容: 1.理解面向对象软件设计的基本原理 2. 掌握系统设计的过程与方法 3.掌握详细设计的内容与过程 4.了解面向对象的实现技术 5.了解面向对象测试的概念与方法
1. 分析阶段 理解应用问题,建立对象模型、 理解应用问题,建立对象模型、动态 对象模型 模型和功能模型,说明对象关联、 模型和功能模型,说明对象关联、控制流及 数据变换。 数据变换。 2. 系统设计阶段 确定系统框架 考虑并发任务、 系统框架, 确定系统框架,考虑并发任务、通讯机 制和数据存储策略。 制和数据存储策略。 3. 对象设计阶段 从实现的角度细化分析对象模型、 细化分析对象模型 从实现的角度细化分析对象模型、 动态模型和功能模型
相关文档
最新文档