第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)#visibility:Boolean=f
2、alse+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 类的操作【例5.2】操作声明的一些例子。+dis
3、play():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;/*roseuid 3DAFBF0F01FC*/pub
4、lic 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.n)*(即0.n)73,6.90(0.0的简写)(表示没有实例参与关联,一般不
5、用)可以看到,多重性是用非负整数的一个子集来表示的。第14页,本讲稿共90页3 关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接。图5.6 使用关联类的关联 第15页,本讲稿共90页3 关联类 为了有助于理解关联类,这里也用Rose生成相应的Java代码,共3个类,如下所示。类Company的代码:public class Company private String companyName;public Person employee;第16页,本讲稿共90页3 关联类 类Person的代码:public class Person private String pe
6、rsonName;protected Company employer;类Contract的代码:public class Contract private Double salary;第17页,本讲稿共90页4 关联的约束 对于关联可以加上一些约束,以加强关联的含义。图5.7 带约束的关联 第18页,本讲稿共90页5 限定关联 在关联端紧靠类图标处可以有限定符(qualifier),带有限定符的关联称为限定关联(qualified association)。限定符的作用就是在给定关联一端的一个对象和限定符值以后,可确定另一端的一个对象或对象集。第19页,本讲稿共90页5 限定关联图5.8 限
7、定符和限定关联 图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多个(bank,account)第21页,本讲稿共90页5 限定关联 需要注意的是,限定符是关联的属性,而不是类的属性。也就是
8、说,在具体实现图5.8中的结构时,account这个属性有可能是Person类中的一个属性,也可能是Bank类中的一个属性(当然,这里在Bank类中包含account属性并不好),也可能是在其他类中有一个account属性。第22页,本讲稿共90页5 限定关联 限定符这个概念在设计软件时非常有用,如果一个应用系统需要根据关键字对一个数据集做查询操作,则经常会用到限定关联。引入限定符的一个目的就是把多重性从n将为1或0.1,这样如果做查询操作,则这个查询操作的效率会很高。所以在使用限定符时,如果限定符另一端的多重性仍为n,则引入这个限定符的作用就不是很大。因为查询结果仍然还是一个结果集,所以也可
9、以根据多重性来判断一个限定符的设计是否合理。第23页,本讲稿共90页6 关联的种类 按照关联所连接的类的数量 自返关联 二元关联 N元关联第24页,本讲稿共90页6 关联的种类 自返关联(reflexive association)又称递归关联(recursive association),是一个类与自身的关联,即同一个类的两个对象间的关系。图5.10 自返关联 第25页,本讲稿共90页6 关联的种类 对于图5.10中的类,在Rose中所生成的Java代码如下所示:类EnginePart的代码:public class EnginePart public EnginePart theEngin
10、ePart;/*roseuid 3E9290390281 */public EnginePart()第26页,本讲稿共90页6 关联的种类 二元关联略。第27页,本讲稿共90页6 关联的种类 N元关联(n-ary association)是在3个或3个以上类之间的关联。第28页,本讲稿共90页5.2.2 聚集和组合 聚集(aggregation)是一种特殊形式的关联。聚集表示类之间整体与部分的关系。在对系统进行分析和设计时,需要描述中的“包含”,“组成”、“分为部分”等词常常意味着存在聚集关系。图5.12 聚集关系 第29页,本讲稿共90页5.2.2 聚集和组合 组合(composition)
11、表示的也是类之间整体与部分的关系,但组合关系中的整体与部分具有同样的生存期。也就是说,组合是一种特殊形式的聚集。图5.13 组合关系 第30页,本讲稿共90页5.2.2 聚集和组合 聚集关系的实例是传递的,反对称的,也就是说,聚集关系的实例之间存在偏序关系,即聚集关系的实例之间不能形成环。需要注意的是,这里说的是聚集关系的实例(即链)不能形成环,而不是说聚集关系不能形成环。事实上,聚集关系可以形成环。第31页,本讲稿共90页5.2.2 聚集和组合-两者的区别 聚集关系也称为“has-a”关系,组合关系也称为“contains-a”关系。聚集关系表示事物的整体/部分关系的较弱的情况,组合关系表示
12、事物的整体/部分关系的较强的情况。在聚集关系中,代表部分事物的对象可以属于多个聚集对象,可以为多个聚集对象所共享,而且可以随时改变它所从属的聚集对象。代表部分事物的对象与代表聚集事物对象的生存期无关,一旦删除了它的一个聚集对象,不一定也就随即删除代表部分事物的对象。在组合关系中,代表整体事物的对象负责创建和删除代表部分事物的对象,代表部分事物的对象只属于一个组合对象。一旦删除了组合对象,也就随即删除了相应的代表部分事物的对象。第32页,本讲稿共90页5.2.3 泛化关系 泛化(generalization)定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间
13、的泛化关系就是平常所说的类之间的继承关系。图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 派生属性和派生关联 派生关联 可以从其他属性推演得到的关联。图5.17 派生关联第36页,本讲稿共90页5.4 抽象类和接口 抽象类(abstract class)是不能直接产生实例的类,因为抽象类中的方法往往只是一些声明
14、,而没有具体的实现,因此不能对抽象类实例化。第37页,本讲稿共90页5.4 抽象类和接口 接口是类的版型,对于版型这个概念在5.5节中还会介绍。如图5.18所示是接口的3种表示方式。图5.18 接口的3种表示方式第38页,本讲稿共90页5.4 抽象类和接口 需要注意的是,UML中接口的概念和一般的程序设计语言(如Java)中接口的概念稍有不同。例如,Java中的接口可以包含属性,但UML中的接口不包括属性,只包含方法的声明。接口与抽象类很相似,但两者之间存在不同的地方:接口不能含有属性,而抽象类可以含有属性;接口中声明的所有方法都没有实现部分,而抽象类中某些方法可以有具体的实现。第39页,本讲
15、稿共90页5.5 版型 版型是UML的3种扩展机制之一,UML中的另外两种扩展机制是标记值和约束。Stereotype这个词来源于印刷业中的术语,一般在进行正式印刷前,需要进行制版,然后根据做好的版型进行批量印刷。第40页,本讲稿共90页5.5 版型 在2.4节介绍UML的构成时,已提到UML中的基本构造块包括事物(thing)、关系(relationship)、图(diagram)这3种类型。版型是建模人员在已有的构造块上派生出的新构造块,这些新构造块是和特定问题相关的。需要注意的是,版型必须定义在UML中已经有定义的基本构造块之上,是在已有元素上增加新的语义,而不是增加新的文法结构。第41
16、页,本讲稿共90页5.5 版型 UML中预定义了一些版型,如接口是类的版型,子系统是包的版型等。当然用户也可以自己定义版型。图5.19 Actor的3种表示方式 第42页,本讲稿共90页5.5 版型 由于Actor事实上就是一个类,所以也可以给Actor添加属性和操作,就像给类添加属性和操作一样。如图5.20所示是带有操作的Actor的例子。除了预定义的版型外,用户也可以自定义版型,如图5.21所示是自定义版型的例子。第43页,本讲稿共90页5.5 版型图5.20 Actor及其操作 图5.21 自定义版型 第44页,本讲稿共90页5.6 边界类、控制类和实体类 UML中有3种主要的类的版型,
17、即边界类、控制类和实体类。在进行OO分析和设计时,如何确定系统中的类是一个比较困难的工作,引入边界类、控制类和实体类的概念有助于分析和设计人员确定系统中的类。第45页,本讲稿共90页5.6.1 边界类 边界类位于系统与外界的交界处,窗体(form)、对话框(dialog box)、报表(report)以及表示通讯协议(如TCP/IP)的类、直接与外部设备交互的类、直接与外部系统交互的类等是边界类的例子。第46页,本讲稿共90页5.6.1 边界类 如图5.22所示是UML中边界类的3种表示方式。图5.22 边界类的3种表示方式 第47页,本讲稿共90页5.6.1 边界类 通过用例图可以确定需要的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 类图和对象图精选PPT 对象 精选 PPT
限制150内