济南职业学院申报省级精品课程软件工程负责人赛煜对象类的设计.ppt

济南职业学院申报省级精品课程软件工程负责人赛煜对象类的设计.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
济南职业学院申报省级精品课程软件工程负责人赛煜对象类的设计

第8章面向对象设计 8.1 面向对象设计的概念 8.2 问题域部分的设计 8.3 人-机交互子系统的设计 8.4 任务管理子系统设计 8.5 数据管理子系统设计 第8章面向对象设计 本章主要内容 面向对象设计的概念; 面对象设计的五个层次;面向对象设计的四项主要工作 。 本章重点:面向对象设计的概念和面向对象系统的五个层次(类及对象层、结构层、属性层、主题层和服务层 ; 本章难点:对象设计的五个层次 。 8.1 面向对象设计的概念 8.1.1面向对象设计的准则 8.1.2面向对象设计应遵循的原则 8.1.3面向对象设计的内容 8.1.1 面向对象设计的准则 模块化 抽象化 信息隐藏和封装 对象的高内聚和弱耦合 可扩充性 可重用性 模块化 模块是软件工程中一个基本的概念,它是软件系统的基石。在结构设计方法中,模块是按系统功能的划分而组织的执行实体 .而在面向对象方法中,对象就是模块,它是把数据和处理数据的方法(服务)结合在一起而构成的概念实体。 抽象化 包括过程抽象、数据抽象、规格说明抽象及参数化抽象等。面向对象方法既支持过程抽象,又支持数据抽象。使用者无需知道操作符的实现算法和类中数据元素的具体表示方法,就可以通过操作符使用类中的数据 信息隐藏和封装 封装是一种数据的构造方式,它从手段上保证了对象的数据结构和服务实现的隐蔽。在面向对象方法中,信息隐蔽是通过对对象的封装来实现的。类和对象在构造中将接口与实现过程分离,从而支持了实现过程信息的隐蔽。 对象的高内聚和弱耦合 内聚与耦合是软件设计中评价模块独立性(也就是,模块划分的质量)的指标。在面向对象方法中,对象和类成为基本模块,因此,模块内聚就是指一个对象或类中其内部属性和服务相互联系的紧密程度。在对象或类中存在三种不同类型的内聚: ? 服务内聚:对象中提供的服务在功能上、逻辑上的联系密切程度。 ? 类内聚:类的构造原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。类的属性和服务应该是完成该类承担的任务所必需的,其中不应有与任务无关的属性或服务。如果某个类有多个用途,通常应该把它分解成多个专用的类。 可扩充性   面向对象易扩充设计,继承机制以两种方式支持扩充设计。第一,继承关系有助于复用已有定义,使开发新定义更加容易。随着继承结构逐渐变深,新类定义继承的规格说明和实现的量也就逐渐增大。这通常意味着,当继承结构增长时,开发一个新类的工作量反而逐渐减小。第二,在面向对象的语言中,类型系统的多态性也支持可扩充的设计。 可重用性 软件可重用是提高软件开发生产率和目标系统质量的重要途径。重用基本上从设计阶段开始。重用有两方面的含义:一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类);二是在设计新类的协议时,应该考虑将来的可重复使用。 8. 1.2 面向对象设计应遵循的原则 人们使用面向对象方法开发软件有一定的历史,积累了一些经验。这些经验往往能帮助软件开发人员提高面向对象设计的质量。面向对象设计过程中应当遵循以下符合软件工程目标的设计原则: 设计的结果应以清晰易懂为首要原则 类的结构应尽量简明,层次深度应适当 尽量使用简单的协议 尽量简单的服务 设计的结果应以清晰易懂为首要原则 工程的首要原则就是清晰易懂,这主要体现在: ? 拥有含义明确的标识符号。 ? 尽量采用已有的协议:如果开发同—软件的其他设计人员已经建立了类的协议,在所使用的类库中已有相应的协议,则应该使用这些已有的协议。 ? 减少消息模式的数目:如果已有标准的消息协议,设计人员应该遵守这些协议。如果确需自己建立消息协议,则应该尽量减少消息模式的数目。 类的结构应尽量简明,层次深度应适当 定义类的结构,不要太过复杂。一是结构层次的分解应当有度;二是类的属性不要太多。属性过多通常表明这个类过于复杂,它所承担的系统责任可能更多,应当分解它;三是分配给每个类完成的任务也应该简单,并尽量简化对象之间的合作关系,如果完成一项任务需要太多的对象协同配合,可能会破坏类的简明性和清晰性;四是类中提供的服务应当少而精。 在大型软件系统开发中,类的大小和数量二者会呈现翘翘板现象,这同样会带来一定的复杂性。解决这个问题的办法,是把系统中的类按逻辑分组,也就是划分“主题”。 尽量使用简单的协议 一般说来,消息中的参数不要过多。经验表明,通过复杂消息相互关联的对象是高藕合的,一个对象的修改往往会导致其他对象的修改,产生修改副作用。 尽量简单的服务 如果一个服务的实现算法过于复杂,应该设法分解或简化它,一般说来,类和对象中应该尽量避免使用复杂的服务。 8

文档评论(0)

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

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

1亿VIP精品文档

相关文档