网站大量收购独家精品文档,联系QQ:2885784924

软件工程面向对象设计课件.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 面向对象设计 第八章 面向对象设计 说明 简写为OOD 面向对象设计就是用面向对象观点建立求解域模型的过程 面向对象设计可以被分为两个阶段 系统设计 确定实现系统的策略和目标系统的高层结构 对象设计 确定解空间中的类、关联、接口形式及实现服务的算法 第八章 面向对象设计 8.1 面向对象设计的准则 8.2 启发规则 8.3 系统分解 8.4 设计问题域子系统 8.5 设计人-机交互子系统 8.6 设计任务管理子系统 第八章 面向对象设计 8.7 设计数据管理子系统 8.8 设计类中的服务 8.9 设计关联 8.10 设计优化 8.11 实例 8.1 面向对象设计的准则 明确 设计决定质量,决定可维护性 第四章的几条原理仍然有效,增加了面向对象的特点 模块化 抽象 逐步求精 信息隐藏 8.1 面向对象设计的准则 1、模块化 2、抽象 3、信息隐藏 4、弱耦合 交互耦合(仅通过消息连接来实现) 尽量降低消息连接的复杂程度 减少对象发送(或接收)的消息数 8.1 面向对象设计的准则 4、弱耦合 继承耦合 应该越紧密越好 在设计时应该使特殊类尽量多继承并使用其一般化类的属性和服务 5、强内聚 服务内聚 类内聚 一般-特殊内聚(应符合多数人的概念) 8.1 面向对象设计的准则 6、可重用 首先,尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类) 其次,如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性 8.2 启发规则 明确 回顾第四章中的七条启发式规则 提高模块独立性 模块规模应该适中 深度、宽度、扇出和扇入都应适当 模块的作用域应该在控制域之内 力争降低模块接口的复杂程度 设计单入口单出口的模块 模块功能应该可以预测 8.2 启发规则 一、设计结果应该清晰易懂-为了以后可能的重用服务 1、用词一致 2、使用已有的协议 3、减少消息模式的数目 4、避免模糊的定义 8.2 启发规则 二、一般-特殊结构的深度应适当 应该使类等级中包含的层次数适当(即继承的层数) 8.2 启发规则 三、设计简单的类 1、避免包含过多的属性 2、有明确的定义 3、尽量简化对象之间的合作关系 4、不要提供太多服务 典型地,一个类提供的公共服务不超过7个 8.2 启发规则 四、使用简单的协议 一般来说,消息中的参数不要超过3个(不是绝对的) 五、使用简单的服务 面向对象设计出来的类中的服务通常都很小,一般只有3~5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能 8.2 启发规则 六、把设计变动减至最小 通常,设计的质量越高,设计结果保持不变的时间也越长 8.3 系统分解 说明 大多数系统的面向对象设计模型,在逻辑上都由四大部分组成。这四大部分对应于组成目标系统的四个子系统 问题域子系统 人-机交互子系统 任务管理子系统 数据管理子系统 8.3 系统分解 说明 面向对象设计模型也包含五个层次 主题层 类-对象层 结构层 属性层 服务层 8.3 系统分解 8.3 系统分解 一、子系统之间的两种交互方式 客户-供应商关系(Client_supplier) 单向交互 平等伙伴关系(peer_to_peer) 双向交互 推荐 8.3 系统分解 二、组织系统的两种方案 1、层次组织 封闭式 马尔可夫原则 开放式 2、块状组织 这种组织方案把软件系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务 8.4 设计问题域子系统 说明 面向对象设计仅需从实现角度对问题域模型作一些补充或修改,主要是增添、合并或分解类—&—对象、属性及服务,调整继承关系等。当问题域子系统过分复杂庞大时,应该把它进一步分解成若干个更小的子系统 8.4 设计问题域子系统 一、调整需求 用户需求或外部环境发生了变化 分析员对问题域理解不透彻或缺乏领域专家帮助,导致面向对象分析模型不能准确反映用户的真正需求 二、重用已有的类 三、把问题域类组合在一起 在面向对象设计过程中,设计者往往通过引入一个根类而把问题域类组合在一起 8.4 设计问题域子系统 四、增加一般化类以建立协议 五、ATM系统之例 见下页 星型拓扑 所划分的三个更小的子系统实际上就是分析阶段所划分的三个主题 8.5 设计人-机交互子系统 说明 在第四章的基础上从面向对象设计的角度做些补充 一、设计人-机交互界面的准则 1、一致性 使用一致的术语,一致的步骤,一致的动作 2、减少步骤 8.5 设计人-机交互子系统 8.5 设计人-机交互子系统 一、设计人-机交互界面的准则 3、及时提供反馈信息 8.5 设计人-机交互子系统 一、设计人-机交互界面的准则 4、提供撤销命令 5、无须记忆 6、易学 8.5 设计人-机交互子系统 8

文档评论(0)

a336661148 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档