电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

第11章 面向对象设计 11 11.1 面向对象设计的准则11.2 启发规则11.3 软件重用11.4 系统分解11.5 设计问题域子系统11.6 设计人机交互子系统教学文案

  • 资源ID:139091346       资源大小:526.50KB        全文页数:62页
  • 资源格式: PPT        下载积分:16金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要16金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

第11章 面向对象设计 11 11.1 面向对象设计的准则11.2 启发规则11.3 软件重用11.4 系统分解11.5 设计问题域子系统11.6 设计人机交互子系统教学文案

第11章 面向对象设计 11,11.1 面向对象设计的准则 11.2 启发规则 11.3 软件重用 11.4 系统分解 11.5 设计问题域子系统 11.6 设计人机交互子系统,11.7 设计任务管理子系统 11.8 设计数据管理子系统 11.9 设计类中的服务 11.10 设计关联 11.11 设计优化 小结,面向对象设计 设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。 从面向对象分析到面向对象设计(OOD),是一个逐渐扩充模型的过程。 许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。 面向对象方法的一大优势就是分析和设计活动之间的平滑(无缝)过渡.,面向对象设计可再细分为系统设计和对象设计。 系统设计确定实现系统的策略和目标系统的高层结构。 对象设计确定解空间中的类、关联、接口形式及实现服务的算法。 系统设计与对象设计之间的界限,比分析与设计之间的界限更模糊。 本章首先讲述为获得优秀设计结果应该遵循的准则,然后具体讲述面向对象设计的任务和方法。,优秀设计就是使得系统在其整个生命周期中的总开销最小的设计, 其主要特点就是容易维护。 结合面向对象方法的特点, 下面重温本书第5章讲述的指导软件设计的几条基本原理. 它们在进行面向对象设计时仍然成立。,11.1 面向对象设计的准则,4. 弱耦合 耦合主要指不同对象之间相互关联的紧密程度。 两个对象应该通过类的接口实现耦合,而不应该依赖于类的具体实现细节(友元)。 对象之间的两类耦合: (1) 交互耦合:交换消息 使交互耦合尽可能松散的准则:减少消息中包含的参数个数,降低参数的复杂程度, 减少消息数。 (2) 继承耦合:互为基类和派生类(非模块之间) 与交互耦合相反,应该提高继承耦合程度。 通过继承关系结合起来的基类和派生类,构成了更大的模块。,5. 强内聚 在面向对象设计中存在下述3种内聚。 (1) 服务内聚。一个服务应该完成一个且仅完成一个功能。 (2) 类内聚。设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。类的属性和服务应该全都是完成该类对象的任务所必需的。如果某个类有多个用途,通常应该把它分解成多个专用的类。 (3) 一般-特殊(继承)内聚。设计出的一般-特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的领域知识的正确抽取。 紧密的继承耦合与高度的一般-特殊内聚是一致的。,6. 可重用 重用有两方面的含义: 一是尽量使用已有的类 二是在设计新类的协议时考虑将来的可重用性。,1. 设计结果应该清晰易懂 保证设计结果清晰易懂的主要因素如下: (1) 用词一致:一词一用。 (2) 使用已有的协议。 (3) 减少消息模式的数目。 (4) 避免模糊的定义:类的用途有限,名清晰,11.2 启发规则,2. 一般-特殊结构的深度应适当 一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为72。 不应该仅仅从方便编码的角度出发随意创建派生类,应该使一般-特殊结构与领域知识或常识保持一致。,3. 设计简单的类 小而简单的类便于开发和管理(高内聚)。为使类保持简单,应该注意以下几点。 (1) 避免包含过多的属性:完成的功能可能太多了。 (2) 有明确的定义:任务应该简单。 (3) 简化对象之间的合作关系。如果需要多个对象协同配合才能做好一件事,则破坏了类的简明性和清晰性。 (4) 不要提供太多服务。典型地,一个类提供的公共服务不超过7个。,在开发大型软件系统时,遵循上述启发规则也会带来另一个问题:设计出大量较小的类,难继承, 这同样会带来一定复杂性。 解决这个问题的办法之一,是把系统中的类按逻辑分组,也就是划分“主题”。,4. 使用简单的协议 消息中的参数最好不要超过3个。 复杂消息导致对象紧耦合。 5. 使用简单的服务(模块复杂性) 类中的服务小为好,35行源程序语句,可用一个简单句子描述它的功能。 如果需要在服务中使用复杂的CASE语句,考虑用一般-特殊结构代替这个类的可能性。,6. 把设计变动减至最小(稳定性) 设计的质量越高,设计结果越稳定。 随着时间推移,设计方案日趋成熟,改动越来越小。,1. 重用 重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。软件重用可分为3个层次: (1) 知识重用(例如,软件工程知识的重用)。 (2) 方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。 (3) 软件成分的重用。 本节仅讨论软件成分重用问题。,11.3 软件重用 11.3.1 概述,2. 软件成分的重用级别 软件成分的重用的3个级别: (1)几种形式的代码重用 源代码剪贴:几乎无法跟踪原始代码块的修改 源代码包含#include :重新编译都用最新源代码 继承:可扩充或修改库中的类而不影响原有的代码 (2) 设计结果重用 重用某个软件系统的设计模型。e.g. 同(3) (3) 分析结果重用 重用分析模型, 例如,把一个应用系统移植到完全不同的软硬件平台上。,3. 10种典型的可重用软件成分 (1) 项目计划:软件质量保证计划。 (2) 成本估计:不同项目中类似功能的成本估算。 (3) 体系结构:事务类处理体系结构。 (4) 需求模型/规格说明:对象模型,数据流图。 (5) 设计:体系结构、数据、接口和过程设计。 (6) 源代码:兼容的程序构件。 (7) 用户文档和技术文档:部分重用。 (8) 用户界面:GUI 可占应用程序的60%代码量。 (9) 数据: 记录结构,文件和完整的数据库。 (10 测试用例:与重用设计或代码相关的用例。,面向对象技术中的类构件有3种重用方式:实例重用、继承重用和多态重用。 1. 可重用软构件应具备的特点 (1) 模块独立性强:具有单一、完整的功能,且经过反复测试被确认是正确的。,11.3.2 类构件,(2) 具有高度可塑性:必须提供为适应特定需求而扩充或修改已有构件的机制,且使用起来非常简单方便。 (3) 接口清晰、简明、可靠,详尽的文档说明。 精心设计的“类”基本上能满足上述要求。,2. 类构件的重用方式 (1) 实例重用 按照需要创建类的实例。然后向它发送消息,启动相应的服务,完成需要完成的工作。 还可以用几个简单实例/类创建出一个更复杂的类, 见继承重用。类提供的服务过少,则难被重用。 (2) 继承重用 提高继承重用的关键是设计合理的、具有一定深度的类构件继承层次结构: 每个子类只加入少量新属性和新服务,而降低其接口复杂度,表现出一个清晰的进化过程,提高可理解性;也为多态重用奠定了良好基础。,(3) 多态重用 利用多态性可简化对象的对外接口 (基类与派生类相同的对外接口),从而降低了消息的复杂程度。运行时,接收消息的对象由多态性机制启动自己特定的方法,去响应一个一般化的消息,从而简化了消息界面。 可能影响重用性的操作: 与表示方法有关的操作。例如,不同实例的比较、显示、擦除等等。 与数据结构、数据大小等有关的操作。 与外部设备有关的操作。例如,设备控制。 算法在将来可能会改进(或改变)的核心操作。,转换接口:重用时都必须重新定义的服务的集合, C+语言编程时,在基类中将其定义为纯虚函数。 扩充接口:有多种可能的实现算法的服务,派生类可改变算法或继承父类中的算法。用C+语言实现时,在基类中把这类服务定义为普通的虚函数。,1. 质量:重用构件错误较少 2. 生产率:3050%的重用导致生产率提高2540% 3. 成本节省:C=Cs-Cr/N-Cd,11.3.3 软件重用的效益,解决复杂问题的普遍策略:“分而治之,各个击破” 系统的主要组成部分称为子系统, 根据所提供的功能来划分。 子系统之间应该具有尽可能简单、明确的接口。 相对独立地设计各个子系统, 减少子系统彼此间的依赖性。 面向对象设计模型也由主题、类与对象、结构、属性、服务等5个层次组成。 在逻辑上都有4个子系统: 问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统。,11.4 系统分解,不同的软件系统中,这四个子系统的重要程度和规模可能相差很大: 某些系统仅有3个(甚至少于3个)子系统。,子系统之间的两种交互方式 (1) 客户-供应商关系 (Client-supplier) “客户”的子系统调用作为“供应商”的子系统,后者完成某些服务工作并返回结果。使用这种交互方案,作为客户的子系统必须了解作为供应商的子系统的接口,然而后者却无须了解前者的接口,因为任何交互行为都是由前者驱动的。,(2) 平等伙伴关系(peer-to-peer)关系 每个子系统都可能调用其他子系统,因此,每个子系统都必须了解其他子系统的接口。这种组织系统的方案比起客户-供应商方案来,交互更复杂,从而使系统难于理解,容易发生不易察觉的设计错误。 尽量使用客户-供应商关系。,2.水平层次和垂直块组织系统的两种方案 (1) 层次组织 每层是一个子系统。同层的对象,彼此间相互独立,而不同层的对象可存在客户-供应商关系。 层次结构又可进一步划分成: 1) 封闭式: 每层仅使用其直接下层提供的服务。 2) 开放式: 每层可以使用任何下层提供的服务。 优缺点: 简单/高效 通常,在需求陈述中只描述了对系统顶层和底层的需求,顶层就是用户看到的目标系统,底层则是可以使用的资源。 设计者必须设计一些中间层次: 过渡, 效率, 质量。,(2) 块状组织 把系统垂直地分解成若干个相对独立的、弱耦合的子系统/块,每块提供一种类型的服务。 采用层次与块状的混合结构,3. 设计(分布式)系统的拓扑结构 由子系统组成完整的系统时,典型的拓扑结构有管道形、树形、星形等。设计者应该采用与问题结构相适应的、尽可能简单的拓扑结构,以减少子系统之间的交互数量。 ATM系统的星型结构实例,设计受具体实现环境的约束: 本项目预计要使用的编程语言, 可用的软构件库(主要是类库) 程序员的编程经验。 分析模型,为设计奠定了基础, 应尽可能保留。 设计仅需从实现角度对模型做一些补充或修改:增添、合并或分解类与对象、属性及服务,调整继承关系等。,11.5 设计问题域子系统,1. 调整需求 一是用户需求或外部环境发生了变化; 二是对象分析模型不能完整、准确地反映用户的真实需求。 2. 重用已有的类 重用已有类的典型过程如下: (1) 选择重用最相似的已有类。 (2) 从被重用的已有类派生出问题域类。 (3) 增加或修改问题域类中需要的属性和服务。 (4) 修改与问题域类相关的关联。,3. 把问题域类组合在一起 可以引入一个根类把问题域类组合在一起。 e.g. 系统-子系统 4. 增添一般化类以建立协议 一些类需要有一个公共的协议:类似的服务, 共同接口。可以引入一个根类以便建立这个协议。,5. 调整继承层次 (1) 使用多重继承机制 阔菱形比窄菱形易避免属性及服务的命名冲突(载重)。,(2) 使用单继承机制 使用仅提供单继承机制的语言,必须多重继承结构转换成单继承结构。,人机交互子系统设计确定人机交互的细节,对GUI, 包括指定窗口和报表的形式、设计命令层次等。 原型是成功地设计人机交互的常用手段。 OOD的特点: 设计人机交互类, 重用, 如Visual C+的MFC类库。,11.6 设计人机交互子系统,对象可以并发地工作。 对象可能存在相互制约的顺序执行关系。 设计工作的一项内容就是,确定哪些是必须/可能同时动作的对象,哪些是相互制约的对象。,11.7 设计任务管理子系统,1. 分析并发性 动态模型是分析并发性的主要依据。 对象彼此间不存在(间接/传递)交互则它们可以是并发的。 检查对象的状态图及它们之间交换的事件,能够把若干个非并发的对象归并到一条控制线中:这条线上只有一个对象是活动的。 计算机中用任务(task)/进程(process)实现控制线。 并发行为既可以在不同的处理器上实现,也可以在单处理器上用多任务操作系统实现。,2. 设计任务管理子系统 任务分类: 事

注意事项

本文(第11章 面向对象设计 11 11.1 面向对象设计的准则11.2 启发规则11.3 软件重用11.4 系统分解11.5 设计问题域子系统11.6 设计人机交互子系统教学文案)为本站会员(yuzo****123)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.