Part2_Chap04 发现对象、定义对象类2014-03-11_第1页
Part2_Chap04 发现对象、定义对象类2014-03-11_第2页
Part2_Chap04 发现对象、定义对象类2014-03-11_第3页
Part2_Chap04 发现对象、定义对象类2014-03-11_第4页
Part2_Chap04 发现对象、定义对象类2014-03-11_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、123第第4 4章章 发现对象、定义对象类发现对象、定义对象类 4.1 4.1 对象和类对象和类 4.2 4.2 表示法表示法 4.3 4.3 研究问题域和用户需求研究问题域和用户需求 4 4.4 .4 发现对象发现对象 4.5 4.5 对象分类对象分类 4.6 4.6 建立类图的对象层建立类图的对象层44.1 对象和类对象和类 4.1.1 对象、主动对象以及它们的类(对象、主动对象以及它们的类(1)是具有明确语义边界并封装了状态和行为的实体,由一是具有明确语义边界并封装了状态和行为的实体,由一组属性和作用在这组属性上的一组操作构成,是构成系统的一组属性和作用在这组属性上的一组操作构成,是构成

2、系统的一个基本单位,它用于描述客观事物。个基本单位,它用于描述客观事物。被动对象被动对象是对象的每个操作都是被动地响应从外部发来的消是对象的每个操作都是被动地响应从外部发来的消息才能执行。息才能执行。主动对象主动对象是至少有一个操作不需要接收消息就能主动执行的是至少有一个操作不需要接收消息就能主动执行的对象。对象。主动操作主动操作是对象中不需要接收消息就能主动执行的操作。是对象中不需要接收消息就能主动执行的操作。5是对一组具有相同属性和操作的一组对象的抽象描述,类是对一组具有相同属性和操作的一组对象的抽象描述,类为属于该类的全部对象提供了统一的抽象描述,其内部包括属为属于该类的全部对象提供了统

3、一的抽象描述,其内部包括属性和性和操作操作两个主要部分。两个主要部分。一个类的所有对象具有相同的属性,是指所有对象的属性的一个类的所有对象具有相同的属性,是指所有对象的属性的个数、名称、数据类型都相同,各个对象的属性值则可以互不个数、名称、数据类型都相同,各个对象的属性值则可以互不相同,并且随着程序的执行而变化。至于操作,对于一个类的相同,并且随着程序的执行而变化。至于操作,对于一个类的所有对象都是一样的,即所有的对象共同使用它们的类定义中所有对象都是一样的,即所有的对象共同使用它们的类定义中给出的操作。给出的操作。 4.1 对象与类对象与类 4.1.1 对象、主动对象以及它们的类(对象、主动

4、对象以及它们的类(2)6是主动对象的类。是主动对象的类。是不直接创建对象实例的类,用于定义特殊类所继是不直接创建对象实例的类,用于定义特殊类所继承的共同特性。承的共同特性。 由一个类生成的一个对象可以扮演不同的角色,当一个对由一个类生成的一个对象可以扮演不同的角色,当一个对象扮演一个具体角色时,它展现给世界一个外观,与对象交互象扮演一个具体角色时,它展现给世界一个外观,与对象交互的客户根据对象在某时所扮演的角色而期望一定的行为。的客户根据对象在某时所扮演的角色而期望一定的行为。 一个类的一个一个类的一个角色角色是是在特定的语境下该类的对象所呈现的在特定的语境下该类的对象所呈现的行为。行为。 4

5、.1 对象与类对象与类 4.1.1 对象、主动对象以及它们的类(对象、主动对象以及它们的类(3)7(1)一个类代表属于该类的全部独享实例所构成的群体。)一个类代表属于该类的全部独享实例所构成的群体。(2)一个类代表属于该类的任意一个对象实例。)一个类代表属于该类的任意一个对象实例。4.1 对象与类对象与类 4.1.2 类的语义类的语义84.1 对象与类对象与类 4.1.3 在类的抽象层次上建模在类的抽象层次上建模(1)充分性;)充分性;(2)必要性;)必要性;(3)符合人类的思维方式;)符合人类的思维方式;(4)与)与OOPL保持良好的对应;保持良好的对应;(5)避免建模概念过分复杂;)避免建

6、模概念过分复杂;(6)消除抽象层次上的混乱。)消除抽象层次上的混乱。94.1 对象与类对象与类 4.1.4 如何运用对象和类的概念如何运用对象和类的概念(1)以对象为基本概念来认识问题域,将问题域中的事物)以对象为基本概念来认识问题域,将问题域中的事物抽象为对象;抽象为对象;(2)将具有共同特征的对象抽象为类,用类以及它们之间)将具有共同特征的对象抽象为类,用类以及它们之间的关系构成整个系统模型;的关系构成整个系统模型;(3)模型中不包括实例级的建模元素,用类表示属于该类)模型中不包括实例级的建模元素,用类表示属于该类的任何对象;的任何对象;(4)在类的规约中说明这个类创建哪些对象实例。)在类

