第8章面向对象探究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三部分 面向对象的软件开发方法;8.1 什么是面向对象分析 ;8.1 什么是面向对象分析;8.1 什么是面向对象分析;8.1 什么是面向对象分析;8.2 建立基本模型——类图;8.2.1 对象与类 ;8.2.1 对象与类;8.2.1 对象与类;1、研究问题域 考虑问题域,侧重于客观存在的事物与系统中对象的映射。 可以启发分析员发现对象的因素包括:人员、组织机构、物品、设备、事件(如索赔、上访、交易)、表格、日志、报告和结构等。 其中的结构可能是多种多样的,例如,在概念类别上,汽车之上有车辆,之下可细分为客车和轿车,左右有摩托车和拖拉机,之内有发动机。它还可作成车队的一个成分。;2.考虑系统边界 1)? 把一些人员和设备看作问题域范畴以内的事物,系统中的对象是对它们的抽象描述。侧重于以系统中的对象模拟现实中的人和设备。 2)? 对系统边界之外与系统进行交互的参与者,系统中需要设立相应的对象处理系统与这些实际的人和设备的交互,侧重于以系统中的对象处理现实中的人和设备与系统的交互。 3) 在系统中设立一个对象,处理与外系统的接口。 ;3.考虑系统责任 对照系统责任所要求的每一项功能,查看是否可以由现有的对象完成这些功能。如果发现某些功能在现有的任何对象中都不能提供,则可启发我们发现问题域中某些遗漏的对象。 如果已经建立了用况模型,考虑执行下列的附加步骤: ■???? 使用用况产生场景。 ■???? 使用场景寻找已错过的类。;审查与筛选; (2)与实现条件有关的类,推迟到OOD考虑 系统责任所要求的某些功能—例如系统安装、配置、信息备份、浏览——可能无法从问题域中找到相应的对象来提供这些功能,应该在设计阶段考虑专门为它们增加一些类,既把它们推迟到设计阶段考虑。 系统责任要求的某些功能可能与实现环境有关,也推迟到设计阶段考虑。例如:与图形用户界面系统、数据管理系统、硬件和操作系统有关的类。;(1)简化 对只有一个属性的类; (2)类的属性或操作不适合该类的全部对象 例:“汽车”类的“乘客限量”属性,不适合于吊车、铲车。 问题:分类不够详细 ——进一步划分特殊类 (3)属性及操作相同的类* 经过抽象,差别很大的事物可能只保留相同的特征 ——考虑能否合并为一个类,如计算机与吸尘器 (4)属性及操作相似的类* ——考虑能否提升出一个一般类*,或形成整体部分结构。 例:轿车、货车,抽象出汽车;机床与鼓风机用电机做成分. (5)对职责过多的类进行分解 ;8.2.1 对象与类;8.2.1 对象与类;类的命名 适合该类及其特殊类的全部对象实例* ;建立类图的对象层 用类符号表示每个对象类 填写类描述模板 若发现新的属性与操作、关系,可以随时加到类符号中。;8.2.2 定义属性与操作; 通过在类范围属性名和类型表达式画下划线的方式,表示类范围的属性,否则属性是实例范围的。;识别属性* ;筛选 * 是否体现了以系统责任为目标的抽象;例:书的重量* ? 是否描述对象本身的特征;例:课程—电话号码* ? 一个属性所对应的一个事物性质的粒度要适当。 例如人的通信地址,包括国家、省、城市、街道、门牌号码等内容,但这些内容在通信地址这个概念上是不可分的。在定义“人员”对象的属性时,应该使用一个属性“通信地址”,而不应把有关通信地址的各项内容拆散开用多个属性来描述。 若一个对象与另一个对象有关系,其属性必须捕获该对象的性质,而不是关系或关系中的其他对象的性质; 如属性必须是整个实体的特征,而不是其成分的特征* 是否可通过继承得到? 可以从其它属性直接导出的属性*; 与实现有关的因素,推迟到OOD考虑(规范化、对象标识、性能问题);属性的命名和定位 命名:原则与类的命名相同 定位:针对所描述的对象,适合全部对象实例。; 操作是类的对象被要求执行的服务。 [可见性] 操作名[‘(‘参数列表’)’][‘:’返回类型] 可见性的取值为+(公有的)、#(受保护的) 、-(私有的)或~(包) 。 内部操作和外部操作, 特征标记 类操作是用来操纵类属性的操作。 例如C++中的前面冠以static的成员函数,就是类范围操作 表示法 类范围的操作用带下划线的名字和类型表达式串表示。实例范围操作是默认的,对其不用标记。; 如果想要在OOA阶段记录方法的详细文字描

文档评论(0)

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

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

1亿VIP精品文档

相关文档