第五讲 定义属性与操作.ppt

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

第五讲 定义属性与操作 第五讲 定义属性与操作 (chap 5) 一、对象的属性与操作 二、定义属性 三、定义操作 四、建立类图的特征层 五、接口及其应用 一、对象的属性与操作 问题域中事物的特征可分为静态的和动态的;静态特征可以通过一些数据来表达;动态特征表明事物的行为,只能通过一些操作来表达;在OO方法中,事物的静态特征和动态特征分别用对象的一组属性和一组操作来表达。 属性:是用来描述对象静态特征的一个数据项; 操作:是用来描述对象动态特征(行为)的动作系列; 对象的封装原则:一个对象是其属性和操作的封装体,对象的属性只能由这个对象的操作来存取; 对象的操作分为内部操作和外部操作;外部操作对外提供一个消息接口,通过这个接口接收对象外部的消息并对外提供服务。 实例属性:是每个对象实例各自拥有的属性,它描述了各个对象实例自身的特征; 类属性:是一个类的全部对象实例共同拥有的属性,它的值被这个类的全部对象实例所共享。 主动操作:不需要接收消息就能主动执行的操作称为主动操作,用来定义进程、线程等; 被动操作:只有接收到消息才能执行的操作,用来定义函数、过程等 ; 二、定义属性 1、策略与启发 (1)按一般常识,分析对象应该具有哪些属性 如:学生(学号、姓名、年龄、课程、成绩等) 课程(名称、学分、学时、考试时间等) (2)在当前问题域中,分析对象应该具有哪些属性 如:商品(名称、价格、产地、数量、条形码等) (3)根据系统责任,分析对象应该具有哪些属性 如:信用卡(使用地点:银行、花店) (4)建立这个对象是了保存和管理哪些信息(与系统功能相关)如:商品(名称、价格、产地、数量、条形码等) (5)为实现操作的功能需要增设哪些属性 如:传感器:时间间隔(信号采集)、临界值(报警) (6)考虑是否增设描述对象状态的属性 如:设备:状态(关闭、待命、运行、故障) (7)用什么属性表示关联关系(包含聚合和组合):关联关系要通过在有关的对象中设立相应的属性来实现。 2、审查与筛选 (1)是否体现了以系统责任为目标的抽象(该属性是否提供了系统中有用的信息?) 如:图书(长、宽、高、重量) 人(身高、体重、年龄) (2)是否描述了对象本身的特征 如:课程(主讲教师姓名、主讲教师电话、主讲教师住址) (3)该属性是否可通过继承得到 (4)是否可从其他属性直接导出 如:职员(出生年月、年龄) 3、推迟到OOD考虑的问题 (OOA旨在建立一个反映问题域并独立于实现的系统分析模型,与实现条件有关的问题均应推迟到OOD阶段考虑。) (1)规范化问题 如:属性的数据类型 (2)对象标识问题 对象标识:是分配给每个对象的永久性标识,符合下列条件: a.在一定的范围或领域中是惟一的(惟一性); b.与对象实例的特征、状态及分类无关(独立性) ; c.在对象存在期间保持一致(一致性) 。 对象标识分为内部标识和外部标识。对象标识问题与实现时采用何种支持系统有关。 (3)性能问题 如:对象操作的执行速度 三、定义操作 通过分析对象在问题域中呈现的行为以及它所履行的系统责任来发现和定义对象的每个操作。 1、行为分类 (1)系统行为:与对象有关的某些行为实际上是不对象自身的行为,而是系统把对象看成一个整体来处理时施加于对象的行为,如:对象的创建、复制等; (2)封装原则引起的附加行为:按封装原则,任何读、写对象的动作都不能从对象外部直接进行,应由对象中相应的操作完成。 (3)对象自身的行为:对象所对应的事物的固有行为,要进行某些计算或监控操作。 2、策略与启发 (1)考虑系统责任:功能需求---对象---操作 如:类Book的操作 findBook():查找指定编号的Book对象; getTitleName():获取图书的标题名称 getID():获取图书的编号 setID():设置图书的编号 getLoan():获取图书的借阅记录 setLoan():设置图书的借阅状态 (2)考虑问题域:每个对象所代表的实际事物在问题域中呈现哪些行为? (3)分析对象的状态:在每种状态下对象发生了什么行为(用何操作描述)?状态的转移由什么操作引起? (4)追踪操作的执行路径 3、审查与调整 (1)检查每个操作是否真正有用(直接提供某种功能或响应其他对象请求而间接某项功能) (2)检查每个操作是不是高内聚的(一个操作只完成一项明确定义的、完整单一的功能) 4、认识对象的主动行为 (1)在问题域中,操作所描述的对象行为是否是由对象主动呈现? (2)重点考查与系统边界外的参与参与者直接交互的对象的行为? (3)完成系统最外层功能的操作 (4)按执行路径逆向追踪 5、操作过程描述 对操作的定义只给出它的定义,乃至

文档评论(0)

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

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

1亿VIP精品文档

相关文档