第5章 类图和对象图优秀PPT.ppt
《第5章 类图和对象图优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第5章 类图和对象图优秀PPT.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 类图和对象图现在学习的是第1页,共90页5.1 类的定义 类 具有相似结构、行为和关系的一组对象的描述符。现在学习的是第2页,共90页5.1 类的定义 类的名字 simple name 例如:Shape path name 例如:Banking:CheckingAccount现在学习的是第3页,共90页5.1.1 类的属性 属性在类图标的属性分隔框中用文字串说明,UML规范说明1.5版本中定义属性的格式为:可见性属性名:类型多重性 次序=初始值特性 现在学习的是第4页,共90页5.1.1 类的属性【例5.1】属性声明的一些例子。+size:Area=(100,100)#visibili
2、ty:Boolean=false+default-size:Rectangle#maximum-size:Rectangle-xptr:XwindowPtrcolors:Color3points:Point2.*orderedname:String0.1 现在学习的是第5页,共90页5.1.2 类的操作 操作(operation)用于修改、检索类的属性或执行某些动作,操作通常也称为功能。UML规范说明1.5中规定操作的格式为:可见性操作名(参数列表):返回类型特性 操作的特征标记:只包括操作名和参数列表操作接口:包括操作名、参数列表和返回类型现在学习的是第6页,共90页5.1.2 类的操作【例
3、5.2】操作声明的一些例子。+display():Location+hide()#create()-attachXWindow(xwin:XwindowPtr)现在学习的是第7页,共90页5.2 类之间的关系 类之间的关系 关联 聚集 组合 泛化 依赖现在学习的是第8页,共90页5.2.1 关联 关联(association)是模型元素间的一种语义联系,它是对具有共同的结构特性、行为特性、关系和语义的链(link)的描述。图5.2 类之间的关联关系 图5.3 类之间的单向关联关系 现在学习的是第9页,共90页5.2.1 关联 类A的代码:public class Apublic B theB;
4、/*roseuid 3DAFBF0F01FC*/public A()现在学习的是第10页,共90页5.2.1 关联 类B的代码:public class B/*roseuid 3DAFBF0F01A2*/public B()现在学习的是第11页,共90页1 关联名 关联名 描述关联的作用。通常是动词或动词短语。图5.4 使用关联名的关联 现在学习的是第12页,共90页2 关联的角色 关联的两端可以某种角色参与关联。图5.5 关联的角色 现在学习的是第13页,共90页2 关联的角色在UML中,多重性可以用下面的格式表示:0.10.*(也可以表示为0.n)1(1.1的简写)1.*(也可以表示为1.
5、n)*(即0.n)73,6.90(0.0的简写)(表示没有实例参与关联,一般不用)可以看到,多重性是用非负整数的一个子集来表示的。现在学习的是第14页,共90页3 关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接。图5.6 使用关联类的关联 现在学习的是第15页,共90页3 关联类 为了有助于理解关联类,这里也用Rose生成相应的Java代码,共3个类,如下所示。类Company的代码:public class Company private String companyName;public Person employee;现在学习的是第16页,共90页3 关联类
6、类Person的代码:public class Person private String personName;protected Company employer;类Contract的代码:public class Contract private Double salary;现在学习的是第17页,共90页4 关联的约束 对于关联可以加上一些约束,以加强关联的含义。图5.7 带约束的关联 现在学习的是第18页,共90页5 限定关联 在关联端紧靠类图标处可以有限定符(qualifier),带有限定符的关联称为限定关联(qualified association)。限定符的作用就是在给定关联一
7、端的一个对象和限定符值以后,可确定另一端的一个对象或对象集。现在学习的是第19页,共90页5 限定关联图5.8 限定符和限定关联 图5.9 限定关联和一般关联现在学习的是第20页,共90页5 限定关联 图5.8表示的意思是,一个Person可以在bank中有多个account。但给定了一个account值后,就可以对应一个Person值,或者对应的person值为null,因为Person端的多重性为0.1。这里的多重性表示的是person和(bank,account)之间的关系,而不是person和bank之间的关系。即:(bank,account)0个或1个person Person多个(
8、bank,account)现在学习的是第21页,共90页5 限定关联 需要注意的是,限定符是关联的属性,而不是类的属性。也就是说,在具体实现图5.8中的结构时,account这个属性有可能是Person类中的一个属性,也可能是Bank类中的一个属性(当然,这里在Bank类中包含account属性并不好),也可能是在其他类中有一个account属性。现在学习的是第22页,共90页5 限定关联 限定符这个概念在设计软件时非常有用,如果一个应用系统需要根据关键字对一个数据集做查询操作,则经常会用到限定关联。引入限定符的一个目的就是把多重性从n将为1或0.1,这样如果做查询操作,则这个查询操作的效率会
9、很高。所以在使用限定符时,如果限定符另一端的多重性仍为n,则引入这个限定符的作用就不是很大。因为查询结果仍然还是一个结果集,所以也可以根据多重性来判断一个限定符的设计是否合理。现在学习的是第23页,共90页6 关联的种类 按照关联所连接的类的数量 自返关联 二元关联 N元关联现在学习的是第24页,共90页6 关联的种类 自返关联(reflexive association)又称递归关联(recursive association),是一个类与自身的关联,即同一个类的两个对象间的关系。图5.10 自返关联 现在学习的是第25页,共90页6 关联的种类 对于图5.10中的类,在Rose中所生成的J
10、ava代码如下所示:类EnginePart的代码:public class EnginePart public EnginePart theEnginePart;/*roseuid 3E9290390281 */public EnginePart()现在学习的是第26页,共90页6 关联的种类 二元关联略。现在学习的是第27页,共90页6 关联的种类 N元关联(n-ary association)是在3个或3个以上类之间的关联。现在学习的是第28页,共90页5.2.2 聚集和组合 聚集(aggregation)是一种特殊形式的关联。聚集表示类之间整体与部分的关系。在对系统进行分析和设计时,需要
11、描述中的“包含”,“组成”、“分为部分”等词常常意味着存在聚集关系。图5.12 聚集关系 现在学习的是第29页,共90页5.2.2 聚集和组合 组合(composition)表示的也是类之间整体与部分的关系,但组合关系中的整体与部分具有同样的生存期。也就是说,组合是一种特殊形式的聚集。图5.13 组合关系 现在学习的是第30页,共90页5.2.2 聚集和组合 聚集关系的实例是传递的,反对称的,也就是说,聚集关系的实例之间存在偏序关系,即聚集关系的实例之间不能形成环。需要注意的是,这里说的是聚集关系的实例(即链)不能形成环,而不是说聚集关系不能形成环。事实上,聚集关系可以形成环。现在学习的是第3
12、1页,共90页5.2.2 聚集和组合-两者的区别 聚集关系也称为“has-a”关系,组合关系也称为“contains-a”关系。聚集关系表示事物的整体/部分关系的较弱的情况,组合关系表示事物的整体/部分关系的较强的情况。在聚集关系中,代表部分事物的对象可以属于多个聚集对象,可以为多个聚集对象所共享,而且可以随时改变它所从属的聚集对象。代表部分事物的对象与代表聚集事物对象的生存期无关,一旦删除了它的一个聚集对象,不一定也就随即删除代表部分事物的对象。在组合关系中,代表整体事物的对象负责创建和删除代表部分事物的对象,代表部分事物的对象只属于一个组合对象。一旦删除了组合对象,也就随即删除了相应的代表
13、部分事物的对象。现在学习的是第32页,共90页5.2.3 泛化关系 泛化(generalization)定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间的泛化关系就是平常所说的类之间的继承关系。图5.14 泛化关系 现在学习的是第33页,共90页5.2.4 依赖关系 假设有两个元素X、Y,如果修改元素X的定义可能会导致对另一个元素Y的定义修改,则称元素Y依赖于元素X。图5.15 依赖关系 现在学习的是第34页,共90页5.3 派生属性和派生关联 派生属性 可以从其他属性推演得到的属性。图5.16 派生属性现在学习的是第35页,共90页5.3 派生属性和派
14、生关联 派生关联 可以从其他属性推演得到的关联。图5.17 派生关联现在学习的是第36页,共90页5.4 抽象类和接口 抽象类(abstract class)是不能直接产生实例的类,因为抽象类中的方法往往只是一些声明,而没有具体的实现,因此不能对抽象类实例化。现在学习的是第37页,共90页5.4 抽象类和接口 接口是类的版型,对于版型这个概念在5.5节中还会介绍。如图5.18所示是接口的3种表示方式。图5.18 接口的3种表示方式现在学习的是第38页,共90页5.4 抽象类和接口 需要注意的是,UML中接口的概念和一般的程序设计语言(如Java)中接口的概念稍有不同。例如,Java中的接口可以
15、包含属性,但UML中的接口不包括属性,只包含方法的声明。接口与抽象类很相似,但两者之间存在不同的地方:接口不能含有属性,而抽象类可以含有属性;接口中声明的所有方法都没有实现部分,而抽象类中某些方法可以有具体的实现。现在学习的是第39页,共90页5.5 版型 版型是UML的3种扩展机制之一,UML中的另外两种扩展机制是标记值和约束。Stereotype这个词来源于印刷业中的术语,一般在进行正式印刷前,需要进行制版,然后根据做好的版型进行批量印刷。现在学习的是第40页,共90页5.5 版型 在2.4节介绍UML的构成时,已提到UML中的基本构造块包括事物(thing)、关系(relationshi
16、p)、图(diagram)这3种类型。版型是建模人员在已有的构造块上派生出的新构造块,这些新构造块是和特定问题相关的。需要注意的是,版型必须定义在UML中已经有定义的基本构造块之上,是在已有元素上增加新的语义,而不是增加新的文法结构。现在学习的是第41页,共90页5.5 版型 UML中预定义了一些版型,如接口是类的版型,子系统是包的版型等。当然用户也可以自己定义版型。图5.19 Actor的3种表示方式 现在学习的是第42页,共90页5.5 版型 由于Actor事实上就是一个类,所以也可以给Actor添加属性和操作,就像给类添加属性和操作一样。如图5.20所示是带有操作的Actor的例子。除了
17、预定义的版型外,用户也可以自定义版型,如图5.21所示是自定义版型的例子。现在学习的是第43页,共90页5.5 版型图5.20 Actor及其操作 图5.21 自定义版型 现在学习的是第44页,共90页5.6 边界类、控制类和实体类 UML中有3种主要的类的版型,即边界类、控制类和实体类。在进行OO分析和设计时,如何确定系统中的类是一个比较困难的工作,引入边界类、控制类和实体类的概念有助于分析和设计人员确定系统中的类。现在学习的是第45页,共90页5.6.1 边界类 边界类位于系统与外界的交界处,窗体(form)、对话框(dialog box)、报表(report)以及表示通讯协议(如TCP/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 类图和对象图优秀PPT 对象 优秀 PPT
限制150内