定义对象间关系课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《定义对象间关系课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定义 对象 关系 课件
- 资源描述:
-
1、软件建模与分析软件建模与分析 2015.9-2015.10计算机科学与技术专业与软件工程专业计算机科学与技术专业与软件工程专业23对象之间的四种关系对象之间的四种关系1 1一般一般- -特殊关系特殊关系 又称又称继承继承关系,反映事物的分类。由关系,反映事物的分类。由这种关系可以形成这种关系可以形成一般一般- -特殊结构特殊结构。2 2整体整体- -部分关系部分关系即即聚合聚合关系。反映事物的构成。由这种关系。反映事物的构成。由这种关系可以形成关系可以形成整体整体- -部分结构部分结构。3 3关联关系关联关系对象实例集合(类)上的一个关系,其中的对象实例集合(类)上的一个关系,其中的元素提供了
2、被开发系统的应用领域中一组有意义的信息。元素提供了被开发系统的应用领域中一组有意义的信息。4 4消息关系消息关系 对象之间的动态联系,即一个对象在执行其对象之间的动态联系,即一个对象在执行其操作时,请求其他对象为它执行某个操作,或者向其他对象传操作时,请求其他对象为它执行某个操作,或者向其他对象传送某些信息。反映了事物之间的行为依赖关系。送某些信息。反映了事物之间的行为依赖关系。这些关系形成了类图的关系层这些关系形成了类图的关系层4概念概念同义词同义词 和和 近义词近义词继承(继承(inheritance)是描述一般类和特殊类之间关系的最传统、最经典的术是描述一般类和特殊类之间关系的最传统、最
3、经典的术语。有时作为动词或形容词出现。语。有时作为动词或形容词出现。一般一般-特殊(特殊(generalization-specialization)含义最准确,而且不容易产生误含义最准确,而且不容易产生误解,恰切地反映了一般类(概念)和特殊类(概念)之间的相对(二元)关系解,恰切地反映了一般类(概念)和特殊类(概念)之间的相对(二元)关系;也用于描述结构,即一般;也用于描述结构,即一般-特殊结构。缺点是书写和阅读比较累赘。特殊结构。缺点是书写和阅读比较累赘。泛化(泛化(generalization)取取“一般一般-特殊特殊” 的一半,是的一半,是UML的做法。比较简练的做法。比较简练,但是只
4、反映了问题的一方面。作为关系的名称尚可,说结构是一个,但是只反映了问题的一方面。作为关系的名称尚可,说结构是一个“泛化泛化”则很勉强。则很勉强。分类(分类(classification)接近人类日常的语言习惯,接近人类日常的语言习惯, 体现了类的层次划分,也体现了类的层次划分,也作为结构的名称。在许多的场合被作为一种原则。作为结构的名称。在许多的场合被作为一种原则。本书主要采用本书主要采用“一般一般-特殊特殊”这个术语这个术语8.1一般一般-特殊结构特殊结构相关概念:一般类、特殊类、继承、多继承、多态相关概念:一般类、特殊类、继承、多继承、多态语义:语义:“is a kind of ”5一般一
5、般-特殊关系(继承关系)是类之间的一种二元关系特殊关系(继承关系)是类之间的一种二元关系是一种是一种基本的模型元素基本的模型元素;由这种关系所形成的结构是一般由这种关系所形成的结构是一般-特殊结构特殊结构是一种是一种复合的模型成分复合的模型成分。人员人员股东股东职员职员顾客顾客股东职员股东职员例:例:这是这是1个一般个一般-特殊结构特殊结构 包含包含5个一般特殊关系个一般特殊关系6特殊类一般类的特征一般类特殊类的特征只要有这些特征必须有这些特征对象实例集合对象实例集合特征集合特征集合理解一般类与特殊类之间的关系定义定义1:如果类如果类A A具有类具有类B B的全部属性和全部操作,而且具的全部属
6、性和全部操作,而且具有自己特有的某些属性或操作,则有自己特有的某些属性或操作,则A A叫做叫做B B的特殊类,的特殊类,B B叫叫做做A A的一般类。一般类与特殊类又称父类与子类。的一般类。一般类与特殊类又称父类与子类。定义定义2 2:如果类如果类A A的全部对象都是类的全部对象都是类B B的对象,而且类的对象,而且类B B中存中存在不属于类在不属于类A A的对象,则的对象,则A A是是B B的特殊类,的特殊类,B B是是A A的一般类。的一般类。书中证明,以上两种定义是等价的书中证明,以上两种定义是等价的一般类和特殊类的两个定义一般类和特殊类的两个定义7表示法表示法 * 对继承的属性或操作重
7、新定义对继承的属性或操作重新定义 拒绝继承拒绝继承 多态性的表示符号多态性的表示符号一般类一般类特殊类特殊类特殊类特殊类集中式集中式一般类一般类特殊类特殊类特殊类特殊类分散式分散式人员人员股东股东职员职员顾客顾客股东职员股东职员例:例:8如何发现一般如何发现一般-特殊结构特殊结构(1)学习当前领域的分类学知识)学习当前领域的分类学知识(2)按常识考虑事物的分类)按常识考虑事物的分类(3)根据一般类和特殊类的两种定义)根据一般类和特殊类的两种定义(4)考察属性与操作的适应范围)考察属性与操作的适应范围?公司人员公司人员姓名姓名身份证号身份证号股份股份工资工资 ?公司人员公司人员姓名姓名身份证号身
8、份证号 股东股东股份股份 职员职员工资工资 股东股东姓名姓名身份证号身份证号股份股份 职员职员姓名姓名身份证号身份证号工资工资 股东股东股份股份职员职员工资工资 ?公司人员公司人员姓名姓名身份证号身份证号 9(5 5)考虑领域范围内的复用)考虑领域范围内的复用现钞收款机现钞收款机 A A B B C C D D E E F F X X Y Y Z Z收款机收款机A AB BC CX XY Y现钞收款机现钞收款机 D D E E F F Z Z领域构件10(1 1)问题域是否需要这样的分类?(例:书)问题域是否需要这样的分类?(例:书线装书)线装书)(2 2)系统责任是否需要这样的分类?(例:职
9、员)系统责任是否需要这样的分类?(例:职员本市职员)本市职员)(3 3)是否符合分类学的常识?(用)是否符合分类学的常识?(用“is a kind of ”is a kind of ”来衡量)来衡量)审查与调整审查与调整(4 4)是否真正地继承了一些属性或操作?)是否真正地继承了一些属性或操作?( (航标船航标船船船) ) 飞机飞行高度 自动导航 ? 汽车发动机载重量速度运输运输工具发动机载重量速度 飞机飞行高度 自动导航 汽车运输11一般一般- -特殊结构的简化特殊结构的简化(1 1)取消没有特殊性的特殊类)取消没有特殊性的特殊类运输工具发动机载重量速度 飞机飞行高度 自动导航 汽车运输运输
10、工具发动机载重量速度 飞机飞行高度 自动导航 运输提问:提问:这种简化带来的问这种简化带来的问题是什么?题是什么?12(2 2)增加属性简化一般特殊结构)增加属性简化一般特殊结构 人员人员男男 人人女女 人人中国人中国人美国人美国人日本人日本人人员人员性别性别国籍国籍13(3 3)取消用途单一的一般类,减少继承层次)取消用途单一的一般类,减少继承层次一般类存在的理由:一般类存在的理由:* * 有两个或两个上以上的特殊类有两个或两个上以上的特殊类* * 需要用它创建对象实例需要用它创建对象实例* * 有助于软件复用有助于软件复用设设 备备型号型号生产厂生产厂开启开启关闭关闭 雷雷 达达安装地点安
11、装地点 监控监控 雷达雷达型号型号生产厂生产厂安装地点安装地点 开启开启关闭关闭监控监控电子设备电子设备激光打印机激光打印机传真机传真机通讯设备设备电子设备计算机设备打印机民用通讯设备激光打印机传真机14多继承:多继承:允许一个允许一个特殊类具有一个以上一般类的继承模式特殊类具有一个以上一般类的继承模式多继承特殊类的内部情况在职研究生在职研究生姓名姓名学号学号班级班级专业专业职称职称专业专业在职单位在职单位来自来自“人员人员”类类来自来自“研究生研究生”类类来自来自“教职工教职工”类类本类中显式定义本类中显式定义人员人员姓名姓名教职工教职工职称职称专业专业研究生研究生学号学号班级班级专业专业在
12、职研究生在职研究生在职单位在职单位 例例:命名命名冲突冲突重复重复继承继承15多态多态:多态是指同一个命名可具有不同的语义。多态是指同一个命名可具有不同的语义。OO方法中,方法中,常指在一般类中定义的属性或操作被特殊类继承之后,常指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。可以具有不同的数据类型或表现出不同的行为。多边形边数顶点数据绘图XY矩形边数*顶点数据*绘图正多边形*顶点数据*绘图例:例:16语义:语义:“a part of”或或“has a”聚合关系描述了对象实例之间的构成情况,然而它的定义聚合关系描述了对象实例之间的构成情况,然而它的定义却
13、是在类的抽象层次给出的。却是在类的抽象层次给出的。从集合论的观点看聚合关系从集合论的观点看聚合关系整体整体-部分关系(聚合关系)部分关系(聚合关系)是两个类之间的二元关系,其是两个类之间的二元关系,其中一个类的某些对象是另一个类的某些对象的组成部分。中一个类的某些对象是另一个类的某些对象的组成部分。整体整体-部分结构部分结构是把若干具有聚合关系的类组织在一起所形是把若干具有聚合关系的类组织在一起所形成的结构。它是一个以类为结点,以聚合关系为边的连通成的结构。它是一个以类为结点,以聚合关系为边的连通有向图。有向图。8.2 整体整体-部分结构部分结构一种基本的一种基本的模型元素模型元素由若干聚合关
14、由若干聚合关系形成的复合系形成的复合模型成分模型成分概念:概念:聚合(聚合(aggregation),组合(),组合(composition)整体整体-部分(部分(whole-part )整体对象,部分对象整体对象,部分对象17组合(组合(composition)是聚合关系的一种特殊情况,它表是聚合关系的一种特殊情况,它表明整体对于部分的强拥有关系,即整体与部分之间具有明整体对于部分的强拥有关系,即整体与部分之间具有紧密、固定的组成关系。紧密、固定的组成关系。UML把聚合定义为关联的一种特殊情况把聚合定义为关联的一种特殊情况而组合关系是聚合关系的特殊情况而组合关系是聚合关系的特殊情况18数量数
15、量数量数量数量数量数量数量整体对象类整体对象类部分对象类部分对象类整体对象类整体对象类部分对象类部分对象类表示法表示法在连接符两端通过数字或者符号给出关系双方对象实例的数量约束,在连接符两端通过数字或者符号给出关系双方对象实例的数量约束,称为多重性(称为多重性(multiplicity) 确定的整数确定的整数 给出确定的数量给出确定的数量 例如:例如: 1,2 下界下界上界上界 给出一个范围给出一个范围 例如:例如: 01 ,14 * * 表示多个,数量不确定表示多个,数量不确定下界下界* * 表示多个,下界确定表示多个,下界确定 例如例如 0* * , 1* * 多重性有以下多重性有以下3种
16、情况:种情况:一对一,一对多,多对多一对一,一对多,多对多照相机照相机11* *01010101镜镜 头头机机 身身1 119如何发现整体如何发现整体- -部分结构部分结构基本策略基本策略考察问题域中各种具有构成关系的事物考察问题域中各种具有构成关系的事物(1 1)物理上的整体事物和它的组成部分)物理上的整体事物和它的组成部分例:机器、设备和它的零部件例:机器、设备和它的零部件(2 2)组织机构和它的下级组织及部门)组织机构和它的下级组织及部门例:公司与子公司、部门例:公司与子公司、部门(3 3)团体(组织)与成员)团体(组织)与成员例:公司与职员例:公司与职员(4 4)一种事物在空间上包容其
17、它事物)一种事物在空间上包容其它事物例:生产车间与机器例:生产车间与机器(5 5)抽象事物的整体与部分)抽象事物的整体与部分例:学科与分支学科、法律与法律条款例:学科与分支学科、法律与法律条款(6 6)具体事物和它的某个抽象方面)具体事物和它的某个抽象方面例:人员与身份、履历例:人员与身份、履历20审查与筛选审查与筛选(1 1)是否属于问题域?)是否属于问题域?例:公司职员与家庭例:公司职员与家庭(2 2)是不是系统责任的需要?)是不是系统责任的需要?例:员工与工会、救护车与急救设备例:员工与工会、救护车与急救设备(3 3)部分对象是否有一个以上的属性?)部分对象是否有一个以上的属性?例:汽车
18、与车轮(规格)例:汽车与车轮(规格)(4 4)是否有明显的整体)是否有明显的整体- -部分关系?部分关系?例:学生与课程例:学生与课程21整体整体-部分结构的高级应用技巧部分结构的高级应用技巧(1 1)简化对象的定义)简化对象的定义飞飞 机机有关发动机的属性与操作有关发动机的属性与操作有关驾驶室的属性与操作有关驾驶室的属性与操作11141飞飞 机机发动机发动机驾驶室驾驶室22(2 2)支持软件复用)支持软件复用起重机起重机送料车送料车机床机床钻床钻床刨床刨床车床车床电动机电动机011011011发动机发动机飞机飞机三种情况:三种情况: 第一种情况是系统中已经定义了某个类,再定义的其他类具有该类
19、第一种情况是系统中已经定义了某个类,再定义的其他类具有该类的一些特征。的一些特征。 第二种情况是系统中定义的几个类都有某些共同的特征。第二种情况是系统中定义的几个类都有某些共同的特征。 第三种情况是系统中只有一个类,但该类中的某些特征具有某种独第三种情况是系统中只有一个类,但该类中的某些特征具有某种独立性,具有领域内复用机会。立性,具有领域内复用机会。23(3 3)表示数量不定的组成部分)表示数量不定的组成部分订订 单单编号编号卖方卖方买方买方总金额总金额成交日期成交日期订单行订单行商品编号商品编号订购数量订购数量成交价成交价金额金额1 1* *1 1商品商品商品编号商品编号商品名称商品名称单
20、价单价厂商厂商1 1* *一个订单可以一个订单可以包含一项到多包含一项到多达几十项商品达几十项商品提问:提问:能否不要订单行,能否不要订单行,直接用商品作为订直接用商品作为订单的部分对象?单的部分对象?24(4)表示动态变化的对象特征)表示动态变化的对象特征人员营业员会计师经理问题:问题:对象的属性与操作定义在系统运行中动态变化,例如:不理想的解决办法:不理想的解决办法:删除、重建删除、重建Shlaer/ MellorShlaer/ Mellor的子类型迁移的子类型迁移“动态对象动态对象”不理想的原因:不理想的原因:一是各个类的对象有一些共同的、不需要变化的属性,随着旧对一是各个类的对象有一些
21、共同的、不需要变化的属性,随着旧对象的删除和新对象的建立,需要由系统用户把旧对象中有用的信象的删除和新对象的建立,需要由系统用户把旧对象中有用的信息重新录入到新对象中,增加了用户的负担。息重新录入到新对象中,增加了用户的负担。二是让对象反复地从一个类中删除而加入另一个类,将为数据管二是让对象反复地从一个类中删除而加入另一个类,将为数据管理带来困难。理带来困难。三是概念上不自然,一个对象仅仅因为一些特征发生了变化,就三是概念上不自然,一个对象仅仅因为一些特征发生了变化,就要让它经历一番死而复生的阴阳轮回,显得太小题大做。要让它经历一番死而复生的阴阳轮回,显得太小题大做。25(4)表示动态变化的对
22、象特征)表示动态变化的对象特征问题:问题:对象的属性与操作定义在系统运行中动态变化,例如:会计师身份经理身份营业员身份人员身份1m或或人员营业员身份01会计师身份0101111解:解:经理身份思考:思考:自动存取款机系统是否存在这样的问题?26“三友三友”对问题的描述及解决方法对问题的描述及解决方法“大多数面向对象的编程语言是静态类型化的,这大多数面向对象的编程语言是静态类型化的,这意味着在创建对象时就限定了对象的类型。但是随意味着在创建对象时就限定了对象的类型。但是随着时间的推移对象还可能扮演不同的角色。着时间的推移对象还可能扮演不同的角色。”例子:候选者,雇员,退休者例子:候选者,雇员,退
23、休者 persontypecandidatetypeemployeetyperetiree“对象在其生命对象在其生命期内动态地获得期内动态地获得或者丢弃类型或者丢弃类型”1999年第一版年第一版persondynamiccandidatedynamicemployeedynamicretiree2005年第二版年第二版总之都是围绕着继承想主意,没有运用聚合。总之都是围绕着继承想主意,没有运用聚合。27从上述例子得到的启示:从上述例子得到的启示:整体整体- -部分结构有很强的表达能力部分结构有很强的表达能力运用运用OO方法的基本概念可以自然而有效地解决许多方法的基本概念可以自然而有效地解决许多在
24、其他方法中用扩充概念解决的问题在其他方法中用扩充概念解决的问题加强对基本概念的运用,不要轻易创造新的扩充概念加强对基本概念的运用,不要轻易创造新的扩充概念person010101111用聚合概念解决:用聚合概念解决:CandidateRoleEmployeeRoleRetireeRole28用一般特殊结构用一般特殊结构两种结构的变通两种结构的变通汽 车制冷设备冷藏车解释:解释:继承和聚合都是使一类对象获得另一类对象的特征,只是观察问题的角度不同。两种结构同用两种结构同用汽 车冷藏车制冷设备冷藏车汽 车制冷设备用整体部分结构用整体部分结构29练习:练习:1 1、对于门这个类来说、对于门这个类来说
25、, ,有木门、铁门、玻璃门之分,也有电动门、转门、拉门有木门、铁门、玻璃门之分,也有电动门、转门、拉门之分,如何建模?之分,如何建模?2 2、在在线图书销售系统中,图书包括封面、目录和正文三个部分,封面上有、在在线图书销售系统中,图书包括封面、目录和正文三个部分,封面上有图书的名称、出版社和作者,目录中有章和节的标题,如何建模?图书的名称、出版社和作者,目录中有章和节的标题,如何建模?3 3、如果多个类中都存在一些相同的属性和操作,此时可以选择几种建模方案、如果多个类中都存在一些相同的属性和操作,此时可以选择几种建模方案?举例说明。?举例说明。4 4、基于前述建模结果,完成、基于前述建模结果,
展开阅读全文