OOAD 第6章 面向对象设计 CUMT
面向对象分析与设计 Object-Oriented Analysis and Design
第6章 面向对象的设计
张 磊 博士 副教授 zhanglei@《计算机网络》课件 制作人:谢希仁
6.1 什么是面向对象设计OOA与OOD的关系:
1、从OOA到OOD不是转换;——是调整和增补 将OOA模型搬到OOD; 进行必要的调整, 作为OOD模型的问题域 部分;
OOA 模型构件部署
增补其它四个部分,成 为完整的OOD模型。
人 机 交 互 部 分
问题域 部分
数 据 口 部 分
任务管理部分 课件制作人:谢希仁
2、采用一致的概念和表示法——不存在分析与设计之间的鸿沟
3、有不同的侧重点和不同的策略OOA主要针对问题域,识别有关的对象以及它们之 间的关系,产生一个映射问题域,满足用户需求,独立 于实现的OOA模型。 OOD主要解决与实现有关的问题,基于OOA模型, 针对具体的软、硬件条件(如机器、网络、OS、GUI、 DBMS等)产生一个可实现的OOD模型。
4、OOA与OOD可适合不同的生命周期模型——瀑布模型、螺旋模型、增量模型、喷泉模型
课件制作人:谢希仁
不同过程模型中的OOD分析 (OOA) 设计 (OOD) 喷泉模型
演化
集成 测试
编程 (OOP)测试 瀑布模型 维护
编程 (OOP)设计 (OOD) 分析 (OOA)
课件制作人:谢希仁
OOD——按实现条件对OOA模型进行调整,并 补充几个新的组成部分(也是由对象构成)与实现有关的因素: 图形用户界面系统 硬件、操作系统及网络 数据管理系统 其他——编程语言、可复用构件库……
基本思想:尽可能隔离实现 条件对系统的影 响——提供独立 的接口 对不可隔离的因 素,按实现条件 调整OOA模型
按实现条件调整 OOA模型
新增的组成部分,隔 离实现条件
实 现 条 件 实现条件
实 现 条 件
课件制作人:谢希仁
两种不同的观点第二种观点分 析 设 计
第二种观点的理由: (1)在各种分析/设计方法中 “做什么”和“怎么做”实际 上没有严格的划分”。 (2)过分强调“分析不考虑怎 么做”将使某些必须在OOA考虑 的问题得不到完整的认识。 (3)由于OO方法表示形式的一 致,不存在把细化工作留给设 计人员的必然理由。
第 一 种 观 点
问题域与 系统责任 分 析 做 什 么
与实现有 关的因素
设 计
怎 么 做
关键问题:对象的特征细节( 如属性的数据类型和服务流程 (4)避免重复地认识同一事物, 图),是在分析时定义还是在 并有利于分析结果的复用。 课件制作人:谢希仁 设计时定义?
Coad与Yourdon在设计阶段中采用分 析阶段中提到的五个层次。 不同的是,在设计阶段中,这五个层次 是用于建立系统的四个组成成份: 问题论域 用户界面 任务管理 数
据管理课件制作人:谢希仁
6.2 面向对象设计的设计准则(1) 模块化 模块化是软件设计的重要准则。在面向对象开发 方法中,将对象定义为模块。对象把数据结构和作 用在数据上的操作(方法)封装起来构成模块。对象 是组成系统的基本模块。 (2) 抽象 类是一种抽象数据类型,在该数据类型之上,可 以创建对象(类的成员)。类包含相似对象的共同属 性和服务,它对外定义了公共接口,构成了类的规 格说明(即协议),供外界合法访问。课件制作人:谢希仁
(3) 信息隐藏 在面向对象方法中,对象是属性和服务的封装体, 这就实现了信息隐藏。类结构分离了接口与实现, 类的属性的表示方法和操作的实现算法,对于类的 用户来说,都应该是隐藏的,用户只能通过公共接 口访问类中的属性。 (4) 弱耦合 不同对象之间耦合是不可避免的。两个对象必 须相互联系相互依赖时,应该通过类的协议(即公 共接口)实现两个对象相互依赖(耦合),而不是通过 类的具体实现细节来描述。 (5) 强内聚 在面向对象设计中,内聚可分为下述三类:课件制作人:谢希仁
1) 服务(操作)内聚。一个服务应该是单一的,即只完 成一个任务。 2) 类内聚。类内聚要求类的属性和服务应该是高内聚 的,而且它们应该是系统任务所必需的。一个类应 该只有一个功能,如果某个类有多个功能,通常应 该把它分解成多个专用的类。 3) 一般-特殊内聚。一般-特殊内聚表示:一般-特殊 结构符合领域知识的表示形式,也就是说,特殊类 应该尽量地继承一般类的。
课件制作人:谢希仁
(6)可重用 在面向对象设计中,一个类的设计应该具有通用性, 为开发相似的系统提供软件重用可能。因此,在软 件开发过程中,为了实现重用,既要尽量重用已有 的类,又要创建可重用的新类。
课件制作人:谢希仁
设计策略在使用面向对象方法学开发软件的实践中,得 出了下面一些基于经验的启发规则,这些规则往往 能帮助软件开发人员设计出好的方案来,以保证软 件的质量。 (1)设计结果应该清晰易懂 (2)一般-特殊结构的深度应适当 (3)设计简单的类 (4)设计简单的协议 (5)设计简单的服务 (6)减少设计变动课件制作人:谢希仁
设计结果应该清晰易懂
用词一致 使用已有的协议 减少消息模式的数目
避免模糊的定义
课件制作人:谢希仁
一般——特殊结构的深度应适当
应该使类等级中包含的层次数适当。 一般说来,在一个中等规模(大约包含100个类) 的系统中,类等级层次数应保持为7±2。
不应该仅仅从方便编码的角度出发随意
创建派生 类,应该使一般——特殊结构与领域知识或常识 保持一致。
课件制作人:谢希仁
设计简单的类
避免包含过多的属性 有明确的定义 尽量简化对象之间的合作关系
不要提供太多服务
课件制作人:谢希仁
使用简单的协议
一般说来,消息中的参数不要超过3个。 经验表明,通过复杂消息相互关联的对象是紧 耦合的,对一个对象的修改往往导致其他对象 的修改。
课件制作人:谢希仁
使用简单的服务
一般说,应该尽量避免使用复杂的服务。 如果一个服务中包含了过多的源程序语句, 或者语句嵌套层次太多,或者使用了复杂的 CASE语句,则应该仔细检查这个服务,设法 分解或简化它。
如果需要在服务中使用CASE语句,通常应该 考虑用一般——特殊结构代替这个类的可能性。
课件制作人:谢希仁
把设计变动减至最小
通常,设计的质量越高,设计结果保持不变的 时间也越长。 即使出现必须修改设计的情况,也应该使修改 的范围尽可能小
课件制作人:谢希仁
6.3 面向对象设计模型面向对象设计的五个层次、四个部分面向对象设计模型由主题、类-&-对象、结构、 属性和服务等五个层次组成,并且又扩充了问题域 (PDC)、人机交互(HIC)、任务管理(TMC)和数据管 理(DMC)四个部分。
典型的面向对象设计模型如图示。
课件制作人:谢希仁
…… 此处隐藏:1380字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