7、的规约中说明这个类创建哪些对象实例。10类类 名名普通普通类,展开方式类,展开方式(1)普通类表示法:)普通类表示法:在在模型模型中用类符号来表示一个类,中用类符号来表示一个类,它代表属于该类的全部对象实例。它代表属于该类的全部对象实例。最上面的那个名称栏包含类名;中间的分栏包含属性列表;最下面的分最上面的那个名称栏包含类名;中间的分栏包含属性列表;最下面的分栏包含操作列表。栏包含操作列表。每个属性和操作各占一行,每个属性和操作各占一行,对象名:类名对象4.2 类表示法类表示法类类 名名普通普通类,压缩方式类,压缩方式11类名类名主动主动主动类,展开方式主动类,展开方式(2)主动类表示法:)主

8、动类表示法:在在模型模型中用类符号来表示一个类,中用类符号来表示一个类,它代表属于该类的全部对象实例。它代表属于该类的全部对象实例。类名UML2.0表示法4.2 类表示法类表示法主动类,压缩方式主动类,压缩方式类名类名主动主动12用户需求用户需求就是用户对所开发的系统提出的各种要就是用户对所开发的系统提出的各种要求和期望。求和期望。n 阅读阅读n 交流交流n 调查调查n 记录记录n 整理整理4.3 研究问题域和用户需求研究问题域和用户需求 4.3.1 研究用户需求,明确系统责任研究用户需求,明确系统责任13问题域(问题域(problem domain)指被开发的应用系统所指被开发的应用系统所考

9、虑的整个业务范围。考虑的整个业务范围。 亲临现场亲临现场 认真听取领域专家的见解认真听取领域专家的见解 阅读阅读 借鉴借鉴4.3 研究问题域和用户需求研究问题域和用户需求 4.3.2 研究问题域研究问题域14系统边界是指一个系统所包含的所有系统成本系统边界是指一个系统所包含的所有系统成本与系统以外各种事务之间的分界线。与系统以外各种事务之间的分界线。 参与者:人员、设备、外系统。参与者:人员、设备、外系统。 4.3 研究问题域和用户需求研究问题域和用户需求 4.3.3 确定系统边界确定系统边界15要进行抽象,必须确定一个目标,这个目标就是要进行抽象,必须确定一个目标,这个目标就是系统责任。系统

10、责任。4.4 发现对象发现对象 4.4.1 出发点出发点问题域和系统责任问题域和系统责任16(2)还要考虑把事物抽象成什么对象,以及如)还要考虑把事物抽象成什么对象,以及如何对这些对象进行分类。何对这些对象进行分类。(3)应该把握)应该把握“先松后紧先松后紧”原则。原则。4.4 发现对象发现对象 4.4.2 正确地应用抽象原则正确地应用抽象原则174.4 发现对象发现对象 4.4.3 策略与启发(策略与启发(1)1. 考虑问题域考虑问题域1)人员;)人员; 2)组织;)组织; 3)物品;)物品; 4)设备)设备5)抽象事物;)抽象事物; 6)事件)事件7)文件)文件8)结构)结构184.4 发

11、现对象发现对象 4.4.3 策略与启发(策略与启发(2)2考虑系统边界考虑系统边界 1)人员)人员 2)设备)设备 3)外系统)外系统19“事事有人做事事有人做” 从名词到对象或类通常有一对一的映射。运用名词、代词和名词短语识别对象和类(寻找“现实世界”的对象和类)。 4.4 发现对象发现对象 4.4.3 策略与启发(策略与启发(3)201. 舍弃无用的对象舍弃无用的对象1) 通过属性判断:通过属性判断:是否通过属性记录了某些有用的信息?是否通过属性记录了某些有用的信息?2) 通过操作判断:通过操作判断:是否通过操作提供了某些有用的功能?是否通过操作提供了某些有用的功能?二者都不是二者都不是无

12、用,无用,“人人有事做人人有事做”。 通常,对象应该具有多个属性和操作。也存在对象没有属通常,对象应该具有多个属性和操作。也存在对象没有属性仅提供操作,或有属性无操作的情况。性仅提供操作,或有属性无操作的情况。 4.4 发现对象发现对象 4.4.4 审查与筛选审查与筛选(1)212. 对象的精简对象的精简1) 只有一个属性的对象只有一个属性的对象2) 只有一个只有一个操作操作的对象的对象班级班级班主任班主任姓名姓名11班级班级班主任姓名班主任姓名输出设备输出设备格式转换器格式转换器文件格式转换文件格式转换输出设备输出设备文件格式转换文件格式转换4.4 发现对象发现对象 4.4.4 审查与筛选审

