- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)