六章面向对象的设计.ppt
《六章面向对象的设计.ppt》由会员分享,可在线阅读,更多相关《六章面向对象的设计.ppt(88页珍藏版)》请在三一文库上搜索。
1、第六章 面向对象的设计,面向对象的设计模型 系统设计 对象设计 领域对象设计,面向对象设计的任务,面向对象设计的任务 系统设计 系统整体结构的设计 对象设计 对OOA模型中类/对象模型的具体化和细化 消息设计 从对象- 关系模型,设计出消息模型 设计模型复审,面向对象设计,责任设计,消息设计,类及对象设计,子系统设计,系统设计过程, 划分子系统; 确定需要并发运行的子系统并为它们分配处理器; 描述子系统之间的通信; 确定系统资源的管理和控制; 确定人机交互构件; 选择实现数据管理和任务管理的基本策略。,四种主要子系统,问题域子系统 人机交互子系统 任务管理子系统 数据管理子系统,划分子系统,划
2、分原则 模块化、功能独立、信息隐藏 同一个子系统的类拥有共同特性 同一个子系统的类具有共同目的 同一个子系统的类提供相似服务 同一个子系统的类间相对高耦合 子系统标准 有明确的借口,与其他子系统通信 一般类只和子系统内部的其它类协作,处理并发操作,并发的对象(子系统) 同时 异步 作用于同一事件 处理 将并发子系统分配到不同处理器 将并发子系统分配到同一处理器 系统提供同步控制,描述子系统间的通信,子系统协作模型 客户/服务器 端对端,请求,客户,子系统,contract,服务器,子系统,peer,subsystem,peer,subsystem,请求,请求,人机交互设计,分类分析用户特点,设
3、计不同界面 增加用户界面专用的类和对象 利用快速原型演示,改进界面设计,任务管理设计,策略 确定任务的特征 定义一个协调者任务和与之关联的对象 集成其它任务和协调者 步骤 识别由事件驱动和时间驱动的任务 识别关键性任务、任务优先级和任务管理类 定义任务 必要时扩充有关任务的类和对象,数据管理设计,解决对象数据的存储和检索 数据管理设计 定义数据格式 与所使用的数据存储管理模式相关 设计相应的操作 说明对象及所属类和对象如何存储自己,对象设计,设计模型,对象 数据结构 算法 消息传递 控制,分析模型,类 属性 方法 关系 行为,对象描述,对象描述 协议描述:一组消息和对消息的注释 实现描述:对对
4、象接收到某个消息后所执行的操作的实现细节的描述 算法设计 程序构件与接口 对象间的接口和对象的整体结构,领域对象的设计,设计目的支持软件复用 设计内容 调整需求 复用已有的组件 引入父类,分组管理领域类 添加一般化类以建立协议 调整OOA模型 设计复审 设计模板,第七章 统一建模语言UML,UML简介 静态建模 动态建模 物理架构建模 RUP,UML,Unified Modeling Language 近10年来OOSE最重要的成果 贡献者:Grady Booch, Ivar Jacobson, Jin Rumbaugh 中文网站 http:/www. http:/,UML的组成,UML的模
5、型元素 表示模型中的某个概念 表示模型元素之间的关系 UML的元模型结构 元元模型层 元模型层 模型层 用户模型层 UML模型,UML模型,图 静态图 动态图 视图 用例视图 逻辑视图 并发视图 构件视图 部署视图,UML的特点,统一标准 面向对象 表达能力强大 可视化,UML的应用,用于描述系统开发的不同类型于不同阶段 从需求分析到软件设计到软件测试及维护 可视化问题描述,帮助理解问题 帮助建立各阶段的文档 获取和交流有关应用问题求解的知识 辅助构建系统,静态建模,用例模型 用例图表示 从最终用户的角度描述系统功能 类和对象模型 类图和对象图表示,类图Class Diagram,1 购买 0
6、* 属于,对象图Object Diagram,对象间关系,关联关系 (Association) 聚集关系(Aggregation) 泛化关系(Generalization) 依赖关系(Dependency) 细化关系 (Refinement),包图,动态建模,状态图(State Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图(Activity Diagram),消息,同步消息,异步消息,简单消息,状态图State Diagram,打印机就绪 打印文件,时序图(Sequence Diagram),打印机忙 保存文件,打印
7、文件,打印文件,计算机,打印服务器,打印队列,计算机,协作图(Collaboration Diagram),活动图Activity Diagram,物理架构建模,逻辑架构和物理架构 逻辑架构 物理架构 构件图 配置图,RUP基于UML的统一建模过程,第八章 编码和语言选择,编码的目的 编码的风格 编码使用的语言,编码的目的,编码 模块的过程性描述一一一源程序 (不可执行的) (可执行的) 编码的过程 熟悉所选语言的功能和程序开发环境 仔细阅读设计文档详细设计 弄清要编码的模块的外部接口与内部过程,编码的风格,追求“聪明”和“技巧”-提倡“简明”和“直接” 使用标准的控制结构 清晰的前提下求取效
8、率 . Make it right before you make it faster. . Make it clear before you make it faster. . Keep it right when you make it faster. (求快不忘保持程序正确) . Keep it simple to make it faster. (保持程序简单以求快) . dont sacrifice clarity for “efficiency”. (书写清楚,不要为“效率”牺牲清楚),源程序的文档化 (code documentation),有意义的变量名称 适当的注释 标准的书
9、写格式 用分层缩进的写法显示嵌套结构的层次; 在注释段的周围加上边框; 在注释段与程序段、以及不同程序段之间插入空行; 每行只写一条语句; 书写表达式时,适当使用空格或圆括号等作隔离符;,程序设计语言的发展,语言的选择,选择编码语言的标准 应用领域 算法与计算复杂性 数据结构的复杂性 效率的考虑,适用各类应用领域的语言,第九章 软件测试,测试的基本概念 黑盒测试 白盒测试 测试用例设计 多模块程序的测试策略 面向对象系统的测试,测试的基本概念,测试(testing)的目的与任务 目的:发现程序的错误 任务:通过执行程序,暴露潜在的错误 纠错(debugging)的目的与任务 目的:定位和纠正错
10、误 任务:消除软件故障,保证程序的可靠运行,测试的特性,挑剔性 抱着为证明程序有错的目的去测试 复杂性 设计合适的测试用例 不彻底性 Dijkstra 一句名言:“程序测试只能证明错误的存在,但不能证明错误不存在” 经济性,测试的种类,静态分析(不执行程序) 静态分析器 代码复审(Code Review) 动态分析(执行程序) 黑盒测试 测试程序功能 白盒测试 测试程序结构,测试的文档,测试计划 测试项目的名称 各项测试的目的、步骤和进度 测试用例的设计 测试报告 测试项目名称 实测结果与期望结果的比较 发现的问题 测试达到的效果,黑盒测试,等价分类法(equivalence partitio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 设计
链接地址:https://www.31doc.com/p-3187986.html