13、查与筛选(2)22 系统责任所要求的某些功能系统责任所要求的某些功能例如系统安装、配置、信息例如系统安装、配置、信息备份、浏览备份、浏览可能无法从问题域中找到相应的对象来提供可能无法从问题域中找到相应的对象来提供这些功能,可在设计阶段考虑专门为它们增加一些对象,既这些功能,可在设计阶段考虑专门为它们增加一些对象,既把它们推迟到设计阶段考虑。把它们推迟到设计阶段考虑。 系统责任要求的某些功能可能与实现环境有关,也推迟系统责任要求的某些功能可能与实现环境有关,也推迟到设计阶段考虑。到设计阶段考虑。例如:与图形用户界面(例如:与图形用户界面(GUIGUI)系统、数)系统、数据管理系统、硬件和操作系统

14、有关的对象。据管理系统、硬件和操作系统有关的对象。4.4 发现对象发现对象 4.4.4 审查与筛选审查与筛选(3)23 主动对象是具有主动行为的对象,在设计阶段是拥有线程或进程并能够启动控制活动的对象。主动类是其实例为主动对象的类。 识别主动对象的策略:识别主动对象的策略:(1)考虑问题域)考虑问题域 哪些对象需呈现主动行为?哪些对象需呈现主动行为?-按定义按定义(2)考虑系统执行情况)考虑系统执行情况 根据系统责任观察系统功能的构成层次,重点考虑完成最外层功根据系统责任观察系统功能的构成层次,重点考虑完成最外层功能的对象是否应定义为主动对象。能的对象是否应定义为主动对象。 (3)考虑系统边界

15、)考虑系统边界 哪些对象与参与者交互?如果一个交互是由参与者发起的,第一哪些对象与参与者交互?如果一个交互是由参与者发起的,第一个处理该交互的对象是主动对象。个处理该交互的对象是主动对象。4.4 发现对象发现对象 4.4.5 识别主动对象(识别主动对象(1)24 识别主动对象的策略:识别主动对象的策略:(4)进行操作执行路线的逆向追踪。 (5)在分析阶段不能完全确定主动对象。 4.4 发现对象发现对象 4.4.5 识别主动对象(识别主动对象(2)25先使用问题域知识从对象中识别出类,然后依据对象先使用问题域知识从对象中识别出类,然后依据对象和类的定义,使用概括来寻找两个或多个共享相同特征和类的

16、定义,使用概括来寻找两个或多个共享相同特征的对象,概括这些共同的方面来形成类。的对象,概括这些共同的方面来形成类。 从对象到类的抽象过程,中间并没有一个明显的分界从对象到类的抽象过程,中间并没有一个明显的分界线,常常在无形中发生。线,常常在无形中发生。4.5 对象分类对象分类 4.5.1 将对象抽象为类将对象抽象为类261. 类的属性或操作不适合该类的全部对象类的属性或操作不适合该类的全部对象 例:例:“汽车汽车”类的类的“乘客限量乘客限量”属性,不适合于吊车、铲车。属性,不适合于吊车、铲车。问题:分类不够详细,采取措施:进一步划分特殊类。问题:分类不够详细,采取措施:进一步划分特殊类。 2.

17、 属性及操作相同的类属性及操作相同的类 经过抽象,差别很大的事物可能只保留相同的特征,经过抽象,差别很大的事物可能只保留相同的特征, 考虑能否合并为一个类,如计算机与吸尘器考虑能否合并为一个类,如计算机与吸尘器 3. 属性及操作相似的类属性及操作相似的类 考虑能否提升出一个一般类,或形成整体部分结构。考虑能否提升出一个一般类,或形成整体部分结构。例例:轿车、货车,抽象出汽车;机床与鼓风机用电机做成分轿车、货车,抽象出汽车;机床与鼓风机用电机做成分. 4. 同一事物的重复描述同一事物的重复描述 例:例:“职员职员”和和“工作证工作证” 取消其中一个取消其中一个4.5 对象分类对象分类 4.5.2

18、 检查和调整检查和调整27(1)类的名字应该恰好符合这个类(和它的特殊类)所类的名字应该恰好符合这个类(和它的特殊类)所包含的每个对象。包含的每个对象。(2)类的名字,应该反映每个对象个体,而不是整个群)类的名字,应该反映每个对象个体,而不是整个群体。体。(3)采用名词,或者带有定语的名词(如)采用名词,或者带有定语的名词(如“书书”或者或者“线装书线装书”);使用规范的词汇,不用市井俚语;使用领域专);使用规范的词汇,不用市井俚语;使用领域专家及用户惯用词汇。家及用户惯用词汇。(4)使用便于交流的语言文字。)使用便于交流的语言文字。4.5 对象分类对象分类 4.5.3 类的命名类的命名28(1)用)用类符号表示每个类,填写类的名称;类符号表示每个类,填写类的名称;(2)对于已经确认的主动对象,在类名之前增加主动标)对于已经确认的主动对象,在类名之前增加主动标记记主动主动或者或者符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论