- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章建立基本模型_类图
第4章 对系统的结构建模(类图); 4.1.1 概念与表示法
对象是具有明确语义边界并封装了状态和行为的实体,由一组属性和作用在这组属性上的一组操作构成,是构成系统的一个基本单位,它用于描述客观事物。
类是对一组具有相同属性和操作的一组对象的抽象描述。
类为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。
; 4.1.1 概念与表示法
一个类的所有对象具有相同的属性,是指所有对象的属性的个数、名称、数据类型都相同,各个对象的属性值则可以互不相同,并且随着程序的执行而变化。至于操作,对于一个类的所有对象都是一样的,即所有的对象共同使用它们的类定义中给出的操作。
由一个类生成的一个对象可以扮演不同的角色*。
当一个对象扮演一个具体角色时,它展现给世界一个外观,与对象交互的客户根据对象在某时所扮演的角色而期望一定的行为*。
一个类的一个角色是在特定的语境下该类的对象所呈现的行为。 ;类 名;
在使用用况图完成捕获与描述需求后,已经对问题域和系统责任进行了分析,把用户的的需求落实到了各个用况之中。
由于用况模型仅描述了系统内外的交互情况,从其中识别出来的对象与类肯定是不够全面的。
在识别对象与类时,问题域和系统责任仍是工作的基础。因为二者从不同的角度告诉分析员应该设立哪些对象。;*;2.考虑系统边界
1)? 把一些人员和设备看作问题域范畴以内的事物,系统中的对象是对它们的抽象描述。侧重于以系统中的对象模拟现实中的人和设备。
2)? 对系统边界之外与系统进行交互的参与者,系统中需要设立相应的对象处理系统与这些实际的人和设备的交互,侧重于以系统中的对象处理现实中的人和设备与系统的交互。
3) 在系统中设立一个对象,处理与外系统的接口。
;3.考虑系统责任
对照系统责任所要求的每一项功能,查看是否可以由现有的对象完成这些功能。如果发现某些功能在现有的任何对象中都不能提供,则可启发我们发现问题域中某些遗漏的对象。
如果已经建???了用况模型,考虑执行下列的附加步骤:
■???? 使用用况产生场景。
■???? 使用场景寻找已错过的类。
4.名词技术
从名词到对象或类通常有一对一的映射。运用名词、代词和名词短语识别对象和类(寻找“现实世界”的对象和类)。
用单个的专有名词或代词(Jim、他、她、雇员号5、我的工作站、我的家)以及直接引用的名词(第六个参赛者、第一百万次购买)识别对象。用复数名词(人们、顾客们、开发商们、用户们)以及普通名词(人、顾客、雇员、工作站)来识别类。;4.1.3 审查与筛选;*;
(3)与实现条件有关的对象,推迟到OOD考虑
系统责任所要求的某些功能—例如系统安装、配置、信息备份、浏览——可能无法从问题域中找到相应的对象来提供这些功能,可在设计阶段考虑专门为它们增加一些对象,既把它们推迟到设计阶段考虑。
系统责任要求的某些功能可能与实现环境有关,也推迟到设计阶段考虑。例如:与图形用户界面(GUI)系统、数据管理系统、硬件和操作系统有关的对象。;4.1.4 抽象出类;4.1.5认识对象的主动行为并识别主动对象;;4.1.6 类的命名
适合该类及其特殊类的全部对象实例*
汽车加摩托车-机动车;还有马车-车辆
反映个体而不是群体*
书-书籍;船-船舶*
使用名词,或带有定语的名词 ,避免无意义的符号
如线装书
考虑使用适当种类的语言文字对类命名。
在中国:可用中、英文双重命名*; 属性是用来描述对象静态特征的一个数据项
注意:属性是与问题高度相关的*。
从技术观点上,属性是一些变量(数据项或状态信息),包含它的每一个对象(实例)都具有自己的值。
按照面向对象方法的封装原则,一个对象的属性和操作是紧密结合的,对象的属性只能由这个对象的操作存取。
[可见性] 属性名[‘:’类型][‘ =’初始值]
可见性分为+(公有的)、#(受保护的)或 -(私有的)、 ~(包,只有在同一包中声明的类能够使用这一属性)。
在对象/类中,必须给每一个属性一个唯一的名字。
属性的类型可以是常见的基本数据类型,也可以是自己定义的类型。
; 通过在类范围属性名和类型表达式画下划线的方式,表示类范围的属性,否则属性是实例范围的。;识别属性* ;筛选 *
文档评论(0)