第七章-面向对象分析.ppt

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

对象的属性和服务 “程序=算法+数据结构”。从低级语言的数据单元和指令,到高级语言的变量和执行语句,无非是由数据和操作这两种成分构成对问题域的映射。 面向对象程序设计的不同之处只是在于:以对象为基本单位来组织系统中的数据和操作,形成对问题域中事物的直接映射。 问题域中事物的特征可分为静态的和动态的。静态特征可以通过一些数据来表达;动态特征表明事物的行为,只能通过一系列操作来表达。面向对象方法用对象表示问题域中的事物,并分别用对象的一组属性和服务来表达事物的静态和动态特征。 * 1、属性定义:描述对象静态特征的一个数据项 2、服务定义:描述对象动态特征(行为)的一个操作序列。 * 7.3.5 定义属性 1、策略与启发 1、从常理判断; 2、根据当前问题域分析; 3、从系统责任要求的角度分析; 4、建立这个对象涉及到系统中所需的信息,包括要保存和管理的信息; 5、对象有哪些需要区别的状态(用属性区分) 6、对象为了服务中实现其功能,需要增设属性 7、表示整体-部分结构或关联关系需要的属性。 …… * 7.3.5 定义属性 2、审查与筛选 通过提出问题的方式进行筛选。 1、某属性是否体现了以系统责任为目标的抽象 2、某属性是不是描述了对象本身的特征 4、某属性是否可以通过继承得到 5、某属性是否可以从其他属性直接导出 * 7.3.5 定义属性 3、推迟到OOD考虑的问题 OOA旨在建立一个反映问题域并独立于实现的系统逻辑模型,与实现有关的问题推迟到OOD 1、对象标识问题:用什么作为对象在系统中的唯一标识,依赖于实现支持系统提供何种对象表示机制 2、规范化问题:对象属性可能存在信息冗余。明显的信息冗余,可考虑消除。但不明显的冗余,为了对象属性与实际事物特征对应更为直接,可暂时保留。 3、性能问题:为了提高服务的执行速度,增加某些属性保持服务的阶段性成果。该问题可推迟考虑。 * 7.3.5 定义属性 4、属性的详细说明 1. 属性的说明:如果属性的命名不足以表明属性意义,则应给出简练的文字解释 。 2. 属性的数据类型:每个属性的说明应尽可能指出该属性的数据类型,不必非常精确。 3. 属性所体现的关系:用于表示整体-部分关系或关联关系的属性,应该指明并加以解释。 4. 实现要求及其他:如属性的精度要求、初值、取值范围、度量单位、数据完整性、存取条件等。 * 7.3 建立对象模型 1、确定类与对象 2、审查与筛选 3、关系分析 4、划分主题 5、定义属性 6、定义服务 * 7.3.6 定义服务 由于在动态模型和功能模型中明确描述了每个类中应该提供那些服务,因此需要等到建立了这两个模型之后才能最终确定类中应有的服务。 在确定类中应有的服务时,考虑该类实体的常规行为,以及在本系统中特殊需要的服务。 * * 7.3.6 定义服务——1、基本来源 1、常规行为 在分析阶段可认为,类中定义的每个属性都是可以访问的。也就是说,假设在每个类中都定义了读、写该类每个属性的操作。无需显式表示。 2、由动态模型分析 如状态图中发往对象的事件(也就是对象接收到的消息)的具体实现,需要在该对象中有由消息选择符指定的操作,这个操作修改对象状态(属性)并启动相应的服务。 3、从功能模型分析 如数据流图中的每个处理框图都与一个对象(或多个对象)上的操作相对应 如用例模型中的用例描述中的动作。 * 7.3.6 定义服务——2、审查与调整 对每个对象已发现的服务逐个进行审查,重点检查以下两点: (1)每个服务在系统中是否真正需要 任何一个有用的服务,或者直接提供某种系统责任所要求的功能,或者响应其他对象服务的请求而间接地完成某种功能的局部操作。 (2)其次是检查每个服务是不是高内聚的 适当拆分或合并。 * 7.3.6 定义服务——3、命名与定位 服务的名称应由动词和名词组成,它一般采用动宾结构。 服务放置在哪个对象,应和问题域中拥有这种行为的实际事物相一致。 在一般-特殊结构中,和属性的定位原则一样。通用的服务放在一般类,专用的服务放在特殊类,一个类的服务应适合这个类及其所有特殊类的每一个对象实例。 * 7.3.6 定义服务——4、服务说明 1)服务解释:用文字简练解释服务的作用及功能 2)消息协议:给出服务的入口消息格式,包括:服务名、输入/输出参数、参数类型。 3)消息发送:指出在这个服务执行时,需要请求哪些别的对象服务。 4)约束条件:如果该服务的执行有前置条件、后置条件以及执行时间的要求等需要说明的事项。 5)服务流程图:对于复杂的服务,可画出流程图。其详细程度能使设计、编程人员明白即可。 7.3 建立对象模型 反复修改 仅仅经过一次建模过程很难得到完全正确的对象模型,事实上软件开发过程是一个多次反复修改、逐步完善的过程。 在建模的任何一个步骤,如

文档评论(0)

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

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

1亿VIP精品文档

相关文档